欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

浅谈iOS应用安全自动化审计

来源:腾讯安全应急响应中心 作者:佚名 时间:2016-06-28 TAG: 我要投稿

33c317a61c26c0ec7f04b57445870b5b

640

前言

此前有人统计过2015年漏洞最多的产品,苹果的OSX与iOS系统分别占据第一二名,虽有人怀疑统计数据可能存在重复的不准确情况,但相信大趋势是不会变的。

2015年在iOS平台上也发生过不少安全大事,比如“XcodeGhost”事件、iOS9越狱、“iBackDoor“、“YouMi“事件等等,尤其是XcodeGhost影响甚大,注定要在iOS安全史上留下重重的一笔。

结合CVEDetails站点上对iOS系统漏洞的统计情况【图1】,整体处于上升的趋势,尤其是2015年增长迅速,是2014年的3倍多,由此也可以预见iOS平台上的安全漏洞正在快速增长,iOS应用亦然。

640

腾讯也有很多iOS应用产品,基本上android上有的,对应的同款应用在iOS上也会有。目前Android应用的审计技术在业界都已经于相对成熟,而iOS应用漏洞审计系统在国内还是比较欠缺的,一些公司可能内部有开发,只是未公开。

此前腾讯iOS产品也是未能做有效的上线前审计,遗留一些安全隐患,因此我们专门研发了一款针对iOS应用的自动化审计系统。除了日常的应用审计外,同时也是希望它能够在安全应急上起到辅助的作用。本文主要是对这部分技术进行一些粗浅的探索,以希望可以起到抛砖引玉的效果。

开发环境

• Mac OS X 10.11

• Python 开发环境:PyCharm5

• Objective-C 开发环境:Xcode7 + iOSOpenDev

•支持 iOS 8.1 以上的越狱系统

系统架构

整个iOS应用审计系统主要分两部分:静态审计和动态审计【图2】。静态审计包括Bin文件漏洞审计、第三方库检测以及私有API静态检测等功能;动态审计主要通过Hook去监控网络数据包、SSL中间人检测,以及实现ipa的动态安装和运行、文件上传下载等基本功能。

1

基本审计功能

通过静态审计提取基本的文件信息,并以较好的展示效果输出到报告页面上【图3】,也方便后面的二次扫描,以及鉴别不同的ipa文件。

2

在静态审计里最重要的就是Bin文件漏洞检测功能【图4】,像编译选项和使用函数的信息,借助otool即可很容易检测。

应用漏洞检测主要针对目前已公开的漏洞/恶意后门进行检测,比如XcodeGhost、iBackDoor、AFNetworking等等,先通过分析样本来制定静态检测规则,多数通过关键字符串即可检测出,而对于AFNetworking SSL中间人漏洞,笔者是采用检测漏洞相关的ARM指令。

3

下面是AFNetworking某个漏洞版本的ARM指令【图5】,不同版本会有一定差异,所以还是需要对比多个不同版本,提取通用的检测规则(单纯检测下图标红的ARM指令会误报)。除此之外,还要对比修复版本的代码,避免误报。

4

由于iOS应用为了兼容性,都会包含32位与64位程序,很少会单纯只使用64位编译的应用,所以检测时可以暂不用考虑64位问题。

除图4上的应用漏洞之外,还支持自定义审计功能【图6】,主要是为了在应急时,可以及时即时制定规则进行批量扫描【图7】,我们也专门针对公司业务情况添加了一些规则,此处就不赘述了。

5

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载