中國(guó)黑客組織發(fā)現(xiàn)第二個(gè)Android萬(wàn)能密鑰漏洞
一個(gè)中國(guó)的安全組織Android Security Squad稱(chēng)他們發(fā)現(xiàn)了第二個(gè)萬(wàn)能密鑰,能夠在不破壞應(yīng)用簽名的情況下修改應(yīng)用本身。
一個(gè)文件或者文檔的數(shù)字簽名的關(guān)鍵作用就是為了證明該文件或文檔沒(méi)有被修改過(guò)。這個(gè)過(guò)程使用了一個(gè)公鑰加密算法。在這個(gè)中國(guó)版本的攻擊中,惡意代碼可以添加在文件的頭部。但是由于目標(biāo)文件需要小于64K,因此這段惡意代碼的功能被限制了。
APK 文件使用了一種流行的ZIP壓縮算法進(jìn)行了壓縮。多數(shù)的壓縮行為不會(huì)把兩個(gè)文件名相同的文件放到同一個(gè)歸檔中。但是其實(shí)算法本身并沒(méi)有禁止這種可能性。所以?xún)蓚€(gè)版本的classes.dex文件會(huì)被放在包裹中,一個(gè)原始的和一個(gè)被惡意修改過(guò)的。
當(dāng)檢查應(yīng)用的數(shù)字簽名的時(shí)候,安卓系統(tǒng)會(huì)匹配第一個(gè)符合特征的文件,但是當(dāng)真正執(zhí)行并啟動(dòng)文件時(shí),會(huì)使用第二個(gè)被修改過(guò)的。為了把一個(gè)應(yīng)用變得像木馬一樣,你需要做的僅僅是把你的惡意代碼改成一個(gè)在應(yīng)用中已經(jīng)存在的名字。
這個(gè)漏洞和由國(guó)外移動(dòng)安全公司Bluebox Security發(fā)現(xiàn)的第一個(gè)萬(wàn)能密鑰的漏洞非常相似。根據(jù)BlueBox的說(shuō)法,有99%的移動(dòng)設(shè)備受到該漏洞的影響。谷歌已經(jīng)修復(fù)了這個(gè)問(wèn)題并提交到了安卓源碼開(kāi)放項(xiàng)目中(AOSP)
你也可以使用ReKey ,一個(gè)免費(fèi)的移動(dòng)應(yīng)用用來(lái)修復(fù)安卓萬(wàn)能密鑰漏洞。
安卓安全小分隊(duì)技術(shù)分析:http://blog.sina.com.cn/s/blog_be6dacae0101bksm.html