本文对安卓系统的一个任务栈劫持漏洞进行了分析,旨在提醒区块链行业内的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/ —- 编译者/作者:北京链安 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
区块链移动安全谈 | 小心钓鱼攻击 StrandHogg漏洞分析
2019-12-12 北京链安 来源:区块链网络
LOADING...
相关阅读:
- 在怀疑中上涨的比特币慢牛行情,最容易被止不止盈给干扰了!2020-08-05
- 俞泽言币:8.5比特币晚间走势分析暂不具备暴力拉升条件2020-08-05
- Blockrockets选择AZHOS作为本月的区块链初创企业2020-08-05
- 以太坊2.0测试网上线,公链将迎来新时代2020-08-05
- Peertec,hiblocks加入Kakao GroundX区块链平台2020-08-05