幾天前, Bluebox Security 宣布Android有一個安全弱點,可以讓駭客更改APK程式碼並跳過Android的憑證檢測. 這個弱點稱之為 Master Keys Vulnerability,Bluebox Security 將會在 Black Hat USA 2013 公布其技術細節.
(http://bluebox.com/corporate-blog/bluebox-uncovers-android-master-key/)
經過 AegisLab 的分析,部分 Sony 與 Samsung 的 Android 4.2 已經修正了這個弱點。接下來來看看其技術細節:
主要的關鍵在於 ZIP(APK)檔中重複的 classes.dex。在此ZIP檔中,有兩個 classes.dex 檔: 被修改過的(07-09-2013) 還有原始的(03-13-2013)。被修改過的 classes.dex 必須要放在原始的之前。
當要安裝 APK時,Android會檢查其憑證。主要的 function 是 ZipFile 的 mEntries struct。當讀取 ZIP 檔時, 系統會尋找 Zip Central Directory Entry. 以 Name 當成 index, 依序放置 LinkedHashMap 中:
當 index 發生 collision 時,LinkedHashMap 會回傳舊的值,並以新的值取代。
因此,檢驗憑證時會使用原始的 classes.dex
執行 APP 的關鍵步驟如下:
開啟一個 ZIP 檔
依照 ZIP ENTRY 的順序,找尋 ZIP 檔中的 DEX,找到後直接回傳。
因此,會執行修改後的 classes.dex
AegisLab Antivirus Free 與 Premium 都能偵測 Master Keys Vulnerability!
請隨時更新您的掃毒引擎與病毒特徵碼!
https://play.google.com/store/apps/details?id=com.aegislab.sd3prj.antivirus.free
https://play.google.com/store/apps/details?id=com.aegislab.sd3prj.premium
Analyzed by Ohoh and Rex
Pingback: Mars Defense cheat
Very good article! We will be linking to this particularly great article
on our website. Keep up the good writing.