不應該在沒有 sudo 的情況下執行 Docker 的原因

大雄45發表於2023-01-16
導讀 預設情況下,您需要 root 許可權才能在   上執行任何與 Docker 相關的 。當然,為了方便起見,您可以更改此設定並在沒有 root 許可權的情況下執行 Docker  ,但您應該注意安全隱患。

Docker 是開發人員的安全容器化平臺。既然它如此安全,為什麼不能在沒有超級使用者許可權的情況下執行它?

Docker 是最常用的容器化平臺之一,深受軟體工程師的喜愛。它帶有一個強大的 CLI 工具,用於管理 Docker 容器和其他相關任務。

預設情況下,您需要 root 許可權才能在 Linux 上執行任何與 Docker 相關的命令。當然,為了方便起見,您可以更改此設定並在沒有 root 許可權的情況下執行 Docker 命令,但您應該注意安全隱患。

不應該在沒有 sudo 的情況下執行 Docker 的原因不應該在沒有 sudo 的情況下執行 Docker 的原因

什麼是 Docker 攻擊面?

攻擊面是惡意使用者可以用來進入系統並造成嚴重破壞的攻擊點數量,更像是視窗數量。根據經驗,IT 系統應具有最小的攻擊面,以降低安全風險。

一般來說,Docker 的攻擊面非常小。容器在安全的隔離環境中執行,除非另有規定,否則不會影響主機作業系統。此外,Docker 容器只執行最少的服務,這使得它更安全。

您可以將 Linux 系統配置為在沒有 sudo 許可權的情況下控制 Docker。這在開發環境中可能很方便,但在生產系統中可能是一個嚴重的安全漏洞。這就是為什麼你永遠不應該在沒有 sudo 的情況下執行 Docker。

1. 能夠控制 Docker 容器

如果沒有 sudo 許可權,任何有權訪問您的系統或伺服器的人都可以控制 Docker 的各個方面。他們有權訪問您的 Docker 日誌檔案,並且可以隨意或意外地停止和刪除容器。您還可能丟失對業務連續性至關重要的關鍵資料。

如果在生產環境中使用 Docker 容器,停機會導致業務和信任損失。

2. 獲得對主機作業系統目錄的控制

Docker 卷是一項功能強大的服務,允許您透過將容器資料寫入主機作業系統上的指定資料夾來共享和保留容器資料。

在沒有 sudo 的情況下執行 Docker 帶來的最大威脅之一是系統上的任何人都可以控制主機作業系統的目錄,包括根目錄。

您所要做的就是執行 Linux Docker 映像,例如 Ubuntu 映像,並使用以下命令將其掛載到根資料夾上:

root@linuxmi:/home/linuxmi/

輸出如下:

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6e3729cf69e0: Pull complete 
Digest: sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9
Status: Downloaded newer image for ubuntu:latest

由於 Linux Docker 容器以 root 使用者身份執行,因此本質上意味著您可以訪問整個根資料夾。

上述命令將下載並執行最新的 Ubuntu 映像並將其掛載到根目錄上。

在 Docker 容器終端上,使用 cd 命令轉到 /hostproot 目錄:

root@c977c6de6265:/# cd /hostproot

使用 ls 命令列出此目錄的內容將顯示容器中現在可用的主機作業系統的所有檔案。現在,您可以操作檔案,檢視機密檔案,隱藏和取消隱藏檔案,更改許可權等。

3. 安裝惡意軟體

精心製作的 Docker 映像可以在後臺執行並作業系統或收集敏感資料。更糟糕的是,惡意使用者可能會透過 Docker 容器在您的網路上傳播惡意程式碼。

Docker 容器有幾個實際用例,每個應用程式都會帶來一組不同的安全威脅。

在 Linux 上保護您的 Docker 容器

Docker是一個強大而安全的平臺。在沒有 sudo 的情況下執行 Docker 會增加您的攻擊面並使您的系統容易受到攻擊。在生產環境中,強烈建議您將 sudo 與 Docker 一起使用。

由於系統上有如此多的使用者,因此很難為每個使用者分配許可權。在這種情況下,遵循最佳訪問控制實踐可以幫助您維護系統的安全性。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2931983/,如需轉載,請註明出處,否則將追究法律責任。

相關文章