移動安全漏洞分析報告(轉)

隨着移動互聯網的發展和智能手機的普及,基於android系統的各種app出現爆發式增加,但在增加的同時,一個不容忽視的問題愈來愈重要:安全。android


漏洞掃描方式主要分爲靜態和動態,靜態掃描的漏洞類型主要包含SQL注入風險、webview系列、文件模式配置錯誤、https不校驗證書、database配置錯誤等。動態掃描的漏洞類型主要包含拒絕服務攻擊、文件目錄遍歷漏洞、file跨域訪問等。web


本報告選取11類android app中同等數量的熱門app,其活躍用戶量可覆蓋83%的移動端網民,根據對這些app的漏洞檢測,獲得如下結論:sql


參與檢測的android app中,近97%的app都存在漏洞問題,且平均漏洞量高達40個。跨域


安全類app漏洞問題最多,其漏洞總量499個,佔全部類別app漏洞總量的21%。安全


新聞、旅遊類app相對最不安全,其各自漏洞總量約240個,且其中高危漏洞量佔比30%。app


遊戲類app相對最安全,漏洞總量約57個,且其中高危漏洞佔比約2%。函數


從測試結果來看,android app的安全問題不容樂觀,漏洞的存在尤爲是高危漏洞,會對app開發者甚至用戶帶來較大影響。測試

 

第一章  Android APP漏洞現狀編碼


爲了解android app的整體現狀,報告中將app概括爲11個類別:健康、娛樂、安全、教育、新聞、旅遊、遊戲、社交、購物、金融、閱讀。選取11類app中等量熱門app,並對漏洞掃描產品進行靜態和動態檢測,掃描結果以下:spa


從漏洞類別來看,android app漏洞中排在首位的是sql注入類漏洞,佔比38.2%,其次是webview漏洞,佔比35.4%。


從漏洞風險級別來看,android app中高危漏洞佔20.7%,低危漏洞佔79.3%,其中高危漏洞主要集中在webview系列和https證書未校驗上。

             
SQL注入類漏洞佔比38.2%,主要是代碼中未過濾用戶輸入,攻擊者可經過提交惡意sql查詢語句達到其做惡目的。Sql注入雖大部分屬於中低危漏洞,但仍可形成敏感數據、系統最高權限被竊取等問題。


Webview的一些高危漏洞,主要由代碼中使用addJavascriptInterface等危險函數、使用不校驗證書等因素致使。這些漏洞可遠程執行代碼,對用戶遠程安裝惡意軟件。
Https相關的高危漏洞,主要由https使用ALLOW_ALL_HOSTNAME_VERIFIER等參數校驗證書,沒有對主機等信息進行校驗致使,這些漏洞會引起攻擊者輕易劫持https會話、嗅探用戶密碼和其餘敏感信息等問題。


高危漏洞潛藏着巨大的安全問題,但從測試結果來看,不少android app都存在高危漏洞問題,其安全性使人擔心。

 

第二章  Android APP漏洞問題分析


本章將對app的漏洞掃描結果進一步分析,首先將分析漏洞的靜態和動態檢測結果,其次將總結概括漏洞產生的緣由。


2.1  各種別app漏洞狀況分析


1.  漏洞的靜態掃描結果分析


對11個類別同等數量的熱門app進行靜態掃描,各種app的安全狀況不盡相同:


參與測試的app中近97%的app都有安全漏洞,且平均漏洞量達40個。


安全類app漏洞問題最多。


在檢測到的全部漏洞中,安全類app的漏洞總量多達499個(約佔總漏洞量21%),其中高風險漏洞佔比約2%,總體而言,即使是安全類app,亦存在較多的安全問題。


新聞、旅遊類app相對最不安全


新聞、旅遊類app漏洞總量均超230個(約佔總漏洞量的10%),且其中高風險漏洞量佔比高達30%,在全部app中相對最不安全。


  
遊戲類app相對最安全


遊戲類app不管是漏洞總量,或是其中的高風險漏洞佔比均較少,在全部app中相對最安全。

            

2.  漏洞的動態掃描結果分析


對11個類別同等數量的熱門app進行動態掃描,掃描結果幾乎都是拒絕服務攻擊類漏洞,未發現文件目錄遍歷、file跨域訪問等漏洞。


從如下數據圖能夠看出,各種別app或多或少都存在拒絕服務攻擊漏洞,尤爲以金融類(37個)、娛樂類(35個),購物類(32個),安全類(28個)爲重,而遊戲類的拒絕服務攻擊漏洞總量相對最少(3個)。


拒絕服務漏洞實際上是組件暴露問題,組件一旦被暴露,特定的惡意數據就可寫入組件,從而致使該app崩潰,形成拒絕服務,進而影響app開發者和用戶的利益。

             

3.  總結


以上分析數聽說明android類app的安全問題並不容樂觀,須要進一步探究形成漏洞的緣由以及解決方案,以儘可能避免漏洞的產生及彌補安全問題帶來的影響。


2.2  App漏洞緣由分析


Android app的漏洞類型不少,如SQL注入、webview系列漏洞、文件模式配置錯誤、HTTPS不校驗證書、拒絕服務攻擊等,形成漏洞的緣由能夠歸結爲如下兩類:


1.  App開發者自身的問題


a)  編碼不規範


不少公司對編碼規範沒有要求,或app開發者沒有按照編碼規範來進行編碼,容易致使敏感信息泄露,好比日誌打印問題、在發行版本中沒有關閉日誌打印功能等。


b)  安全意識不夠


不少android函數的參數需慎用,如經常使用函數openFileOutput,若是設置mode參數爲Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,就容易泄露android app的數據。另外,接口處理須要更加嚴謹,例如暴露了一個接口,容許運行用戶輸入的信息,若對信息未作任何處理,就容易引發拒絕服務攻擊等安全問題。


2.  Android上0day的發現


Android上0day的發現,可致使android app之前安全的功能變得不安全,在android系統沒有補丁的狀況下,需及時在android app上打補丁,但鑑於不少android app開發者對漏洞信息不敏感等緣由,並未作到及時修補,從而致使漏洞的存在。


總之,Android app的安全問題,很大程度上多是開發者犯下的低級錯誤。較爲有效的解決辦是可以在代碼編寫過程當中使用SDL編碼流程,同時使用漏洞掃描產品對app進行檢測,不斷修補自身app的安全問題。安全無小事,全部app開發者都應重視。

 

第三章 總結


本次檢測採用了11個類別app中同等數量的熱門app,共掃描出近2500個漏洞,平均每一個android app有40個安全漏洞,且約97%的測試app或多或少都存在安全漏洞。這些數據反映出android app漏洞問題的嚴峻性,在app市場上,不少android app都存在潛在的安全風險,一旦被利用,會給用戶和開發者帶來很大影響。


從漏洞檢測結果來看,android app的漏洞問題不容樂觀,這些問題是否能夠規避?是否有自動化的漏洞掃描產品供app開發者使用?是否能夠下降開發者和用戶的利益受損程度? 答案是確定的,除了增強app開發者的安全意識,在app發佈以前利用安全產品進行漏洞掃描檢測能夠及早發現隱含的安全問題,保護開發者利益,保護用戶利益。

 

報告來源:阿里巴巴移動安全團隊

相關文章
相關標籤/搜索