APP端安全测试
安装包测试
1.APP发版前是否会进行加固和混淆,目的是为了能否反编译代码
常见的反编译工具: dex2jar、jd-gui
2.安装包是否有签名(IOS端可忽略)
3.完整性校验
常用做法:检查文件的MD5值,一般会用自动化去校验
4.权限设置检查
限制没必要的权限获取,如通讯录、定位、文件夹等权限,若没必要,需要去除
可在manifest文件检查
敏感信息测试
1.数据库是否包含明显信息,避免账户被盗用等
如:缓存、cookie = jsessionid=XXXXX
logout之后需要对敏感信息删除、cookie类数据,需要设置合理的过期时间
2.日志当中是否包含敏感信息
包括APP端和server端
3.配置文件是否包含敏感信息
软键盘劫持
第三方应用劫持 银行卡密码、支付密码,IOS8以上也需要注意(因IOS8以上支持了第三方输入法安装使用)
账户安全
1.密码明文存储
密码,SMScode(验证码)
2.密码传输是否需要加密
对称加密与非对称加密
3.账户锁定策略
用户密码输入次数过多时,会进行临时锁定
4.同时会话策略
当其他手机登录该账户时,弹出提示
5.注销机制
数据通信安全
1.关键信息是否加密
2.关键链接是不是用来安全通信(HTTPS)
3.是否对数字证书合法性进行验证(证书校验、签名校验)
4.是否校验数据合法性
组件安全测试
activity、service、contentProvider、broadcast可通过drozer去调用
服务端的接口测试
1.SQL注入
2.XSS(拖库)
3.CSRF
SQL<XSS<CSRF