卡巴斯基曝光针对iPhone手机的“三角测量行动”攻击链
2023-12-28 12:18:34 Author: 奇安网情局(查看原文) 阅读量:25 收藏

编者按

卡巴斯基研究团队12月27日在第37届混沌通信大会上公布最新研究称,苹果iPhone手机中存在的未知硬件功能在“三角测量行动”间谍软件攻击中发挥了关键作用。俄罗斯此前将该行动归咎于美国,指责美国入侵数千部iPhone手机来监视俄罗斯外交人员。

根据卡巴斯基发布的“三角测量行动”攻击链,该间谍软件活动是卡巴斯斯所发现的“最复杂的攻击链”,利用一系列4个零日漏洞,上述漏洞链接在一起创建了一个“零点击”漏洞,使得攻击者能够提升权限并执行远程代码。其中,CVE-2023-41990是ADJUST TrueType 字体指令中存在漏洞,允许通过恶意iMessage附件远程执行代码;CVE-2023-32434是XNU 内存映射系统调用中存在整数溢出问题,允许攻击者对设备的物理内存进行广泛的读/写访问;CVE-2023-32435作为多阶段攻击的一部分在Safari漏洞利用中用于执行shellcode;CVE-2023-38606是使用硬件内存映射I/O寄存器绕过页面保护层(PPL)的漏洞,从而覆盖基于硬件的安全保护。攻击从发送到目标的恶意iMessage附件开始,而整个链条是“零点击”的,这意味着它不需要用户交互,也不会生成任何明显的迹象或痕迹。

在最新的研究中,卡巴斯基重点研究了CVE-2023-38606漏洞,攻击者利用该漏洞可以绕过苹果芯片上的硬件保护。卡巴斯基表示,CVE-2023-38606并非普通漏洞,针对的是 Apple A12-A16 Bionic处理器中未知的内存映射I/O寄存器,可能与该芯片的GPU 协处理器相关联;攻击者利用了苹果公司设计的单片系统(SoC)的一个硬件功能,该功能很可能被苹果工程师或工厂用于调试或测试目的;该漏洞利用上述功能的方式是将数据写入某个物理地址,同时通过将数据、目标地址和数据哈希写入固件未使用的芯片的未知硬件寄存器。卡巴斯基表示,只要存在可以绕过基于硬件的高级保护的硬件功能,上述保护在面对老练的攻击者时就毫无用处;硬件安全通常依赖于“通过模糊实现安全”,但这是一种有缺陷的方法,依赖“通过默默无闻实现安全”的系统永远不可能真正安全。

奇安网情局编译有关情况,供读者参考。

卡巴斯基全球研究与分析团队(GReAT)12月27日在德国汉堡举行的第37届混沌通信大会上公开了苹果iPhone手机中存在的未知硬件功能,该功能在“三角测量行动”(Operation Triangulation campaign)中发挥了关键作用。

苹果的单片系统(SoC)被发现存在一个漏洞,该漏洞促成了最近名为“三角测量操作”的iPhone攻击。该漏洞位于硬件本身内部,使得攻击者得以绕过苹果在运行iOS 16.6版本前的iPhone上基于硬件的内存保护。该漏洞被发现是一个硬件功能,可能基于隐匿性安全原理,可能用于测试或调试。

攻击者利用此硬件功能绕过基于硬件的安全措施,并在最初的“零点击”iMessage攻击和随后的权限升级后操纵安全内存区域的内容。这一行动使攻击者能够完全控制该设备。该问题已由苹果公司解决,并已确定为漏洞CVE-2023-38606。

检测此功能是一项重大挑战,因为该功能尚未公开记录。传统的安全方法被证明是无效的,这促使GReAT研究人员进行广泛的逆向工程,分析iPhone的硬件和软件集成。卡巴斯基GReAT首席安全研究员鲍里斯·拉林表示,“这一发现再次告诉我们,即使是基于硬件的高级保护在面对复杂的攻击者时也可能变得无效,特别是当存在允许绕过这些保护的硬件功能时。”

