Apple T2芯片不安全且无法修补

2020-10-07 19:30:17

让我们谈谈那个没有人谈论的事情。让我们谈谈一个漏洞,它暴露了2018-2020年的Mac电脑,而大多数电脑都拒绝采取行动或报告这件事。哦,我有没有提到过它是无法修补的?

下面的帖子是对twitter.com/axi0mx、twitter.com/h0m3us3r、twitter.com/aunali1、twitter.com/mcmrarm和twitter.com/su_rickmark执行的代码和研究的行业分析,他们在这方面投入了无尽的工作时间,使公司和用户能够了解他们在这个问题上的风险。

这篇博客文章只适用于配备英特尔处理器和嵌入式T2安全芯片的MacOS系统。苹果的硅系统将完全运行在一组苹果设计的ARM处理器上,并且MIGH将具有不同的拓扑结构,例如基于A12。由于A12芯片似乎已经解决了这个问题(有待确认),新的Apple Silicon机器很可能不会受到攻击。尽管年底即将推出的新款英特尔Mac电脑可能会收到T2芯片的新硬件版本(例如基于A12),但在2018到2020年间,我们仍然会在Mac电脑上遇到这个漏洞。

如果您使用的是最新的MacOS设备,那么您可能正在使用嵌入式T2安全芯片,该芯片运行bridge操作系统并且实际上是基于watchOS的。这是一款由苹果公司基于iPhone7中的A10CPU设计的定制ARM处理器。T2芯片包含一个安全Enclave处理器(SEP),很像您iPhone中的A系列处理器将包含SEP。

虽然较新的Mac和/或Apple Silicon(包括开发套件)将使用较新的A系列处理器,如最近的iPhone(A12)中使用的处理器,但目前的Mac仍然使用A10。

它为MacOS执行一组预定义的任务,例如音频处理、处理I/O、充当硬件安全模块(例如Apple KeyChain或2FA)、硬件加速媒体播放、将内核扩展列入白名单、加密操作以及确保您引导的操作系统不被篡改。T2芯片运行自己的名为Bridge OS的固件,当您安装新的MacOS版本时可以更新该固件。(注意到屏幕闪烁了吗?这就是显示驱动程序被中断并可能被更新。)。

编辑:我第一次提到iPad Pro会受到T2漏洞的影响,但虽然它可能会受到同样的漏洞的影响,但它并不包含T2芯片。

因此,让我们将重点放在MacOS上的引导映像验证上。当你按下电源按钮的时候到底会发生什么?对于发烧友来说,我个人觉得用mikeymikey安全引导是一个更深入的描述。

即使您的Mac设备关机,T2芯片也会完全启动并保持开启。

按下电源按钮或打开盖子会触发系统管理控制器(SMC)启动。

SMC执行开机自检(POST)以检测任何EFI或硬件问题(如损坏的RAM),并可能重定向至恢复。

在这些基本健全性检查之后,T2芯片被触发并设置I/O连接器。(usb、nvme、pcie、…)。它将使用NVMe和PCIe与NAND存储通信。

选择适用的引导盘,并询问是否启用了磁盘加密密码,以便可能通过FileVault2磁盘加密来挂载APFS卷。

/System/Library/CoreServices/boot.efi位于您的系统APFS卷上,并根据您的安全引导设置进行验证。

运行boot.efi,加载Darwin内核(返回到BSD)(如果引导Microsoft Windows,则加载Boot Camp)&;IODevice驱动程序。如果在/System/Library/PrelinkedKernels/prelinkedkernel,中找到内核缓存,它将使用该缓存。

任何用户批准的内核扩展都被初始化并添加到内核空间-如果它们被T2芯片批准的话。这将随着系统扩展而消失。

因此,苹果有几个诀窍可以限制任何潜在安全漏洞的攻击面。以下是英特尔处理器自MacOS Big Sur以来的相关措施小结:

系统完整性保护(SIP):只读/系统分区,因此MacOS(包括内核)的基本安装不会被篡改。

系统扩展:远离内核扩展,将外部代码从内核框架中移出。

文件系统密封:将数据的每个字节与文件系统元数据树中的散列进行比较,以递归方式验证完整性。

你们可能都已经知道,在当今的科技世界里,苹果将隐私和安全作为重要的武器来推动。他们吹嘘自己的设备高度安全,并保证以隐私为中心来处理你的个人数据。虽然过去也曾犯过错误(谁能怪他们呢?),但苹果通常会迅速修复任何被披露给他们负责的披露程序或公开披露的安全问题。这句话的意思是:“你可能已经知道了,苹果一直在推动隐私安全作为当今科技世界的重要武器。他们吹嘘自己的设备高度安全,并保证以隐私为中心来处理你的个人数据。”

T2上的迷你操作系统(SepOS)在iPhone7中也存在安全漏洞,因为它包含基于iOS A10的处理器。为了安装自制软件而利用这种类型的处理器在/r/jailBreak subreddit中进行了非常活跃的讨论。

因此,使用最初为iPhone开发的checkm8漏洞,开发checkkra1n漏洞是为了利用一个漏洞为T2安全芯片构建一个半系留漏洞。例如,这可以被用来规避激活锁,允许被盗的iPhone或MacOS设备被重置并在黑市上出售。

