芯片如何修补幽灵变体1和熔毁熔毁,如威士忌湖和琥珀湖,如何处理谱变体2?我在找一台新笔记本电脑。目前正在评估联想x390。它将与威士忌湖一起上市,该公司声称对熔毁和幽灵变体有硬件修复。
最大的性能标志是解决谱变体2。当软件修复时,英特尔预计性能将下降3%至10%,这取决于工作负载--在硬件修复时,英特尔表示性能下降要小得多,但预计新平台(比如Cascade Lake)将提供更好的整体性能。威士忌湖和琥珀湖都没有减轻v2的影响,但是威士忌湖对一些更危险的攻击(如v3和L1TF )进行了修复。威士忌湖也提供新的性能回收箱,因为该平台也在14++上,这将有助于提高性能和动力。
因此,我的问题是,如果在新的芯片(威士忌湖和琥珀湖),是否有什么在性能上得到的只是修复幽灵变体1和熔毁?他们只有2/3 CPU漏洞的硬件补丁会为内核提供硬件上的任何优势吗?或者Linux是否会应用同样严重的软件缓解措施来防止谱变体2的影响?
发布于 2019-03-01 21:19:51
这将是一个以情报为中心的答案。
请注意,在内核级别上,谱/熔毁缓解不是一个单一的整体块,但是每个谱/熔毁变量都有自己的缓解措施集。
崩溃的内核级缓解称为页面表隔离。内核可以自己完成它,对性能有很大的影响。
如果processor+microcode提供进程上下文IDentifiers (PCID),甚至如果处理器中有INVPCID指令,则会有所帮助:根据微码在每个特定处理器模型上所能做的,安装熔毁修复的微码更新会增加其中一个或两个功能。Linux当然可以在可用的情况下使用它们,并且它们可以显著减少熔毁缓解对性能的影响。
当然,最好的情况是如果页面表完全不需要隔离,这显然就是崩溃的“硬件”修复的意思。
如果您认为您的系统足够安全,性能对您更重要,有一个选项可以关闭熔毁修复。
通过修补编译器以在特定情况下更仔细地处理指针,然后使用修补的编译器重新构建内核(和管理程序,如果有的话)和任何安全性关键的二进制文件,就可以缓解这一问题。这已经完成了。它为编译后的代码中的关键位置添加了一些额外的指令,这使得程序稍微大了一些,执行速度也慢了一些,但幸运的是,两者之间的差别通常很小。
据我所知,微码和处理器设计在这里做得不多:甚至连级联湖也只表示对此进行OS/VMM级别的修复。
这是一个棘手的问题,而且可能很难修复,因为真正的修复需要在CPU设计理论层面上进行一些创新。
即使没有CPU hardware+microcode的任何帮助,内核也可以实现重极化,即RETurn指令蹦床。这是一种汇编程序级的编程技术。与熔毁缓解一样,由于实现这一点会从系统性能中去除一个重要的部分,因此您可以选择禁用此缓解措施,因为您需要的性能比安全性更高。
CPU+microcode可以再次提供一些新的特性,从而使内核更容易减轻V2的影响:
Linux内核可以在适当的地方使用这些特性,以帮助最小化由于retpoline技术而造成的性能损失。
https://unix.stackexchange.com/questions/503658
复制相似问题