英特尔将很快将反恶意软件防御功能直接嵌入其CPU

2020-06-15 23:11:51

黑客的历史在很大程度上是一场来回的游戏,攻击者设计了一种突破系统的技术,防御者构建了阻止该技术的对策,黑客设计了一种绕过系统安全的新方法。周一,英特尔宣布计划直接在其CPU中进行新的防御,旨在挫败在易受攻击的计算机上执行恶意代码的软件利用。

控制流实施技术(CET)代表了处理器执行来自Web浏览器、电子邮件客户端或PDF阅读器等应用程序的指令的方式发生了根本变化。由英特尔(Intel)和微软(Microsoft)联合开发的CET旨在挫败一种名为面向返回的编程技术,黑客利用这种技术绕过软件开发人员大约十年前引入的反利用措施。虽然英特尔在2016年首次发布了CET的实施,但该公司周一表示,其虎湖CPU微体系结构将是第一个包括CET的。

ROP(通常称为面向返回的编程)是软件开发人员对诸如可执行空间保护和地址空间布局随机化等保护的响应,这些保护在不到20年前进入了Windows、MacOS和Linux。这些防御措施旨在通过对系统内存进行更改来阻止恶意代码的执行,从而显著降低软件攻击可能造成的损害。即使成功锁定缓冲区溢出或其他漏洞,利用漏洞也只会导致系统或应用程序崩溃,而不是致命的系统危害。

ROP使攻击者得以夺回制高点。ROP攻击不是使用攻击者编写的恶意代码,而是重新调整良性应用程序或操作系统例程已经放入称为堆栈的内存区域的功能的用途。ROP中的“返回”指的是对代码流重新排序至关重要的RET指令的使用。

资深Windows安全专家、安全公司CrowdStrike工程副总裁亚历克斯·约内斯库(Alex Ionescu)喜欢说,如果一个良性的程序就像一座按特定顺序建造的乐高积木建筑,那么ROP就会使用相同的乐高积木,但顺序不同。在这样做的过程中,ROP将这座建筑改造成了一艘宇宙飞船。该技术能够绕过反恶意软件防御,因为它使用的内存驻留代码已经被允许执行。

CET在CPU中引入了更改,从而创建了一个称为控制堆栈的新堆栈。此堆栈不能被攻击者修改,也不存储任何数据。它存储堆栈中已有的乐高积木的返回地址。因此,即使攻击者损坏了数据堆栈中的返回地址,控制堆栈也会保留正确的返回地址。处理器可以检测到这一点并暂停执行。

Ionescu告诉我:“因为没有针对ROP的有效软件缓解,CET在检测和阻止这类漏洞方面将非常有效。”以前,操作系统和安全解决方案必须猜测或推断ROP已发生,或执行取证分析,或检测利用漏洞的第二阶段负载/影响。

并不是说CET仅限于防御ROP。CET提供了许多额外的保护,其中一些阻止了被称为面向跳转的编程和面向调用的编程的利用技术,仅举两例。然而,ROP是CET最有趣的方面之一。

英特尔在其CPU中内置了其他安全功能,但效果不佳。一个是英特尔的SGX,即软件保护扩展的缩写,它被认为为安全敏感功能(如创建密钥)开辟了不可穿透的受保护内存块。英特尔的另一个安全附加组件称为融合安全与管理引擎,或简称为管理引擎。它是Intel CPU和芯片组中的一个子系统,实现了一系列敏感功能,其中包括基于固件的可信平台模块(用于基于芯片的加密)、UEFI BIOS固件身份验证以及Microsoft System Guard和BitLocker。

然而,多年来,在这两个CPU驻留功能中发现的源源不断的安全漏洞使它们容易受到各种攻击。最新的SGX漏洞就在上周披露。

人们很容易认为CET同样很容易被击败,或者更糟糕的是,它会让用户面临黑客攻击,如果没有增加保护,这些攻击是不可能的。但硬件黑客兼SecuringHardware.com研究员约瑟夫·菲茨帕特里克(Joseph Fitzpatrick)表示,他乐观地认为CET会表现得更好。他解释说:

与SGX或ME之类的特性相比,让我对这类特性不那么怀疑的一个明显区别是,这两种特性都“添加”了安全特性,而不是强化现有特性。我基本上在操作系统之外添加了一个管理层。新交所增加了理论上不应该被恶意或受损操作系统操纵的操作模式。CET只是添加了一些机制来阻止正常操作-返回到堆栈之外的地址和跳出代码中的错误位置-成功完成。CET不能正常工作只允许正常操作。它不会授予攻击者访问更多功能的权限。

一旦支持CET的CPU可用,保护将仅在处理器运行具有必要支持的操作系统时才起作用。上个月发布的Windows10 2004版提供了这种支持。英特尔仍未透露虎湖处理器将于何时发布。虽然这种保护可以给防御者一个重要的新工具,但Ionescu和他的同事Yarden Shafir已经为它设计了旁路。预计他们将在十年内以现实世界的攻击告终。