卡巴斯基今年早些时候发现的“三角测量行动”是针对iOS设备的高级持续威胁(APT)活动。该活动使用了通过iMessage分发的复杂的“零点击”漏洞,使攻击者能够完全控制目标设备,从而访问用户数据。苹果公司发布了安全更新,以解决卡巴斯基研究人员发现的4个零日漏洞。这些漏洞影响了各种Apple产品,例如 iPhone、iPod、iPad、macOS 设备、Apple TV 和 Apple Watch。卡巴斯基还向苹果公司通报了该硬件功能的利用情况,导致该公司最终采取了缓解措施。

发现和使用可能用于调试和工厂测试的不起眼的硬件功能来对iPhone手机用户发起间谍软件攻击表明,实施了该活动的是一个经验丰富的威胁行为者。研究人员表示,黑客自2019年以来一直活跃,通过发送带有恶意附件的iMessage信息并利用4个零日安全漏洞来攻击目标。俄罗斯政府将这次行动归咎于美国,声称美国入侵了“数千部苹果手机”来监视俄罗斯外交官。苹果否认了这些说法,卡巴斯基也没有将“三角测量行动”归因于任何政府或已知的黑客组织。

1

“三角测量行动”攻击链

根据卡巴斯发布的“零点击”iMessage攻击的简要概述,该攻击使用了四个零日漏洞,设计用iOS 16.2及更高版本的 iOS 版本。

  • 攻击者发送恶意iMessage附件,应用程序会在不向用户显示任何迹象的情况下处理该附件。

  • 此附件利用了未记录的Apple独有的ADJUST TrueType字体指令中的远程代码执行漏洞CVE-2023-41990。该指令自90年代初就已存在,后来被补丁删除。

  • 它使用面向返回/跳转的编程和用NSExpression/NSPredicate查询语言编写的多个阶段,修补JavaScriptCore库环境以执行用JavaScript编写的权限升级漏洞。

  • 此JavaScript漏洞被混淆,使其完全不可读并最小化其大小。尽管如此,它仍然有大约11000行代码,主要用于JavaScriptCore和内核内存解析和操作。

  • 它利用JavaScriptCore调试功能DollarVM ($vm)来获得从脚本操作JavaScriptCore内存并执行本机API函数的能力。

  • 它被设计为支持新旧iPhone,并包含一个指针身份验证代码(PAC)绕过功能,可用于利用最新型号。

  • 它利用XNU内存映射系统调用(mach_make_memory_entry 和 vm_map)中的整数溢出漏洞CVE-2023-32434来获取用户级别对设备整个物理内存的读/写访问权限。

  • 它使用硬件内存映射I/O(MMIO)寄存器来绕过页面保护层(PPL)。此问题已通过CVE-2023-38606得到缓解。

  • 利用所有漏洞后,JavaScript 漏洞可以对设备执行任何操作,包括运行间谍软件,但攻击者选择:(a)启动IMAgent进程并注入有效负载,以清除设备中的漏洞利用痕迹;(b)以不可见模式运行Safari进程,并将其转发到下一阶段的网页。

  • 该网页有一个脚本来验证受害者,如果检查通过,则接收下一阶段:Safari 漏洞利用。

  • Safari 漏洞利用CVE-2023-32435来执行 shellcode。

  • shellcode以Mach目标文件的形式执行另一个内核漏洞利用。它使用相同的漏洞:CVE-2023-32434和CVE-2023-38606。它的大小和功能也很大,但与用JavaScript编写的内核漏洞完全不同。与利用上述漏洞相关的某些部分是两者共有的。尽管如此,它的大部分代码也致力于解析和操作内核内存。它包含各种后期利用实用程序,但大部分未使用。

  • 该漏洞利用获得根权限并继续执行其他阶段,加载间谍软件。

2

谜团和 CVE-2023-38606 漏洞

最新的iPhone型号针对内核内存的敏感区域提供了额外的基于硬件的安全保护。如果攻击者可以读取和写入内核内存,则此保护可防止攻击者获得对设备的完全控制(正如本次攻击中通过利用CVE-2023-32434实现的那样)。卡巴斯基发现,为了绕过这种基于硬件的安全保护,攻击者使用了苹果公司设计的单片系统(SoC)的另一个硬件功能。

