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的话这步就不需要了)

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

2. 反编译check

     2.1 反编译apk

         1. 将apk格式后缀缓存.zip后缀
         2. 查看class.dex文件,然后将其转换成jar包格式

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

   3. 命令行解包:d2j-dex2jar.bat  E:\APP Security Testing\***\classes.dex -o E:\APP Security   Testing\OutPut\classes_jar2dex.jar

    注意:这边jar包名字一定要跟上面一样

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

   4. 查看生成的jar文件,然后用jd-gui打开

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

 5. 正常代码混肴或者加固后,具体的是看不到的。

 6. 但往往代码加固不牢的情况下,我们还是可以查看到,在反编译的代码中搜索关键字(Encode/Decode/Password/Key)

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

 7. 查看代码中具体调用这些弱密码的代码段,判断使用是否合理。

 8. 关于硬编码和Key同样,确定是不是可以在代码中直接能找到。


M6 - 不安全的授权

  1. 不安全的应用程序权限设置
  2. 冗余授予的权限
  3. 存在不安全的直接对象引用(IDOR)漏洞

测试方法:

    1. 这边使用的Android Killer,因为这个工具会把权限这块明显的列出来(Andriod killer的使用有点傻瓜式的,这边我没有具体写出来)

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

      上面标色的权限部分,根据业务需要分别check一下,看一下是不是真的是必须的。

    2. 冗余授权也可以在这边找到,但也可以用另外一个工具drozer查看

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

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

   3. 存在不安全的直接对象引用(IDOR)漏洞

     这个问题测试的时候需要app本身,而且需要Burp截断,截断后修改主体信息,看能否修改成功,这边有点像测试防篡改和防重放的测试。 可以重点测试敏感信息,身份认证相关的API。


未完待续:APP 安全测试(OWASP Mobile Top 10)--后篇之二

相关文章: