對公開服務使用 chroot 是否能提供任何真正的安全優勢?

對公開服務使用 chroot 是否能提供任何真正的安全優勢?

我想要一個明確的答案,為什麼應該對暴露於潛在敵對網路(即網路)的服務採取這種做法。據我了解,有一種方法可以突破 chroot 監獄,所以如果這種安全措施沒有真正的價值,那麼為什麼有些安裝仍然追求它?

答案1

您永遠不應該將 chroot 視為完整的安全功能。雖然這使得攻擊變得更加困難,但如果你確實設法在 chroot 內部獲得一些控制權,那麼突破它就相當容易了。有一種方法涉及 chroot 到父目錄 (..) 更多信息這裡。 chroot 提供一些安全優勢的原因是,駭客可能期望擁有的許多應用程式並不存在。如果要在 chroot 或不 chroot 之間進行選擇,我會選擇 chroot 選項。

更好的方法是 BSD 的監獄、Solaris 的區域或一些虛擬化技術,如 KVM 或 Xen。這些方法採用了與 chroot 相同的劃分思想,並使它們變得更強大。您也可以查看諸如 SELinux 之類的東西,但這稍微複雜一些,因此容易出錯。

答案2

據我了解,有一種方法可以突破 chroot 監獄(...)那麼為什麼有些安裝仍在追求它?

關於密碼你也可以這樣說。關鍵是,獲取一些資源往往意味著在入侵者的道路上設置許多障礙,迫使他在到達目標之前放棄。您不能依賴單一方法來保護給定資源。此外,chroot 可讓您更好地控制正在運行的應用程式。您可以限制此應用程式有權存取的檔案系統資源。

答案3

是的,它確實。

  • 如果您的守護程式或任何提供服務的程式不以 root 身分執行,那麼即使該守護程序中存在漏洞,也會與系統的其餘部分隔離。
  • 如果您的作業系統可以限制 chroot() 時可以完成的操作,那就更好了。例如,Linux 的 grsec-patches 可以消除 chroot 中 root 使用者的突破能力,或在 chroot 中建立 /dev-nodes

然而,如果您在 chroot 中遇到可利用的核心錯誤(或只是一個根漏洞,如果不是 grsec 或 BSD 監獄),那麼整個系統就被擁有了。如果您正在執行真正的虛擬器(例如 VMWare,但不是 BSD 監獄),則情況並非如此。

所以,是的,如果使用正確的話,它會增加一個安全層。

答案4

我發現 chroot 非常複雜,而且一直無法安裝。有人可能會說,如果我能夠這樣做,我會對此產生極大的興趣,但我仍然沒有。

我認為考慮到當今可用的運算能力,將您的服務隔離在虛擬機器中(當然在 Xen 上,但如果您堅持的話,VMWare 也可以工作:-P)是一個更好的主意。虛擬機器還具有非常容易備份/遷移的巨大優勢,這是 chroot 所不具備的。您還擁有用於管理虛擬機器的綜合介面,而 chroot 則絕對沒有這些介面。

相關內容