EEJournal

专题文章
现在就订阅

睡眠处理器挫败攻击者

研究CPU被设计为自我接种

移动的目标总是更难击中。这就是Morpheus背后的基本前提,它是一款被设计用来阻止恶意软件的CPU。这不是一个商业产品,而是一个大学的研究项目,专门用来承担一个DARPA安全处理器挑战赛.到目前为止,它看起来是有效的,转移了所有的攻击。

睡眠完全在硬件中实现恶意软件保护。处理器本身可以阻止恶意软件攻击,超过任何你可能部署的基于软件的对抗措施。它的创造者不会说它是100%不受攻击的,只是说“它非常难以被入侵”。

它将一些现有的技术与一个新的维度结合起来:时间元素。Morpheus加密并混淆代码和数据,然后一遍又一遍地重复,不断移动东西,这样攻击者就没有时间弄清楚发生了什么。单独来看,墨菲斯的反制措施可能很熟悉,但结合起来就形成了一个坚硬的盾牌。

根据密歇根大学Morpheus团队的一名研究生Todd Austin的说法,所有的程序都有“定义语义”和“未定义语义”。换句话说,有些东西是在源代码中显式定义的(例如缓冲区的长度),有些东西只是假设的,比如CPU的本机字大小或内存中对象的首选对齐方式。他说,大多数恶意软件都利用了未定义的东西。例如,侧信道攻击将嗅探功耗、射频发射或计算时间的变化,以收集关于芯片内部正在发生什么的信息。堆栈指针的当前位置是在运行时确定的,而不是在代码中。所有这些东西(以及许多其他东西)都是未定义的语义;它们没有在程序源代码的任何地方指定,而是在真实硬件上运行真实代码的自然副作用。

你可以通过在芯片的行为中添加一些随机性来阻止侧通道攻击。这就像发送箔条来混淆雷达信号并降低信噪比。但是专门的攻击者(DARPA最担心的那种)最终会看穿这些对策,代码分析可以预测堆栈指针的运行时位置。所需要的只是时间。这就是摩尔甫斯登场的地方。

Morpheus随机分配内存地址和指针,并加密数据和代码。但随后它每50毫秒重复这一过程,完全抹去攻击者在解码加密过程中可能取得的任何进展。坏蛋们只有50毫秒的时间来做最坏的事,然后就得从头再来。这就是墨菲斯如此坚韧的原因。

“我自己一般不会说(这是不可破解的),因为我认为它是可以被破解的,”奥斯汀在一份报告中说IEEE Spectrum访谈.“但它非常难以破解。它可能可以被黑客攻击,但不是通过软件。”

“这实际上阻止了任何依赖于指针和代码的攻击。它只能阻止低级别的攻击。它不会阻止像SQL注入这样的事情发生在你的web服务器上。我们为DARPA挑战而建造的Morpheus机器实际上是为了阻止所谓的远程代码执行(RCE)攻击。”

Morpheus的保护工作在两个方面:随机和加密。首先,通过向内存块添加偏移量,将所有内存地址随机化。偏移量将添加到所有写周期,并为所有读周期减去偏移量。更困难的是,代码引用使用一个随机偏移量,而数据引用使用不同的随机偏移量。这两个独立的偏移量还可以防止代码和数据意外地相互干扰。(出于性能原因,位移的最后四位始终为零,以便对象保持字对齐。)内存地址环绕在地址空间周围,因此大偏移量不会创建不可用的地址。

程序代码不会看到这些。就它所知,一切都在它应该在的地方。这就是奥斯汀“未定义语义”的一个例子。这与x86处理器使用内存段来移动代码段、数据段和堆栈段的明显开始和结束的方式没有太大区别。事实上,任何带有MMU的CPU都在做同样的事情。与Morpheus不同的是,偏移量是随机生成的,每50毫秒变化一次。

第二,墨菲斯加密内容代码和数据段,除了移动它们之外。加密密钥也是随机的,并且每50毫秒更改一次。这有一个明显的好处,那就是混淆你的代码,这通常是恶意软件的第一个攻击点。例如,要利用缓冲区溢出的错误,首先必须知道有错误的代码驻留在哪里。恶意软件可以从一个已知的程序位置开始,也可以寻找一个已知的代码片段。Morpheus挫败了这两种攻击模式。

