发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。( 二 )


相当于说,先放下了 iOS 的这一套系统不管 , 跑到了 A 系列芯片上 , 控制了处理器上实际物理内存 。

发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。

文章插图
我们平时接触到的 iMessage 、微信这些应用程序 , 并不会直接操作实际的芯片上的物理内存 。
比如微信要存储一个文件,并不是微信自己的代码跑到硬件内存芯片上去写 , 它只要把文件交给系统的接口 。
剩下的具体操作系统会统一安排 , 到硬件硬件内存芯片上去写入 。
既然攻击者的目标是 iOS 系统内核 , 那为啥要费这么大劲儿绕过它,而去管那么远的硬件内存的事情呢?
实际上到这里为止,系统内核还是安全的 , 只是被利用了一下 。
因为就算攻击者能够往实际的物理内存里乱写东西,也没有用——攻击只能往这里面写,但是不知道这一个内存块存的是什么东西、是用来干嘛的 。
而且内核访问硬件内存的路径也是七弯八绕的根本不知道,攻击者企图从硬件内存反攻回内核简直是在自己找死,自己在里头绕几圈没准就迷路绕死了 。
发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。

文章插图
除此之外攻击者还有一个 “困难 ” 要克服 —— 苹果的硬件级内存防护 。
比如苹果的页表保护层 PPL (Page Protection Layer)  , 这样的硬件级别的内存防护,专门防这种能搞定硬件内存的攻击者 。
发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。

文章插图
在这次的攻击事件发生之前,苹果的这种深度基于硬件的保护被认为是牢不可破的 。
因为这样的硬件级别内存防护高度依赖于 SOC 设计本身,正常情况下的只芯片设计者自己知道这个保护是怎么回事 。
但是攻击者又是怎么破的呢 ?
准确地说他并没有攻破这一层的硬件级内存防护 。
因为他找到了第三个零日漏洞——苹果的这个页表保护层虽然很强势,但是可以绕过 。
而攻击者是怎么利用这个零日漏洞的呢?用卡巴斯基团队自己的话来说就是:
攻击者能够把数据写入某个特定的物理地址,通过将数据、目的地址和数据哈希写入到未被固件使用的芯片的未知硬件寄存器 , 从而绕过了基于硬件的内存保护 。
简单讲就是,苹果的这一层硬件级防护,只能保护那些被系统内核用过的硬件区域 。
也就是说 , 硬件内存里有一块隐藏区域,连苹果的安全系统都不知道它的存在,保护不到它,但是这个黑客知道 。
于是这块隐藏区域成为了绕过安全检查的后门 。
发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。

文章插图
攻击者就这样绕过绕过了这一层硬件级别的防护,劫持了系统内核 。
在利用完前面三个零日漏洞之后,攻击者基本就可以在设备上做任何他想做的事情了,他想要进的系统内核,也能进了 。
但是攻击者还没有要收手的意思 。
估计手机自己都无语了,我现在从到里又从里到外都已经被你看了个遍了,你想让我干嘛也我也完全要听你的了,你还想怎么样?
事实上攻击者确实也可以清除掉所有漏洞利用痕迹,继续埋伏在这一台 iPhone 里 , 闷声发大财,或者就干脆擦屁股走人 。
但是攻击者选择了悄悄地运行 Safari 浏览器的进程,找到了另一个零日漏洞 。。。
假如读者里有搞攻防的小伙伴可能现在的心情已经日了狗了 。
大家可能不知道 iPhone 的一个零日漏洞有多值钱 —— 去年的 Pwn2Own 大会拿一百万美元都没钓出来苹果的 0day 。
发条消息就能破解iPhone?苹果系统这次像被“内鬼”攻破的。。。

文章插图
结果这哥们轻轻松松就扔了四个出来 。
而且最离谱的是,你们知道他拿这第四个 0day 漏洞干了什么吗?
他又执行了一遍先控制物理内存再反攻 iOS 内核的操作?。。。ㄗ羁?继岬降谝桓雎┒醋龉?氖虑椋?
这位黑客,请问你是来搞黑客攻击的还是来炫富的?!
假如 iPhone 能说话 , 可能也要开始大喊开挂了 。
好了,这次事件的攻击流程我们总算是大概给大家盘完了 。
这次攻击事件最有意思就是前面说到的,被攻击者用来从硬件内存,反攻系统内核的 “ 隐藏区域” 。
这个隐藏区域,其实是某个没有被用到的硬件寄存器 。
正常情况下 , 各种可用的外围设备比如马达、扬声器、麦克风等等,都会提供特殊的硬件寄存器 , CPU 可以通过这些寄存器来操作这些设备 。


推荐阅读