双刃剑:安卓一键Root和技术提供者

现今国内的安卓应用市场中提供一键Root服务的app琳琅满目,百度、腾讯和奇虎360等大公司均有相应的产品推出。Root产品的开发者用高超的漏洞挖掘和利用技巧为我们提供了便捷的Root服务,但试想Root产品中的exploit如果被恶意软件轻易提取并利用的话,势必将本就糟糕的国内安卓生态环境对造成很大的危害。美国加州大学河滨分校(UC Riverside)的Hang Zhang、Dongdong She、Zhiyun Qian(钱志云)在顶级安全学术会议CCS’15中发表了题为"Android Root and its Providers: A Double-Edged Sword"的文章,讨论了Root服务提供商的exploit的保护情况以及他们的exploit和公开的exploit之间的关系。

文章首先在CVE库和相应的论坛搜集到公开的73个可以用于Root的漏洞,并根据攻击层次分成四类:Linux内核层、硬件驱动层、运行库层和应用层,其中硬件驱动层和应用层的漏洞最多,这73个漏洞中68个是可以获得源代码或者binary的exploit,用移动端的四款杀毒软件(AVG、Lookout、Norton、Trend Micro)进行检测,只有一个exploit上述四款杀毒软件都无法检测出来。针对上述公开的exploit的通用性,作者选取TowelRoot做了简单的实验,三个有漏洞的内核版本的不同设备中有两个root失败了。考虑到安卓系统的碎片化严重和exploit需要的一些环境,上述公开的exploit的直接可用性存疑,如果用于提供Root服务,需要做大量的适配工作。

再来看Root服务的提供商,作者提供了其中7个简单分析了它们用的exploit的数量和针对exploit混淆加壳反调试加密等等保护措施的部署情况,对于其中3种典型的产商做了详细的分析.其中某大型Root服务产商,通常是先搜集设备信息,加密传输到server端,server端返回一个关于获取exploit的加密的描述文件。Exploit被封装成shared library,有混淆加壳明文字符串加密签名校验等保护手段。这里存在的问题是从官网下的App的保护强度远不如应用市场的版本,混淆方法的泄漏,PC端软件和移动App保护强度有差距,关键函数名没有混淆,签名校验机制不强。但客观地说,这些并不是非常严重的问题。因为这些保护措施是增强破解者的成本,本身也并不能根本上防止应用被成功逆向分析。

  文章的第六章对Root服务商使用的exploit进行了分析,发现通过模拟不同的设备从某大型Root服务商获取到的167个exploit中有89个CVE-2014-3153攻击的变种,20个针对kernel,37个针对driver。针对driver的攻击模块中有15个是未公开的,针对10款不同的设备驱动。针对这些exploit,SElinux和Samsung Knox都已经被突破了,杀软也基本检测不出来.
原文链接:http://www.cs.ucr.edu/~zhiyunq/pub/ccs15_root_providers.pdf

Bookmark the permalink.

Comments are closed.