iOS APP黑盒/灰盒审计checklist

本篇文章介绍如何对一款iOS应用进行基本的安全审计,主要方式为黑盒或灰盒的手动审计。注意红色字体部分为做安全审计时的checklist。
 
一、IPA安装包分析(静态分析)
1. Mach-O可执行文件分析(地址为 /private/var/mobile/Application/[GUID]/Appname.app/)
注意对于来自APP store的mach-o文件需要先解密
 
   

clutch AppName

 
   

strings Mach-OFileName

 
   

class-dump-Mach-OFileName > FileName_classdump.h

$THEOS/bin/logif.pl FileName_classdump.h>tweak.xm

 
   

otool -tV Mach-OFileName > FileName_assembledump

 
    

cycript

 
     

 

检查对象:越狱/非越狱设备
检查列表:
1)是否开启PIE功能
待续。。。
检查工具:class-dumpclass dump zIDA Pro IDA plugin:runtime tracerHopper ,cycript ,otoollsof

 

 
2. 应用主目录文件分析
App store应用存放在/private/var/mobile/Application/[GUID]中
(1)Documents文件夹
用户存档文件,检查是否有不安全的文件存储,例如明文存储,base64编码存储,可以用 iToolsGUI工具检查

(2)Library文件夹
1) Library/Preferences/  偏好设置文件,一般为plist格式,可以用 plist editor Pro for windowsGUI工具打开,也可以直接用 plutil命令行工具编辑
 
   

plutil plistFileName

2) Library/Caches/ 保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,为永久保存,一般为sqlite3格式,可以用 SQLite Database BrowserGUI工具打开,也可以直接用 sqlite3命令行工具编辑。当然也有plist格式存储的,查看方法见上面。
该文件夹下有个 Library/Caches/Snapshots/文件夹,用于存储应用的屏幕快照。在进行源码审查时,请检查keyWindow.hidden选项的设置,避免存储敏感应用屏幕
 
   

sqlite3 databasename

3) Library/Cookies/  保存Safari浏览器和iOS应用的持久性cookie,一般文件名为Cookies.binarycookies, 我们已经很熟悉PC上的cookie存储了,例如IE将持久性cookie以明文文本的形式存储在临时目录中,而firefox与chrome则采用sqlite3数据格式存储。我们可以使用SecurityLearn提供的python脚本工具 Cookies.binarycookies Reader 读取其中的内容
 
   

python BinaryCookieReader.py Cookies.binarycookies

4) Library/Webkit 保存webkit本地存储文件,有的应用没有该文件夹
 
(3)AppName.app文件夹
1)Info.plist文件 APP相关信息
2)iTunesMetadata.plist文件 购买者信息文件
3)SC_Info文件夹, 签名相关文件
4) _CodeSignature文件夹,签名相关文件
5)其他资源文件
 

 

 
   

 

检查对象:越狱/非越狱设备
检查列表:
1)重要信息是否加密存储
2)本地存档是否可修改(包括明文格式,base64格式,二进制格式),检查应用是否会检测存档的完整性
3)本地存档是否可替换,用低版本存档替换高版本存档(往往低版本应用的安全性都不好,因此可作弊的几率大),不同id存档替换(例如用高分存档替换低分存档),检查应用是否会检测存档的唯一性
工具:各种文件格式对于的编辑器 iTools  、 plist editor Pro for windows SQLite DatabaseBrowser  Cookies.binarycookies Reader UltraEdit

 

 
二、内存数值分析(动态分析)

 

 
   

 

检查对象:越狱设备
检查列表:
1检查内存中游戏进程中的重要数值是否可定位修改
工具:八门神器,gdb

 

 
三、APP store IPA破解(动态分析)
 
   

 

检查对象:越狱设备
检查列表:
1 
app storeIPA是否可破解,应用是否对破解版本
 
IPA进行检测处理
工具: Clutch

 

 
四、支付分析(动态分析)

1. IAP (in-appstore-purchase)

 

 
   

 

详见in-appstore.com免费内购方法的完整分析

检查列表:
1)对越狱设备,IAP Cracker是否有效
2)对越狱设备,IAP Free是否有效
3)对越狱设备,LocalIAPFree是否有效
4)对越狱设备,俄罗斯伪造苹果服务器是否有效
5)对越狱设备,xCon+IAP Cracker是否有效
6)对越狱设备,xCon+IAP Free是否有效
7)对越狱设备,xCon+LocalIAPFree是否有效
8)对越狱设备,xCon+俄罗斯伪造苹果服务器是否有效
9)对非越狱设备iOS 5.1.1俄罗斯伪造苹果服务器是否有效
工具:IAP crackerIAP FreeLocalIAPFreexCon

 

 
2. 第三方支付平台
 
   

 

可参考  支付漏洞的三种常见类型
分析方法主要从通信包分析和对API接口进行源码审计
待续。。。

 

 
五、通信包分析(动态分析)
1. http/https
 
   

 

1 HTTP
工具: BurpSuite Fiddler
 
 
2 HTTPS
 
检查列表: web应用漏洞
1 关注移动广告平台是否收集移动设备中的隐私数据 (目前发送设备 UDID Mac 地址貌似时稀松平常的事情,但发送设备内部应用安装列表,联系人方式就需要禁止了)
2 0Auth安全性
待续

 

 
 
2 sockets

 

 
   

 

工具: wireshark ADVsock2pipe TCPdump Mallory  
检查列表:(主要是中间人攻击)
1)封包是否可以修改
2封包是否可以重放

 

 
六、后续工作
前面介绍的都是手动的从应用的各个方面(文件系统,通信,可执行文件,业务逻辑)进行安全审计,比较期望将来能有一款像web应用安全审计/漏洞检测那么成熟的自动化工具。目前为止,我知道的唯一有作用的iOS半自动化审计工具是 iAuditor——iOS APP安全审计工具,这款工具,存在目前市场上免费工具共有的缺陷,那就是过于理论,对实际APP的安全审计有点鸡肋,但聊胜于无。 (欢迎推荐好的自动化/半自动iOS应用安全审计工具)
总的来说,对iOS应用安全审计而言,除了黑盒/灰盒审计外,再就是对源码进行的白盒审计,HP的 Fortify SCA貌似还蛮成熟的,我也收集了一些国外安全团队的 源码审计白皮书, 但总觉得对于真实的iOS应用都过于理论 计划后期写一篇对真实应用有参考作用的iOS应用源码审计checklist,或者能更近一步编写一个开源的自动化审计工具。加油

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值