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