Android如何解決騰訊近日發(fā)布的“應(yīng)用克隆”漏洞


2018年1月9日, 國家信息安全漏洞共享平臺(CNVD)發(fā)布關(guān)于Android WebView存在跨域訪問漏洞(CNVD-2017-36682)的公告,本文最后會給出具體的解決方案。

漏洞描述

WebView是Android用于顯示網(wǎng)頁的控件,是一個基于Webkit引擎、展現(xiàn)Web頁面、解析并執(zhí)行JavaScript代碼的控件,Android應(yīng)用可以使用WebView空間,靈活的擴展自身的業(yè)務(wù)功能。

市面上大多數(shù)使用HTML5技術(shù)開發(fā)的應(yīng)用均使用WebView進(jìn)行HTML5頁面的展示。除了從遠(yuǎn)程服務(wù)器加載Web頁面,WebView還可以通過修改特定配置,從文件中進(jìn)行HTML5頁面的加載。在未正確配置WebView的情況下,會致使WebView同源策略失效,導(dǎo)致HTTP協(xié)議、file協(xié)議跨源攻擊的發(fā)生。該漏洞使得WebView能夠訪問當(dāng)前應(yīng)用內(nèi)部數(shù)據(jù),如果WebView加載了來源不明的HTML文件,可能導(dǎo)致當(dāng)前應(yīng)用內(nèi)部數(shù)據(jù)被攻擊者竊取,如身份認(rèn)證信息、加密密鑰、用戶隱私信息等。

漏洞分析

Android應(yīng)用內(nèi)部分可導(dǎo)出的Activity組件中,WebView允許通過file URL對http域進(jìn)行訪問,并且未對訪問路徑進(jìn)行嚴(yán)格校驗,由此導(dǎo)致了本次漏洞的出現(xiàn)。

該漏洞的產(chǎn)生條件:

(1)應(yīng)用中存在設(shè)置為可被導(dǎo)出的Activity組件,并且組件中包含Webview調(diào)用。

(2)Webview調(diào)用中setAllowFileAccessFromFileURLs 或

setAllowUniversalAccessFromFileURLs 設(shè)置為true(minSdk<=4.1 默認(rèn)為true,minSdk>4.1 默認(rèn)為false)。

解決方案

第一步
如果你的activity里面使用了webview,請關(guān)閉該activity的導(dǎo)出功能(該功能是允許外部應(yīng)用打開該activity)

  <activity
            android:name=".activity.WebViewActivity"
            android:exported="false"http://關(guān)閉導(dǎo)出功能
            android:screenOrientation="portrait"/>

第二步
如果你的activity必須要打開導(dǎo)出功能,請手動關(guān)閉通過file URL對http域進(jìn)行訪問

  webView.getSettings().setAllowFileAccessFromFileURLs (false);

第三步
對于必須使用file URL對http域進(jìn)行訪問時,可對傳入的URL路徑范圍嚴(yán)格控制,例如建立URL白名單,設(shè)置允許訪問的URL列表(不要遺漏路徑中可能出現(xiàn)的特殊情況如“../../”等,避免限制被繞過)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容