阅读设置

20
18

第369章 苹果被曝存漏洞是怎么回事! (1/3)

凌晨三点十七分,三亚湾的浪声隔着双层玻璃钻进来,带着咸腥的潮气,糊在我满是油光的脸上。我盯着macbook

pro的屏幕,指尖悬在回车键上,面前的折叠支架上排着七台测试机,从2015年发布的iphone

6s到上周刚拆封的iphone

16

pro

max,还有一台插着电的vision

pro,屏幕全黑,像七只闭紧的眼睛。安全圈的telegram群已经炸了两个小时,消息刷得像瀑布,核心只有一件事:苹果被曝存在一个史诗级零日漏洞,通杀2015年至今发布的所有ios、macos、visionos、watchos设备,代号“空壳”,能绕过苹果所有的沙箱防护、系统完整性保护,甚至能直接读写secure

enclave硬件加密区里的核心数据,最离谱的是,这个漏洞从ios

9时代就埋在系统内核里,整整十一年,没有任何人发现。

我叫陈默,今年32岁,干了八年白帽黑客,靠挖苹果的漏洞拿赏金过日子。在此之前,我挖到过三个带cve编号的高危漏洞,最高一笔从苹果手里拿过120万美金的赏金,对苹果的安全体系熟得像自己掌心里的纹路。所以看到群里消息的第一秒,我只觉得是哗众取宠的噱头——苹果的xnu内核每年都在大改,内存防护、权限隔离、代码签名机制迭代了不下十次,能跨十一年版本通杀的漏洞,根本不符合逻辑,就像你在2015年挖的一条地道,能直通2026年刚建好的银行金库,中间城市翻修了八次,地道居然一点没被填上,连入口都没被人发现。

群里已经有人贴出了漏洞的poc验证代码,是一段只有几十行的c语言代码,看起来平平无奇,甚至有点粗糙,连多余的注释都没有。我抱着看热闹的心态把文件下载下来,扫了一眼代码逻辑,眉头瞬间皱了起来。它没有利用任何已知的内存溢出、释放后使用、竞争条件这类常规漏洞利用手法,只是向内核的一个未公开端口,发送了一串固定的十六进制数据,仅此而已。这就像你对着银行金库的钢门,没撬锁,没炸墙,只是念了一串莫名其妙的咒语,门就自己开了,离谱得像天方夜谭。

我把代码交叉编译成arm架构的可执行文件,通过爱思助手推到了最老的那台iphone

6s测试机上——这台机器停留在ios

15.7.1系统,是苹果早已停止维护的老版本。我在终端里输入运行命令,按下回车的瞬间,原本应该弹出普通用户权限提示符的终端里,赫然跳出了一个鲜红的#号——那是ios系统最高root权限的标识。

我的呼吸顿了半拍。

我不死心,又把文件推到iphone

x上,ios

16系统,运行,回车,同样的#号稳稳跳出。接着是iphone

12,ios

17,成功;iphone

15

pro,ios

18.4,成功;最后是那台刚拆封的iphone

16

pro

max,搭载着苹果上周刚推送的ios

19.2正式版,最新的系统,最严的防护,我按下回车的那一刻,终端里依然跳出了那个刺眼的#号,连一秒的延迟都没有。

七台测试机,横跨十一个ios大版本,全量通杀。

一股混杂着震惊、兴奋和莫名不安的情绪顺着脊椎爬上来。干我们这行的,一辈子能遇到一个这种级别的漏洞,相当于中了头奖——苹果的漏洞赏金计划里,能通杀全设备的远程代码执行漏洞,最高赏金开到了200万美金,而这个能直接穿透secure

enclave的“空壳”漏洞,价值根本无法估量,暗网上的黑客组织、各国的情报机构,会为它开出上亿美金的价码。

但兴奋只持续了不到十分钟,就被越来越浓的疑惑取代。这个poc太简单了,简单到不合理。一个能瞒过苹果全球顶尖安全团队十一年的漏洞,利用方式居然只是发送一串固定数据?这就像顶级黑客用“”的密码攻破了五角大楼的防火墙,根本说不通。我立刻打开ida反汇编工具,把ios

19.2的内核缓存文件导进去,定位到了那个未公开端口对应的内核处理函数,当我看到那段代码的第一眼,浑身的汗毛瞬间竖了起来。

这根本不是苹果写的代码。

苹果的内核代码,规范到近乎刻板,变量命名、函数跳转逻辑、内存管理方式,都有一套全球安全研究员烂熟于心的标准,哪怕是一个刚入行的新手,也能一眼认出苹果代码的风格。但眼前这段代码,完全是另一个物种。它没有任何注释,变量名是随机生成的十六进制字符串,逻辑结构完全违背了现代操作系统的编程规范,甚至,它的核心指令集,根本不是为arm架构设计的。