APP 安全测试(OWASP Mobile Top 10)–后篇之一

2022-08-23 20:11:40 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

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. 是否内置代码加密/硬编码
  2. 加密密钥管理
  3. 是否合理加密算法
  4. 是否使用广为人知的加密加密算法
  5. 是否过时/不安全

测试方法:

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 – 不安全的授权

  1. 不安全的应用程序权限设置
  2. 冗余授予的权限
  3. 存在不安全的直接对象引用(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

0 人点赞