通常情况下,如果T2芯片处于DFU模式,并且它检测到解密调用,那么它将以致命错误退出,但是多亏了盘古团队的黑鸟漏洞,我们可以完全绕过SEP中的检查,随心所欲地做任何事情。

由于SepOS/BootROM出于安全原因是只读存储器,有趣的是,如果没有新的硬件版本,Apple无法修补此核心漏洞。谢天谢地,这也意味着这不是一个持久的漏洞,因此它将需要硬件插入或其他附加组件,如恶意USB-C电缆。

每个Apple iDevice(包括T2和Watch,通过带下的端口)都附带一个名为设备固件更新(DFU)的固件恢复USB接口,当设备无法启动或在打开时按下一组特定按钮时会触发该接口。它始终可用,因为它是从SecureROM运行代码。这是checkm8运行的模式。

Apple还保留了访问在生产设备上禁用的各种调试功能的能力,除非使用在DFU中运行的特殊引导有效负载。由于Apple是唯一可以为DFU签名代码的公司,因此他们可以降级任何他们喜欢的设备,包括最新的A14处理器。但是,由于checkm8漏洞在引导过程的早期运行,我们也可以将T2降级为DFU模式。如果没有checkm8,我们将无法在DFU中运行未签名的代码,因此无法启用调试界面。一旦启用了调试界面,苹果就会使用具有猿名的专用电缆(参见Chimp、Kanzi、Gorilla)。

一旦您有了T2的访问权限,您就拥有了完全的root访问权限和内核执行权限,因为内核在执行之前会被重写。好消息是,如果您使用FileVault2作为磁盘加密,他们不能立即访问您在磁盘上的数据。但是,他们可以在T2固件中注入键盘记录器,因为它管理键盘访问,存储您的密码,以便在恶意硬件连接的情况下检索或传输密码。

可以绕过远程锁定Apple设备的功能(例如,通过MDM或FindMy)(激活锁)。

固件密码无法缓解此问题,因为它需要键盘访问,因此需要T2芯片首先运行。

任何内核扩展都可以被列入白名单,因为T2芯片决定在引导期间加载哪个内核扩展。

如果攻击能够更改您的硬件(或偷偷插入恶意USB-C电缆),就有可能实现半固定攻击。

虽然这听起来可能不那么可怕,但请注意,对于国家行为者来说,这是一个完全可能的攻击场景。我有消息称,未来几周会有更多消息传来。我引用一下:害怕,非常害怕。

#install DevTools$Xcode-SELECT--INSTALL#检查脚本&;安装HOMEBREW$/bin/bash-c";$(curl-fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)";#Install Packages$BREW install libplist auto ake autoconf pkg-config OpenSSL libtool llvm libusb#git clone,autogen.sh,make&;让Install#https://github.com/sbingner/ldid#https://github.com/libimobiledevice/libusbmuxd#https://github.com/libimobiledevice/libimobiledevice#https://github.com/libimobiledevice/usbmuxd#运行checkkra1n并等待T2引导。它将在完成后停止。#TODO描述checkkra1n漏洞#拔下并重新插入USB连接。Checkra1n现在应发送覆盖。#TODO描述USB调试模式&;overlay#启用代理以丢弃$iProxy 2222 44&;#连接到T2&;享受$ssh-p 2222 [email protected]

关于这个问题,我已经多次联系苹果,甚至通过可怕的cc [email protected]进行曝光。由于几周来没有收到回复,我在许多报道苹果的新闻网站上也做了同样的事情,但也没有回应。为了提高人们的意识(以及苹果的官方回应),我在此披露几乎所有的细节。你可以说我没有遵循负责任的披露,但既然这个问题从2019年就已经知道了,我认为很明显,苹果并不打算发表公开声明,悄悄地(希望)在较新的Mac&;中开发打过补丁的T2。硅片。

如果您怀疑您的系统被篡改,请使用Apple Configurator在T2芯片上重新安装Bridge OS,如此处所述。如果您是国家行为者的潜在目标,请验证您的SMC有效负载完整性,并且不要让您的设备无人监管。您可以尝试使用键盘组合重置SMC。

联系您的苹果代表,等待苹果的官方消息(&A)。暂时不要将T2芯片用于任何敏感凭据(如MFA)。提高用户的意识,不要让他们的设备无人看管。

等待解决方案,密切关注checkkra1n团队,准备好更换你的Mac电脑。尽管我和其他人试图让新闻网站和苹果公司报道这一问题,但你还是要为他们没有报道这一问题而感到愤怒。

TL;DR:最近的Mac(2018-2020,T2芯片)如果被单独使用并且物理访问是可能的,即使您关闭了它们的电源,使用起来也不再安全。

2017年10月27日Rick Mark发布实用程序来验证T1芯片和更早版本的Mac的完整性

2018年8月13日,Aunali1开始调查Linux对配备T2芯片(包括T2固件)的Mac的支持。

2019/03/07 mrarm开始反向工程Apple BCE驱动程序和USB VHCI接口,用于与T2通信。

2019年4月8日,Aunali1将Linux内核补丁和MRAM驱动程序打包到Arch Linux包中进行分发。

2019年6月10日,里克·马克假定checkm8对T2的影响,并建议在ipwndfu中提供支持。

2020年9月21日IOS 14不在一周内,checkkra1n适用于iOS 14.x,具有SepOS DFU/解密缓解功能。

非常感谢checkkra1n团队,特别是里克·马克把这件事公之于众。