概况
尝试了一些方法,官网的isRoot(), getSignature(),isSetProxy()方式,android端已修复,ios端无效,测试未通过,已经android的离线打包方式解决Activity组件问题,还是差点意思,公司无ios开发,也不具备ios测试环境,着实有点棘手,碰到过的友友有什么解决方案可以学习下吗
ios端:
问题1.允许越狱设备登录漏洞。
漏洞危害:
客户端允许越狱手机登录,通常已经越狱的设备会提供给恶意应用查看或修改自身配置文件、缓存文件等的相关权限,以及对应用进行非法操作;而恶意攻击者也常使用已经越狱的设备对应用发起攻击。
安全建议:
检测客户端是否存在cydia等越狱软件,设备上存在该类应用即是越狱设备。如果检测到时越狱设备应立即退出客户端的运行,或提醒用户当前环境存在风险。
问题2.未作反编译与动态调试保护漏洞。
漏洞危害:
可能会带来:1. 内购破解风险:越狱(插件)、存档破解(iTools工具替换文件)、第三方软件修改。2.网络安全风险风险:截获网络请求,破解通信协议并模拟客户端登录,伪造用户行为,对用户数据造成危害。3.应用程序函数PATCH破解风险:利用FLEX 补丁软件通过派遣返回值来对应用进行patch破解。4.源代码安全风险。
安全建议:
1、关键函数、业务代码做混淆加固。
2、检测运行时的ptrace状态,禁止用户使用反编译工具动态调试。
androidd端:
问题3:Activity组件泄露漏洞
漏洞危害:
可能会带来:1. 内购破解风险:越狱(插件)、存档破解(iTools工具替换文件)、第三方软件修改。2.网络安全风险风险:截获网络请求,破解通信协议并模拟客户端登录,伪造用户行为,对用户数据造成危害。3.应用程序函数PATCH破解风险:利用FLEX 补丁软件通过派遣返回值来对应用进行patch破解。4.源代码安全风险。
安全建议:
1、如果Activity组件不需要与其它系统共享数据或交互,应在AndroidManifest.xml 配置文件中将该Activity组件的android:exported 属性值设置为false。如果Activity组件需要与其它APP共享数据或交互,应对Activity组件进行权限控制和参数校验。
2、在界面切换时,检测下一界面的Activity类,如不是被测系统内的界面,则提示并退出。
解决方式:
问题1,2,3:
分别使用了官网的plus.navigator.isRoot(), plus.navigator.getSignature(), plus.networkinfo.isSetProxy()方式,androidd端已修复,ios端无效,测试未通过,越狱问题目前又加入代码片段,判断文件方式
var jailbreakFiles = [
"/Applications/Cydia.app",
"/Library/MobileSubstrate/MobileSubstrate.dylib",
"/bin/bash",
"/usr/sbin/sshd",
"/etc/apt"
];....省略部分代码
还未测试
问题4:
使用Android Studio离线打包,根据官网文档明文配置AndroidManifest.xml,第三方sdk的配置,到支付的时候又碰到问题
,难道ios的问题也只能通过离线打包解决么....
小生复小生
遇到同样得问题,iOS平台plus.navigator.isRoot方法判断不准确导致无法通过检测
2024-02-23 16:28