Android WebView存在跨域訪問漏洞(CNVD-2017-36682)。攻擊者利用該漏洞,可遠程獲取用戶隱私數據(包括手機應用數據、照片、文檔等敏感信息),還可竊取用戶登陸憑證,在受害者毫無察覺的狀況下實現對APP用戶帳戶的徹底控制。因爲該組件普遍應用於Android平臺,致使大量APP受影響,構成較爲嚴重的攻擊威脅。android
1、漏洞狀況分析
WebView是Android用於顯示網頁的控件,是一個基於Webkit引擎、展示web頁面的控件。WebView控件功能除了具備通常View的屬性和設置外,還可對URL請求、頁面加載、渲染、頁面交互進行處理。
該漏洞產生的緣由是在Android應用中,WebView開啓了file域訪問,容許file域訪問http域,且未對file域的路徑進行嚴格限制所致。攻擊者經過URL Scheme的方式,可遠程打開並加載惡意HTML文件,遠程獲取APP中包括用戶登陸憑證在內的全部本地敏感數據。
漏洞觸發成功前提條件以下:
1.WebView中setAllowFileAccessFromFileURLs 或setAllowUniversalAccessFromFileURLsAPI配置爲true;
2.WebView能夠直接被外部調用,並可以加載外部可控的HTML文件。
2、漏洞影響範圍
漏洞影響使用WebView控件,開啓file域訪問而且未按安全策略開發的Android應用APP。
3、漏洞修復建議
廠商暫未發佈解決方案,臨時解決方案以下:
1. file域訪問爲非功能需求時,手動配置setAllowFileAccessFromFileURLs或setAllowUniversalAccessFromFileURLs兩個API爲false。(Android4.1版本以前這兩個API默認是true,須要顯式設置爲false)
2. 若須要開啓file域訪問,則設置file路徑的白名單,嚴格控制file域的訪問範圍,具體以下:
(1)固定不變的HTML文件能夠放在assets或res目錄下,file:///android_asset和file:///android_res 在不開啓API的狀況下也能夠訪問;
(2)可能會更新的HTML文件放在/data/data/(app) 目錄下,避免被第三方替換或修改;
(3)對file域請求作白名單限制時,須要對「../../」特殊狀況進行處理,避免白名單被繞過。
3. 避免App內部的WebView被不信任的第三方調用。排查內置WebView的Activity是否被導出、必須導出的Activity是否會經過參數傳遞調起內置的WebView等。
4. 建議進一步對APP目錄下的敏感數據進行保護。客戶端APP應用設備相關信息(如IMEI、IMSI、Android_id等)做爲密鑰對敏感數據進行加密。使攻擊者難以利用相關漏洞得到敏感信息。web