天天看點

遠端執行 Android 裝置上的代碼 【已翻譯100%】(2/2)

我設定好ap後,從13,119個标明有潛在漏洞的app中随機選了一些,把它們安裝到接入了ap的一台nexus 5(運作4.4.3)和一台三星xe700t(運作aosp 4.2的x86平闆)。我們隻不過是啟動每個app,做些簡單的互動操作,就成功地在超過半數的應用中觸發了遠端代碼執行,它們加載了通過中間人代理注入的惡意代碼。

為了好玩,我們把注入到一個app中javascript代碼反複修改,直到顯示bromium的标志替換了原有廣告。

被擾亂而顯示了bromium标志的app的ui截屏。

全是廣告惹得禍

通過檢視tcp/ip包的軌迹,很快發現廣告架構程式就是聯合使用了addjavascriptinterface和非安全http下載下傳的罪魁禍首。在我們調查的架構程式中沒有一個使用https,也就意味着任何使用這些架構程式的app在非安全地下載下傳javascript時也易受到攻擊。以往的研究顯示有17%的app雖然使用了https,但用法不當,但這是另一回事了。

我們認真地檢查了一些app,看看使用用了哪些廣告架構。admob是用得最多的(通常也是更新最頻繁的),但我們發現用到的大量架構仍然在不安全地使用addjavascriptinterface。在檢查的app中,有超過80%的非付費app包含了至少一款廣告架構。總體上講,在識别的2140個app中出現了4190個廣告架構。

問題有多嚴重?

google在play store上公布了所有app的大緻下載下傳量。僅就我們手工确認了存在漏洞的小部分用例,就有超過1.5億的下載下傳量。這并不是說就保證會有150,000,000部有漏洞的裝置,因為一台裝置可能安裝多個不同的有漏洞的應用。但考慮到我們在分析中發現的比例——10%的app有潛在的風險,其中有50%的有風險的app被實地測試可以被攻擊——這就存在非常多有漏洞的裝置。

而且,别忘了有57%的android裝置運作在低于4.2的版本上。是以即使明天所有有漏洞的app和架構打上了基于4.2的更新檔,仍然有超過一半的android裝置不能修複這個漏洞。

一旦你實作了遠端代碼的執行,結束之前在咖啡店所描述的災難情形,不是什麼大的進步。初始化一個比對的root權限(不幸的是,相當一部分在安卓平台上),一個被損害的裝置會變成某種中間人,它随後會進入任何網絡。是以,攻擊開始傳播,舉例來說,在自帶移動裝置的世界裡,共同的wifi網絡是那樣地受歡迎。

合并裝置分析器(device analyser)的資料

裝置分析器(device analyser)是另外一個用于統計安卓裝置的(資料)來源。其中的一項功能就是它追蹤使用者啟動不同的應用的頻繁程度。他們用足夠地耐心去互相參照潛在缺陷應用的清單上的資料,給出了下面的結果:

每天每使用者打開潛在缺陷應用的平均數量

過去一年左右的時間,裝置分析器(device analyser)的資料顯示裝置的使用者們每天平均打開0.4-0.5個潛在漏洞的應用。或者換言之,平均一周内就有幾次收到(漏洞)攻擊。我們不能假設應用的版本比我們分析過存在漏洞的版本新,是以,當我們的示例資料已不再是最新版本,與圖形對應也就表現為急劇下降。如果我們對最近的apk版本重新進行我們的分析,我們很有可能看到它仍在0.4分。da( 裝置分析器: device analyser)的資料是一個相當小的樣本,讓它去引導更多地關于安卓裝置的結論,在整體上是困難的。

結論

我們發現,通過使用相對簡單的中間人代理技術,無需特定的應用程式或裝置可以遠端運作有危害的應用程式,即使 android裝置安裝了完全更新檔。使用靜态分析我們發現,相當大比例的應用很可能仍然脆弱,我們證明,通過随機測試超過一半的應用确實缺乏抵抗力。

是以,我們建議當連接配接到一個不可信的wi-fi無線網絡時不要使用任何android應用程式顯示廣告。

我們感謝evozi提供他們的apk庫,和劍橋大學的裝置分析資料。

繼續閱讀