卡巴斯基表示,如果尝试描述此功能以及攻击者如何利用该功能,那么一切都可以归结为:他们能够将数据写入某个物理地址,同时通过将数据、目标地址和数据哈希写入固件未使用的芯片的未知硬件寄存器。

卡巴斯基猜测,这个未知的硬件功能很可能是苹果工程师或工厂用于调试或测试目的,或者是被错误地纳入。由于固件未使用此功能,因此不知道攻击者如何知道如何使用它。

3

技术细节

单片系统(SoC)中可用的各种外围设备可以提供特殊的硬件寄存器,CPU可以使用这些寄存器来操作这些设备。为此,这些硬件寄存器被映射到 CPU 可访问的内存,称为“内存映射I/O”(MMIO)。苹果产品中外围设备的MMIO地址范围以特殊文件格式存储,即DeviceTree。可以从固件中提取DeviceTree文件,并可以借助dt实用程序查看其内容。

在分析“三角测量”操作攻击中使用的漏洞时,卡巴斯基发现攻击者用来绕过基于硬件的内核内存保护的大多数MMIO不属于DeviceTree中定义的任何MMIO范围。该漏洞利用针对苹果A12–A16 Bionic SoC,针对位于以下地址的未知MMIO寄存器块:0x206040000、0x206140000 和 0x206150000。

更准确地说,该漏洞利用以下未知地址:0x206040000、0x206140008、0x206140108、0x206150020、0x206150040和0x206150048。其中大部分位于两个gfx-asc(GPU协处理器)区域间的区域,其余的位于靠近第一个gfx-asc区域的开头的区域。这表明所有这些MMIO 寄存器属于GPU协处理器。该漏洞利用在初始化期间所做的第一件事是写入其他一些MMIO寄存器,该寄存器位于每个单片系统(SoC)的不同地址处。

寄存器0x206040000仅在漏洞利用的初始化和最终确定阶段才会被触及,其是初始化期间要设置的第一个寄存器,以及最终确定期间要设置的最后一个寄存器。

寄存器0x206140008和0x206140108控制启用/禁用和运行漏洞利用所使用的硬件功能。

寄存器0x206150020仅用于苹果A15/A16 Bionic SoC。它在漏洞利用的初始化阶段设置为1,并在最终确定阶段设置为其原始值。

寄存器0x206150040用于存储一些标志和目的物理地址的下半部分。寄存器0x206150048用于存储需要写入的数据和目标物理地址的上半部分,与数据哈希和另一个值(可能是命令)捆绑在一起。此硬件功能将数据写入0x40字节的对齐块中,并且所有内容都应通过九次连续写入写入0x206150048寄存器。

哈希值计算采用了自定义算法,并且使用预定义的sbox表。

4

结论

这不是普通的漏洞,还有许多未解答的问题。卡巴斯基不知道攻击者是如何学会使用这种未知的硬件功能的,也不知道其最初的目的是什么,也不知道它是由苹果公司开发的还是像ARM CoreSight这样的第三方组件。

卡巴斯斯表示,可以确定的是,只要存在可以绕过这些保护的硬件功能,那么面对老练的攻击者,基于硬件的高级保护就毫无用处;硬件安全通常依赖于“通过模糊实现安全”,并且逆向工程比软件困难得多,但这是一种有缺陷的方法,因为迟早所有秘密都会被泄露;依赖“通过默默无闻实现安全”的系统永远不可能真正安全。

网络国防知识库

产业发展前哨站

开源情报信息源

奇安网情局


文章来源: http://mp.weixin.qq.com/s?__biz=MzI4ODQzMzk3MA==&mid=2247488123&idx=1&sn=3273fb1033b9efa24322ed8169d7d4a1&chksm=ed78936203df704eb901118f4f26fbbdd56dc81ecabe9b0ca8d57567c19ffbc98cb6719b5b1e&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh