在周三的一篇博客文章中,Microsoft365Defender研究團隊曝光Android版TikTok應用中存在的一個高危漏洞,或致數億用戶被黑客“一鍵劫持賬戶”。一旦TikTok用戶點擊攻擊者特制的一個鏈接,黑客就可能在用戶不知情的狀況下劫持Android上的任意TikTok用戶賬戶,然後訪問各項主要功能——包括上傳發佈視頻、向他人發送消息、以及查看私密視頻等。
圖 8 - 利用鏈接觸發內部瀏覽器並加載 Tiktok.com(來自:Microsoft Security)
雖然尚未有證據稱其已被不良行為者所利用,但更糟糕的是,這個高危漏洞還波及 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 - 包含標頭的服務器應答