本站总访问量
文章目录
  1. 1. 1.Remote Attack Surface(远程攻击面)
    1. 1.1. Networking Stacks(网络协议)
    2. 1.2. Exposed Network Services(暴露的网络服务)
    3. 1.3. Moblie Technologies
    4. 1.4. Client-side Attack Surface(客户端攻击面)
    5. 1.5. Googel Infrastructure(Google基础服务)
  2. 2. 2.Physical Adjacency(物理邻接攻击)
    1. 2.1. Wireless Communications(无线通讯)
    2. 2.2. Other Technologies
  3. 3. 3.Local Attack Surfaces(本地攻击面)
    1. 3.1. Exploring the File System
    2. 3.2. Applications life cycle
    3. 3.3. Finding Other Local Attack Surface
  4. 4. 4.Physical Attack Surfaces(物理攻击面)
    1. 4.1. Dismantling Devices(拆解设备)
    2. 4.2. USB
    3. 4.3. Other Physical Attack Surface
  5. 5. 5.Third-Party Modifications(第三方修改)
    1. 5.1. OEMs厂家定制预装应用
    2. 5.2. 遗留的开发调测工具
    3. 5.3. 对Framework层的修改引入的新功能、API、JNI
    4. 5.4. 驱动层新增的驱动节点

Android系统有哪些攻击面呢?如何指导我们做好Android安全?

先上一幅总图:

attack_surface

1.Remote Attack Surface(远程攻击面)

最巨大的、最危险的、最有吸引力的攻击界面,攻击者无需本地物理接触受害者

Networking Stacks(网络协议)

Android系统使用的Linux内核提供的TCP/IP协议栈可能会引入攻击面,1)Linux底层的网络协议栈由C/C++编写,其存在的“缓冲区溢出”等代码问题可能导致远程执行任意代码,2)协议处理过程中某些字段没有判断而导致拒绝服务

检查方法:代码review,并搜索不安全函数

Exposed Network Services(暴露的网络服务)

Android本身很少暴露网络服务,多是由应用程序暴露,如开启WIFI热点功能后,会监听TCP 53端口

检查方法:通过nmap扫描或者本地执行netstat -na|grep LISTEN可以获得暴露的服务,再进行分析

Moblie Technologies

这里指SMS、MMS、电话等蜂窝网络服务暴露的攻击面。

SMS、MMS服务使用WAP协议,其中的WAP PUSH消息可被用来发送Service Loading request (SL消息),SL消息可以去调用USSD(Unstructured Supplementary Service Data)功能来执行充值、语音邮箱查询等操作

USSD指令:当你使用手机键盘输入一些网络已预先制定的数字或者符号比如*#等,再按send也就是拨号键就可以向网络发送一条指令,网络根据你的指令选择你需要的服务提供给你。可以用来打电话、修改PUK等
http://baike.baidu.com/link?url=ImBFOug4QRZFJHhypYHxY1i2ZPzzsgQw5Fq-LhWuGD1Bmcvry02IMXqG3QyP7sgZ

WAP PUSH:服务信息或推入信息,是种特殊格式短信
WAP PUSH某站点或某业务链接通短信发送支持WAP PUSH功能手机,通过阅读条短信(服务信息)打短信链接直接访问业务,节省寻找业务时间
WAP Push的内容有两种,一种是SI,service indication;另一种 SL,service loading。这两种内容类型的目的都是发送URL链接到手机上。SI是以异步方式发送一个通知、警示、提醒等信息到手机上,用户会看到屏幕上显示这条通知文字内容,然后,提示你是否去那个页面,如果去,手机将激活为WAP浏览器,打开这个链接,浏览其内容。SL则是直接发送一个 URL链接到手机上,手机不会给用户任何提示,自动地启动WAP微浏览器,下载这个URL对应的内容,显示在手机上。让人觉得好像是推送了一个页面下来了似的。MMS就是利用这个机制实现的,已知攻击是发送tel://开头的SL指令可触发手机打电话
http://www.cnblogs.com/edward259/archive/2010/01/29/1659415.html

Client-side Attack Surface(客户端攻击面)

手机上安装的客户端软件引入的的攻击界面

Browser Attack Surface(浏览器攻击面)

主要有URL钓鱼、MitM、XSS、CSRF方面的威胁

android 4.1之前版本使用的是android browser,4.4之前使用chrome for android ,4.4之后使用基于chromium的web browser(libwebview-chromium.so存在于framework层,为上层应用提供API,由于是随framework更新,因此更新慢,容易受到half day攻击)

另外,还有其他第三方浏览器由于存在漏洞而引人的攻击面

Web-Powered Mobile Apps(web引擎移动应用)

使用webview技术而引人的攻击面

利用WEB View的攻击:.Java-style reflection attack针对
addJavascriptInterface和Android AD network?

Security research firm MWR InfoSecurity released an advisory this week detailing a reflection attack against the addJavaScriptInterface functionality offered by the Android operating system’s WebKit component, which allows developers to define methods which can be called by JavaScript. Although the original intent of the functionality was to expose only clearly defined methods, a trivial sequence of calls could allow full command execution by malicious web pages if any methods are exported at all through this interface. While the issue has been fixed in Android 4.2, MWR’s research shows a wide array of popular apps and ad networks still vulnerable to attacks.

Ad Networks(广告)

Media and Document Processing(媒体推送)

处理图片、文档的开源库,如(libpng、libjpeg),包括最近的png攻击和stagefright攻击

Electronic Mail(电子邮件)

电邮应用引入的漏洞

Googel Infrastructure(Google基础服务)

Google体系中的后端云服务引人的攻击面

