发条消息就破解iPhone 史上最嚣张黑客连用4个零日漏洞
发条消息就破解iPhone 史上最嚣张黑客连用4个零日漏洞 同样好奇的当然也有受害者本人,也就是卡巴斯基团队。他们给这个入侵行动起了个名字叫 “ 三角测量行动 ” ,并且对整个入侵事件就进行了复盘,给出了详细的报告。卡巴斯基的报告里 ” 三角测量行动 “ 附图仔细分析了一下卡巴斯基团队的分析报告,发现入侵者的入侵方法堪称 “ 豪华 ” ,连卡巴斯基团队自己都懵逼了,从来没见过这个玩法:这次针对 iPhone 的攻击,居然同时利用了 4 个零日漏洞,就是凭借着 4 个漏洞,攻击者基本实现了对整个硬件设备的完全控制。额外提一嘴,零日漏洞( Zero-Day )又叫零时差攻击,指的就是那种之前从来没有被发现过、所以没有被修复或者拦截的漏洞。我尝试着把攻击者利用零日漏洞完成攻击的整个链条捋了一遍,大致是这个样子的:通俗点来讲,就是黑客给目标手机发了一个假的 iMessage 附件,植入了一个木马,这个木马骗过了 iPhone 里各种严防死守的保护机制,甚至绕过了苹果 A 系列处理器芯片上的硬件防护,完全控制了整个手机硬件设备,可以说为所欲为。在整个过程中,前面提到的 4 个零日漏洞被充分利用,被攻击的手机只是因为接到了 iMessage 附件,甚至都还没打开,整个手机就已经连底裤都被扒光了。看完我感觉这个攻击者的操作离谱到匪夷所思,他真的是普通的攻击者吗?听我讲完这些零日漏洞到底是啥,攻击者又是怎么利用他们的,估计就会懂我为什么会有这样的疑问了。在最开始,攻击者会给目标手机发送一份恶意的 iMessage 附件,但是按照 iMessage 对待附件的逻辑,它会在不向用户显示任何迹象的情况下处理这个附件。也就是说,用户可能还没察觉这个是不是有问题的附件, iMessage 就已经开始处理这个附件了,这个有问题的附件进入到你的 iPhone 的过程,用户是无法察觉的。光是无法察觉这一点,估计已经吓坏一大帮人了,但是这还只是入侵者的引子。攻击者真正的第一个目标是一个名为 CVE-2023-41990 的零日漏洞。这个漏洞存在于一款用来调整字体的显示效果的系统 API 指令中,可以让攻击者通过恶意 iMessage 附件远程执行代码,或者说植入了一个木马。是的,苹果的字体指令中也会有漏洞,而且该指令自上世纪 90 年代初就已存在。但是这个字体指令本身是苹果公司独有的,而且苹果并没有公开这一条指令的存在,很多关注这个事情的人分析到这里的时候都怀疑攻击者的真实来头。第一遍看的时候我以为,攻击者植入的木马就是这个 iMessage 附件本身。但实际上它只是打开字体指令漏洞的钥匙,真正的 “ 木马 ” 是在没公开的字体指令的漏洞里被植入的。被植入之后,这个 “ 木马 ” 一路高歌猛进,从代码框架手上骗到了执行手机上别的程序的能力,这已经进入到 iOS 系统非常深的内部了,甚至已经差不多要摸到系统内核了。一般来说到了这里,攻击者已经可以收手了,直接劫持一个本地程序,也能读取手机上的一些隐私和信息。但对于这一次入侵的攻击者来说,前面所做的还只是他的开胃菜,他真正的目标就是 iOS 的系统内核。按照正常的思路,攻击者现在已经进入到 iOS 系统内部,下一步他应该会直接去攻击系统内核。但是他没有这么做。攻击者利用了内核中第二个零日漏洞,内存管理 - 内存映射系统上的一个漏洞,直接先去控制了最最最底层的硬件内存( 获取了整个物理内存的读取和写入权限 )相当于说,先放下了 iOS 的这一套系统不管,跑到了 A 系列芯片上,控制了处理器上实际物理内存。我们平时接触到的 iMessage 、微信这些应用程序,并不会直接操作实际的芯片上的物理内存。比如微信要存储一个文件,并不是微信自己的代码跑到硬件内存芯片上去写,它只要把文件交给系统的接口。剩下的具体操作系统会统一安排,到硬件硬件内存芯片上去写入。既然攻击者的目标是 iOS 系统内核,那为啥要费这么大劲儿绕过它,而去管那么远的硬件内存的事情呢?实际上到这里为止,系统内核还是安全的,只是被利用了一下。因为就算攻击者能够往实际的物理内存里乱写东西,也没有用攻击只能往这里面写,但是不知道这一个内存块存的是什么东西、是用来干嘛的。内核访问硬件内存的路径也是七弯八绕的根本不知道,攻击者企图从硬件内存反攻回内核简直是在自己找死,自己在里头绕几圈没准就迷路绕死了。除此之外攻击者还有一个 “困难 ” 要克服 苹果的硬件级内存防护。比如苹果的页表保护层 PPL (Page Protection Layer) ,这样的硬件级别的内存防护,专门防这种能搞定硬件内存的攻击者。在这次的攻击事件发生之前,苹果的这种深度基于硬件的保护被认为是牢不可破的。因为这样的硬件级别内存防护高度依赖于 SOC 设计本身,正常情况下的只芯片设计者自己知道这个保护是怎么回事。但是攻击者又是怎么破的呢 ?准确地说,他并没有攻破这一层的硬件级内存防护。因为他找到了第三个零日漏洞苹果的这个页表保护层虽然很强势,但是可以绕过。攻击者是怎么利用这个零日漏洞的呢?用卡巴斯基团队自己的话来说就是:攻击者能够把数据写入某个特定的物理地址,通过将数据、目的地址和数据哈希写入到未被固件使用的芯片的未知硬件寄存器,从而绕过了基于硬件的内存保护。简单讲就是,苹果的这一层硬件级防护,只能保护那些被系统内核用过的硬件区域。也就是说,硬件内存里有一块隐藏区域,连苹果的安全系统都不知道它的存在,保护不到它,但是这个黑客知道。于是这块隐藏区域成为了绕过安全检查的后门。攻击者就这样绕过绕过了这一层硬件级别的防护,劫持了系统内核。在利用完前面三个零日漏洞之后,攻击者基本就可以在设备上做任何他想做的事情了,他想要进的系统内核,也能进了。但是攻击者还没有要收手的意思。估计手机自己都无语了,我现在从到里又从里到外都已经被你看了个遍了,你想让我干嘛也我也完全要听你的了,你还想怎么样?事实上攻击者确实也可以清除掉所有漏洞利用痕迹,继续埋伏在这一台 iPhone 里,闷声发大财,或者就干脆擦屁股走人。但是攻击者选择了悄悄地运行 Safari 浏览器的进程,找到了另一个零日漏洞。假如读者里有搞攻防的小伙伴可能现在的心情已经日了狗了。大家可能不知道 iPhone 的一个零日漏洞有多值钱 去年的 Pwn2Own 大会拿一百万美元都没钓出来苹果的 0day。结果这哥们轻轻松松就扔了四个出来,而且最离谱的是,你们知道他拿这第四个 0day 漏洞干了什么吗?他又执行了一遍先控制物理内存再反攻 iOS 内核的操作!!!(最开始提到第一个漏洞做过的事情)这位黑客,请问你是来搞黑客攻击的还是来炫富的?!假如 iPhone 能说话,可能也要开始大喊开挂了。好了,这次事件的攻击流程我们总算是大概给大家盘完了。这次攻击事件最有意思就是前面说到的,被攻击者用来从硬件内存,反攻系统内核的 “ 隐藏区域 ” 。这个隐藏区域,其实是某个没有被用到的硬件寄存器。正常情况下,各种可用的外围设备比如马达、扬声器、麦克风等等,都会提供特殊的硬件寄存器,CPU 可以通过这些寄存器来操作这些设备。而此次攻击者用来绕过苹果硬件层保护的这些寄存器,CPU 自己都没有调用过,也不知道他们是用来干嘛的。这就是为啥要说这些寄存器是 “ 未知 ” 的。夸张点说,即使是是苹果自己的工程师来了,不花上一点功夫都不... PC版: 手机版:
在Telegram中查看相关推荐

🔍 发送关键词来寻找群组、频道或视频。
启动SOSO机器人