StrandHogg 攻击 / 任务关联漏洞

OWASP 类别: MASVS-PLATFORM:平台交互

概述

StrandHogg 攻击 / 任务关联漏洞是由于 Android 处理多个任务的方式中存在的设计错误,特别是称为任务重新归属的功能。应用程序任务重新归属是一项功能,允许应用程序将活动从一个任务移动到另一个任务。

StrandHogg 攻击利用了对如何验证传入应用程序任务堆栈活动的不清楚,并允许恶意应用程序:

  • 将恶意活动移动到受害者堆栈或从受害者堆栈移动
  • 在受害者活动完成后将恶意活动设置为返回堆栈。

此漏洞通过操纵 allowTaskReparentingtaskAffinity 设置来利用。

影响

恶意应用程序可以将其中一项活动的 taskAffinity 设置为与目标应用程序的 packageName 相匹配。然后,这可以与 Intent 劫持相结合,以便用户下次启动目标应用程序时,恶意应用程序也会启动并显示在目标应用程序之上。

然后,任务关联漏洞可用于劫持合法用户操作。

用户可能会被诱骗向恶意应用程序提供凭据。默认情况下,一旦活动启动并与任务关联,该关联将持续整个活动的生命周期。但是,将 allowTaskReparenting 设置为 true 会打破此限制,允许现有活动重新归属到新创建的“本机”任务。

例如,应用程序 A 可以成为应用程序 B 的目标,在应用程序 A 完成的活动返回后,将应用程序 A 活动重定向到应用程序 B 活动堆栈。这种从一个应用程序到另一个应用程序的转换对用户隐藏,并构成了重大的网络钓鱼威胁。

缓解措施

更新到 android:minSdkVersion="28"

StrandHogg 攻击 / 任务关联漏洞已在 2019 年 3 月得到修复,Android SDK 版本 28 及更高版本(Android 9)包含适当的操作系统补丁以避免此漏洞。虽然可以通过单个应用程序配置部分缓解 StrandHogg 攻击的版本 1,但版本 2 的攻击只能通过此 SDK 版本补丁来防止。

资源