跳过内容

MASTG-TEST-0035: 测试覆盖攻击

此测试即将更新

此测试目前可使用,但将作为新的 OWASP MASTG v2 指南 的一部分进行全面修订。

请帮助我们提交一个PR:MASTG v1->v2 MASTG-TEST-0035: 测试叠加攻击 (android)

发送反馈

概述

要测试叠加攻击,您需要检查应用程序是否使用了某些 API 和属性,这些 API 和属性通常用于防止叠加攻击,并检查应用程序的目标 Android 版本。

为了缓解这些攻击,请仔细阅读 Android 开发者文档中有关 Android View 安全性的通用指南。 例如,所谓的触摸过滤是一种常见的防御 tapjacking 的方法,它有助于保护用户免受这些漏洞的侵害,通常与其他技术和注意事项结合使用,正如我们在本节中介绍的那样。

静态分析

要开始静态分析,您可以检查应用程序是否具有以下方法和属性(非详尽列表):

某些属性可能会影响整个应用程序,而另一些属性可以应用于特定组件。 例如,在存在专门允许叠加层同时又想保护敏感输入 UI 元素的情况下,后者就是这种情况。 开发人员也可能会采取额外的预防措施来确认用户的实际意图,这可能是合法的,并将其与潜在的攻击区分开来。

最后请注意,始终记住正确检查应用程序的目标 API 级别以及它所具有的含义。 例如,Android 8.0(API 级别 26)引入了更改,要求应用程序具有 SYSTEM_ALERT_WINDOW(“在顶部绘制”)。 从此 API 级别开始,使用 TYPE_APPLICATION_OVERLAY 的应用程序将始终显示在具有其他类型(例如 TYPE_SYSTEM_OVERLAYTYPE_SYSTEM_ALERT)的其他窗口之上。 您可以使用此信息来确保至少在此具体 Android 版本的此应用程序中不会发生叠加攻击。

动态分析

以动态方式滥用这种漏洞可能非常具有挑战性且非常专业,因为它与目标 Android 版本密切相关。 例如,对于 Android 7.0(API 级别 24)之前的版本,您可以使用以下 APK 作为概念验证来识别漏洞的存在。

  • Tapjacking POC:此 APK 创建一个简单的叠加层,位于测试应用程序的顶部。
  • Invisible Keyboard:此 APK 在键盘上创建多个叠加层以捕获击键。 这是 Cloak and Dagger 攻击中演示的利用之一。