Check Point Research表示,它已经发现Android的Sandbox存在设计缺陷,允许外部存储被利用,作为网络攻击的途径。
这些攻击可能会导致不良结果,例如将未请求的、可能是恶意的应用程序偷偷安装到用户的手机上。它们可用于合法应用程序的拒绝服务。它们甚至可能导致应用程序崩溃,从而打开潜在代码注入的大门,然后可能在受攻击的应用程序的特权中运行。
Check Point表示,当应用程序不小心使用了不享受Android Sandbox保护的共享存储,并且无法自行采用安全预防措施时,这些“磁盘中的人”攻击成为可能。研究员Slava Makkaveev今天在拉斯维加斯举行的Defcon黑客活动上谈到了这项研究。
在Android操作系统中,有两种类型的存储:内部存储,每个应用程序单独使用,并由Android Sandbox隔离; 外部存储,通常通过SD卡或设备存储中的逻辑分区,由所有应用程序共享。
外部存储主要用于在应用程序之间共享文件。例如,为了使消息传递应用程序将照片从一个人发送到另一个人,应用程序需要访问外部存储器中保存的媒体文件。
应用程序开发人员选择使用外部存储而不是Sandbox内部存储的原因还有其他。这些原因包括内部存储容量不足,旧设备的向后兼容性考虑或者不希望应用程序看起来占用太多空间,仅仅是开发人员的懒惰。
无论原因是什么,在使用外部存储器时,都需要采取某些预防措施。谷歌的Android文档说,应用程序开发人员应该知道他们应该如何在他们的应用程序中使用外部存储。其中一些指南包括进行验证测试,不在外部存储上存储可执行文件,以及确保在加载前对文件进行签名和加密验证。
“但是,我们已经看到了一些谷歌和其他Android供应商不遵循这些指导原则的例子,”Check Point说。“这就是Man-in-the-Disk攻击面,它提供了攻击任何不小心保存外部存储数据的应用程序的机会。”
在此类攻击中,应用程序将从服务器下载,更新或接收数据。它通过外部存储传递,然后发送到应用程序本身。
黑客可以输入并插入存储在外部存储器上的数据。使用用户下载的正常应用程序,攻击者能够监视在任何其他应用程序和外部存储之间传输的数据,并用其他数据覆盖它。
在下载攻击者的“信任的”应用程序时,将要求用户允许应用程序访问外部存储器的权限,这对于应用程序请求是完全正常的。然后,攻击者的恶意代码将开始监视外部存储以及其中的所有数据。
通过这种方式,攻击者有一个“磁盘中的人”,寻找拦截用户的其他现有应用程序所需的流量和信息来操纵它们或导致它们崩溃的方法。
攻击的结果可能会有所不同,具体取决于攻击者的愿望和专业知识。Check Point演示了在未经用户许可的情况下在后台安装不需要的应用程序的能力。它还可能导致应用程序崩溃并注入代码以劫持授予受攻击应用程序的权限。然后,它可以升级权限并访问用户设备的其他部分,例如摄像头,麦克风,他的联系人列表等。
在针对这一新攻击面进行测试的应用程序包括Google Translate,Yandex Translate,Google Voice Typing,LG Application Manager,LG World,Google Text-to-Speech和Xiaomi Browser。
对于谷歌翻译,Yandex翻译和谷歌语音输入,开发人员忽略了上面列出的指南,这意味着应用程序所需的某些文件可能会受到攻击的影响,从而导致应用程序崩溃。LG应用程序管理器和LG World没有听从上面列出的第二条准则,使它们容易受到攻击者的攻击,可能会下载通过它们安装的替代未经请求的应用程序。
最后,Google Text-to-Speech和Xiaomi Browser允许Man-in-the-Disk下载运行并导致覆盖他们的APK文件。
“虽然这些设计缺陷使Android用户容易受到网络威胁,但不太清楚的是谁导致的错误,谁有责任去修复它们,”Check Point说。“一方面,虽然Android的开发人员已经为应用程序开发人员制定了如何确保他们的应用程序安全的准则,但他们也必须意识到,众所周知,开发人员不会以安全为前提构建他们的应用程序。另一方面,并且意识到这一上述知识,是否有更多的Android可以做些什么来保护他们的操作系统和使用它的设备呢?“
领取专属 10元无门槛券
私享最新 技术干货