在周三的一篇博客文章中,Microsoft 365 Defender 研究团队曝光了 Android 版 TikTok 应用中存在的一个高危漏洞,或致数亿用户被黑客“一键劫持账户”。一旦 TikTok 用户点击了攻击者特制的一个链接,黑客就可能在用户不知情的状况下劫持 Android 上的任意 TikTok 用户账户,然后访问各项主要功能 —— 包括上传发布视频、向他人发送消息、以及查看私密视频等。 图 8 - 利用链接触发内部浏览器并加载 Tiktok.com(来自:MicrosoftSecurity) 虽然尚未有证据称其已被不良行为者所利用,但更糟糕的是,这个高危漏洞还波及 TikTok Android App 的全球衍生版本 —— 目前 Google Play 应用商店的下载总量超过了 15 亿次。 图 9 - 内部浏览器的过滤拦截页面示例 庆幸的是,在问题发现后不久,Microsoft Security 团队就及时地向平台方发去了安全通报,此外 TikTok 发言人 Maureen Shanahan 对微软研究团队的专业与高效大加赞赏。 图 1 - 将 JavaScript 接口添加到 WebView 对象 Microsoft Defender for Endpoint 安全研究合作伙伴主管 Tanmay Ganacharya 向 TheVerge 证实,TikTok 方面很快做出了响应、且双方协力堵上了这个漏洞。 图 2 - 渲染可通过 JavaScript 代码调用的方法 更确切地说,该漏洞主要影响了 Android 应用程序的“深度链接”(DeepLinking)功能。其原本旨在告诉操作系统,让某些 App 以特定方式去处理链接。 图 3 - 可通过 JavaScript 代码调用的方法示例 举个例子,在单击网页 HTML 代码中嵌入的“关注此账户”按钮后,系统能够按需打开 Twitter App 以关注特定的账号。 图 4 - Java 和 Web 组件之间使用 JavaScript 接口进行的交互 这套链接处理流程还对接了一个验证步骤,以对应用程序加载特定链接时执行的操作加以限制 —— 然而微软安全研究人员找到了一个破绽,并最终实现了武器化运用。 图 5 - 在列表中添加一个 intent filter 以利用 Deep Linking 其中一项功能允许攻击者检索特定用户账户绑定的身份验证令牌,从而向黑客授予该账户的访问权限、而无需输入密码。 图 6 - 歧义对话框 在此基础上,Microsoft 365 Defender 安全研究团队打造了一套概念验证方法 —— 在 TikTok 用户不慎点击了某个恶意链接后,其个人简介就被篡改成了“安全漏洞”(SECURITY BREACH)。 图 12 - 被盗账户示例 通过这一高危漏洞,微软重申了在技术平台与供应商之间展开充分协作和协调的重要性。 图 7 - 使用 Medusa 识别 Deep Linking 及其目标活动 Dimitrios Valsamaras 写道:随着跨平台威胁的数量和复杂程度不断增长,行业愈加需要通过漏洞披露、协调响应、以及其它形式的威胁情报共享,来更好地保护用户的相关体验。 图 10 - 攻击检索到的请求标头 展望未来,无论使用何种设备或平台,微软都将继续与更大的安全社区合作、分享相关威胁研究情报,从而为所有人都提供更好的安全防护。 图 11 - 包含标头的服务器应答