0
| 本文作者: 郭佳 | 2017-12-11 17:32 |
近期,安卓用戶在更新各類 APP 時(shí)要當(dāng)心了,你可能遇到山寨的!
昨日(12月10日),雷鋒網(wǎng)曾發(fā)文《安卓年度大洞現(xiàn)身:能讓惡意代碼進(jìn)入已簽名應(yīng)用》,其中提到,名為“Janus”的漏洞會(huì)允許惡意攻擊者繞過應(yīng)用程序簽名,并將惡意代碼注入安卓應(yīng)用程序。
雷鋒網(wǎng)從頂象技術(shù)獲悉,由于安卓系統(tǒng)的其他安全機(jī)制也是建立在簽名和校驗(yàn)基礎(chǔ)之上,該漏洞相當(dāng)于繞過了安卓系統(tǒng)的整個(gè)安全機(jī)制。一旦攻擊者將植入惡意代碼的仿冒的 App 投放到安卓商店等第三方應(yīng)用市場(chǎng),就可替代原有的 App 做下載、更新。
網(wǎng)友安裝這些仿冒 App 后,不僅會(huì)泄露個(gè)人賬號(hào)、密碼、照片、文件等隱私信息,手機(jī)更可能被植入木馬病毒,進(jìn)而或?qū)е率謾C(jī)被 root ,甚至被遠(yuǎn)程操控。
分析顯示,安卓 5.0 到 8.0 系統(tǒng)以及基于 signature scheme V1 簽名機(jī)制的 App 均受“Janus”漏洞影響;基于signature scheme V2簽名的App則不受影響。
為了提升安卓系統(tǒng)的安全性,Google 發(fā)布了新的簽名認(rèn)證體系 signature scheme V2。由于,signature scheme V2 需要對(duì) App 進(jìn)行重新發(fā)布,而大量的已經(jīng)存在的 App APK 無法使用 V2 校驗(yàn)機(jī)制,所以為了保證向前兼容性,V1 的校驗(yàn)方式的還被保留,這就導(dǎo)致了“Janus”漏洞的出現(xiàn)。
攻擊原理
1、安卓在 4.4 中引入了新的執(zhí)行虛擬機(jī) ART,這個(gè)虛擬機(jī)經(jīng)過重新的設(shè)計(jì),實(shí)現(xiàn)了大量的優(yōu)化,提高了應(yīng)用的運(yùn)行效率。與“Janus”有關(guān)的一個(gè)技術(shù)點(diǎn)是,ART 允許運(yùn)行一個(gè) raw dex,也就是一個(gè)純粹的dex文件,不需要在外面包裝一層zip。
而ART的前任 DALVIK 虛擬機(jī)就要求 dex 必須包裝在一個(gè) zip 內(nèi)部且名字是 classes.dex 才能運(yùn)行。當(dāng)然ART也支持運(yùn)行包裝在ZIP內(nèi)部的dex文件,要區(qū)別文件是ZIP還是dex,就通過文件頭的magic字段進(jìn)行判斷:ZIP文件的開頭是‘PK’, 而dex文件的開頭是’dex’。

2、ZIP文件的讀取方式是通過在文件末尾定位 central directory, 然后通過里面的索引定位到各個(gè)zip entry,每個(gè)entry解壓之后都對(duì)應(yīng)一個(gè)文件。
影響范圍
1. 安卓5.0-8.0的各個(gè)版本系統(tǒng);
2. 使用安卓Signaturescheme V1簽名的App APK文件。
利用過程
1、攻擊者可以向 APK文件的開始位置放置一個(gè)攻擊的 DEX 文件 A;
2. 安卓系統(tǒng)在安裝時(shí)用ZIP的讀取機(jī)制從末尾開始進(jìn)行文件的讀取,讀取到了原始的APK內(nèi)容,并且以V1的方式進(jìn)行校驗(yàn),認(rèn)為這個(gè)文件是正常的,沒有篡改,APK安裝成功;
3. 在運(yùn)行時(shí),Android 的 ART 虛擬機(jī)從文件頭開始讀取,發(fā)現(xiàn)是一個(gè) DEX 文件,直接執(zhí)行,攻擊文件A被最終執(zhí)行。
帶來的威脅
可以在沒有 apk 所有者的證書的情況下對(duì) apk 進(jìn)行修改,并且繞過校驗(yàn)機(jī)制安裝在用戶的手機(jī)上,造成的可能后果如下:
1. 對(duì)存儲(chǔ)在原手機(jī)上的數(shù)據(jù)進(jìn)行讀取,例如金融類APP的銀行密碼、支付密碼、token; 通信類APP的聊天記錄、圖片、通信錄
2. 對(duì)用戶的輸入做各種監(jiān)聽、攔截、欺詐,引導(dǎo)用戶輸入密碼,轉(zhuǎn)賬。
3. 利用這個(gè)漏洞可以更新Android的系統(tǒng)APP,從獲得更高的系統(tǒng)權(quán)限,甚至root/越獄,為其他攻擊做準(zhǔn)備
安卓用戶:
1、盡快升級(jí)到最新版安卓系統(tǒng);
2、盡量到官方網(wǎng)站更新、下載App,短期內(nèi)不用使用第三方安卓應(yīng)用市場(chǎng)更新或下載App。
安卓開發(fā)者:
1、將App APK升級(jí)到最新的Signature scheme V2簽名機(jī)制;
2、開發(fā)者及時(shí)校驗(yàn)App APK文件的開始字節(jié),以確保App未被篡改;
以上內(nèi)容來自頂象技術(shù)的投稿,雷鋒網(wǎng)編輯整理。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。