android webview 劫持,安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?...
挺著急的,請問這個怎么解決
1、Activity劫持
用例名稱:Activity劫持
風險系數:高
風險編號:NESUN-2016-82091, CWE-94,
風險描述:攻擊者劫持目標Activity并制造跟目標Activity界面相似度很高的界面迷惑用戶,可能導致釣魚攻擊,造成用戶名/密碼等敏感信息泄露。
檢測過程:
1、對被測APP進行測試預處理。
2、在測試助手上安裝、運行被測APP。
3、動態追蹤目標APP的Activity狀態,實時構建Activity轉換圖。
4、遍歷Activity轉換圖進行插樁劫持,追蹤分析客戶端被劫持后的響應,發現被測系統能夠被成功劫持。
Activity 劫持成功!被劫持的Activity為:io.dcloud.PandoraEntryActivity
修復建議:
目前還沒有什么專門針對Activity劫持的防護方法,因為這種攻擊是用戶層面上的,目前還無法從代碼層面上根除。
但是我們可以適當的在APP中給用戶一些警示信息,提示登錄或關鍵界面已被覆蓋,具體解決方案如下:
在APP的Activity界面(也就是MainActivity)中重寫onKeyDown方法和onPause方法,當其被覆蓋時,就能夠彈出警示信息。判斷程序進入后臺是不是由用戶自己觸發的(觸摸返回鍵或HOME鍵),如果是用戶自己觸發的則無需彈出警示,否則彈出警示信息。
2、WebView遠程代碼執行
用例名稱:WebView遠程代碼執行
風險系數:高
風險編號:NESUN-2016-82035, CVE-2012-6636, CNNVD-201403-027, CWE-264, OWASP Mobile Top 10 2016 M7
風險描述:Android系統通過WebView.addJavascriptInterface方法注冊可供JavaScript調用的Java對象,以用于增強JavaScript的功能。但是系統并沒有對注冊Java類的方法調用的限制。導致攻擊者可以利用反射機制調用未注冊的其它任何Java類,最終導致JavaScript能力的無限增強。攻擊者利用該漏洞可以根據客戶端能力實現遠程任意代碼執行攻擊。 WebView 遠程代碼執行漏洞觸發前提條件: 1)使用addJavascriptInterface方法注冊可供JavaScript調用的Java對象; 2)使用WebView加載外部網頁或者本地網頁; 3)Android系統版本低于4.2。
檢測過程:
1、基于深度靜態檢測技術DSAST進行破殼/逆向分析等獲取客戶端程序Java源文件。
2、對構成源程序的字符流進行掃描,通過詞法分析,生成相關符號列表。
3、進行語法分析,整理成語法樹,通過抽象語法樹分析,將程序組織成樹形結構,構造Java類和函數庫。
4、進行語義分析,生成函數調用關系圖,依據漏洞特征,遍歷Java類和函數庫,發現存在WebView遠程代碼執行的可能,具體表現為使用addJavascriptInterface接口。
相關文件名/行:
classes.dex
相關程序代碼段如下:
在 com.tencent.bugly.yaq.crashreport.CrashReport$1 內部類的 public final addJavascriptInterface(Lcom/tencent/bugly/yaq/crashreport/crash/h5/H5JavaScriptInterface;Ljava/lang/String;)V 方法,使用了函數 Landroid/webkit/WebView;->addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V
修復建議:
1、在客戶端啟動時檢測Android版本,如果是Android4.2及以下版本則提示用戶或者退出。
2、使用addJavascriptInterface接口時,
用以下方式增強安全性:
1) 使用HTTPS協議加載URL,應進行證書校驗防止訪問的頁面被篡改掛馬;
2) 使用HTTP協議加載URL,應進行白名單過濾、完整性校驗等防止訪問的頁面被篡改;
3) 加載本地Html,應將html文件內置在APK中,以及進行對html頁面完整性的校驗 。
3、不需使用時可通過以下方式移除Javascript接口:
removeJavascriptInterface(""searchBoxJavaBridge_"");
removeJavascriptInterface(""accessibility"");
removeJavascriptInterface(""accessibilityTraversal"")。
總結
以上是生活随笔為你收集整理的android webview 劫持,安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言中字符串 x,使用c语言解析字符串
- 下一篇: python expect模块_Pyth