android 软件安全攻防研究现状 claud isf2012

46
Android软件安全 攻防研究现状 肖梓航(Claud) ISF2012•上海

Upload: -

Post on 09-Feb-2017

93 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Android 软件安全攻防研究现状 claud isf2012

Android软件安全 攻防研究现状

肖梓航(Claud)

ISF2012•上海

Page 2: Android 软件安全攻防研究现状 claud isf2012

关于我

肖梓航(Claud)

安天实验室 高级研究员

–移动反病毒、移动软件安全研发

secmobi.com

–提供移动安全资源、资讯和知识

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 2

Page 3: Android 软件安全攻防研究现状 claud isf2012

纲要

统计数据

案例学习

安全开发方法

发现安全漏洞

自动化漏洞挖掘

攻击缓解技术

开放问题

攻防

研究

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 3

Page 4: Android 软件安全攻防研究现状 claud isf2012

统计数据

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 4

Page 5: Android 软件安全攻防研究现状 claud isf2012

CVE

5

25

69

0

10

20

30

40

50

60

70

80

2010年 2011年 2012年

Android软件漏洞数

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 5

Page 6: Android 软件安全攻防研究现状 claud isf2012

乌云

2 3

53

0 3

24

0

10

20

30

40

50

60

2010年 2011年 2012年

Android软件漏洞数

iOS软件漏洞数

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 6

Page 7: Android 软件安全攻防研究现状 claud isf2012

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

Page 8: Android 软件安全攻防研究现状 claud isf2012

案例学习

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 8

Page 9: Android 软件安全攻防研究现状 claud isf2012

外部存储问题导致数据泄露

• 将个人数据和系统数据存储在SD卡

• 将个人社交信息存储在SD卡

图片来自乌云网站 ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 9

Page 10: Android 软件安全攻防研究现状 claud isf2012

内部存储问题导致数据泄露

• 账户密码明文存储 • 敏感数据明文存储

图片来自viaForensics网站 ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 10

Page 11: Android 软件安全攻防研究现状 claud isf2012

传输问题导致数据泄露

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

Page 12: Android 软件安全攻防研究现状 claud isf2012

传输问题导致会话劫持

• FaceNiff劫持下列网站登录session: – FaceBook

– Twitter

– Youtube

– Amazon

– VKontakte

– Tumblr

– MySpace

– Tuenti

– blogger

– ……

图片来自FaceNiff网站

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 12

Page 13: Android 软件安全攻防研究现状 claud isf2012

数据验证问题导致客户端注入

图片来自乌云网站 图片来自乌云网站

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 13

Page 14: Android 软件安全攻防研究现状 claud isf2012

代码验证问题导致代码执行

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 14

Page 15: Android 软件安全攻防研究现状 claud isf2012

数据验证问题导致服务端注入

图片来自乌云网站

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 15

Page 16: Android 软件安全攻防研究现状 claud isf2012

登陆认证问题导致非法访问

• 可伪造的登陆凭据

• SSL证书不当验证

– 忽略证书错误

– 信任所有证书

• 不验证客户端身份

• ……

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 16

Page 17: Android 软件安全攻防研究现状 claud isf2012

组件暴露导致能力泄露

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

Page 18: Android 软件安全攻防研究现状 claud isf2012

组件暴露的更多案例

• 多款手机Android系统远程擦除漏洞

• Android系统任意构造短信和彩信漏洞

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 18

Page 19: Android 软件安全攻防研究现状 claud isf2012

旁路数据泄露

• 不必要的Logcat

• 系统级键盘记录 • ……

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 19

Page 20: Android 软件安全攻防研究现状 claud isf2012

密码学算法使用不当

• 可逆编码、弱哈希算法

• 自定义安全算法

• 无密码、弱密码、硬编码密码

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 20

Page 21: Android 软件安全攻防研究现状 claud isf2012

安全开发方法

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 21

Page 22: Android 软件安全攻防研究现状 claud isf2012

数据存储

• 问题:数据泄露

• 外部数据转到内部存储

• 外部数据加密存储

–新问题:密码的选择和保存

• 敏感数据尽可能不存储

–新问题:用户体验

–新问题:应对内存取证

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 22

Page 23: Android 软件安全攻防研究现状 claud isf2012

数据传输

• 问题:监听、劫持、中间人攻击

• 用SSL加密传输个人数据和敏感数据

• 用证书锁定验证服务器合法性

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 23

Page 24: Android 软件安全攻防研究现状 claud isf2012

数据验证

• 数据来源:

– 用户输入

– 组件通信

– 网络接收

• 代码来源:

– 网络接收

– 本地存储

• 完整性:防篡改

• 有效性:验身份

• 格式:防畸形

• 代码类型:防注入

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 24

Page 25: Android 软件安全攻防研究现状 claud isf2012

组件间通信

