Android在系统备份后还原的处理上存在严重漏洞(CVE-2014-7952),使得攻击者可以注入恶意的apk文件到备份文件中。该漏洞是由Android的命令行工具adb的问题导致的,影响目前所有版本的安卓系统(包括Android L)。目前该漏洞没有修复。
ADB (Android debug bridge)可以执行各种各样的功能,可以通过pc向手机发送命令,它也可以对android手机进行全备份,Search-Lab的研究者也正是通过这个功能发现的该漏洞。
Android系统对安装的应用提供了一种通过adb进行备份与还原的机制。默认情况下,应用的完整备份包含存放在/data目录下的私有文件,但是备份行为可以实现BackupAgent类来自定义,这样应用备份的时候就可以提供自定义的一些文件和数据。
备份管理器,能调用自定义的BackupAgent并没有对应用程序返回的数据流进行过滤。在BackupAgent在执行备份的时候,可以在用户没有感知的情况下注入其他的apk文件到备份的文件中。BackupAgent并不需要申请android权限。当系统进行还原的时候,系统就安装了注入的android apk。
该漏洞的利用也很直接。攻击者首先需要诱导用户有恶意的BackupAgent类的应用。该应用可以表现为良性应用,因为BackupAgent并不需要申请安卓权限。然后通过adb进行备份,创建含有注入的恶意apk的备份文件,再恢复即可。