您所在的位置: 首頁 >
新聞資訊 >
威脅情報 >
數(shù)十億Android設備面臨“臟流”攻擊!小米文件管理器、WPS Office在列!
微軟的研究人員最近發(fā)現(xiàn)許多Android應用程序(其中至少有四個應用程序的安裝量超過5億次)由于常見的安全漏洞而容易受到遠程代碼執(zhí)行攻擊、令牌盜竊和其他問題的影響。微軟向谷歌的Android安全研究團隊通報了該問題,谷歌也為Android應用開發(fā)者發(fā)布了關于如何識別和修復該問題的新指南。
微軟威脅情報團隊的Dimitrios Valsamaras在5月1日發(fā)布的一份報告中表示:“此漏洞模式的影響包括任意代碼執(zhí)行和令牌盜竊,具體取決于應用程序的實現(xiàn)?!背晒迷撀┒纯赡苁构粽吣軌蛲耆刂茟贸绦虻男袨?,并利用被盜的令牌對受害者的在線帳戶和其他數(shù)據(jù)進行未經授權的訪問。
數(shù)十億裝置面臨受損風險
微軟還與Google Play商店中受影響的Android應用程序供應商分享了其調查結果。其中包括小米公司的文件管理器產品,其安裝量超過10億次,另外一個的流行的文檔處理軟件WPS Office,下載量約為5億次。
在小米公司的文件管理器中,微軟研究團隊能夠在V1-210567版本中獲得任意代碼執(zhí)行。經過負責任的披露,小米發(fā)布了V1-210593版本,微軟確認該漏洞已得到解決。在WPS Office中,微軟研究團隊能夠在16.8.1版本中獲得任意代碼執(zhí)行。在披露后,WPS發(fā)布并通知我們該漏洞已從版本17.0.0開始得到解決。
微軟表示,這兩款產品的供應商已經解決了這個問題。但它相信,由于同樣的安全漏洞,還有更多的應用程序容易被利用和破壞。微軟威脅情報團隊在其博客文章中表示:“我們預計該漏洞模式可能會在其他應用程序中發(fā)現(xiàn)?!? “我們正在分享這項研究,以便開發(fā)者和發(fā)行商可以檢查他們的應用程序是否存在類似問題,進行適當?shù)男迯?,并防止將此類漏洞引入新的應用程序或版本中?!?/span>
Microsoft發(fā)現(xiàn)的問題影響與其他應用程序共享文件的Android 應用程序。微軟表示,為了以安全的方式促進共享,Android實現(xiàn)了所謂的“內容提供商”功能,該功能基本上充當管理應用程序數(shù)據(jù)并將其公開給設備上其他已安裝應用程序的接口。需要共享其文件的應用程序(或者Android中的文件提供程序)聲明其他應用程序可以用來獲取數(shù)據(jù)的特定路徑。文件提供程序還包括識別功能,其他應用程序可以將其用作在系統(tǒng)上查找它們的地址。
盲目信任和缺乏內容驗證
微軟表示:“這種基于內容提供商的模型提供了明確定義的文件共享機制,使服務應用程序能夠通過細粒度控制以安全的方式與其他應用程序共享其文件?!钡牵谠S多情況下,當Android應用程序從另一個應用程序接收文件時,它不會驗證內容。“最令人擔憂的是,它使用服務應用程序提供的文件名將接收到的文件緩存在消費應用程序的內部數(shù)據(jù)目錄中?!?/span>
微軟表示,這為攻擊者提供了創(chuàng)建惡意應用程序的機會,該應用程序可以在用戶不知情或未經用戶批準的情況下,將帶有惡意文件名的文件直接發(fā)送到接收應用程序(或文件共享目標)。典型的文件共享目標包括電子郵件客戶端、消息傳遞應用程序、網絡應用程序、瀏覽器和文件編輯器。微軟表示,當共享目標收到惡意文件名時,它會使用該文件名來初始化文件并觸發(fā)一個進程,該進程可能會導致應用程序受到損害。
主要的漏洞利用步驟及流程
潛在影響將根據(jù)Android應用程序的實現(xiàn)細節(jié)而有所不同。在某些情況下,攻擊者可能會使用惡意應用程序覆蓋接收應用程序的設置,并使其與攻擊者控制的服務器進行通信,或使其共享用戶的身份驗證令牌和其他數(shù)據(jù)。在其他情況下,惡意應用程序可能會將惡意代碼覆蓋到接收應用程序的本機庫中,以實現(xiàn)任意代碼執(zhí)行。微軟表示:“由于流氓應用程序控制了文件的名稱和內容,因此通過盲目信任此輸入,共享目標可能會覆蓋其私有數(shù)據(jù)空間中的關鍵文件,這可能會導致嚴重后果?!?/span>
微軟和谷歌都向開發(fā)者提供了如何避免該問題的提示。與此同時,最終用戶可以通過確保他們的Android應用程序是最新的并且僅安裝來自可信來源的應用程序來降低風險。
微軟的安全建議
認識到這種漏洞模式可能很普遍,微軟與Google的Android應用程序安全研究團隊分享了其發(fā)現(xiàn)。并與Google合作,為Android應用程序開發(fā)人員編寫指南,幫助他們認識并避免這種模式。微軟建議開發(fā)人員和安全分析師熟悉Google提供的優(yōu)秀Android應用程序安全指南,并利用Android SDK 包含的Android Lint工具并與Android Studio集成(輔以Google額外的以安全為重點的檢查)來識別并避免潛在的漏洞。GitHub的CodeQL還提供了識別漏洞的功能。
為了防止這些問題,在處理其他應用程序發(fā)送的文件流時,最安全的解決方案是在緩存接收到的內容時完全忽略遠程文件提供程序返回的名稱。微軟遇到的一些最強大的方法使用隨機生成的名稱,因此即使傳入流的內容格式錯誤,也不會篡改應用程序。
如果這種方法不可行,開發(fā)人員需要采取額外的步驟來確定緩存文件是否寫入專用目錄。由于傳入的文件流通常由內容URI標識,因此第一步是可靠地識別和清理相應的文件名。除了過濾可能導致路徑遍歷的字符以及在執(zhí)行任何寫入操作之前,開發(fā)人員還必須通過調用File.getCanonicalPath并驗證返回值的前綴來驗證緩存的文件是否位于專用目錄中。
另一個需要保護的方面是開發(fā)人員嘗試從內容URI中提取文件名的方式。開發(fā)人員經常使用Uri.getLastPathSegment(),它返回最后一個路徑URI段的(URL)解碼值。攻擊者可以在此段中使用URL編碼字符(包括用于路徑遍歷的字符)制作URI。使用返回值來緩存文件可能會再次使應用程序容易受到此類攻擊。
對于最終用戶,微軟建議通過Google Play商店(或其他適當?shù)目尚艁碓?使移動應用程序保持最新狀態(tài),以確保安裝解決已知漏洞的更新。用戶應僅安裝來自受信任來源的應用程序,以避免潛在的惡意應用程序。微軟建議在更新之前通過小米應用程序訪問SMB或FTP共享的用戶重置憑據(jù)并調查任何異常行為。Android上的Microsoft Defender for Endpoint可以向用戶和企業(yè)發(fā)出惡意應用程序的警報,而Microsoft Defender漏洞管理可以識別已安裝的具有已知漏洞的應用程序。
參考資源
1、https://thehackernews.com/2024/05/popular-android-apps-like-xiaomi-wps.html
2、https://www.darkreading.com/cloud-security/billions-android-devices-open-dirty-stream-attack
3、https://www.microsoft.com/en-us/security/blog/2024/05/01/dirty-stream-attack-discovering-and-mitigating-a-common-vulnerability-pattern-in-android-apps/
來源:網空閑話plus