软件安全分析与应用第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 漏洞(漏洞分析)
  • 恶意应用分析