Android App 程序代码安全测试要求与方法

2020-7-15 宋宋宋

Android App 程序代码安全测试要求与方法:


1.运行环境检测:

1.1 Android ROOT环境:

    在Android ROOT环境中运行监测,包括模拟器和真机,以是否可安装,是否可运行核心功能为评判标准,结论为通过与未通过。

1.2 Android 模拟器

    在Android模拟器中安装程序,以是否可安装,是否能运行核心功能为评判标准,结论为通过与未通过。

1.3 Android 挂钩框架 (Xposed,Cydia Substrate,Frida)

    将APP安装在装有挂钩框架的环境中,以是否有提示,是否能运行核心功能为评判标准,结论为通过与未通过。


2.防反编译检测

2.1 反编译工具 (Apktool,dex2jar,JEB)

    使用反编译工具对apk进行反编译,以是否有防逆向,反汇编为评判标准(dex,so)结论为通过与未通过。

2.2 代码混淆

    对App反编译,以其类,字段,方法是否混淆处理为评判标准,以及混淆强度,例如dex文件的类名,函数名,字段,方法的混淆比例,so文件的类名,函数名,字段,方法的混淆比例,结论为通过与未通过。

2.3 关键代码保护

    使用反编译工具对apk进行反编译,分析APP核心功能的代码逻辑是否暴漏,例如注册,登陆,支付过程,数据加密,数据通讯等关键代码结论为通过与未通过。

    


3.防篡改检测

3.1 程序文件防篡改

    主要检查APP启动时,是否进行完整性校验(代码,资源文件),以篡改核心数据后,能否正常运行为评判标准结论为通过与未通过。

3.2 内存数据防篡改

    主要检查APP运行时,内存中关键代码和核心数据,被篡改后,是否影响逻辑安全为评判标准结论为通过与未通过。


4.防调试检测

4.1 调试工具防护 (IDA,gdb)

    以APP是否可以利用动态调试工具加载调试为评判标准结论为通过与未通过。

4.2 调试行为防护

    以APP是否可以通过动态调试,获取关键代码与敏感数据为评判标准结论为通过与未通过。

4.3 内存防护

    检测是否有内存防护功能,例如防内存转储结论为通过与未通过。


5.防注入检测

5.1 防注入第三方文件 (so)

    检测APP进程空间是否可以被注入第三方动态so文件结论为通过与未通过。


参考《Android应用安全测试与防护》 转载需注明本页面url及参考书籍。

标签: Android

发表评论:

密码站 2013 - 2020 | 辽ICP备17016418号-1