Android Task Hijacking
最后更新于
最后更新于
Try Hard Security Group
在Android中,任务本质上是用户与之交互以完成特定工作的一组活动,这些活动在后退栈中组织。该堆栈根据打开活动的时间顺序对活动进行排序,最近的活动显示在顶部作为前台活动。在任何时刻,只有这个活动在屏幕上可见,使其成为前台任务的一部分。
以下是活动转换的简要说明:
活动1开始作为前台中唯一的活动。
启动活动2将活动1推送到后退栈,将活动2带到前台。
启动活动3将活动1和活动2进一步推到堆栈后面,现在活动3在前面。
关闭活动3将活动2带回前台,展示了Android简化的任务导航机制。
在Android应用程序中,任务亲和性指定活动的首选任务,通常与应用程序的包名称对齐。这种设置对于创建用于演示攻击的概念验证(PoC)应用程序至关重要。
launchMode
属性指导任务内活动实例的处理。singleTask模式对于此攻击至关重要,根据现有活动实例和任务亲和性匹配,规定了三种情况。攻击的关键在于攻击者的应用程序能够模仿目标应用程序的任务亲和性,误导Android系统启动攻击者的应用程序而不是预期的目标应用程序。
恶意应用程序安装:受害者在其设备上安装攻击者的应用程序。
初始激活:受害者首先打开恶意应用程序,为攻击做准备。
目标应用程序启动尝试:受害者尝试打开目标应用程序。
劫持执行:由于匹配的任务亲和性,恶意应用程序被启动代替目标应用程序。
欺骗:恶意应用程序呈现一个伪造的登录屏幕,类似于目标应用程序,欺骗用户输入敏感信息。
要实施此攻击,请参考GitHub上的Task Hijacking Strandhogg存储库:Task Hijacking Strandhogg。
为防止此类攻击,开发人员可以将taskAffinity
设置为空字符串,并选择singleInstance
启动模式,确保其应用程序与其他应用程序隔离。自定义onBackPressed()
函数可以提供额外的保护,防止任务劫持。
Try Hard Security Group