android安全报告,Android安全检测报告
1.⾼危 Intent Scheme URL攻击
详情:恶意页⾯可以通过Intent scheme URL执⾏基于Intent的攻击
建议:将Intent的component/selector设置为null
2.⾼危 WebView应⽤克隆风险
详情:APP使⽤WebView访问⽹络,当开启了允许JS脚本访问本地⽂件,⼀旦访问恶意⽹址,存在被窃取APP数据并复制APP的运⾏环境,造成“应⽤克隆”的后果,可能造成严重的经济损失。
建议:建议禁⽤setAllowFileAccessFromFileURLs和setAllowUniversalAccessFromFileURLs;若需要允许JS访问本地⽂件,则应使⽤⽩名单等策略进⾏严格的访问控制。
android获取真正的签名3.⾼危 不安全Zip⽂件解压
详情:zip压缩包中的⽂件名中可以包含“/”所以如果⽂件名字是包含多个“../”就会造成⽂件被恶意放置,覆盖掉APP原有的⽂件
建议:对 Name() 字段进⾏ ../ 筛查
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域协,Settings. setAllowFileAccess(false)。3、如需使⽤File域协议,建议禁⽌File 域协议调⽤JavaScript,Settings. setJavaScriptEnabled(false)
7.中危 隐式Intent劫持
详情:APP使⽤隐式的Intent,存在被恶意三⽅APP钓鱼的风险
建议:尽量使⽤显式Intent
8.中危 残留URL
详情:APP 中残留开发或测试阶段使⽤的 URL 地址时,存在被攻击者当做攻击⽬标的风险。
建议:移除APP 中的 URL 地址 。
9.中危 动态注册BroadcastReceiver风险
详情:APP使⽤动态BroadcastReceiver时,未对⼴播增加权限控制,可以被任意外部应⽤访问,存在数据泄漏或是越权调⽤等风险
建议:在l⽂件中声明⼴播权限,在注册⼴播时限制相同的action应⽤够使⽤此⼴播。
10.中危 不安全哈希算法
详情:android系统提供Hash算法签名重要数据,当应⽤使⽤MD5/SHA-1计算重要数据的哈希值时,更容易遭到碰撞攻击。攻击者利⽤碰撞攻击的⽅式,逆向获取Hash签名的重要数据
建议:使⽤SHA-256哈希算法
11.中危 主机名弱校验
详情:使⽤HTTPS协议时,客户端必须验证服务器是真实合法的⽬标服务器。Android默认的HTTPS证书验证机制不接受不可信的连接,因⽽是安全的,但Android允许开发者重定义证书验证⽅法。当⾃定义的HostnameVerifier类,未检查证书中的主机名与使⽤该证书的服务器的主机名是否⼀致或被配置为接受任何服务器主机名时,会存在客户端与仿冒服务器通讯的风险,可能导致账号、密码等敏感信息被窃取,甚⾄通信内容被篡改。
建议:利⽤HostnameVerifier⼦类中的verify函数,校验服务器主机名的合法性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。