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