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

深入探索在野外发现的iOS漏洞利用链(一)

来源:本站整理 作者:佚名 时间:2019-09-09 TAG: 我要投稿

系列前言
Project Zero的任务之一是分析0-day漏洞,我们经常与其他公司合作寻找安全漏洞并提交,最终目标是希望推动流行系统架构的安全性改进,以帮助保护遍布各处的最终用户。
在今年早些时间,Google的威胁分析团队(TAG)发现了一部分被攻击的网站。这些被攻击者入侵的网站利用iPhone的0-day漏洞对访客开展无差别的水坑攻击。
考虑到这些攻击行为没有特定目标,用户只需要访问被攻陷的网站即可导致设备被攻击,一旦攻击成功,就会安装植入的恶意监控工具。我们预计,这些网站每周会存在数千名访客用户。
威胁分析团队成功发现五个独立、完整并且独特的iPhone漏洞利用链,这些漏洞利用链覆盖从iOS 10到最新版本iOS 12的几乎所有版本。上述事实表明,可能有一个恶意组织持续致力于攻击某些社区的iPhone用户,这一过程至少长达两年之久。
我们将对漏洞的根本原因进行研究,并讨论我们在Apple的软件开发生命周期中得出的一些结论。我们在这里要强调的漏洞根本原因并不新鲜,并且经常会被忽视——在代码中,我们发现了一些似乎从未生效的代码,似乎没有经过良好的质量控制,或者在发布之前没有进行完善的测试或审查。

与威胁分析团队合作,我们根据这五个漏洞利用链发现了总共14个漏洞:7个位于iPhone的Web浏览器中,5个位于内核中,2个是单独的沙箱逃逸漏洞。经过我们的分析,发现至少有一个特权提升漏洞利用链仍然属于0-day,并且在发现时还没有发布对应的补丁(CVE-2019-7287和CVE-2019-7286)。我们在2019年2月1日向Apple报告了这些问题,导致在7天后,Apple在2月7日发布了iOS 12.1.4版本升级。我们还与Apple分享了详细信息,这些信息在2019年2月7日已经公开披露。
现在,经过近几个月来对每个漏洞利用链几乎逐字节的认真分析,我们现在已经可以分享关于iPhone漏洞利用链真实利用情况的分析。
这一系列文章将包括:
(1)五个权限提升漏洞利用链的详细分析;
(2)攻击者所使用的植入工具的详细分析,包含我们在测试设备上运行的植入工具演示,通过逆向工程分析与命令和控制(C2)服务器通信过程,演示植入工具的功能(例如:实时窃取iMessages、照片、GPS位置等个人数据);
(3)合作团队成员Samuel Groß对用于初始入口点的浏览器漏洞的分析。我们的所有分析成果,对于攻击者来说无疑是一次打击。然而,此次分析的是我们已经监测到的恶意活动,但几乎可以肯定的是,还有一些尚待发现的恶意活动。
我们建议最终用户根据这些设备的安全性情况做出风险决策。目前的情况是,如果您成为被攻击的目标,安全保护绝对不会完全消除被攻击的风险。攻击者很可能会发动针对某个地理区域或针对某个种族群体的攻击,所有人都有可能成为目标。用户应该意识到,大规模的漏洞利用仍然存在,尽管当今的现代生活已经将移动设备作为不可或缺的一部分,但大家也应该意识到移动设备也有可能受到攻击,用户的每一个行为都可能会被上传到数据库中,并有可能被攻击者滥用。
我希望大家能够对于漏洞利用开展广泛地讨论,而不仅仅关注于所谓的“价值百万的漏洞”,并尝试如何能够发现下一个潜在的“百万漏洞”。我并不会讨论这些漏洞是否价值百万或者价值千万,与此相反,我在分析的过程中不会体现出这些漏洞的经济价值,而是建议大家忽视这一点,尽可能实时发现并密切监测攻击者的完整漏洞利用活动。
本系列文章共有7篇,前5篇分别详细分析5个iOS漏洞利用链,第6篇将分析JSC漏洞利用,第7篇是对恶意植入攻击工具的详细分析,请大家持续关注。
 
本文概述
在对漏洞利用进行分析的过程中,我们发现证据表明这些漏洞利用链可能与其支持的iOS版本同时期编写。也就是说,攻击者使用的漏洞利用技术表明,这个漏洞利用是在iOS 10的时期编写的。这说明,该恶意组织至少在持续两年的时间中具有完整攻陷iPhone的能力。
这是三个漏洞利用链中的一个,我们总共发现了五个漏洞利用链,该漏洞利用链仅仅利用一个可以从Safari沙箱直接访问内核的漏洞。
 
iOS漏洞利用链#1:AGXAllocationList2::initWithSharedResourceList堆溢出
我们首先对最早发现的漏洞利用链进行分析,这是以iOS 10.0.1-10.1.1为目标的漏洞,可能自2016年9月以来就已经出现。
攻击目标:iPhone 5s到iPhone 7,运行iOS版本10.0.1 – 10.1.1
支持版本包括:
iPhone6,1 (5s, N51AP)iPhone6,2 (5s, N53AP)iPhone7,1 (6 plus, N56AP)iPhone7,2 (6, N61AP)iPhone8,1 (6s, N71AP)iPhone8,2 (6s plus, N66AP)iPhone8,4 (SE, N69AP)iPhone9,1 (7, D10AP)iPhone9,2 (7 plus, D11AP)iPhone9,3 (7, D101AP)iPhone9,4 (7 plus, D111AP)
各个平台之间的版本支持略有不同,具体如下:
iPhone 6,;7,;8,*:
14A403 (10.0.1 – 2016年9月13日) 这是iOS 10的第一个公开发布版本14A456 (10.0.2 – 2016年9月23日)14B72 (10.1 – 2016年10月24日)14B100 (10.1.1 – 2016年10月31日)14B150 (10.1.1 – 2016年11月9日)
iPhone 9,*:
14A403 (10.0.1 – 2016年9月13日)14A456 (10.0.2 – 2016年9月23日)14A551 (10.0.3 – 2016年10月17日) 这一版本仅适用于iPhone 7,用于解决蜂窝网络通信问题14B72c (10.1 – 2016年10月24日)14B100 (10.1.1 – 2016年10月31日)14B150 (10.1.1 – 2016年11月9日)
第一个不受支持的版本:10.2 – 2016年12月12日
 
第一个内核漏洞
第一个内核漏洞是函数AGXAllocationList2::initWithSharedResourceList中存在的堆溢出,该函数是com.Apple.AGX kext中的一部分,这是iPhone中嵌入式GPU的驱动程序。该漏洞可以从WebContent沙箱中触发,没有独立的沙箱逃逸漏洞。
AGXAllocationList2::initWithSharedResourceList是一个C++虚拟成员方法,它接受两个参数,一个是指向IOAccelShared2对象的指针,另一个是指向IOAccelSegmentResourceListHeader对象的指针。该资源列表头部指针指向与用户空间共享的内存,其内容完全受到攻击者的控制。问题在于解析该资源列表结构的代码。结构如下所示:

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页

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