如何将用户进程与核心进程(即内核进程)完全隔离?

如何将用户进程与核心进程(即内核进程)完全隔离?

很多地方都说 Chroot 不是一个好的选择,因为root 进程可以轻松退出 chroot

有没有办法在基于 *nix 的系统中完全隔离用户空间?

答案1

你问 ”如何完全隔离用户进程和内核进程“。答案是你不能,也不应该;内核为用户空间提供了许多基本服务。任何完全不能与内核对话的用户进程都不能使用虚拟内存、文件系统、网络、进程间通信或内核作为看门人和管家的任何其他服务 - 因此它除了永远不会告诉任何人的微小数值计算之外什么也做不了。

chroot、容器化和虚拟化为环境提供了越来越高的隔离级别。每种技术都有不同的成本、优点和缺点,不应将它们相互混淆,也不要将它们与物理隔离混淆。您想要哪种技术取决于您的需求,而这通常源于威胁模型和由此产生的分析。因此,请确定您想要保护什么以及保护对象,然后考虑提出一个新问题。

但这个问题的答案是:不,而且有充分理由

编辑:我明白你想要什么,但你不能拥有它:内核的存在是有原因的。你可以减轻被收买的守护进程收买内核的风险(最小特权、特权分离、SELinux 或类似的 MAC、chroot/容器化以限制 FS 访问等),但最终用户空间能够与内核对话,内核也有缺陷,这些缺陷有时可以被利用。继续打补丁!

我们都会尽我们所能,然后希望得到最好的结果。如果你的最好结果还不够好,你需要寻求专业的帮助。

相关内容