mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

区块链移动安全谈 | 小心钓鱼攻击!StrandHogg漏洞分析

收藏
分享

本文对安卓系统的一个任务栈劫持漏洞进行了分析,旨在提醒区块链行业内的App开发者结合自身业务特点,注意防范,确保用户的移动安全


事件概述

近期,挪威一家安全公司(Promon)披露了一个 Android 任务栈劫持漏洞,并使用描述维京海盗突袭战术中的单词 StrandHogg 对其命名。该漏洞在捷克共和国攻击者已利用其盗走多家银行用户的卡内余额(这包括 2017 年发现的 BankBot 银行木马变种)从而引发东欧金融机构安全服务商的多方求助。虽然 Google 已采取缓解措施暂停了受影响应用程序的安装,但到目前为止任何版本的 Android(包括 Android10)都还没有修复该漏洞。




该漏洞使恶意应用程序有可能在伪装成合法应用程序的同时请求权限,包括 SMS、照片、麦克风和 GPS 等从而允许攻击者访问短信和通讯录、查看相册、进行窃听和跟踪受害者位置等活动。


漏洞分析

StrandHogg 是一个存在于 Android 多任务系统中的应用漏洞,此漏洞利用 App 清单文件 AndroidManifest.xml 中一个名为 android:taskAffinity 的属性设置。

android:taskAffinity 属性官方定义:

与 Activity 有着相似性的任务。从概念上讲,具有同一相似性的 Activity 归属同一任务(从用户的角度来看,则是归属同一“应用”)。任务的相似性由其根 Activity 的相似性确定。

相似性确定两点内容 — Activity 更改父项后的任务(请参阅 allowTaskReparenting 属性),以及通过 FLAG_ACTIVITY_NEW_TASK 标记启动 Activity 时,用于容纳该 Activity 的任务。

默认情况下,应用中的所有 Activity 都具有同一相似性。您可以设置该属性,以不同方式将其分组,甚至可以在同一任务内放置不同应用中定义的 Activity。如要指定 Activity 与任何任务均无相似性,请将其设置为空字符串。

如果未设置该属性,则 Activity 会继承为应用设置的相似性。应用默认相似性的名称为 <manifest> 元素所设置的软件包名称。

该属性标识着一个 Activity 所运行的任务栈名称。默认情况下,一个应用中所有 Activity 运行的任务栈名称都为该应用的包名。恶意应用程序可以通过设置该属性标识为受害者应用的包名,并配合使用 android:allowTaskReparenting="true" 将恶意活动置于目标任务栈的内部或顶部,当用户点击受害者应用图标时恶意程序会伪装成正常应用程序的界面迷惑用户进行界面劫持攻击。



对区块链App的影响

基于该漏洞,攻击者可能实施钓鱼式攻击,如伪装成交易所App,在发现正常的App启动时,率先进入任务栈启动伪装的登录界面,从而窃取用户的账号和密码。


缓解措施

开发者只需要在 App 清单文件中将 android:taskAffinity="" 属性设置为空即可防御此攻击。


参考

https://promon.co/security-news/strandhogg/

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。