2023-05-29 www.dnxtw.com
2月25日消息 提到去年席卷全球的英特尔“幽灵”(Spectre)我相信网民们对这个漏洞并不陌生!根据外国媒体的最新消息,谷歌研究人员在调查了幽灵的攻击范围和影响后发表了一篇论文,称软件技术无法解决这个问题。
谷歌研究人员认为,无论如何,软件都不足以防止这种攻击——一些“幽灵”漏洞似乎没有有效的软件防御措施。因此,“幽灵”将成为未来没有直接解决方案的重要安全风险。
“崩溃”(Meltdown)发现“幽灵”攻击无疑是2018年的重大安全事件。去年1月首次发现后,全年出现了新的变体。这两种攻击都取决于处理器的理论结构行为和真实事实行为之间的差异。
具体来说,所有现代处理器都会进行推测和执行。例如,他们会假设一个值从内存中读取,或者一个if条件是真是假,以便根据这些假设提前执行任务。假设正确,将保留推测结果;假设错误,将放弃推测结果,处理器将重新计算。推测执行不是处理器的架构特征,而是执行特征,因此应在完全看不见的情况下执行程序。当处理器放弃错误的猜测时,它似乎从未发生过。
然而,“崩溃”和“幽灵”漏洞的研究人员发现,推测并非完全不可见。当处理器放弃推测结果时,错误的推测会留下一些痕迹。例如,推测可能会改变处理器缓存中的数据。该程序可以通过测量从内存中读取数值的时间来探测这些变化。
通过仔细构建,攻击者可以让处理器根据一些兴趣值进行推测,并使用缓存变化来揭示推测值的实际情况。这将对网络浏览器和其他应用程序构成威胁:使用恶意JavaScript来了解运行过程中的内存布局,然后使用其他安全漏洞执行任何代码。
网络开发人员认为,他们可以在浏览器处理过程中构建一个安全的沙盒,因此脚本无法理解过程中包含的内存布局。从架构的角度来看,这个假设似乎是完全合理的。但由于“幽灵”攻击,这些假设无法建立。
采用ARM架构的英特尔、苹果和其他芯片所面临的“崩溃”漏洞是这种方式的可怕变体。恶意程序可以从操作系统的核心中提取数据。在发现这个漏洞后,操作系统进行了一些调整,隐藏了多数数据,使其无法被恶意程序发现。英特尔还对其处理器进行了专门的调整,以解决“崩溃”问题,因此该公司最近的处理器不再需要激活这些变化。
“幽灵”更难处理。有许多软件技术阻止处理器通过推测执行敏感代码,或限制信息通过推测执行泄露。
谷歌研究人员发现,这些软件措施有许多不完善之处。例如,在从内存中加载许多值后,它们会阻止所有的猜测。虽然它们可以阻止许多攻击,但在实际使用中效果不佳。研究人员还试图修改Chrome V8 JavaScript引擎,但会导致性能下降三分之一或五分之一。其他措施也会遇到类似的问题。
然而,所有措施都存在一个问题:没有办法阻止所有的“幽灵”变体,因此需要结合许多技术。由于这些技术不能任意结合,仅仅找到合适的技术组合也是一个巨大的挑战。此外,谷歌还设计了一种通用的“幽灵”家族攻击,目前无法用任何技术实现防御。
测量缓存变化的时间系统是幽灵攻击的一个重要因素。有一种想法认为,应用程序使用的时钟可能不那么准确。这个理论认为,如果缓存差需要用几纳秒的长度来衡量,那么以毫秒为精度的单位可能太粗糙,无法攻击!然而,研究人员设计了一种技术来扩大这种时间差异,这种放大效果可以克服这种使时间系统粗糙的防御方法,这意味着不可能完全依靠软件技术来防止“幽灵”攻击。那你怎么看?
05-27377
05-28327