Google Play

Google应用市场中可能存在恶意APP或木马APP

Third-Party App Ecosystems

非官方应用市场中可能存在伪装为热门APP的恶意程序,以及在热门APP中注入的后门软件

Google Phones Home

GTalkService是google云服务中的重要组件,允许google在用户不知情的情况下在用户设备上安装或卸载应用

已知攻击查询:https://jon.oberheide.org/

2.Physical Adjacency(物理邻接攻击)

攻击者与被攻击对象在一定范围内,如GPS,WIFI

Wireless Communications(无线通讯)

GPS

1.用户位置信息被APP滥用,泄露用户隐私
2.GPS spoofing : 发送虚假GPS信号导致GPS设备定位错误

Baseband

基带处理芯片(CP)及android.telephony.stack协议栈

1.假基站
2.针对RIL层的攻击:相关硬软件如USRP,BladeRF,开源协议栈OSmocom

Bluetooth

包含近30种Profile,每一个profile描述了蓝牙的一种功能

比如:
1.HFP(Hand-free profile)/HSP(Headset profile)定义了如何控制麦克风、外放等外设
2.FTP(File transfer profile)
3.DUN(Dial-up Networking profile)
4.HID(Human Interface Device profile)
5.AVRCP(audio/video Remote Control profile)

可能的攻击方法:Bluejacking,Bluesnarfing,Bluebugging

使用的此等协议栈:L2CAP/RFCOMM 4.2之后使用Bluedroid在Framework层对上层导出API接口
https://source.android.com/devices/bluetooth.html

Wi-Fi

功能点:连接internet,WIFI直连

协议和算法:WEP、WPA、WPA2、开源协议栈:wpa_supplicant

可能的攻击:Rogue热点、MITM

NFC

读取Tag,数据传输(Beam)、移动支付

调用关系:物理NFC芯片->内核:libpn544_fs.so->
Native:libnfc_jni.so,libnfc.so,libnfc_ndef.so->
Framework:com.android.nfc ->上层APP

Other Technologies

Google可穿戴设备使用的技术(Quick Response、Voice Commands)

3.Local Attack Surfaces(本地攻击面)

攻击者可以达到实现任意代码执行和提权的目的,这种攻击界面在测试新root方法时最为明显

Exploring the File System

文件系统访问权限设置、SUID/SGUID设置,Owner设置

检查工具:adb shell和Canhazaxs

Applications life cycle

应用生命周期中引入的攻击面

install

安装流程中引入的攻击面,如超长应用名攻击,畸形AndroidManifest.xml标签,APK占位攻击,签名漏洞等。

Applications run

运行流程中引入的攻击面

backup

应用备份恢复时引入的攻击面,如ALLOW-BACKUP漏洞

Finding Other Local Attack Surface

System Calls

在源码中以“SYSCALL_DEFINE”定义

Sockets

sockets恶意调用

Binder

Shared Memory

Baseband Interface

Attacking Hardware Support Services

API

JAVA Native Interface

JNI恶意调用,JNI-DOS

AIDL service Calls

TrustZone Proxy

TurstZone Proxy是链接非安全世界和安全世界的代理

CDEV file_operations

驱动源码中file_operations中定义了驱动节点的接口,如open/write/read/mmap/ioctl

4.Physical Attack Surfaces(物理攻击面)

攻击需要物理接触设备,虽然大部分物理攻击可防御,但仍很严重因为有些攻击会在瞬间完成

Dismantling Devices(拆解设备)

暴露的串口、JTAG口、可拆卸的Flash

USB

Enumerating USB Attack Surfaces

USB暴露的攻击面取决于设备支持哪些USB modle(ADB、存储、MTP等)

ADB

通常使用adb shell,4.2.2之前 ADB shell不需要认证,之后需要

攻击场景:Juice Jacking 假充电站攻击

Other Physical Attack Surface

SIM Cards、SD Cards、HDMI、exposed test points、docking conectors

5.Third-Party Modifications(第三方修改)

如何识别这些定制和修改:可以与Nexus设备对比,例如:
1.使用ps命令,进程对比
2.文件对比,新增/修改过的文件
3.init文件对比,新增的服务和启动项
4.源码compare

OEMs厂家定制预装应用

遗留的开发调测工具

对Framework层的修改引入的新功能、API、JNI

驱动层新增的驱动节点

文章目录
  1. 1. 1.Remote Attack Surface(远程攻击面)
    1. 1.1. Networking Stacks(网络协议)
    2. 1.2. Exposed Network Services(暴露的网络服务)
    3. 1.3. Moblie Technologies
    4. 1.4. Client-side Attack Surface(客户端攻击面)
    5. 1.5. Googel Infrastructure(Google基础服务)
  2. 2. 2.Physical Adjacency(物理邻接攻击)
    1. 2.1. Wireless Communications(无线通讯)
    2. 2.2. Other Technologies
  3. 3. 3.Local Attack Surfaces(本地攻击面)
    1. 3.1. Exploring the File System
    2. 3.2. Applications life cycle
    3. 3.3. Finding Other Local Attack Surface
  4. 4. 4.Physical Attack Surfaces(物理攻击面)
    1. 4.1. Dismantling Devices(拆解设备)
    2. 4.2. USB
    3. 4.3. Other Physical Attack Surface
  5. 5. 5.Third-Party Modifications(第三方修改)
    1. 5.1. OEMs厂家定制预装应用
    2. 5.2. 遗留的开发调测工具
    3. 5.3. 对Framework层的修改引入的新功能、API、JNI
    4. 5.4. 驱动层新增的驱动节点