哥倫比亞大學(xué)的研究人員近日發(fā)布了Crylogger,這是一種開放源代碼動(dòng)態(tài)分析工具,可檢測Android應(yīng)用程序中存在的加密漏洞。
研究者用Crylogger測試了Google Play商店中1780個(gè)流行的Android應(yīng)用程序,涵蓋了流行的信息流媒體、文件和密碼管理器、身份驗(yàn)證應(yīng)用程、個(gè)人通訊等多種應(yīng)用,結(jié)果令人震驚,幾乎所有Android應(yīng)用都存在加密漏洞:
關(guān)于Crylogger
接受檢測的每個(gè)帶有工具化密碼庫的應(yīng)用程序都在Crylogger中運(yùn)行,該工具記錄程序執(zhí)行期間傳遞給密碼API的參數(shù),然后使用密碼規(guī)則列表離線檢查其合法性。
研究人員解釋說:“加密(密碼)算法是所有安全系統(tǒng)的基本組成部分:例如,加密哈希函數(shù)和加密算法可以保證諸如完整性和機(jī)密性之類的安全屬性。”
“所謂加密濫用就是調(diào)用的加密API未遵守通用安全準(zhǔn)則,例如由密碼學(xué)家或NIST和IETF等組織建議的準(zhǔn)則。”
為了確認(rèn)可以真正利用Crylogger識(shí)別并標(biāo)記加密漏洞,研究人員手動(dòng)對28個(gè)經(jīng)過測試的應(yīng)用程序進(jìn)行了反向工程,并發(fā)現(xiàn)其中14個(gè)確實(shí)容易受到攻擊(即使某些問題可能被開發(fā)人員認(rèn)為不在加密范圍內(nèi),因?yàn)樗鼈冃枰嵘龣?quán)限才能有效利用)。
雙管齊下
通過對150個(gè)樣本應(yīng)用的對比測試,研究者發(fā)現(xiàn)Crylogger(動(dòng)態(tài)分析工具)與CryptoGuard(檢測Java應(yīng)用程序加密濫用的一個(gè)開源靜態(tài)分析工具)存在互補(bǔ)關(guān)系,前者漏掉的一些漏洞會(huì)被后者檢測到,反之亦然。
研究人員建議開發(fā)者在應(yīng)用在應(yīng)用商店上架或發(fā)布之前,同時(shí)使用以上兩個(gè)工具對應(yīng)用進(jìn)行測試。
令人揪心的發(fā)現(xiàn)
如本文開頭所述,太多的應(yīng)用程序破壞了太多的加密規(guī)則。而且,太多的應(yīng)用程序和庫開發(fā)人員選擇忽略這些問題。
研究人員通過電子郵件向306個(gè)違反9個(gè)或更多加密規(guī)則的Android應(yīng)用程序開發(fā)人員發(fā)送了電子郵件:只有18個(gè)開發(fā)人員回覆,只有8個(gè)開發(fā)人員在第一封電子郵件后繼續(xù)進(jìn)行交流,并提供了有關(guān)其發(fā)現(xiàn)的有用反饋。他們還聯(lián)系了流行的Android庫的6位開發(fā)人員,并從其中2位獲得了答案。