數十億 Android 裝置面臨 Dirty Stream 攻擊

android_red微軟發現一個 Android app 上的安全性漏洞,使其容易遭到遠端程式碼執行攻擊,或發生 token 被盜取等等問題,甚至一些熱門 app 也受影響。微軟已向 Google 的 Android 安全研究團隊通報這項此問題,Google 也向 Android 應用程式開發人員發布新的指南,說明如何辨識和修復此問題。

數十億裝置面臨風險

除了通知 Google 外,微軟亦將此問題告知 Google Play 商店中受影響的 Android 應用程式供應商,其中包括小米公司產品 — 安裝數量超過 10 億次的 Mi File Manager,以及下載數量約 5 億次的 WPS Office。

微軟表示,這兩款產品的供應商已解決此問題。但微軟認為可能還有更多的 app 因相同的安全漏洞而遭利用和破壞。微軟的威脅情報小組在部落格上表示,其他 app 也可能出現此漏洞模式。微軟分享這項研究,讓開發者和發行商檢查他們的 app 是否存在同樣問題並進行修復。

這個漏洞影響到其他應用程式共享檔案的 Android 應用程式。Android 系統針對檔案共享,實作了一個「內容提供者(content provider)」介面,用來管理及給予應用程式資料給裝置上所安裝的其他應用程式。需要共享檔案的應用程式(以 Android 來說為「檔案提供者」),可宣告特定路徑以便其他應用程式取得資料。檔案提供者還包含識別功能,其他應用程式可利用此位址在系統上找到它們。

盲目信任和缺乏內容驗證

微軟解釋,此內容提供者模式,提供定義明確的檔案共享機制,使服務應用程式能藉由精細的控制,以安全方式與其他應用程式共享檔案。但是在多數情況下,當 Android  app 自另一個 app 接收檔案時,並沒有驗證內容。令人擔憂的是,它使用服務應用程式提供的檔案名稱,將接收到的檔案站存在其他應用程式的內部資料目錄中。

這讓惡意攻擊者有機可趁:在使用者不知情或未經批准的情況下,可將帶有惡意檔案名稱的檔案,直接發送到接收應用程式(或檔案共享目標)。典型的檔案共享目標包括電子郵件收件者、通訊 app、網路 app、瀏覽器和檔案編輯器。當共享目標收到惡意檔案名稱時,它用該檔案名稱來初始化檔案,觸發入侵 app 的程序。

其潛在影響會因 Android 應用程式具體實作細節而有所不同。在某些情況下,攻擊者可能會使用惡意 app 覆蓋接收端 app 的設定,讓攻擊者控制的伺服器與 app 直接通訊,或將使用者的身份驗證 token 和其他資料分享出來。此外,還可以用惡意程式碼覆蓋接收端 app 的本機程式庫,以便任意執行程式碼。由於惡意應用程式控制了檔案的名稱和內容,當盲目信任此輸入,便覆蓋共享目標的私有資料空間中的關鍵檔案,後果相當嚴重。

微軟和 Google 皆提醒開發者如何避免此問題。此外,最終使用者務必隨時更新其 Android 裝置上的 app,且只能自可信任來源安裝 app,方能減低風險。