關(guān)于Android平臺(tái)WebView控件存在跨域訪問(wèn)高危漏洞的安全公告
發(fā)布時(shí)間:2018-01-112017年12月7日,,國(guó)家信息安全漏洞共享平臺(tái)(CNVD)接收到騰訊玄武實(shí)驗(yàn)室報(bào)送的Android WebView存在跨域訪問(wèn)漏洞(CNVD-2017-36682),。攻擊者利用該漏洞,可遠(yuǎn)程獲取用戶隱私數(shù)據(jù)(包括手機(jī)應(yīng)用數(shù)據(jù),、照片,、文檔等敏感信息),還可竊取用戶登錄憑證,,在受害者毫無(wú)察覺(jué)的情況下實(shí)現(xiàn)對(duì)APP用戶賬戶的完全控制,。由于該組件廣泛應(yīng)用于Android平臺(tái),,導(dǎo)致大量APP受影響,構(gòu)成較為嚴(yán)重的攻擊威脅,。
一,、漏洞情況分析
WebView是Android用于顯示網(wǎng)頁(yè)的控件,是一個(gè)基于Webkit引擎,、展現(xiàn)web頁(yè)面的控件,。WebView控件功能除了具有一般View的屬性和設(shè)置外,還可對(duì)URL請(qǐng)求,、頁(yè)面加載,、渲染、頁(yè)面交互進(jìn)行處理,。
該漏洞產(chǎn)生的原因是在Android應(yīng)用中,,WebView開(kāi)啟了file域訪問(wèn),且允許file域?qū)ttp域進(jìn)行訪問(wèn),,同時(shí)未對(duì)file域的路徑進(jìn)行嚴(yán)格限制所致,。攻擊者通過(guò)URL Scheme的方式,可遠(yuǎn)程打開(kāi)并加載惡意HTML文件,,遠(yuǎn)程獲取APP中包括用戶登錄憑證在內(nèi)的所有本地敏感數(shù)據(jù),。
漏洞觸發(fā)成功前提條件如下:
1. WebView中setAllowFileAccessFromFileURLs 或setAllowUniversalAccessFromFileURLs API配置為true;
2. WebView可以直接被外部調(diào)用,,并能夠加載外部可控的HTML文件,。
CNVD對(duì)相關(guān)漏洞綜合評(píng)級(jí)為“高危”,。
二,、漏洞影響范圍
漏洞影響使用WebView控件,開(kāi)啟file域訪問(wèn)并且未按安全策略開(kāi)發(fā)的Android應(yīng)用APP,。
三,、漏洞修復(fù)建議
廠商暫未發(fā)布解決方案,臨時(shí)解決方案如下:
1. file域訪問(wèn)為非功能需求時(shí),,手動(dòng)配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs兩個(gè)API為false,。(Android 4.1版本之前這兩個(gè)API默認(rèn)是true,需要顯式設(shè)置為false)
2. 若需要開(kāi)啟file域訪問(wèn),,則設(shè)置file路徑的白名單,,嚴(yán)格控制file域的訪問(wèn)范圍,具體如下:
(1)固定不變的HTML文件可以放在assets或res目錄下,,file:///android_asset和file:///android_res 在不開(kāi)啟API的情況下也可以訪問(wèn),;
(2)可能會(huì)更新的HTML文件放在/data/data/(app) 目錄下,避免被第三方替換或修改;
(3)對(duì)file域請(qǐng)求做白名單限制時(shí),,需要對(duì)“../../”特殊情況進(jìn)行處理,,避免白名單被繞過(guò)。
3. 避免App內(nèi)部的WebView被不信任的第三方調(diào)用,。排查內(nèi)置WebView的Activity是否被導(dǎo)出,、必須導(dǎo)出的Activity是否會(huì)通過(guò)參數(shù)傳遞調(diào)起內(nèi)置的WebView等。
4. 建議進(jìn)一步對(duì)APP目錄下的敏感數(shù)據(jù)進(jìn)行保護(hù),??蛻舳薃PP應(yīng)用設(shè)備相關(guān)信息(如IMEI、IMSI,、Android_id等)作為密鑰對(duì)敏感數(shù)據(jù)進(jìn)行加密,。使攻擊者難以利用相關(guān)漏洞獲得敏感信息。(來(lái)源:CNCERT)