近日热点话题之一就是存在于 iPhone 上的史诗级硬件漏洞,能够让 iPhone 4s 到 iPhone X 实现永久越狱,且无法修补。虽然包括 cnBeta 在内的诸多媒体都进行了报道,但事实上该漏洞对普通消费者的杀伤力约等于零。Checkm8 漏洞事件axi0mX 在 Twitter 上表示发现了一个重要漏洞,从推文来看,axi0mX 本身也是一个理想主义者。同时发布了九点声明,进一步阐述了此免费公开此漏洞的意义。对「Apple 安全性奖金」感兴趣的人来说,通过此漏洞可以利用 JTAG(联合测试工作组,指的是一套系统的测试方法,设计、硬件、接口、软件的结合。)找出更多的 Bug,获得收益;同时对于 Apple(苹果公司)和用户来讲,未来的安全防护能力也会获得极大的提升。
axi0mX 说:「我今天发布的只是一个漏洞,并不是支持 Cydia 的完全越狱。这是针对数亿个 iOS 设备,永久性不可修补的 bootrom 漏洞。研究人员和开发人员可以使用它转储 SecureROM,使用 AES 引擎解密密钥包,并降级设备以启用 JTAG。但你仍然需要其他的硬件和软件才能使用 JTAG。」axi0mX 使用「EPIC JAILBREAK」(史诗级越狱)来描述这个漏洞,为什么呢?因为 bootrom 漏洞存在于硬件之上,无法通过软件来修复。影响范围覆盖从 A5 到 A11(即 iPhone 4S 到 iPhone X)。这一漏洞被称为 checkm8,checkmate 也就是国际象棋术语中的「将死」。
Apple 没有回应置评请求。利用 checkm8 漏洞
想知道如何利用 checkm8 漏洞,首先需要了解 Secure Boot(安全启动)机制,也是目前绝大多数设备所采用的一种确保操作系统安全启动的验证方式。思路相同,不过不同平台的具体做法有所差异。
当启动一台 iOS 设备时,系统首先会从只读的 ROM 中读取初始化指令,也就是系统的引导程序 (事实上所有的操作系统启动时都要经过这一步,只是过程略有不同)。这个 bootrom 包含 Apple 官方权威认证的公钥,他会验证 LLB(底层启动加载器)的签名,一旦通过验证后就启动系统。LLB 会做一些基础工作,然后验证第二级引导程序 iBoot。iBoot 启动后,设备就可以进入恢复模式或启动内核。在 iBoot 验证完内核签名的合法性之后,整个启动程序开始步入正轨:加载驱动程序、检测设备、启动系统守护进程。
越狱的工作原理正是攻击这一信任链。所有的越狱工具的作者都需要找到这一信任链上的漏洞,从而禁止掉信任链中负责验证的组件。破解 bootrom 通常是最可取的办法,因为该组件不会因为 Apple 今后的软件更新而改变。
axi0mX 指出,这种攻击不能远程执行,而必须通过 USB 连接进行。此外,每次都必须通过计算机启用,这就限制了越狱的实用性。目前还没有出现利用 checkm8 漏洞的实际的越狱行为,也不能简单地下载一个工具去破解设备、下载非官方验证的 App 商店和修改 iOS。
如果想研究和利用 Checkm8 漏洞,可以使用 axi0mX/ipwndfu CLI 工具 或 tie1r1/checkm8gui GUI 工具 。
Checkm8 漏洞可能带来的影响
可能有人会问「有 bootrom 漏洞能干什么?我也不想越狱啊。」ExpReview 的作者(编者注:来源不可考)表示,「其实越狱只是一个方面,拥有 bootrom 漏洞之后,你可以随意对手中设备进行系统版本的升降级,再也没有 Apple 的阻碍,可以刷入自己定制的 iOS 系统,甚至还有刷上 Android 的希望。」
此外还有安全方面的担忧。不法分子可以利用这一漏洞绕过 Apple 的 iCloud 激活锁,使得被盗或丢失的 iOS 设备的账户锁定失效,或者安装带木马的 iOS 来窃取用户信息。虽然 Apple 可以为新设备修补 bootrom,但如果不更换硬件,旧的数亿部 iPhone 无法得到修补。写在后面
对于安全问题我仍保持着原来的观点:没有绝对永远的信息安全,只要让不法者获得信息的成本大于他所获取的信息的价值,就可以称之为安全。
有 cber 表示:「一不小心发现了一个监管机构使用的门。」确实,在 PC 领域,TPM(受信任的平台模块)的推广及使用曾存在这种阴影,但 iOS 设备上暂时还没发现实锤证据;也有人表示:「主力机是不会去越狱的,老手机可以玩玩,但是现在也感觉没有什么越狱的必要了。」;还有的半开玩笑地说:「iPhone 11 发售了,你们懂得。」代表了少部分用户对国内手机圈乌烟瘴气的一些隐忧。
不过,这条消息对于想要购买二手的用户来说,刷机和 DFU 怕是必备技能了。
再补充一点,目前各个 Apple Store 的 Genius Bar 都会有一个专用的 JTAG 工具用于查找 NPO(无法开机)设备的主板序列号。只不过 99% 的工作人员不知道这个就是 JTAG 而已。
评论 (0)