本APP安全测试系列分为5个篇章,这五个篇章的内容可以作为APP测试的样例,在遇到APP测试工作时,可以直接依次按照教程的步骤进行测试,最后编写APP测试报告即可。
-
测试前准备
-
身份鉴别
-
数据传输与存储
-
容错与客户端保护
-
业务及Web应用安全
话不多说,直接开始第四篇,容错与客户端保护:
1、Web应用容错测试(风险等级:高)
检查方法:输入各种字符,和SQL语句,查看是否输入成功
检查过程:在该APP的应用商城搜索输入dc”_sfx’==提示输入错误,非法字
符输入。此项测试安全。
攻击方法:黑客可以通过输入非法字符,进行SQL注入,向web中写入恶意代码。
修复建议:对涉及到的web输入,程序应对数据输入长度、格式进行限制。
2、客户端APK文件签名验证测试(风险等级:高)
检查方法:使用jdk进行签名验证。
检查过程:使用jdk进行签名验证,显示jar已验证,此项测试安全。
攻击方法:若APK文件未进行签名验证,则黑客可以通过伪造用户,进行非法
操作。
修复建议:完善APK验证机制。
3、客户端逆向工程测试(风险等级:中)
检查过程:通过反编译可以看到应用只有初始化时使用了java,核心内容全是通过调用so文件来运行的。
攻击方法:黑客可以通过逆向得到的源代码,进行代码分析,挖掘其中存在的
漏洞。
修复建议:
①建议Apk发布时必须进行混淆处理,使得反编译后的代码的可读性大幅
度减少。
②程序中使用加密处理后的资源文件,以防止重要的资源被盗用或泄漏
③将所有的代码编译为SO文件,通过调用SO文件运行APK
4、客户端篡改测试(风险等级:高)
检查方法:修改反编译的代码,并重新打包成apk文件,查看更改后的apk是否能正常安装运行。
检查过程:修改客户端资源文件重新打包,再安装完成后再打开客户端可使用。
攻击方法:黑客通过逆向,修改或添加代码,重新封装成apk安装包。当用户通过错误途径下载该安装包,就掉入黑客的陷阱。
修复建议:
1、对客户端进行加密和代码混淆处理,防止恶意用户进行反编译。
2、客户端验证采用多种验证机制,增加破解的难度。
5、客户端安装目录权限测试(风险等级:中)
检查方法:查看测试APP的目录权限
检查过程:经测试,其他人只有执行权利,未涉及读写权利。此项测试安全。结果如图所示。
攻击方法:如果“其他用户” 有读、写权限,黑客可以进行文件修改,或者阅读、搜索敏感信息
修复建议:将“其他用户”的权限设为仅执行。
6、日志输出检测(风险等级:高)
检查方法:查看日志,看是否有敏感信息
检查过程:输入账号、密码时,动态查看日志,无敏感信息。
攻击方法:攻击者可以通过日志分析,可以得到账号用户密码等敏感信息。
修复建议:
1.建议客户端在上线之前删除掉所有的开发Debug接口,保证在客户端在正常进行所有业务逻辑时Logcat中不会打印任何有关用户和服务器的敏感信息。(阻止日志被监听)
2.日志中账号密码等敏感信息需要加密处理。
7、模拟器运行测试(风险等级:中)
检查方法:在“夜神”、“逍遥游”等手机模拟器中安装该APP,查看是否能正常安装、运行。
检查过程:在“夜神”虚拟机安装测试APP,安装成功,并能正常使用。此项测试存在安全漏洞。
攻击方法:攻击者能够通过挂载模拟器等方法调试客户端。
修复建议:客户端添加识别是否模拟器的验证,如识别CMWAP手机号码等。
关注公众号了解更多资讯
原文始发于微信公众号(纵横安全圈):APP安全测试系列-容错与客户端保护
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论