前言
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展和智能手機(jī)的普及,基于android系統(tǒng)的各類app出現(xiàn)爆發(fā)式增長(zhǎng),但在增長(zhǎng)的同時(shí),一個(gè)不容忽視的問題越來越重要:安全。
漏洞掃描方式主要分為靜態(tài)和動(dòng)態(tài),靜態(tài)掃描的漏洞類型主要包含SQL注入風(fēng)險(xiǎn)、webview系列、文件模式配置錯(cuò)誤、https不校驗(yàn)證書、database配置錯(cuò)誤等。動(dòng)態(tài)掃描的漏洞類型主要包含拒絕服務(wù)攻擊、文件目錄遍歷漏洞、file跨域訪問等。
本報(bào)告選取11類android app中同等數(shù)量的熱門app,其活躍用戶量可覆蓋83%的移動(dòng)端網(wǎng)民,根據(jù)阿里巴巴移動(dòng)安全中心對(duì)這些app的漏洞檢測(cè),得到以下結(jié)論:
參與檢測(cè)的android app中,近97%的app都存在漏洞問題,且平均漏洞量高達(dá)40個(gè)。
安全類app漏洞問題最多,其漏洞總量499個(gè),占所有類別app漏洞總量的21%。
新聞、旅游類app相對(duì)最不安全,其各自漏洞總量約240個(gè),且其中高危漏洞量占比30%。
游戲類app相對(duì)最安全,漏洞總量約57個(gè),且其中高危漏洞占比約2%。
從測(cè)試結(jié)果來看,android app的安全問題不容樂觀,漏洞的存在尤其是高危漏洞,會(huì)對(duì)app開發(fā)者甚至用戶帶來較大影響,如何提前發(fā)現(xiàn)潛在風(fēng)險(xiǎn)、保護(hù)開發(fā)者和用戶的利益是阿里巴巴移動(dòng)安全團(tuán)隊(duì)一直堅(jiān)持的責(zé)任。
一、Android APP漏洞現(xiàn)狀
為了解android app的總體現(xiàn)狀,報(bào)告中將app歸納為11個(gè)類別:健康、娛樂、安全、教育、新聞、旅游、游戲、社交、購(gòu)物、金融、閱讀。選取11類app中等量熱門app,并使用阿里巴巴聚安全的漏洞掃描產(chǎn)品進(jìn)行靜態(tài)和動(dòng)態(tài)檢測(cè),掃描結(jié)果如下:
從漏洞類別來看,android app漏洞中排在首位的是sql注入類漏洞,占比38.2%,其次是webview漏洞,占比35.4%,見左圖。
從漏洞風(fēng)險(xiǎn)級(jí)別來看,android app中高危漏洞占20.7%,低危漏洞占79.3%,其中高危漏洞主要集中在webview系列和https證書未校驗(yàn)上。
SQL注入類漏洞占比38.2%,主要是代碼中未過濾用戶輸入,攻擊者可通過提交惡意sql查詢語句達(dá)到其作惡目的。Sql注入雖大部分屬于中低危漏洞,但仍可造成敏感數(shù)據(jù)、系統(tǒng)最高權(quán)限被竊取等問題。
Webview的一些高危漏洞,主要由代碼中使用addJavascriptInterface等危險(xiǎn)函數(shù)、使用不校驗(yàn)證書等因素導(dǎo)致。這些漏洞可遠(yuǎn)程執(zhí)行代碼,對(duì)用戶遠(yuǎn)程安裝惡意軟件。
Https相關(guān)的高危漏洞,主要由https使用ALLOW_ALL_HOSTNAME_VERIFIER等參數(shù)校驗(yàn)證書,沒有對(duì)主機(jī)等信息進(jìn)行校驗(yàn)導(dǎo)致,這些漏洞會(huì)引發(fā)攻擊者輕易劫持https會(huì)話、嗅探用戶密碼和其他敏感信息等問題。
高危漏洞潛藏著巨大的安全問題,但從測(cè)試結(jié)果來看,很多android app都存在高危漏洞問題,其安全性令人擔(dān)憂。
二、Android APP漏洞問題分析
本章將對(duì)app的漏洞掃描結(jié)果進(jìn)一步分析,首先將分析漏洞的靜態(tài)和動(dòng)態(tài)檢測(cè)結(jié)果,其次將總結(jié)歸納漏洞產(chǎn)生的原因。
2.1各類別app漏洞情況分析
2.1.1.漏洞的靜態(tài)掃描結(jié)果分析
使用阿里巴巴聚安全的漏洞掃描產(chǎn)品,對(duì)11個(gè)類別同等數(shù)量的熱門app進(jìn)行靜態(tài)掃描,各類app的安全情況不盡相同:
參與測(cè)試的app中近97%的app都有安全漏洞,且平均漏洞量達(dá)40個(gè)。
安全類app漏洞問題最多。
在檢測(cè)到的所有漏洞中,安全類app的漏洞總量多達(dá)499個(gè)(約占總漏洞量21%),其中高風(fēng)險(xiǎn)漏洞占比約2%,整體而言,即便是安全類app,亦存在較多的安全問題。
新聞、旅游類app相對(duì)最不安全
新聞、旅游類app漏洞總量均超230個(gè)(約占總漏洞量的10%),且其中高風(fēng)險(xiǎn)漏洞量占比高達(dá)30%,在所有app中相對(duì)最不安全。
游戲類app相對(duì)最安全
游戲類app無論是漏洞總量,或是其中的高風(fēng)險(xiǎn)漏洞占比均較少,在所有app中相對(duì)最安全。
2.1.2 漏洞的動(dòng)態(tài)掃描結(jié)果分析
使用阿里巴巴聚安全的漏洞掃描產(chǎn)品,對(duì)11個(gè)類別同等數(shù)量的熱門app進(jìn)行動(dòng)態(tài)掃描,掃描結(jié)果幾乎都是拒絕服務(wù)攻擊類漏洞,未發(fā)現(xiàn)文件目錄遍歷、file跨域訪問等漏洞。
從以下數(shù)據(jù)圖可以看出,各類別app或多或少都存在拒絕服務(wù)攻擊漏洞,尤其以金融類(37個(gè))、娛樂類(35個(gè)),購(gòu)物類(32個(gè)),安全類(28個(gè))為重,而游戲類的拒絕服務(wù)攻擊漏洞總量相對(duì)最少(3個(gè))。
拒絕服務(wù)漏洞其實(shí)是組件暴露問題,組件一旦被暴露,特定的惡意數(shù)據(jù)就可寫入組件,從而導(dǎo)致該app崩潰,造成拒絕服務(wù),進(jìn)而影響app開發(fā)者和用戶的利益。
2.1.3 總結(jié)
以上分析數(shù)據(jù)說明android類app的安全問題并不容樂觀,需要進(jìn)一步探究造成漏洞的原因以及解決方案,以盡量避免漏洞的產(chǎn)生及彌補(bǔ)安全問題帶來的影響。
2.2 App漏洞原因分析
Android app的漏洞類型很多,如SQL注入、webview系列漏洞、文件模式配置錯(cuò)誤、HTTPS不校驗(yàn)證書、拒絕服務(wù)攻擊等,造成漏洞的原因可以歸結(jié)為以下兩類:
2.2.1App開發(fā)者自身的問題
a)編碼不規(guī)范
很多公司對(duì)編碼規(guī)范沒有要求,或app開發(fā)者沒有按照編碼規(guī)范來進(jìn)行編碼,容易導(dǎo)致敏感信息泄露,比如日志打印問題、在發(fā)行版本中沒有關(guān)閉日志打印功能等。
b)安全意識(shí)不夠
很多android函數(shù)的參數(shù)需慎用,如常用函數(shù)openFileOutput,如果設(shè)置mode參數(shù)為Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,就容易泄露android app的數(shù)據(jù)。另外,接口處理需要更加嚴(yán)謹(jǐn),例如暴露了一個(gè)接口,允許運(yùn)行用戶輸入的信息,若對(duì)信息未做任何處理,就容易引起拒絕服務(wù)攻擊等安全問題。
2.2.2Android上0day的發(fā)現(xiàn)
Android上0day的發(fā)現(xiàn),可導(dǎo)致android app以前安全的功能變得不安全,在android系統(tǒng)沒有補(bǔ)丁的情況下,需及時(shí)在android app上打補(bǔ)丁,但鑒于很多android app開發(fā)者對(duì)漏洞信息不敏感等原因,并未做到及時(shí)修補(bǔ),從而導(dǎo)致漏洞的存在。
總之,Android app的安全問題,很大程度上可能是開發(fā)者犯下的低級(jí)錯(cuò)誤。較為有效的解決辦是能夠在代碼編寫過程中使用SDL編碼流程,同時(shí)使用漏洞掃描產(chǎn)品對(duì)app進(jìn)行檢測(cè),不斷修補(bǔ)自身app的安全問題。安全無小事,所有app開發(fā)者都應(yīng)重視。
三、總結(jié)
本次檢測(cè)采用了11個(gè)類別app中同等數(shù)量的熱門app,共掃描出近2500個(gè)漏洞,平均每個(gè)android app有40個(gè)安全漏洞,且約97%的測(cè)試app或多或少都存在安全漏洞。這些數(shù)據(jù)反映出android app漏洞問題的嚴(yán)峻性,在app市場(chǎng)上,很多android app都存在潛在的安全風(fēng)險(xiǎn),一旦被利用,會(huì)給用戶和開發(fā)者帶來很大影響。
從漏洞檢測(cè)結(jié)果來看,android app的漏洞問題不容樂觀,這些問題是否可以規(guī)避?是否有自動(dòng)化的漏洞掃描產(chǎn)品供app開發(fā)者使用?是否可以降低開發(fā)者和用戶的利益受損程度? 答案是肯定的,除了加強(qiáng)app開發(fā)者的安全意識(shí),在app發(fā)布之前利用安全產(chǎn)品進(jìn)行漏洞掃描檢測(cè)可以及早發(fā)現(xiàn)隱含的安全問題,保護(hù)開發(fā)者利益,保護(hù)用戶利益。