软件安全分析与应用:移动智能终端应用软件安全性分析
软件安全分析与应用第11章移动智能终端应用软件安全性分析读书笔记。
- 移动智能终端应用软件安全性分析
- Android 系统安全框架
- 权限机制
- 沙箱
- Android 软件典型安全问题
- 隐私窃取
- 应用重打包
- 组件安全问题
- 静态分析
- 权限分析
- 组件分析
- 代码分析
- 重打包应用检测
- 动态分析
- 数据流分析
- 数据流分析工具
- 动态行为分析
- 动态行为分析工具
- 实际案例
Android 系统安全框架
权限机制
权限机制是 Android 安全机制的基础,Android 系统通过权限机制来控制每个应用可访问的资源或可执行的操作。
沙箱隔离
Android 系统除了为每个应用分配了不同的 UID 以使用更细粒度的权限管理机制,还未每个应用分配了一个 Dalvik 虚拟机实例,每一个应用程序及其 Dalvik 虚拟机运行于一个独立的 Linux 进程空间。
底层 linux 系统的进程内存管理机制确保进程内容是独立的,而应用的权限确保不同应用的资源不能互相访问,于是形成了天然的隔离沙箱。
Android 软件典型安全问题
隐私窃取
在用户不知情的情况下获得用户信息。
应用重打包
修改应用,添加恶意代码,并重新打包发布。
组件安全问题
Android 应用程序有4个基本组件,分别为活动(activity)、服务(service)、内容提供者(content provider)、广播接收器(broadcast receiver)。
这些组件出现的问题将会直接影响整个 Android 应用,存在的隐患有:
- 组件暴露
- Activity 覆盖攻击
- Intent 劫持
静态分析
权限分析
权限的使用一定程度上反映了应用程序可能具有的功能,因此通过权限使用来分析 Android 应用的安全性是一个直观的切入点。
组件分析
Drozer 提供了针对组安全的分析检测功能,具体有:
- 查找完整包名
- 列出被测应用的详细信息
- 列出被测应用暴露的组件
- 查看暴露的 Activity 组件信息
- 查看暴露的 Broadcast Receiver 组件信息
- 查看暴露的 Service 组件信息
- 查看暴露的 Content Provider 组件信息
- 列出可用的 URI
- 检查可以实施 SQL 租入攻击的 URI
代码分析
代码是实现应用功能的根本,所以分析 Android 应用中是否存在安全问题,最重要的是分析具体代码。
典型的工具有:
- FlowDroid(流程图构建、污点传播分析)
- Androguard(静态工具组合)
- Androbugs(应用漏洞检测)
- IDA Pro
重打包检测
- 签名检查
- 应用相似性检测
- 基于特征文件的相似性检测
动态分析
数据流分析工具
- Panda for Android
- TaintDroid
动态行为分析
目前主流的动态行为分析技术有:
- 动态调试技术
- 程序插桩技术
- 沙盒技术
动态行为分析典型工具
- Xposed框架
- Anubis
- DroidBox
- 金刚恶意软件智能分析系统
案例分析
- AndroidSSL 漏洞(漏洞分析)
- 恶意应用分析
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.