移动APP安全测试用例指南
1、移动应用安全测试内容
类别 | 检测项 | 测试内容 |
本地客户端 | 反编译 | √ |
安装包签名 | √ | |
应用完整性校验 | √ | |
组件导出安全 | √ | |
本地敏感信息安全 | √ | |
键盘记录保护 | √ | |
拒绝服务 | √ | |
代码加固(混淆) | √ | |
ROOT检测 | √ | |
通讯安全 | 敏感信息未加密传输 | √ |
敏感信息加密方式不安全 | √ | |
访问控制(URL是否只能手机访问) | √ | |
短信重放(抓包工具抓包重放) | √ | |
安全策略设置 | 密码复杂度策略 | √ |
认证失败锁定策略 | √ | |
会话超时策略 | √ | |
UI信息泄露 | √ | |
账号登录限制(能否在两个设备上同时登录同一个帐号) | √ | |
安全退出策略 | √ | |
业务和服务器 | 参考业务安全测试要点和Web安全测试规范 |
2、移动安全测试用例(手工安全检测)
编号 | APP_
SEC_TEST_001 |
---|---|
测试用例名称 | APK文件反编译测试 |
测试目的 | 确认APK文件是否可以进行反编译(是否进行安全加固) |
用例级别 | 高 |
测试条件 | 1、测试环境和测试工具已准备好 |
执行步骤 | 1、使用工具apktool对应用APK包进行反编译,如可以进行第2步骤。 2、将APK后缀名改为.rar或则 .zip并解压,得到classes.dex文件 3、用dex2jar和classes.dex文件生成classes_dex2jar.jar文件。 4、用jd-gui打开classes_dex2jar.jar文件。 5、确认源码是否进行混淆。 |
预期结果 | APK无法进行反编译,如可进行反编译,源码也已进行混淆处理。 |
备注 | |
测试结果 |
编号 | APP_
SEC_TEST_002 |
---|---|
测试用例名称 | APK安装包签名测试 |
测试目的 | 确认移动APP的安装包是否进行签名 |
用例级别 | 高 |
测试条件 | 1、已安装JDK |
执行步骤 | 1、使用工具jarsigner 对APK包进行验证 2、观察并确认返回结果 |
预期结果 | jar已验证,即证明安装包签名正常。 |
备注 | |
测试结果 |
编号 | APP_
SEC_TEST_003 |
---|---|
测试用例名称 | APK文件完整性校验 |
测试目的 | 验证APK文件的完整性 |
用例级别 | |
测试条件 | 1、测试环境和工具准备完成 |
执行步骤 | 1、使用apktool工具对APK包进行反编译 2、修改其中的某个文件(如:修改assets目录下的图片文件) 3、使用apktool工具重新打包 4、使用梆梆助手进行再签名 5、安装重新签名后的APK包 6、确认是否可正常安装 |
预期结果 | 不能正常安装 |
备注 | |
测试结果 | |
编号 | APP_
SEC_TEST_004 |
---|---|
测试用例名称 | APK包的组件导出安全测试 |
测试目的 | 检测APK包的activity、Service、Content Providers、Broadcast Receivers等组件的攻击面 |
用例级别 | |
测试条件 | 1、测试环境和工具准备完成 |
执行步骤 | 1、使用apktool工具对APK包进行反编译,获取AndroidManifest.xml文件 2、使用Drozer进行APK包的攻击面测试。 |
预期结果 | 确认不存在配置问题 |
备注 | |
测试结果 |
编号 | APP_
SEC_TEST_005 |
---|---|
测试用例名称 | 本地敏感信息安全-logcat测试 |
测试目的 | 检测本地客户端是否有敏感信息泄露 |
用例级别 | |
测试条件 | 1、测试环境和工具准备完成 |
执行步骤 | 1、进入模拟器设备(手机)shell界面 2、操作模拟器中的APP应用(比如:登录等功能) 3、执行logcat命令,可根据关键字搜索,如:logcat | grep “keyword” 4、观察并分析输出结果。 |
预期结果 | 确认不存在敏感信息泄露。 |
备注 | |
测试结果 |
编号 | APP_
SEC_TEST_006 |
---|---|
测试用例名称 | 本地敏感信息安全-ContentProvider测试 |
测试目的 | 检测本地客户端是否有敏感信息泄露 |
用例级别 | |
测试条件 | 1、测试环境和工具准备完成 |
执行步骤 | 1、进入模拟器设备(手机)shell界面 2、执行logcat命令,可根据关键字搜索,如:logcat | grep “keyword” 3、观察并分析输出结果。 |
预期结果 | 确认不存在敏感信息泄露。 |
备注 | |
测试结果 |
编号 | APP_
SEC_TEST_007 |
---|---|
测试用例名称 | 本地敏感信息安全-Sqlite数据库存储数据测试 |
测试目的 | 检测本地客户端是否有敏感信息泄露 |
用例级别 | |
测试条件 | 1、测试环境和工具准备完成 |
执行步骤 | 1、进入模拟器设备(手机)shell界面 2、执行logcat命令,可根据关键字搜索,如:logcat | grep “keyword” 3、观察并分析输出结果。 |
预期结果 | 确认不存在敏感信息泄露。 |
备注 | |
测试结果 | |
编号 | APP_ SEC_TEST_007 |
---|---|
测试用例名称 | |
测试目的 | |
用例级别 | |
测试条件 | |
执行步骤 | |
预期结果 | |
备注 | |
测试结果 |
正文到此结束