• 最小化组件暴露

• 设置组件访问权限

–自定义signature级别的权限

• 暴露组件的代码检查

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 25

Page 26: Android 软件安全攻防研究现状 claud isf2012

密码与认证

• 问题:

– 算法使用不当

– 弱密码

– 弱密码算法

– C/S单向认证

– 认证凭据保存不当

• 系统提供的账户管理

• 系统提供的算法库

• “最佳安全实践”

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 26

Page 27: Android 软件安全攻防研究现状 claud isf2012

发现安全漏洞

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 27

Page 28: Android 软件安全攻防研究现状 claud isf2012

组件暴露(一)

• activity, service和receiver的暴露

–攻击者调用这些组件,获得额外的能力/权限

–攻击者构造数据并调用这些组件,进一步控制其代码的执行

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 28

Page 29: Android 软件安全攻防研究现状 claud isf2012

Intent劫持

–读取intent传递的extra数据

–构造组件,响应intent,钓鱼攻击

–构造组件,响应intent,劫持

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 29

Page 30: Android 软件安全攻防研究现状 claud isf2012

组件暴露(二)

• provider默认暴露,可以读写

–攻击者读取其中的敏感数据

–攻击者篡改其中的数据,影响程序后面的执行

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 30

Page 31: Android 软件安全攻防研究现状 claud isf2012

SSL通信

• 问题:

–不使用SSL

–不验证服务器证书/忽略证书验证错误

–不验证证书主机名

• 攻击:

–嗅探

– MITM

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 31

Page 32: Android 软件安全攻防研究现状 claud isf2012

产业界部分工作

• OWASP

– Mobile Security Project

– Top 10 Mobile Risks/Controls

– AppSec Conferences

• viaForensics

– Santoku

• JSSEC

– whitepapers

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 32

Page 33: Android 软件安全攻防研究现状 claud isf2012

自动化漏洞挖掘

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 33

Page 34: Android 软件安全攻防研究现状 claud isf2012

学术界工作(一)

• ComDroid

–介绍组件暴露和intent劫持

–基于manifest和CFG寻找漏洞

• CHEX

–组件劫持漏洞

–数据流-> hijack-enabling flows

• DroidChecker

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 34

Page 35: Android 软件安全攻防研究现状 claud isf2012

学术界工作(二)

• Woodpecker

–组件暴露

–系统预装软件

– CFG + 数据流分析

• MalloDroid

– SSL/MITM问题

–数据流分析

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 35

Page 36: Android 软件安全攻防研究现状 claud isf2012

产业界的工作

• Mercury

• ASEF

• SPF

• Intent Sniffer/Intent Fuzzer

• ……

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 36

Page 37: Android 软件安全攻防研究现状 claud isf2012

攻击缓解技术

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 37

Page 38: Android 软件安全攻防研究现状 claud isf2012

IPC加固

• ComDroid

– IPC检查

• QUIRE

–加固IPC和RPC

–跟踪调用链,轻量级签名

• Bugiel et al

–对IPC的监控

–在内核层对文件系统、网络访问的控制

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 38

Page 39: Android 软件安全攻防研究现状 claud isf2012

SEAndroid

• SELinux based

• 阻止从用户层的root exploit

• 基于中间件的MAC

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 39

Page 40: Android 软件安全攻防研究现状 claud isf2012

Android

• Android 4.0

– ASLR

• Android 4.1

–应用加密

• Android 4.2

– Libcore的SSL实现支持证书锁定

– ContentProvider默认不暴露

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 40

Page 41: Android 软件安全攻防研究现状 claud isf2012

产业界

• Android任意构造短信漏洞

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 41

Page 42: Android 软件安全攻防研究现状 claud isf2012

开放问题(一)

• 新的漏洞类型

– Android软件独有的漏洞还有哪些?

• 与软件业务相关的漏洞

• 服务器端安全问题

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 42

Page 43: Android 软件安全攻防研究现状 claud isf2012

开放问题(二)

• 与系统机制相关的漏洞

–点击劫持

– Activity劫持

–键盘记录

–锁屏软件失效

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 43

Page 44: Android 软件安全攻防研究现状 claud isf2012

开放问题(三)

• 漏洞自动挖掘的困难:

–如何区分敏感数据?

– NDK代码如何自动分析和挖掘?

–对用户交互界面的自动触发

• 自动的动态挖掘方法?

• 对现有漏洞的细化挖掘

–数据传输和存储

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 44

Page 45: Android 软件安全攻防研究现状 claud isf2012

没有讨论的话题

• 软件版权保护

• 内核和系统安全

• ARM的漏洞利用和防御

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 45

Page 46: Android 软件安全攻防研究现状 claud isf2012

END

• 谢谢!

• Email: [email protected]

ISF2012•上海 Android软件安全攻防研究现状 - 肖梓航 46