Pegasus – 针对iOS设备的APT攻击分析

技术 作者:盘古 2016-08-26 06:58:00
苹果在今天凌晨突然推送了iOS9.3.5更新,并且更新日志中提到修补了三个安全漏洞。随后Citizen Lab发布文章指出这三个0day被用于针对特殊目标远程植入后门,而Lookout则给出了对Pegasus的具体技术报告。 远程植入的流程是首先引导用户访问指定页面,此时会触发webkit漏洞(CVE-2016-4657)获取代码执行权限,随后利用漏洞(CVE-2016-4655)泄露内核的加载基地址,最后触发漏洞(CVE-2016-4656)获取内核态的代码执行权限。在获取最高权限后,Pegasus还会进一步针对persistence处理,保证系统重启后后门仍然工作。 内核漏洞 通过攻击流程可以知道两个内核漏洞均是在浏览器内被触发的,同样在APP沙盒规则内也能利用该漏洞。盘古发布的9.3.3越狱同样也是利用了沙盒内的漏洞,苹果非常迅速的推送了9.3.4的更新。正如我们在今年Blackhat上讨论的,沙盒内直接攻击内核的漏洞将是苹果用户面临的重要风险,苹果的安全响应也在提速。 其中CVE-2016-4655漏洞是由于读取栈数据时缺乏边界检查,导致能够获取栈上额外的数据,而函数的返回地址一般会被保存在栈上,因此达到泄露内核地址的目的。 而CVE-2016-4656漏洞则是一个典型的UAF漏洞,通过精心构造数据可以在Free之后先分配对象来重新占用之后再触发Use,也可以进一步转换成double free。 Persistence Pegasus在设备重启后设法通过命令行的/System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc来解析js脚本重新触发webkit的漏洞,随后再同样溢出内核漏洞获取内核控制权。为了能够让jsc解析指定的文件,Pegasus会将rtbuddyd服务替换成jsc,trbuddy的服务配置内嵌在launchd的__bs_plist中:
        rtbuddy
        
            ProgramArguments
            
                rtbuddyd
                --early-boot
            
            PerformInRestore
            
            RequireSuccess
            
            Program
            /usr/libexec/rtbuddyd
        
因此只要将–early-boot指向漏洞利用的js文件即可在系统重启的时候获取控制权。 数据获取 除了常规的个人数据获取(例如地理位置、短信、联系人、邮件等),Pegasus还针对多种流行的APP开发了信息截获的插件,例如Skype,Telegram,Whatsapp,Viber等。值得注意这些插件开发都是基于cydia的substrate的框架,因此Pegasus安装时自带了改名的substrate动态库。 APT攻击检测 通过这次事件可以看到信息安全威胁已经从桌面系统的APT攻击逐渐过渡到针对移动设备的APT攻击,必定也给安全产商们带来更多的挑战。而iOS设备的特殊之处在于它的封闭性,虽然一定程度上提高了iOS的安全性,但也阻止了其它厂商对其的检测能力。架构的安全性并无法完全阻止依赖漏洞为主的APT攻击,而只能提高攻击的成本。 根据公开的资料可以推断这次APT攻击被检测到是基于跟踪可疑URL发现的,假设后门作者没有出售高达300份的使用权,由于缺乏临机检测的能力就很难发现这种隐秘的强针对性的APT攻击。 针对iOS设备临机检测难的困境,盘古研发的APT检测产品首先通过利用漏洞攻破苹果的封闭体系获取系统最高权限,随后对整个系统的文件、配置、运行状态等进行深入扫描。扫描功能包括设备配置检测、程序签名证书检测、系统应用检测、进程信息检测、越狱状态检测、越狱插件检测、设备风险项检测、系统文件差异化检测、网络端口检测。最后能够生成结论报告并对扫描出的高危风险项进行自动提取以供后续分析。 根据掌握的Pegasus APT攻击的信息,我们的APT检测产品能够在多项检测内容中发现该后门并提取样本。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接