Linus Torvalds 在内核争议中推出吉他踏板
今天早些时候,Linus Torvalds 分享了他的节日心情,表示愿意为幸运的 Linux 开发人员制作一个定制的吉他踏板,这是一件出乎意料但又令人高兴的事。这一举动正值开发社区庆祝 Linux 内核版本 6.13 的进步,整个节日气氛都十分愉快。
内核变更引发争议
然而,微软最近提出的一项改革威胁到 Torvalds 的乐观态度,让他的进步受到了阻碍。幸运的是,英特尔和 AMD 迅速介入,及时缓解了这一问题。
有争议的改革细节
有问题的更改涉及称为的内核配置ARCH_HAS_EXECMEM_ROX
。此设置旨在通过启用具有只读执行 (ROX) 权限的可执行内存 (EXECMEM) 缓存来提高性能,专门针对 x86_64 和 AMD64 架构 – 本质上针对 AMD 和 Intel 的 64 位处理器。
技术问题出现
遗憾的是,此更改是在未得到 x86 内核维护人员适当认可的情况下提交的,导致受影响 CPU 的控制流完整性 (CFI) 出现严重问题。英特尔的 Peter Zijlstra 今天紧急发出请求,要求恢复与 EXECMEM_ROX 支持相关的更改,理由是实施仍未完成且存在问题。
x86:禁用 EXECMEM_ROX 支持
整个 module_writable_address() 的无稽之谈使 alternative.c 变得一团糟,更不用说它仍然包含错误 —— 值得注意的是一些 CFI 变体崩溃了。
迈克一直在努力修复这些问题,但考虑到目前的情况,这些问题还没有解决。
暂时禁用,让我们下一个周期再试一次。
行业反应
AMD 的 Borislav Petkov 也表达了他的不满,强调了这一过程中的疏忽:
我很喜欢这个功能,它没有得到任何 x86 维护者的确认,它破坏了很多东西,然后它仍然存在,而不是被恢复。请不要再这样做了。
——致敬/格鲁斯,鲍里斯。
了解控制流执行技术 (CET)
对于那些可能不知道的人来说,控制流执行技术 (CET) 代表了现代计算中一项重要的安全增强功能。它包含两个主要组件:影子堆栈和间接分支定位 (IBT)。影子堆栈可防御面向返回编程 (ROP) 攻击,而 IBT 可保护系统免受面向调用或跳转编程 (COP/JOP) 威胁。
CET 通过将传统程序堆栈与硬件存储的备份副本(称为影子堆栈)进行比较来实现这种安全性,从而确保返回地址的准确性。从本质上讲,影子堆栈在防止恶意软件劫持合法软件的执行流程方面发挥着至关重要的作用,可以有效标记任何可能受到损害的程序。
如需进一步的见解和详细分析,您可以在此处阅读更多内容。
发表回复