Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Harvesting Inconsistent Security Configurations in Custom Android ROMs via Differential Analysis

论文下载

本文是sec16上的一篇文章,本篇文章提供一套分析ROM的思路及方法。由于ROM包含的信息太多,很难单独去分析一个ROM的安全性。因此本文采用的是比较的分析方法。作者选取了591个ROM进行比较分析。

分析可以分为如下几步:

  1. 特征提取:首先要确定比较的特征,过多的ROM不能什么都比较。作者提出了5个点:
    • 权限:比较系统对每个权限级别的设定,相同权限,安全级别不同认为有问题。
    • GID:系统会为拥有某个或某几个特定权限的进程分配一个相同的GID,拥有这个GID的进程可以访问特点资源。这里要检查获得某个GID需要的最少权限是否一致。
    • 受保护的广播:检查是否有些该受保护的广播没有声明,如果没有被声明为受保护级别,将允许所有三方APP发送。
    • 组件暴露是否一致。
    • 暴露的组件的保护是否一致,即组件权限是否一致,权限的级别,声明情况等。
  2. 原始数据收集:591 Android ROMs for 11 vendors, 135 models, 45 regions and 8 carriers.
  3. 比较:比较方式有5种:A1 系统版本,A2 ROM厂商,A3 机型,A4 运行商,A5 地区。
  4. 分析结果:总体结果见论文Fig3。总体来看,A1的差异最大,但不代表安全问题最多。A2也很多,安全问题主要集中在小厂商:BLU, Xiaomi and Digiland。A3也会有差异。A4,A5差异最少,但也存在。

Fig

  • permission:整体结果见Fig4, (normal,signature)这组差异最多。
  • gid:在25个常见GID有三个会存在问题。Ex. camera GID
  • pb:A1中70%的广播都至少被一个ROM忘记声明,其中9%被使用。
  • 组件:存在组件暴露不一致,权限不一致,甚至存在同一个manifet中有两个权限不一致的相同组件。Ex.PhoneErrorService app一个receiver声明两次,导致可以没有REBOOT权限来重启手机。

Fig

关于版本更新带来的差异是否会带来安全降低,答案是会的,比例见图Fig7

Fig

最后,文章尝试选取了一些差异进行攻击。

  1. 窃取邮件:某个系统APP的provider的读写权限本应受signature permission保护,但有一版没有加保护,可以被三方APP读取。
  2. 伪造短信:由于某个service的组件权限忘记声明,三方APP可以声明为normal后调用该service。
  3. 未授权恢复出厂设置:由于重复声明组件,且组件权限要求不一致,导致可以0权限恢复出厂设置。
  4. 获得systemGID:本来需求的signature 权限变成了另一个normal的权限。
  5. 低权限触发警报铃
  6. 任意修改系统设置
  7. 其他,由于手机不多,有些ROM的问题没有实验