首页 » 漏洞 » Android Root and Its Providers: A Double-Edged Sword

Android Root and Its Providers: A Double-Edged Sword

 

论文下载:http://www.cs.ucr.edu/~zhiyunq/pub/ccs15_root_providers.pdf

本文的出处为国际顶级安全会议CCS’15.

1 背景

这篇主要分析了安卓root服务商在为用户提供方便的root服务时,其背后隐藏的安全问题。

作者主要从两方面进行分析:

  • root用的exp是被良好的安全机制保护
  • 所用的exp和已经公开的exp之间的关系

作者在研究过程中发现:

  • 大多数公开的exp是面对应用层的,这类exp应用面比较窄,只能针对特定类型的设备
  • 内核漏洞的攻击面很广
  • 内核漏洞很难挖,所以驱动层成为寻找root漏洞的主要目标
  • 大多数的root服务商对于exp的安全防护做的并不好
  • root服务商在搜集exp方面做足了功夫,并且花了大量人力更新exp适配新机型

2 公开的exploit的情况

由于安卓定制化的现象十分严重,会导致一些exp的适用范围较窄,本文的作者按照exp的目标层次对exp分类,分为linux内核定制内核或驱动动态运行库,以及应用层四种。

Android Root and Its Providers: A Double-Edged Sword

  • 内核层exp影响范围最广,基本不需要做适配工作就能应用于大量厂商的设备。
  • 外部驱动例如摄像头,一般由独立厂商开发,没有开源代码,所以更容易发现漏洞,影响范围较广,仅次于内核层exp。

作者从网上搜寻了73个可以用来root的漏洞,其中68个是能直接获取源码或者binary文件的,其中46个提供了源码。有的exp还需要一些附加条件,例如需要用户交互,需要重启,需要adb连接或者需要特定的权限。

对公开的的10个exp进行杀毒软件测试,结果如下:

Android Root and Its Providers: A Double-Edged Sword

只有一行全部被检测出来,其他的至少有一个杀毒软件能够查出,作者写这篇文章时PingPong root刚发布几天,就有杀毒软件能够查出。

3 root服务商的情况

  • 结构差别,需不需要PC端
  • exp数量上的差别
  • 防护强度上的差别
  • PC端和手机端的相比,手机端的防护(ProGuard)要弱于PC端(VMProtect)

Android Root and Its Providers: A Double-Edged Sword

OL:Online LOC:Local N/A:Not applicable or studied. A:Anti-debugC:Tamper-detection N:Code Protection with JNI. O:Obfuscation P:Packing S:String Encryption.

作者分析了三种典型厂商,大型厂商P1,中型厂商P4,小型厂商P6P7。具体情况如下:

P1防护方式: 在搜集设备信息时做了加密传输,服务端返回一个描述文件,文件中包含exp描述信息及下载链接(编码防止暴力搜索),运行时将exp统一封装进so文件,统一接口,so文件代码做了混淆,加壳,明文字符串加密,并且验证APP签名。 缺点: 1. 从应用市场下载和从PC端直接下载安装的APP防护强度天壤之别,后者没有任何防护,一般应用更新不会更新核心算法,所以一旦被破解危害很大。 2. 手机端做了混淆和加壳,但是方法在自家的CTF题目中已经体现出来,通过阅读分析报告,可以知道混淆模式,复原elf文件头中metadata的方法。 3. 手机端没有做反调试,函数名变量名没有做混淆,签名校验机制很弱。

P4防护方式: exp本地存储,文件名是md5处理过的,exp经过gzip压缩,去掉了文件后缀名,exp有基于包名的验证机制,字符串做了加密。 缺点: 1. APP只做了简单的文件名混淆,exp调试信息没有关掉(泄露了攻击的驱动路径)。 2. 小厂商EXP少,但是一般都很特别,APP没有防护……EXP做了混淆和验证,由于防护简单,可能会被大厂商直接盗取。

4 root服务商应用的exp的情况

作者通过模拟不同的设备信息,从P1厂商拖下来167个EXP。然后根据EXP的描述文件,把exp分为59类,其中利用内核漏洞的20个,驱动漏洞的37个,没有应用层的。在37个驱动层exp中,发现了15个未公开的(攻击的驱动模块从未被公开)。这些exp中有89个是futex的变种,覆盖了大部分安卓所用到的linux内核版本。

厂商之间竞争,会抢在第一时间更新exp数据库,PingPong root发布之后两到三个月之后就在数据库中出现了。对于selinux,并不能阻止内核漏洞所导致的root。杀毒软件对于这些exp也无能为力。

Android Root and Its Providers: A Double-Edged Sword

原文链接:Android Root and Its Providers: A Double-Edged Sword,转载请注明来源!

0