大家好,又见面了,我是你们的朋友全栈君。
OWASP Mobile Top 10 相对于Web的OWASP Top 10来说,个人觉得描述的相对简单多,并且安全测试的时候的可操作性也不是太强。本来打算个人整体捋一遍的,但因为项目时间的问题,前面四个章节安排给了别人去负责,我只负责后面的六章(所以标题写了后篇)。下面我把个人的测试方法简单叙述一下。下面可能有些测试点不全或者有瑕疵,欢迎纠错。。。。
OWASP Mobile Top 10 :
- M1 – 平台使用不当
- M2 – 不安全的数据存储
- M3 – 不安全的通信
- M4 – 不安全的身份验证
- M5 – 弱加密
- M6 – 不安全的授权
- M7- -客户端代码质量
- M8- -代码篡改
- M9– 逆向工程
- M10- 无关功能
测试工具:
adb ,dexjar,apktool.jar,signapk.jar,jd-gui,Android Killer,hijackActivity,adb/dorzer,Bytecode View, Burp,Fortify
测试内容:
M5 – 弱加密
- 是否内置代码加密/硬编码
- 加密密钥管理
- 是否合理加密算法
- 是否使用广为人知的加密加密算法
- 是否过时/不安全
测试方法:
1.静态代码审计,代码里面check(这属于白盒,正常只有个apk的话这步就不需要了)
2. 反编译check
2.1 反编译apk
1. 将apk格式后缀缓存.zip后缀 2. 查看class.dex文件,然后将其转换成jar包格式
3. 命令行解包:d2j-dex2jar.bat E:APP Security Testing***classes.dex -o E:APP Security TestingOutPutclasses_jar2dex.jar
注意:这边jar包名字一定要跟上面一样
4. 查看生成的jar文件,然后用jd-gui打开
5. 正常代码混肴或者加固后,具体的是看不到的。
6. 但往往代码加固不牢的情况下,我们还是可以查看到,在反编译的代码中搜索关键字(Encode/Decode/Password/Key)
7. 查看代码中具体调用这些弱密码的代码段,判断使用是否合理。
8. 关于硬编码和Key同样,确定是不是可以在代码中直接能找到。
M6 – 不安全的授权
- 不安全的应用程序权限设置
- 冗余授予的权限
- 存在不安全的直接对象引用(IDOR)漏洞
测试方法:
1. 这边使用的Android Killer,因为这个工具会把权限这块明显的列出来(Andriod killer的使用有点傻瓜式的,这边我没有具体写出来)
上面标色的权限部分,根据业务需要分别check一下,看一下是不是真的是必须的。
2. 冗余授权也可以在这边找到,但也可以用另外一个工具drozer查看
3. 存在不安全的直接对象引用(IDOR)漏洞
这个问题测试的时候需要app本身,而且需要Burp截断,截断后修改主体信息,看能否修改成功,这边有点像测试防篡改和防重放的测试。 可以重点测试敏感信息,身份认证相关的API。
未完待续:APP 安全测试(OWASP Mobile Top 10)–后篇之二
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139477.html原文链接:https://javaforall.cn