谷歌研究员:软件技术无法解决“幽灵”芯片漏洞?
据美国科技媒体ArsTechnica报道,谷歌研究人员调查了幽灵攻击的范围和影响后,发表了一篇论文,认为这样的漏洞可能会继续困扰处理器,基于软件的防护技术会产生很高的性能成本。
他们认为无论如何,软件都不足以防止这种攻击幽灵的脆弱性,似乎没有有有效的软件防御措施。因此,幽灵将成为未来的一个重要安全隐患,并没有直接的解决方案。
崩溃和幽灵攻击的发现无疑是2018年的重大安全事件。去年1月初发现后,全年又出现了新的变种。这两种攻击都取决于处理器的理论结构行为和真正的事实行为的不同。
具体来说,所有现代处理器都会进行推测执行。例如,假设某个值从存储器中读取,或者某个if条件是否真实,可以根据这些假设提前执行任务。假设正确,估计结果会保留;假设错误,估计结果会放弃,处理器会重新计算。推测执行不是处理器的结构特征,而是执行特征,应该在完全看不见的情况下执行程序。当处理器放弃错误的推测时,看起来就像这个推测从未发生过一样。
但崩溃和幽灵漏洞的研究人员发现,推测执行并非完全不可见。处理器放弃推测结果时,错误推测会留下痕迹。例如,估计处理器缓存中的数据可能会发生变化。程序可以通过测量从内存中读取数值的时间来检测这些变化。
经过仔细构建,攻击者可以根据兴趣值推测处理器,使用缓存变化来揭示推测值的实际情况。这威胁网络浏览器等应用程序:利用恶意JavaScript了解运行过程的内存布局,利用这些信息,利用其他安全漏洞执行任意代码。
网络开发者认为在浏览器处理过程中可以构建安全沙箱,因此脚本无法理解包含过程的内存布局。从结构的角度来看,这种假设似乎完全合理。但是,由于幽灵攻击,这些假设不能成立。
英特尔、苹果和其他采用A开发者_运维技巧RM架构的芯片所面临的崩溃漏洞则是这种方式的一个可怕变体。它能让恶意程序从操作系统内核中提取数据。在发现种漏洞后,操作系统进行了一些调整,隐藏了很多数据,无法发现这种恶意程序。英特尔也对其处理器进行了专门的调整,解决了崩溃问题,因此该公司最近的处理器不需要激活这些变化。
幽灵更加难以应对。许多软件技术阻止处理器以推测方式执行敏感代码,或者限制信息以推测方式泄露。
谷歌研究人员发现,这些软件措施有很多不完善的地方,例如,从存储器上加载很多值后,所有的推测都会被切断,可以切断很多攻击,但在实际使用中效果不好。研究人员还试图修改ChromeV8JavaScript引擎,但性能会下降三分之一或五分之一。其他措施也会遭遇类似的问题。
但是,所有的措施都有问题。因为没有遮挡所有幽灵变种的方法,所以需要结合很多技术。然而,由于这些技术不能随意结合,单纯找到合适的技术组合也是一个巨大的挑战。此外,谷歌还设计了通用目的幽灵家族的攻击,不能用现在的技术实现防御。
幽灵攻击的一个重要因素是衡量缓存变化的时间系统。有一种想法认为应用程序的时钟不那么准确。这个理论认为,如果需要以几纳秒的长度来衡量缓存差异的话,以毫秒为精度的单位可能会过于粗糙,不能发动攻击。但研究人员却设计了一种技术来放大这种时间差异,而这种放大效果可以战胜这种让时间系统变得粗糙的防御方式。
正因为如此,公司认为不可能完全依靠软件技术来防御幽灵攻击。硬件调整或许可以实现这种效果,但这目前仍未得到证实。
精彩评论