关于幽灵党(Spectre)和Meltdown攻击对我们计算基础设施构成的威胁,已经有很多文章了。《如何生活在一个后崩溃和-幽灵世界》(通信2018年12月,第40页)正确地指出,“Meltdown和Spectre特别难以修补”,“Meltdown和Spectre等漏洞的范围如此之大,以至于很难解决。”这种攻击有很多细微差别{参见“幽灵攻击:利用投机性执行”(通信, 2020年7月,第93页),但它们如此有问题的部分原因是,它们确实描述了一种新的配方为攻击。具体来说,它们展示了如何使用机器操作的一个基本方面,即推测,来对抗由同一台机器执行的内存读取保护。尽管任何给定的攻击实例都可能依赖于特定内存层次结构或软件组织的特性,但这种方法却具有惊人的普遍性。
自该漏洞被披露以来,针对这些攻击的许多新解决方案已经被提出,但其中大多数只解决了漏洞的特定实例,而没有解决根本问题。它们可以阻止一组特定的攻击,但不能新菜谱的实例。一个简单的参数调优,改变输出路径,或使用其他微架构冲突可以击败这些方法中的许多。与漏洞或位翻转错误不同,对手会有目的地和智能地找到新的不受保护的路径来绕过反措施。一种能够提供长期保护的方法需要针对这种新类型攻击的核心问题。虽然下面的文章不是基于投机的攻击的结束,但它可能是一个结束的开始。
在没有提交的机器中,几乎所有事情(通常是处理器管道的最后阶段)都是投机性地发生的,“快速处理常见情况”是硬件堆栈上下每个人心中刻骨铭心的信条。所以,我们是否必须完全放弃投机和时间变化来解决基于投机的攻击?人们当然希望不是这样,因为这会对性能造成可怕的影响。本文并没有放弃推测,而是提出了一种新的计算机架构,该架构以非常具体的方式智能地限制推测的影响,以便同时允许足够的预测执行,从而保持合理的性能,同时还确保内存层次结构不会被用作这种攻击的一部分。关键思想是“执行和有选择地转发投机性指令的结果是安全的”,这些指令读取您希望保密的数据,只要您还能“证明转发的结果没有到达潜在的隐蔽通道”。这很容易写,但很难实现,然后更难证明。虽然我把它留给作者来描述该技术是如何工作的,但我发现作为工程师(因为我发现它非常可实现)和科学家(因为它以一种触及计算机安全基本方面的正式方式为基础),它都令人满意。作者提供了第一个解决方案,这是一个真实的配方为修复这个问题更普遍。这绝对是为什么这项工作已经在IEEE/ACM微架构国际研讨会上获得了“最佳论文奖”,并入选2019年IEEE Micro Top pick的原因。
一种能够提供长期保护的方法需要针对这种新类型攻击的核心问题。
展望未来,我不禁要回顾过去。计时通道所构成的威胁,虽然是在不同的背景下,在48年前出版的《关于禁闭问题的说明》(通信1973年10月,第613页)。Butler Lampson指出,“服务可以传输信息,而并发运行的进程可以通过观察系统的性能来接收这些信息”,并继续警告我们,“这样建立的通信通道是有噪声的,但信息论的技术可以用来设计一种编码,无论服务对系统性能的影响有多小,只要它们不是零,都可以让信息可靠地通过。”这句话今天和当时一样正确。信道是嘈杂的,缓慢的,不可预测的,或者看起来很难建立的,当人们了解到我们的领域花了几十年的时间在这样的条件下开发健壮的通信手段时,这一事实并不能让人感到安慰。似乎还有两种选择——我们接受任意的系统状态(例如,内存值)总会随着时间的推移而泄漏,并学会生活在新的现实中;或者我们开发新的软件和硬件技术,就像这里提出的那样,深思熟虑地甚至可以证明地限制信息流。也许这两种选择的混合是不可避免的,但是硬件/软件系统能够维护我们现有的抽象,同时提供信息可以或不能逃逸的真正清晰性是一个崇高的目标。这篇论文给了我真正的希望,这样的目标是真正可以实现的。
数字图书馆是由计算机协会出版的。版权所有©2021 ACM, Inc.
没有发现记录