android 软件安全攻防研究现状 claud isf2012
TRANSCRIPT
Android软件安全 攻防研究现状
肖梓航(Claud)
ISF2012•上海
关于我
肖梓航(Claud)
安天实验室 高级研究员
–移动反病毒、移动软件安全研发
secmobi.com
–提供移动安全资源、资讯和知识
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 2
纲要
统计数据
案例学习
安全开发方法
发现安全漏洞
自动化漏洞挖掘
攻击缓解技术
开放问题
攻防
研究
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 3
统计数据
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 4
CVE
5
25
69
0
10
20
30
40
50
60
70
80
2010年 2011年 2012年
Android软件漏洞数
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 5
乌云
2 3
53
0 3
24
0
10
20
30
40
50
60
2010年 2011年 2012年
Android软件漏洞数
iOS软件漏洞数
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 6
CCS’12论文
• 使用SSL通信的流行软件中: – 1074个接受所有证书或主机名,可以MITM – 约41%可以有效攻击 – 影响3950万-1.85亿用户 – 包括American Express, Diners Club, Paypal, bank accounts, Facebook, Twitter, Google, Yahoo, Microsoft Live ID, Box, WordPress等
来源:S. Fahl, M. Harbach, T. Muders, M. Smith, L. Baumgärtner, and B. Freisleben, “Why eve and mallory love android: an analysis of android SSL (in)security,” presented at the CCS '12: Proceedings of the 2012 ACM conference on Computer and communications security, 2012.
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 7
案例学习
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 8
外部存储问题导致数据泄露
• 将个人数据和系统数据存储在SD卡
• 将个人社交信息存储在SD卡
图片来自乌云网站 ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 9
内部存储问题导致数据泄露
• 账户密码明文存储 • 敏感数据明文存储
图片来自viaForensics网站 ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 10
传输问题导致数据泄露
POST /api/checkaccount HTTP/1.1
User-Agent: MomoChat/1.11build Android/12 (LT18i; Android 2.3.4; zh_CN)
Content-Length: 249
Content-Type: application/x-www-form-urlencoded
Host: www.immomo.com:80
Connection: Keep-Alive
uid=85dab7d268769df46abe111a82976931&phone_netWork=2&screen=480x854&model=LT18i&rom=2.3.4&phone_type=GSM&device_type=android&account=xxxxxx&mac=5c%3Ab5%3A24%3A09%3Ae1%3A58&market_source=1&buildnumber=4.0.2.A.0.58%2Fxf_v3w&password=xxxxxx&version=12
代码片段来自乌云网站
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 11
传输问题导致会话劫持
• FaceNiff劫持下列网站登录session: – FaceBook
– Youtube
– Amazon
– VKontakte
– Tumblr
– MySpace
– Tuenti
– blogger
– ……
图片来自FaceNiff网站
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 12
数据验证问题导致客户端注入
图片来自乌云网站 图片来自乌云网站
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 13
代码验证问题导致代码执行
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 14
数据验证问题导致服务端注入
图片来自乌云网站
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 15
登陆认证问题导致非法访问
• 可伪造的登陆凭据
• SSL证书不当验证
– 忽略证书错误
– 信任所有证书
• 不验证客户端身份
• ……
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 16
组件暴露导致能力泄露
Intent intent = new Intent();
intent.setAction("android.provider.Telephony.SECRET_CODE");
intent.setData(Uri.parse("android_secret_code://284"));
sendBroadcast(intent);
<receiver android:name=".CitBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:scheme="android_secret_code" android:host="284" />
</intent-filter>
</receiver>
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 17
组件暴露的更多案例
• 多款手机Android系统远程擦除漏洞
• Android系统任意构造短信和彩信漏洞
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 18
旁路数据泄露
• 不必要的Logcat
• 系统级键盘记录 • ……
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 19
密码学算法使用不当
• 可逆编码、弱哈希算法
• 自定义安全算法
• 无密码、弱密码、硬编码密码
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 20
安全开发方法
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 21
数据存储
• 问题:数据泄露
• 外部数据转到内部存储
• 外部数据加密存储
–新问题:密码的选择和保存
• 敏感数据尽可能不存储
–新问题:用户体验
–新问题:应对内存取证
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 22
数据传输
• 问题:监听、劫持、中间人攻击
• 用SSL加密传输个人数据和敏感数据
• 用证书锁定验证服务器合法性
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 23
数据验证
• 数据来源:
– 用户输入
– 组件通信
– 网络接收
• 代码来源:
– 网络接收
– 本地存储
• 完整性:防篡改
• 有效性:验身份
• 格式:防畸形
• 代码类型:防注入
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 24
组件间通信
• 最小化组件暴露
• 设置组件访问权限
–自定义signature级别的权限
• 暴露组件的代码检查
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 25
密码与认证
• 问题:
– 算法使用不当
– 弱密码
– 弱密码算法
– C/S单向认证
– 认证凭据保存不当
• 系统提供的账户管理
• 系统提供的算法库
• “最佳安全实践”
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 26
发现安全漏洞
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 27
组件暴露(一)
• activity, service和receiver的暴露
–攻击者调用这些组件,获得额外的能力/权限
–攻击者构造数据并调用这些组件,进一步控制其代码的执行
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 28
Intent劫持
–读取intent传递的extra数据
–构造组件,响应intent,钓鱼攻击
–构造组件,响应intent,劫持
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 29
组件暴露(二)
• provider默认暴露,可以读写
–攻击者读取其中的敏感数据
–攻击者篡改其中的数据,影响程序后面的执行
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 30
SSL通信
• 问题:
–不使用SSL
–不验证服务器证书/忽略证书验证错误
–不验证证书主机名
• 攻击:
–嗅探
– MITM
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 31
产业界部分工作
• OWASP
– Mobile Security Project
– Top 10 Mobile Risks/Controls
– AppSec Conferences
• viaForensics
– Santoku
• JSSEC
– whitepapers
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 32
自动化漏洞挖掘
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 33
学术界工作(一)
• ComDroid
–介绍组件暴露和intent劫持
–基于manifest和CFG寻找漏洞
• CHEX
–组件劫持漏洞
–数据流-> hijack-enabling flows
• DroidChecker
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 34
学术界工作(二)
• Woodpecker
–组件暴露
–系统预装软件
– CFG + 数据流分析
• MalloDroid
– SSL/MITM问题
–数据流分析
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 35
产业界的工作
• Mercury
• ASEF
• SPF
• Intent Sniffer/Intent Fuzzer
• ……
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 36
攻击缓解技术
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 37
IPC加固
• ComDroid
– IPC检查
• QUIRE
–加固IPC和RPC
–跟踪调用链,轻量级签名
• Bugiel et al
–对IPC的监控
–在内核层对文件系统、网络访问的控制
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 38
SEAndroid
• SELinux based
• 阻止从用户层的root exploit
• 基于中间件的MAC
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 39
Android
• Android 4.0
– ASLR
• Android 4.1
–应用加密
• Android 4.2
– Libcore的SSL实现支持证书锁定
– ContentProvider默认不暴露
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 40
产业界
• Android任意构造短信漏洞
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 41
开放问题(一)
• 新的漏洞类型
– Android软件独有的漏洞还有哪些?
• 与软件业务相关的漏洞
• 服务器端安全问题
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 42
开放问题(二)
• 与系统机制相关的漏洞
–点击劫持
– Activity劫持
–键盘记录
–锁屏软件失效
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 43
开放问题(三)
• 漏洞自动挖掘的困难:
–如何区分敏感数据?
– NDK代码如何自动分析和挖掘?
–对用户交互界面的自动触发
• 自动的动态挖掘方法?
• 对现有漏洞的细化挖掘
–数据传输和存储
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 44
没有讨论的话题
• 软件版权保护
• 内核和系统安全
• ARM的漏洞利用和防御
ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 45