忘记
忘记
  • 发布:2019-10-22 15:26
  • 更新:2022-03-14 18:17
  • 阅读:3295

安卓包风险安全监测提示存在Activity劫持、WebView远程代码执行,请问怎么解决?

分类:HBuilder

挺着急的,请问这个怎么解决

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"")。
2019-10-22 15:26 负责人:无 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

使用HX3.2.12+打安装包 以上漏洞问题均不存在
关于JavascriptInterface仅在低版本系统存在漏洞。目前最低版本支持4.4不存在该漏洞

  • 忘记 (作者)

    我们是云打包


    2019-10-22 16:49

  • 忘记 (作者)

    上次打包时间是 9月18号


    2019-10-22 17:03

  • DCloud_Android_ST

    回复 忘记: 用最新版本试试吧 com.tencent.bugly不错在。


    2019-10-22 17:30

  • 忘记 (作者)

    回复 DCloud_Android_ST: 好的,我们试下, onPause 这个是退到后台进行一个提示,打开之后再关闭的那种吗?


    2019-10-22 19:15

  • 忘记 (作者)

    回复 DCloud_Android_ST: 我现在不清楚,用那种提示框才能实现这种效果,比如有人为操作,这样的就该过滤掉


    2019-10-22 19:30

  • 忘记 (作者)

    回复 DCloud_Android_ST: function Cfg() {};

    // 扩展API加载完毕后调用onPlusReady回调函数

    document.addEventListener("plusready", onPlusReady, false);

    function onPlusReady(){

    document.addEventListener("resume", onAppReume, false);

    document.addEventListener("pause", onAppPause, false);

    }


    function onAppPause(){

    mui.alert("程序仍在后台运行",'警告',null,null,'div');

    }

    function onAppReume(){

    mui.closePopup();

    }

    我这样写的,不知道能不能行,您看下是这个意思吗?


    2019-10-22 19:53

  • DCloud_Android_ST

    这种问题没有明确的解决方案,如果你们在意这个问题,就可以通过onPause 事件进行友好提示,至于怎样操作什么逻辑是没有规范。开发者自己来控制处理。


    2019-10-22 19:55

  • 忘记 (作者)

    回复 忘记: 我使用resume 执行 mui.closePopup(); 进行 关闭弹出,页面会出现无法操作的现象,感觉有一层透明遮罩似的


    2019-11-05 21:05

  • DCloud_Android_ST

    回复 忘记: https://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUI.alert


    2019-11-06 11:10

优优易招

优优易招 - 优优易招

我们现在也是做检测有这个问题,请问webview的白名单在哪里设置呢
“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"")。”
linlea

linlea - uniapp很好

请问下楼主这个是用什么软件检测出来的呀

  • 忘记 (作者)

    不太清楚,安全部门检测的,提供给我们的


    2020-12-14 10:49

  • linlea

    我也是网监提供的,列出了一大堆药整改,我直接不上架了,烦


    2021-01-14 15:33

  • garett

    回复 linlea: 兄弟解决了吗,我们这边的安全测试也在说addJavascriptInterface的安全问题,你最后怎么处理的


    2021-04-20 10:39

  • linlea

    回复 garett: 直接回复的网监不上架了


    2021-04-25 23:54

5***@qq.com

5***@qq.com

兄弟们解决了吗,我们这边的安全测试也在说addJavascriptInterface的安全问题

  • DCloud_Android_ST

    目前 SDK还是HX打包的要求 minSdkVersion最低19 也就是android 4.4 不存在你说的漏洞问题


    2021-11-23 14:35

5***@qq.com

5***@qq.com

今天客户反馈过来扫描还是有这个问题的

小人物115

小人物115

兄弟 这个问题解决了么?怎么解决的?

该问题目前已经被锁定, 无法添加新回复