2 月 15 日消息,虽然 Linux 内核已经在尝试 Rust 编程来提高内存安全性,但华为开发者近日提出了一项针对 Linux 内核新“沙盒模式”的提案,提高内核中 C 语言代码的内存安全性。

华为提议为 Linux 内核推出新“沙盒模式”,提高内存安全性-编程知识网

Linux 邮件显示,华为云的 Petr Tesarik 发出了有关新沙盒模式的“征求意见”补丁系列,Petr 将沙盒模式描述为:

沙盒模式的最终目标是在仅允许内存访问预定义地址的环境中执行本机内核代码,因此潜在的漏洞无法被利用或不会对内核的其余部分产生影响。

该补丁系列向内核添加了沙盒模式的 API 和独立于架构的基础设施。它在所有输入和输出数据的 vmalloc () 副本上运行目标函数。由于保护页面,仅此一项就可以防止一些越界访问。

沙盒模式文档进行了进一步补充描述,汇总内容如下:

沙盒模式(SBM)的主要目标是通过分解内核来减少内核代码中潜在内存安全错误的影响。SBM API 允许在隔离的执行环境中运行每个组件。特别是用作输入的内存区域和 / 或输出与内核的其余部分隔离,并被保护页包围。

在实现必要的 arch hook 的架构上,沙盒模式利用硬件分页设施和 CPU 特权级别来强制仅使用这些预定义的内存区域。有了 arch 的支持,SBM 还可以从保护违规中恢复。这意味着 SBM 强制终止沙盒并向调用者返回错误代码(例如 “-EFAULT“),以便执行可以继续。这种实现提供了 * 强隔离 *。