yaboPP电子
新闻

美国国防部高级研究计划局悬赏500名黑客获得计算机芯片——芯片胜出

2021年4月6日通过史蒂夫·阿拉尔

芯片是否真的“无法破解”还有待商榷。但是,了解计算机芯片的一般漏洞可能有助于揭示MORPHEUS令人印象深刻的架构本质。

密歇根大学最近开发了一个所谓的“不打包”电脑芯片在为期三个月的漏洞悬赏行动中,该系统击败了500多名黑客。DARPA与美国国防部的国防数字服务(DDS)和众包安全平台Synack合作,运行这个漏洞赏金项目。

为任何可以分析和闯入芯片被称为“Morpheus”的人提供了数万美元。但是,芯片无发布的安全测试。

Morpheus.

二十次,Morpheus将重新安排自己代码的关键部分。图片使用的礼貌密歇根大学

虽然数千美元的奖金可能不足以激起顶级黑客的兴趣,而且MORPHEUS可能也不是真的“无法破解”,但该芯片抵御如此多攻击的弹性表明,这是一个值得研究的安全架构。

计算机芯片的一些常见漏洞是什么?攻击者如何利用它们入侵系统?在本文中,我们将了解一些Morpheus主要技术用于挫败这些攻击

首先,一些关于未定义行为的背景

编写计算机程序时,我们会对某些程序陈述的执行情况进行假设。如果不符合这些条件,则程序语句可以具有未定义的语义 - 任何可能会发生任何事情。

C编程中未定义行为的一个例子是在其定义的边界之外对数组进行索引。另一个常见的例子是缓冲区溢出。假设我们使用一个8字节数组来存储一些数据。如果分配给这个数组的数据占用超过8个字节,程序将把多余的数据写入数组边界之外。C和c++编程语言有几种不同形式的未定义行为。

如果我们将一个10字节的值赋给一个8字节的缓冲区,缓冲区将溢出,多余的字节将存储在超过数组边界的内存位置。 

如果我们将一个10字节的值赋给一个8字节的缓冲区,缓冲区将溢出,多余的字节将存储在超过数组边界的内存位置。

需要注意的是,只有当语句具有精确定义的行为时,才有可能创建执行语句的编程语言;但是,这将涉及一些运行时监视,并会减慢执行速度。这就是为什么一些编程语言接受使用未定义的行为来提供更高的速度的可能性。使用这种编程语言,程序员有义务确保未定义的行为不会导致软件执行中的任何问题。

未定义的行为导致安全漏洞

再次考虑缓冲区溢出的例子。对于从用户那里获得一些值的缓冲区,攻击者实际上有可能用任意数据覆盖缓冲区边界以外的内存位置。通过这种方式,可以覆盖保存可执行代码的内存位置的内容,并将其替换为自己的代码。

或者,它们可能能够找到敏感指针并用旨在改变程序的执行路径的值覆盖它。缓冲区溢出是用于在C和C ++中编写的计算机程序的常见攻击技术。

上面的讨论表明,攻击者需要一些关于系统的关键信息,比如代码和指针的表示,或者代码和数据的确切位置,以利用系统漏洞。

安全硬件架构应防止攻击者获得这些密钥程序值。这正是Morpheus,“不打包”计算机芯片,完成。Morpheus使用了几种技术来构建堡垒反对攻击者。

Morpheus战略:移动目标防御

移动目标防御是Morpheus用于挫败攻击的重要技术之一。此方法基于诸如此类的想法,尽管系统具有诸如源自未定义行为的诸如那些源自未定义行为的漏洞,但是可以通过防止攻击者获得关键系统信息来突破攻击。此技术随机化关键程序值,例如代码位置和指针值,因此攻击者无法发现系统的状态并利用系统错误。

密歇根大学的研究人员不是第一个雇用这种随机化技术的研究;但是,它们利用高随机化空间(称为熵的位),以增加攻击者发现系统状态所需的探测时间。

下表列出了一些常见的随机化技术和开发击败它们的攻击。

常见的随机化技术

常见的随机化技术。图片使用的礼貌密歇根大学

该表还给出了每个技术的熵以及攻击技术的估计时间。

不断重新排列的“魔方”

移动目标防御每次程序运行时都会随机化关键信息。这增加了估计的探测时间。然而,有足够的时间,攻击者可以成功发现推出攻击所需的信息。

为了解决这个问题,MORPHEUS使用了一种叫做搅拌每50毫秒重新安排关键程序值。这种短的流失时段不允许攻击者有足够的时间来获得所需信息。这类似于解决每次眨眼时重新排列的魔方的立方体。

下图展示了MORPHEUS的用法移动目标防御搅拌向攻击者呈现堡垒的技术。

描绘移动目标防御和搅拌技术

描述移动目标防御和搅动技术。图片使用的礼貌密歇根大学

快速攻击检测是关键

除了使用搅拌在检测到潜在攻击时,Morpheus使用攻击检测机构,通过攻击检测机构,使用攻击检测机制,通过进一步提高流失触发率的攻击检测机构。

MORPHEUS的建筑

MORPHEUS的建筑。图片使用的礼貌密歇根大学

上述技术使MORPHEUS能够以比估计攻击时间快5000倍的速度重新随机化关键程序值。有趣的是,尽管新架构使用了504位的熵和50ms的搅扰周期,但对于SPEC ' 06和MiBench基准测试来说,它的平均速度只有1%(最坏情况是7%)。