作为 CET (控制流执行)技术的一部分,英特尔的间接分支跟踪 (IBT) 支持 合并为 Linux 5.18的一部分。作为 CET 控制流完整性保护的一部分,间接分支跟踪旨在帮助防止面向 JUMP/CALL 的攻击。与此同时,仍在开发中的是“FineIBT”,它是在英特尔 CET/IBT 之上构建的更加编译器强化的版本。
追溯到去年小暑,围绕FineIBT 的补丁作为基于编译器的 IBT 控制流完整性 (CFI)。今天发出的是针对 Linux 内核的 FineIBT 新的征求意见补丁系列。
Joao Moreira 的这个新的 Linux FineIBT 补丁系列将工作总结为:
免责声明:这一切都处于非常早期/ poc 阶段,主要是研究工作 – 建议小心进行并随身携带毛巾。
这个补丁系列在内核中启用了 FineIBT。FineIBT 是一种编译器增强的前向 Edge CFI 方案,建立在英特尔的 CET-IBT 之上,它通过在调用方设置哈希值来工作,然后在被调用方进行检查。因为 IBT 需要间接分支才能到达 ENDBR 指令,所以在函数指针损坏的情况下,这些哈希检查不应该被绕过。
与 IBT 本身相比,FineIBT 实施了更严格的策略,应该更强大地抵御控制流劫持攻击。与 KCFI 之类的方案相比,它的好处是不依赖于内存读取(这不仅在性能和功耗方面可能更高效,而且还可以与 XOM 兼容),并带来了 IBT 在推测执行强化方面的好处.
这个 FineIBT 补丁系列基于 Linux 5.18 上游的间接分支跟踪工作以及英特尔的 Peter Zijlstra 正在开发的其他补丁。目前,这项 FineIBT 工作还依赖于 Clang 编译器的修改版本。
FineIBT 是改进 Linux 系统安全性的另一项努力,与最新的 x86_64 硬件配合使用。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun156037.html