本屆大會(huì)以“你就是主角”為主題,為移動(dòng)開發(fā)者打造一場(chǎng)真正的年度盛會(huì)。為讓更多的移動(dòng)應(yīng)用團(tuán)隊(duì)有自己專屬、固定的展示交流區(qū)域,大會(huì)主辦方特別提供了MDCC應(yīng)用團(tuán)隊(duì)免費(fèi)展位。無論是成熟的創(chuàng)業(yè)團(tuán)隊(duì),還是處于成長(zhǎng)期的移動(dòng)應(yīng)用、移動(dòng)游戲、智能硬件開發(fā)團(tuán)隊(duì),只要有成型作品,均可免費(fèi)申請(qǐng)。
7月30日, 新聞?dòng)直鯝ndroid新的簽名漏洞 “假 ID”。每一個(gè)Android應(yīng)用程序都有自己的數(shù)字簽名,本質(zhì)上來說就是一張ID卡。例如Adobe系統(tǒng)在Android系統(tǒng)上有一個(gè)特殊的簽名,所有Adobe的程序都有基于這一簽名的ID。Bluebox公司發(fā)現(xiàn),當(dāng)一個(gè)應(yīng)用程序閃射一個(gè)Adobe ID,Android并不會(huì)與Adobe核查這是否是真實(shí)的ID。這意味著一個(gè)惡意用戶可以基于Adobe的簽名創(chuàng)造一個(gè)惡意軟件并植入你的系統(tǒng)。
這個(gè)問題并不只是Adobe系統(tǒng)特有,黑客可以創(chuàng)造一個(gè)惡意應(yīng)用程序冒充谷歌錢包,然后獲得付款和財(cái)務(wù)數(shù)據(jù)。相同的問題也出現(xiàn)在某些設(shè)備上的管理軟件,這使得黑客可以完全控制整個(gè)系統(tǒng)。 “本質(zhì)上來說,我們發(fā)現(xiàn)了一種制造虛假ID的方法,”佛利斯塔爾這樣說道。“很多黑客都能夠創(chuàng)造假ID卡,但問題是他們創(chuàng)造的是哪一種虛假ID卡?”這一缺陷會(huì)影響Android2.1以上系統(tǒng),盡管最新的系統(tǒng)4.4或者稱KitKat已經(jīng)修復(fù)了這一漏洞,因?yàn)檫@個(gè)系統(tǒng)與Adobe相關(guān),據(jù)Bluebox表示。從2012年至2013年,大約14億新的設(shè)備裝有Android操作系統(tǒng),據(jù)市場(chǎng)研究機(jī)構(gòu)Gartner公司表示。Gartner估計(jì)今年將有11.7億個(gè)Android設(shè)備。
原則上,每個(gè)應(yīng)用的簽名時(shí)只用一個(gè)證書,這個(gè)證書最終會(huì)保存在APK文件的META-INF/CERT.RSA。如果我們想做一個(gè)二次打包的“盜版“應(yīng)用,可以生成一個(gè)證書鏈,包含兩個(gè)證書,根證書是該應(yīng)用的官方證書,從APK中獲得,二級(jí)證書是偽造證書,真正用于對(duì)APK中的所有文件進(jìn)行自簽名,這樣就既可以通過安裝時(shí)的簽名驗(yàn)證,也可以在運(yùn)行時(shí)欺騙系統(tǒng)誤以為是真的應(yīng)用,從而被授權(quán)。
由此我們聯(lián)想到國(guó)內(nèi)的安全現(xiàn)狀,二次打包猖狂,牽連應(yīng)用非常多,尤其是知名移動(dòng)金融應(yīng)用,如支付寶,各大銀行客戶端等。同時(shí)很多安全軟件提供正版簽名驗(yàn)證功能,幫助用戶鑒別盜版應(yīng)用,免收欺詐。甚至一些應(yīng)用自己也會(huì)做本地或遠(yuǎn)程簽名驗(yàn)證,如微信。
我們?cè)O(shè)想安全軟件做正版簽名時(shí)是否也會(huì)犯類似的錯(cuò)誤?只驗(yàn)證根證書或者只要匹配一個(gè)證書成功就可以了。
首先,我們構(gòu)造如下的證書鏈。
然后我們利用這個(gè)證書鏈對(duì)支付寶做了重簽名,真假證書同時(shí)打包到APK中。然后使用騰訊手機(jī)管家,360手機(jī)衛(wèi)士,豌豆莢進(jìn)行盜版簽名驗(yàn)證檢查,測(cè)試結(jié)果如下:
騰訊手機(jī)管家,豌豆莢(洗白白)能檢測(cè),360手機(jī)衛(wèi)士無法檢測(cè),支付寶也無法檢測(cè)。
騰訊手機(jī)管家檢測(cè)出盜版支付寶
豌豆莢檢測(cè)出盜版支付寶
360未檢測(cè)出盜版支付寶
完整演示視頻地址: http://v.youku.com/v_show/id_XNzUyMjUwOTI4.html
最后,我們又做了一個(gè)實(shí)驗(yàn),只用一個(gè)假證書做成盜版支付寶,結(jié)果除了支付寶自身,其他3家都可以檢測(cè)出來。于是我們斷定支付寶沒有實(shí)現(xiàn)自我簽名驗(yàn)證,也就是說如果用戶手機(jī)上沒有裝盜版檢測(cè)的軟件,那存在很大的可能性,用戶的支付寶賬戶被盜,財(cái)產(chǎn)受損。
移動(dòng)支付作為越來越普及的生活習(xí)慣,我們希望安全界老大360早日解決簽名驗(yàn)證的問題,不讓惡意軟件有可趁之機(jī)。同時(shí)我們也希望支付寶作為支付行業(yè)龍頭,這種基本的自我保護(hù)是必須做的,不能完全依賴于第三方軟件檢測(cè),這也是對(duì)用戶最基本的責(zé)任。
如果大家對(duì)此類內(nèi)容感興趣,我們將在后續(xù)出版的《程序員》雜志上對(duì)此漏洞進(jìn)行詳細(xì)的技術(shù)解密。
本文作者為安全興趣小組“鯰魚團(tuán)隊(duì)”,長(zhǎng)期鉆研移動(dòng)互聯(lián)網(wǎng)安全技術(shù),曾在《程序員》6月刊發(fā)表《Hack微信,不一樣的安全視角》。