當前位置:
首頁 > 新聞 > Janus安卓應用簽名繞過漏洞,允許攻擊者修改合法應用

Janus安卓應用簽名繞過漏洞,允許攻擊者修改合法應用

安卓官方12月份更新修復了一個高危漏洞,攻擊者可以利用該漏洞修改應用而不影響應用簽名。漏洞名稱為Janus,CVE編號CVE-2017-13156,影響安卓5.1.1到安卓8.0版本,大約74%的安卓設備受影響。

Trend的研究人員發現一個使用該技術的應用——world news,應用利用該漏洞使其很難被殺毒軟體等檢測到。這很有可能被用來修改其他的應用並訪問用戶信息。

漏洞分析

安卓應用的安裝包實際上是一個.zip文件,zip文件的格式有許多可以被攻擊的地方。下面是基本.zip的文件結構:

圖 1. .ZIP文件結構

.zip文件結構含有三部分,file entries,Central Directory和End of Central Directory。Central Directory含有每個文件的信息,應用用這個目錄來尋找需要的文件內存位置。但是,對於每個file entry沒有要求必須相鄰,甚至可以如圖2所示在entry之間任意放置數據:

圖 2. .ZIP文件結構(紅色區域可任意填充數據)

攻擊者可以在APK文件的開始放置一個惡意的DEX文件,如圖3所示。一個有漏洞的安卓系統版本就會把它當做有效的APK文件,並執行該文件。

圖 3. 在APK文件開頭加入惡意DEX

ART(Android Runtime,安卓運行態)是負責從APK文件中載入DEX代碼的。ART會檢查這個文件,因為header中有DEX代碼,ART會認為這是DEX文件,並直接執行。ART會把DEX之後的代碼看做是垃圾數據並忽視。

漏洞影響

一般來說,惡意軟體有兩種方式來利用這個漏洞。

首先,可以用來隱藏payload。惡意軟體會把自己偽裝成一個乾淨的DEX文件,而惡意payload文件存儲在APK文件中之後載入。這就是world news應用的偽裝方式。

然後,可以在開發者不知情的情況下更新已經安裝的應用。攻擊者可以用這種方式來訪問原來的應用中受保護的數據,比如用戶身份證書信息和隱私信息。冒充合法應用的身份還可以繞過殺軟等安全解決方案。

在野攻擊

漏洞公布後,研究人員檢查了已有的惡意軟體樣本來確認有沒有已知的惡意軟體樣本使用該漏洞。發現了一個使用該漏洞的惡意軟體樣本,但並不是研究人員所以為的那種利用方式。研究人員稱之為ANDROIDOS_JANUS.A。Google已經將該應用標記為惡意應用,同時研究人員與Google一起協作提供合適的解決措施。

這個應用是在Google play中發現的,是一個垃圾經理軟體,最近更新為新聞應用,目前已經從Google play應用商店下架了。

圖 4.利用Janus漏洞的應用圖標

該惡意軟體用該漏洞進行動態代碼分析。嵌入的DEX文件只含有一個很小的payload,用來從不同的資產中解密真實的payload,並動態載入。這是通過偽造一個頭部含有DEX文件的應用來完成的,其中真實的payload隱藏在APK代碼中。這意味著要繞過惡意軟體掃描器,惡意軟體掃描器會首先處理DEX文件並證明它是乾淨的,而忽略後面的惡意代碼。

當安卓設備開機後,它會以後台服務的形式允許。連接到C&C伺服器,接收安裝其他惡意軟體的命令,這些新的惡意軟體會擴展當前惡意軟體的功能。

圖 5. 下載其他惡意軟體的代碼

假設Janus可以被用來惡意地更新設備中已經安裝的應用。通過對代碼的分析表明,該應用並沒有對其他應用進行升級攻擊,Janus只被用來繞過安全軟體的檢測。但是未來有可能被用來對其他應用發起升級攻擊。

開發者的解決方案

Android 7.0引入了新的簽名方案,新的簽名方案中,簽名證書和摘要從meta區移到了APK signing block(位於file entries和Central Directory之間),負責保護其他幾個區域的完整性。

圖 6.新簽名方案對APK文件添加簽名區

File entries之間不連續仍然是允許的,但是,系統會檢查file開頭一直到APK signing block,這就是說,任何的修改都會破壞簽名的完整性校驗。但是,仍然有可能在header注入DEX文件,但是成功的攻擊(修改、注入)需要對APK signing block重新進行簽名。

出於兼容性,開發者一般會選擇混合簽名方案,也就是version1和version2混合。這種方案的效果不同的設備會有差異,在不支持的設備上,version2是通過回滾保護強制執行的。

圖 7. Rollback保護

對於只支持version1簽名方案的安卓版本來說,攻擊仍然是可能的。研究人員推薦開發者繼續使用混合簽名的方案。

結論

該漏洞的影響是幾年前的Android Master key漏洞有一點相似,兩個漏洞都允許攻擊者在用戶不知情的情況下修改已安裝的合法應用。如果攻擊者利用該漏洞修改了合法應用,並上傳到應用商店中。那麼用戶就會同時面臨兩種風險,一是惡意應用被看做是合法應用,二是惡意應用通過應用商店可以修改大量的合法應用。

並不是所有的手機安全軟體都可以解決這個挑戰。嵌入在header的惡意DEX代碼可以繞過許多的安全軟體,企業級MDM也可能檢測不到這些應用,而且MDM也可能會被惡意應用修改。廠商必須要提高他們掃描和檢測惡意安卓應用的能力了。

IoC

World news應用


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

TAG:嘶吼RoarTalk |