Man-in-the-Disk:一种攻击Android应用程序新手段

网络安全公司Check Point在上周日发表的一篇博文中指出,其研究团队发现Android应用程序在使用存储资源的方式上存在缺陷。由于应用程序使用外部存储并不受限制,因此可能会为攻击者敞开大门,进而导致各种各样的不良后果。例如,将并未请求的潜在恶意应用程序静默地安装到用户手机上、拒绝为合法应用程序提供服务,甚至导致应用程序崩溃,这就使代码注入成为可能,然后在受攻击的应用程序的特权上下文中运行。

当应用程序在不受限制的情况下对外部存储进行访问时,Man-in-the-Disk攻击就成为了可能。外部存储一种在所有应用程序之间共享的资源,并且不受到Android内置沙箱的保护。如果用户没有对自己的应用程序应用安全预防措施,那么这些应用程序将很容易受到恶意数据的侵害。什么是外部存储?

在这之前,我们首先需要了解什么是Android设备的存储资源?

在Android操作系统中,有两种类型的存储,分别是内部存储(Internal Storage)和外部存储(External Storage)。内部存储由Android沙箱隔离,每个应用程序单独使用不同的区域;外部存储通常是SD卡或设备存储的逻辑分区,由所有应用程序共享。实际上,外部存储主要用于不同应用程序之间或应用程序与PC之间共享文件。例如,为了使消息应用程序能够从手机相册中共享照片,应用程序需要访问外部存储中保存媒体文件。

根据Google 发布的指南,应用程序开发人员被建议在自己的应用程序中使用外部存储时应遵循以下准则:

在处理来自外部存储中的数据时要进行输入有效性检查;

不要在外部存储上保存可执行文件或类文件;

外部存储文件在动态加载前,应进行签名和加密。

但Check Point表示,在开发Android应用程序(包括很多来自知名OEM,甚至Google的应用程序)的过程中,一些开发人员并没有遵守这些准则。这也就导致了Man-in-the-Disk攻击的出现,使攻击者完全能够利用外部存储数据来实施攻击。Man-in-the-Disk攻击

由Check Point研究团队发现的新型攻击手段被称为“Man-in-the-Disk”,允许攻击者修改和处理位于外部存储上的数据。

研究人员表示,他们对应用程序从提供商的服务器上下载、更新和接收数据的全过程进行了追踪观察。在这些数据被发送到应用程序之前,都是通过外部存储传输的,如下图所示。很显然,这也就为攻击者提供了实施攻击的机会——在应用程序读取数据之前,修改保存在外部存储中的数据。

攻击者完全可以利用一些看似无害的应用程序(例如,手电筒应用程序)来修改数据,其中包含有漏洞利用脚本。在用户下载并安装这些应用程序时,应用程序会请求对外部存储的访问权限,这种请求对于应用程序安装来说十分常见,因此不会引起怀疑。一旦安装成功,攻击者就可以监视在用户设备上的任何其他应用程序与外部存储之间传输的数据,并及时使用自己的数据来对原始数据进行覆盖。

通过这种方式,攻击者利用“Man-in-the-Disk”可以找出拦截和修改已安装应用程序与外部存储之间数据交换的方式。所造成的不良后果可能会有所不同,具体取决于攻击者的目的和专业知识。这项研究证明,无需用户的授权即可在后台安装他们并不需​​要的应用程序。一旦应用程序崩溃且防御措施失效,攻击者就可以通过执行代码注入来提升权限,以便访问用户设备的其他部件,如摄像头、麦克风、通讯录等。受Man-in-the-Disk攻击影响的应用程序

Check Point表示,此次用于测试的应用程序包括 Google翻译(Google Translate)、Yandex翻译(Yandex Translate)、Google语音输入(Google Voice Typing)、Google文本转语音(Google Text-to-Speech)、小米浏览器(Xiaomi Browser)以及其他一些应用程序,这些应用程序都受“Man-in-the-Disk”攻击的影响。

研究人员指出,对于Google翻译、Yandex翻译和Google语音输入,它们的开发人员没有验证来自外部存储的数据的完整性。因此,研究人员能够通过修改这些应用程序所需的某些文件,从而导致应用程序崩溃。

对于小米浏览器,研究人员发现它使用外部存储作为应用程序更新的临时资源。这使得研究人员能够实施攻击,通过替换应用程序的更新代码,导致一些不必要的其他应用程序被安装,而不是预期中的浏览器更新。

如何应对Man-in-the-Disk攻击

在发现这些应用程序受到Man-in-the-Disk攻击的影响之后,Check Point联系了Google、小米和易受攻击应用程序的供应商。目前,Google已经发布了修复程序,而小米暂时还没有公布修复计划。

由于Man-in-the-Disk攻击来源于Android操作系统自身的缺陷以及应用程序的开发人员没有遵循Google的建议,因此唯有开发人员才能切断Man-in-the-Disk攻击的源头。Check Point建议Android应用程序开发人员在开发过程中务必将安全性作为首要考虑因素,而不是仅专注于功能性。

当然,一切问题的根源最终还是Android操作系统自身的缺陷所导致的。因此,确保底层操作系统的安全性才是应对这一新攻击面或者其他攻击面的唯一长期解决方案。

本文由 黑客视界 综合网络整理,图片源自网络;转载请注明“转自黑客视界”,并附上链接。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();