比利時公司GuardSquare發布了一份關於 Android 中發現的漏洞 (CVE-2017-13156) 的報告,綽號為 Janus。該漏洞允許攻擊者修改應用程式程式碼而不影響簽名。
在開發Android應用程式時,需要專家對其產品進行簽署。在更新過程中,系統會將APK檔案的簽章與現有版本進行比較,如果匹配,則將應用程式編譯成DEX檔案以在裝置上執行。問題的根源在於該漏洞與向 APK 和 DEX 檔案添加額外位元組的能力有關。APK 檔案是一個 zip 檔案,可讓您在 zip 條目之前的開頭包含一些任意位元組。在簽章期間,JAR 會忽略驗證應用程式簽章所需的 zip 條目之外的任何其他位元組。反過來,DEX 檔案末尾包含任意位元組。因此,Janus 將未修改的 APK 檔案與修改後的 DEX 可執行檔結合在一起,不會影響應用程式簽章。在這種情況下,Android 系統將允許您安裝並執行 DEX 標頭中的程式碼。同時,攻擊者有機會在下次更新期間管理權限並替換應用程式。
Janus 只能損害使用基於 JAR 的方法(Android 5.0 及更高版本)簽署的應用程式。從Android 7.0 Nougat開始,JAR簽章方式被APK簽章方案v2取代,為後續版本提供保護。
Эллеонора Керри
等級 41
GO TO FULL VERSION