当麦金塔电脑刚刚问世时,苹果公司就吹嘘说,与个人电脑不同,麦金塔电脑不会感染病毒。我们现在更清楚了;甚至mac电脑也会受到恶意软件的攻击ransomware.但事实是macOS本质上比Windows更安全。这就是为什么安全研究员Thijs Alkemade声称通过一次攻击就可以突破macOS所有安全层的原因。激动的观众黑帽与会者,无论是面对面的还是虚拟的,都吵着要听到这个令人惊讶的说法的细节。
是什么让MacOS如此安全?
“我一直都是Mac的用户,”阿尔克梅德说。“这是一个我非常了解的制度。早期的Mac平台基于Unix。在该平台中,用户是安全边界,而过程不是。对于文件,每个文件都有一个所有者,9个标志定义权限。根用户拥有修改所有文件、内存甚至内核的完全访问权。这是旧模式。
”系统完整性保护(SIP)于2015年与El Capitan一起引入。”它在根用户和内核之间设置了一个安全层,保护系统不被根用户修改。根访问不再足以危及系统。这个系统的另一个名称是无根的。有些人认为,这意味着苹果将会像iPhone一样,彻底颠覆市场。但实际上它的意思是根是少强大。危险的操作需要授权,每个macOS版本增加了越来越多的限制。
“但是……macOS是古老的、庞大的、成熟的,”Alkemede说。“很多系统部件都是在安全模型改变之前编写的。重建整个系统是不可能的。”
他列出了几种可以用于支持流程注入的技术,但得出的结论是它们只是附带的。“有了可以应用于任何地方的流程注入就更好了。”
安全漏洞在哪里?
弱点在哪里?阿尔克玛德并没有让听众保持悬念。“这是保存状态的功能,”他解释道。“当你关机时,如果你想要,你可以在一个框里打勾应用程序重新打开时,你开始一次。它甚至可以恢复未保存的文档。它基本上是自动工作的。开发者不需要做任何事情就可以使用它,但他们可以扩展它。”
保存应用程序状态的过程称为序列化,序列化的数据称为的意思被加密。但是,不需要加密,这允许聪明的程序员滥用该特性。“我使用恶意序列化对象创建了一个保存的状态,并将其写入另一个应用程序的状态目录。它会自动反序列化并在其他应用程序中执行,并可以使用其他应用程序的权利和权限,实现进程注入。”
阿尔克梅德带领观众穿过他遇到的无数障碍,以及他进化出的绕过这些障碍的技巧。他承认,“出于时间和信息披露的原因,我不得不跳过一些步骤。”我不会在这里解释细节,因为您需要是一个程序员才能完全掌握它们。关键是,它起作用了。
流程注入能做什么
Alkemade详细介绍了该漏洞的三种可能用途:逃离沙盒、升级特权和绕过系统完整性保护。
这些都是非同寻常的说法,因为这些结果实际上是黑客的圣杯。特别是绕过SIP,可以为程序提供最高的功能。“我们可以阅读所有用户的电子邮件或Safari历史记录,或者允许自己使用麦克风或网络摄像头,”Alkemade解释道。“我们的流程现在受到SIP的保护,这赋予了它强大的持久性。我们可以在用户不知情或不允许的情况下加载内核扩展。”
Alkemade继续向赞赏的观众演示了这三个技巧。只有最好的黑帽演示得到自己的一轮掌声!
我们应该担心吗?
这个安全漏洞已经被修补好了macOS蒙特利但应用程序开发者也需要尽自己的一份力。“开发者能够也应该让应用只被接受安全序列化对象,”Alkemade说。“苹果已经在他们所有的应用中这么做了,但现有的第三方应用也需要这么做。”
事实证明,这种新的保护措施不仅针对蒙特利。Alkemade说:“我刚得知他们把它反向移植到大苏尔和卡塔琳娜。”“卡塔琳娜的发布说明更新了,但大苏尔的发布说明没有更新。我收到了一封来自苹果的邮件,要求提前分享我的演讲内容。两个小时前,我得到确认说它在大苏尔修好了,但我还没有时间去核实。”
Alkemade总结道:“苹果一直在为macOS系统添加层次。“在一个已建立的系统中添加新层是困难的,所以10年前编写的代码是今天的攻击面。如果你可以使用同一个漏洞绕过所有漏洞,那么更多的层可能不会增加攻击者的努力。”