Linux
如何將使用者程序與核心程序(即核心程序)完全隔離?
chroot 不是很好的選擇,因為root 程序可以很容易地退出 chroot
有沒有辦法在基於 *nix 的系統中完全隔離使用者空間?
您問“如何將使用者程序與核心程序完全隔離”。答案是你不能,也不應該;核心為使用者空間提供了許多基本服務。任何無法與核心對話的使用者程序都不能使用虛擬記憶體、文件系統、網路、程序間通信或核心作為看門人和管家的任何數量的其他服務——因此除了無法告訴任何人的微小數值計算外,它無能為力。
chroot
、容器化和虛擬化為環境提供了更高級別的隔離。每個都有不同的成本、優點和缺點,不應將它們相互混淆 - 或與物理分離混淆。您想要的將取決於您的需求,這通常來自威脅模型和結果分析。所以決定你想保護什麼,從誰那裡,並考慮提出一個新問題。但這個問題的答案是:不,而且有充分的理由。
編輯:我理解你想要什麼,但你不能擁有它:核心在那裡是有充分理由的。你可以減輕一個被替代的守護程序替代核心的風險(最小可能特權、特權分離、SELinux 或類似的 MAC、chroot/containerisation 以限制 FS 訪問等),但最終使用者空間必須能夠與核心,核心也有漏洞,有時可以利用這些漏洞。跟上你的更新檔!
我們都盡我們所能,然後希望最好。如果您的最佳狀態對您來說還不夠好,您將需要獲得專業幫助。