加密和解密发生在处理器的L1缓存之外,但在它的L2缓存(以及任何后续缓存)之前。这使得它对处理器不可见,包括底层内核代码,但是外部DRAM不可见。即使缓存刷新也只能导出加密的数据。芯片之外的一切都是加密的;里面的所有内容都是明文。如果作恶的人设法在地址随机化的情况下找到了感兴趣的区域,那么数据本身就会被一个密钥加密,有效期只有50毫秒。

动态代码加密并不是一个新想法。IBM的PowerPC CodePack早在20世纪90年代就开始这样做了,尽管IBM的目标是代码压缩,而加密只是一个副作用。Morpheus和PowerPC都以对性能影响最小的方式将加密与地址生成一起处理。

随机地址偏移量也不是什么新鲜事。地址空间随机布局(ASLR)已经存在一段时间了,主流操作系统,如Windows、iOS和Android都在使用它。但是ASLR是在程序第一次加载时添加的一次性偏移量。Morpheus采用了这个概念,并以频繁的间隔重复它,避免攻击者需要时间来计算随机偏移。

50毫秒的重新随机化周期——墨菲斯团队称之为“搅动”——并不是固定的。他们在测试和模拟后得出了这个数字。更短的时间使得黑客攻击更加困难,但是开销会对性能产生不利影响。事实上,团队估计Morpheus会因为所有额外的工作而对性能造成5-10%的影响。

Austin指出,极短的搅乱周期(大约10毫秒)将迫使攻击者在物理上靠近被攻击的硬件。通过几个典型的网络路由器的周转时间将消耗掉大部分的搅动期,几乎没有给黑客留下时间来实施他们卑鄙的行为。

作为一个额外的保障,Morpheus可以启动立即搅动,如果它检测到攻击正在进行中。所以即使是50毫秒的延迟也是最坏的情况。

Morpheus基于RISC-V,主要是因为它是一种鼓励实验的开源CPU规范。“它可以远远超越RISC V,远远超越CPU。概念本身是独立于底层实现的,”Austin说。

可悲的是,安全措施正在成为我们设计的强制性组成部分,从硅布局开始。这增加了一层不必要的复杂性,如果它不能完美地工作,就浪费了精力。Morpheus的技术似乎非常有效,根据其设计者的说法,它们适用于任何CPU、DSP或GPU。如果他们的研究成功了,也许Morpheus将成为新硬件设计的标准部分,这样就少了一件需要担心的事情。

留下回复

有特色的博客
2022年12月28日
我不得不说,其中许多机械运动对我来说都是全新的,从第一个开始,我现在知道它是施密特耦合....
2022年12月20日
作者:James Paris和Armen Asatryan在实现过程中自动进行简短检查,让设计团队快速找到并修复这些错误... ...
2022年12月20日
我们在Synopsys上回顾了2022年,包括基于云的芯片设计工具、机器学习和人工智能驱动的EDA解决方案、多模系统和安全接口IP。回顾一年:回顾2022年的关键技术进步和冒险,这篇文章首次出现在来自硅…

有特色的视频

演示:PCIe Gen5 x16运行在VectorPath加速卡上

Achronix

Achronix工程师展示了如何使用Speedster7t FPGA将VectorPath加速卡连接到PCIe Gen5 x16主机,并通过全芯片二维片上网络(NoC)读取/写入GDDR6内存。NoC将数据从任何高速接口以2GHz的速度路由到FPGA内部的核心结构,而不消耗任何FPGA逻辑资源。

点击这里观看更多来自Achronix的视频

特色粉笔谈话亚博里的电子竞技

室内空气质量的关键要素:为什么它们很重要,我们为什么要检测它们?

逮老鼠的电子产品而且Sensirion

测量室内空气污染是监测我们健康和生产力的宝贵工具。在这期Chalk Talk节目中,来自亚博里的电子竞技盛思敏的Amelia Dalton和Timothy Kennedy讨论了室内空气质量测试的内容、方式和原因,以及盛思敏的Sen5X一体空气质量传感器如何使测量室内空气质量比以往任何时候都更容易。

更多关于盛思睿SEN5x环境传感器节点的信息

Baidu