Android WebView存在跨域訪問漏洞(CNVD-2017-36682)介紹及解決


  Android WebView存在跨域訪問漏洞(CNVD-2017-36682)。攻擊者利用該漏洞,可遠程獲取用戶隱私數據(包括手機應用數據、照片、文檔等敏感信息),還可竊取用戶登錄憑證,在受害者毫無察覺的情況下實現對APP用戶賬戶的完全控制。由於該組件廣泛應用於Android平台,導致大量APP受影響,構成較為嚴重的攻擊威脅。

一、漏洞情況分析
  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文件。
二、漏洞影響范圍
  漏洞影響使用WebView控件,開啟file域訪問並且未按安全策略開發的Android應用APP。
三、漏洞修復建議
  廠商暫未發布解決方案,臨時解決方案如下:
    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等)作為密鑰對敏感數據進行加密。使攻擊者難以利用相關漏洞獲得敏感信息。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM