wongjoke
wongjoke
  • 发布:2021-03-17 10:08
  • 更新:2021-04-12 16:37
  • 阅读:1474

Android安全检测报告

分类:uni-app

1.高危 Intent Scheme URL攻击
详情:恶意页面可以通过Intent scheme URL执行基于Intent的攻击
建议:将Intent的component/selector设置为null

2.高危 WebView应用克隆风险
详情:APP使用WebView访问网络,当开启了允许JS脚本访问本地文件,一旦访问恶意网址,存在被窃取APP数据并复制APP的运行环境,造成“应用克隆”的后果,可能造成严重的经济损失。
建议:建议禁用setAllowFileAccessFromFileURLs和setAllowUniversalAccessFromFileURLs;若需要允许JS访问本地文件,则应使用白名单等策略进行严格的访问控制。

3.高危 不安全Zip文件解压
详情:zip压缩包中的文件名中可以包含“/”所以如果文件名字是包含多个“../”就会造成文件被恶意放置,覆盖掉APP原有的文件
建议:对 ZipEntry.getName() 字段进行 ../ 筛查

4.高危 进程注入
详情:Android 系统使用的是 Linux 内核,进程间是弱相互作用,可以在应用进程空间内创建线程来加载自定义的 .so 文件,也就是进程注入。具体的实现依赖于 linux 下的 ptrace() 函数,将客户端进程作为我们自定义进程的子进程,操作客户端进程的寄存器和内存,来运行加载自定义的 .so 文件,将 .so 链接到客户端进程,最后让客户端进程的执行流程跳转到自定义的.so。总结来讲,如果Android 客户端没有对进程进行有效的保护,攻击者就可以向从 Native 层面向客户端进程远程加载任意 .so 链接库,从而侵入客户端进程的进程空间,以搜索、篡改敏感内存或干涉客户端的执行过程。
建议:1、ptrace 附加失败。2、修改 linker 中的 dlopen 函数,防止第三方 so 加载。3、定时检测应用加载的第三方 so 库,如果发现是被注入的 so,卸载加载的 so

5.高危 服务端证书弱校验
详情:使用HTTPS协议时,客户端必须验证服务器是真实合法的目标服务器。Android默认的HTTPS证书验证机制不接受不可信的连接,因而是安全的,但Android允许开发者重定义证书验证方法。当自定义的X509TrustManager类,未检查证书是否合法时,会存在客户端与仿冒服务器通讯的风险,可能导致账号、密码等敏感信息被窃取,甚至通信内容被篡改。
建议:利用X509TrustManager子类中的checkServerTrusted函数,校验服务器端证书的合法性

6.中危 WebView同源策略绕过
详情:JavaScript的延时执行能够绕过file协议的同源检查,从而够访问受害应用的所有私有文件。通过WebView对Javascript的延时执行,将当前Html文件删除掉并软连接指向其他文件就可以读取到被符号链接所指的文件,然后通过JavaScript再次读取HTML文件,即可获取到被符号链接所指的文件。恶意应用通过该漏洞,可在无特殊权限下盗取应用的任意私有文件。比如浏览器应用存在此漏洞,可获取到的信息,包括但不限于,保存的密码、Cookie、收藏夹以及历史记录等。
建议:1、不必要导出的组件设置为不导出,建议显式设置所注册组件的“android:exported”属性为false。2、对于需要导出包含WebView的组件,建议禁止使用File域协,webView.getSettings. setAllowFileAccess(false)。3、如需使用File域协议,建议禁止File域协议调用JavaScript,webView.getSettings. setJavaScriptEnabled(false)

7.中危 隐式Intent劫持
详情:APP使用隐式的Intent,存在被恶意三方APP钓鱼的风险
建议:尽量使用显式Intent

8.中危 残留URL
详情:APP 中残留开发或测试阶段使用的 URL 地址时,存在被攻击者当做攻击目标的风险。
建议:移除APP 中的 URL 地址 。

9.中危 动态注册BroadcastReceiver风险
详情:APP使用动态BroadcastReceiver时,未对广播增加权限控制,可以被任意外部应用访问,存在数据泄漏或是越权调用等风险
建议:在AndroidManifest.xml文件中声明广播权限,在注册广播时限制相同的action应用够使用此广播。

10.中危 不安全哈希算法
详情:android系统提供Hash算法签名重要数据,当应用使用MD5/SHA-1计算重要数据的哈希值时,更容易遭到碰撞攻击。攻击者利用碰撞攻击的方式,逆向获取Hash签名的重要数据
建议:使用SHA-256哈希算法

11.中危 主机名弱校验
详情:使用HTTPS协议时,客户端必须验证服务器是真实合法的目标服务器。Android默认的HTTPS证书验证机制不接受不可信的连接,因而是安全的,但Android允许开发者重定义证书验证方法。当自定义的HostnameVerifier类,未检查证书中的主机名与使用该证书的服务器的主机名是否一致或被配置为接受任何服务器主机名时,会存在客户端与仿冒服务器通讯的风险,可能导致账号、密码等敏感信息被窃取,甚至通信内容被篡改。
建议:利用HostnameVerifier子类中的verify函数,校验服务器主机名的合法性

2021-03-17 10:08 负责人:无 分享
已邀请:
wongjoke

wongjoke (作者)

这些问题应该如何规避或者修改它?还是只能等官方修复?

DCloud_Android_ST

DCloud_Android_ST

请提供完整的检测数据。我们看下。部分可能是其他第三方SDK的代码引起的问题。

  • wongjoke (作者)

    附件已经上传。

    2021-03-18 08:59

  • DCloud_Android_ST

    回复 wongjoke: 收到 后续会陆续调整相关代码 第三方SDK就没办法了

    2021-03-18 10:48

  • wongjoke (作者)

    回复 DCloud_Android_ST: 嗯嗯,我这个没用到第三方SDK,就打包了一个安卓的壳。目前用加固的方法可以规避一些问题吗?

    2021-03-18 11:13

  • DCloud_Android_ST

    回复 wongjoke: 加固是一个方式。你可以试试

    2021-03-18 11:18

  • kuafu

    回复 wongjoke: 请问这个问题解决了嘛,目前打包腾讯也检测到了这个问题

    2021-12-20 14:09

  • DCloud_Android_ST

    回复 kuafu: 请参考 https://ask.dcloud.net.cn/article/39020

    2021-12-20 14:50

小韦飞狼

小韦飞狼

我们也被安全检测到这些问题了,同求解决方案

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