Linux 6.7早期发送的许多pull请求之一是x86/boot更改,其标题是对PE标头生成进行返工,以生成现代的、4K对齐的内核映像视图,从而最终实现更好的系统安全性。
Ard Biesheuvel领导了PE头代返工的工作。他在上个月的补丁系列中解释道:
“现在EFI存根引导流不再依赖于可执行和可写的内存,我们可以重新组织内核映像的PE/COFF视图,并使用4k对齐和有限权限将解压缩器二进制文件的代码和r/o数据公开为.text部分,将data/bss公开为.data部分。
这样做对于与正在为运行Windows而构建的x86 PC(即大多数)上推出的强化措施的兼容性是必要的。Linux EFI存根执行的EFI引导环境对安全问题特别敏感,因为一个操作系统的加载程序中的漏洞可能会被滥用来攻击另一个。
在真正的x86方式中,这比其他架构要复杂得多,因为其他架构从一开始就实现了这种4k对齐的代码/数据分割。这里的复杂因素是,引导映像由两个不同的部分组成,它们被缝合在一起,并使用特殊的构建工具进行固定。
应用此系列后,构建工具执行的唯一剩余任务是生成CRC-32。尽管这个校验和通常是错误的(考虑到发行版内核是以破坏CRC的方式为安全启动而签名的),但由于我们不能确定是否有人依赖它,所以这个功能被保留了下来。
这取代了叶甫根尼去年提出的工作,后者对构建工具进行了重大重写,以清理它,然后更新它以生成新的4k对齐图像布局。正如本系列所证明的,构建工具基本上是不必要的,而且我们已经有太多了。“
这部作品是
x86/启动更改
submitted for the Linux 6.7 merge window.