所有关于电路
消息

计算机芯片后,DARPA赏金500黑客 - 芯片赢得了

2天前经过史蒂夫·阿拉尔

芯片是真正的“不打包”是为了辩论。但了解计算机芯片中的一般漏洞可能会阐明Morpheus建筑的令人印象深刻的性质。

密歇根大学最近开发了一个所谓的“不打包”电脑芯片在三个月的错误赏金努力期间,这已经击败了500多名黑客。DARPA与国防部的防御数字服务(DDS)和同步,一个众包安全平台,运行此Bug Bounty程序。

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

Morpheus.

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

虽然数千美元的奖品可能没有足以引起顶级黑客的利益,而Morpheus可能并不是“不打包”,芯片对如此多的攻击的恢复力表明了值得调查的安全架构。

计算机芯片的一些常见漏洞以及攻击者如何使用它们闯入系统?在本文中,我们会看看一些Morpheus主要技术用于挫败这些攻击

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

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

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

如果我们为8字节缓冲区分配10字节值,则缓冲区将溢出,并且超出字节将存储在阵列边界的存储器位置。 

如果我们为8字节缓冲区分配10字节值,则缓冲区将溢出,并且超出字节将存储在阵列边界的存储器位置。

应该注意的是,只有当它们具有精确定义的行为时才可以创建执行语句的编程语言;但是,这将涉及一些运行时间监控,并将减慢执行。这就是为什么一些编程语言接受具有未定义行为的可能性来提供更高的速度。通过这样的编程语言,程序员必须确保未定义的行为不会导致软件执行中的任何问题。

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

再次考虑缓冲区溢出示例。使用从用户获取某个值的缓冲区,实际上攻击者实际上可以通过任意数据覆盖存储器位置超过缓冲区边界。以这种方式,人们可以能够覆盖保持可执行代码的内存位置的内容并用自己的代码替换它。

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

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

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

Morpheus战略:移动目标防御

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

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

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

常见的随机化技术

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

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

不断重新安排“Rubik的立方体”

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

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

下面的图像显示了Morpheus如何使用移动目标防御搅拌向攻击者提供堡垒的技术。

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

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

快速的攻击检测是关键

除了使用搅拌在检测到潜在攻击时,Morpheus使用攻击检测机构,通过攻击检测机构,使用攻击检测机制。

Morpheus的建筑

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

上述技术使Morpheus能够将关键程序值重新随机化,比估计的攻击时间快约5000倍。有趣的是,虽然新架构使用了504位熵和50毫秒的流失时段,但它仅为Spec'06和Mibench基准测试的平均水平减速(7%最坏情况)。