Docker 是最廣泛使用的容器平台之一,在軟體工程師和開發人員中非常受歡迎。它配備了強大的圖形使用者介面 (CLI) 工具,用於管理 Docker 容器和其他相關任務。
預設情況下,在 Linux 上執行任何 Docker 相關命令都需要 root 權限。當然,您可以更改此設置,讓執行更輕鬆,無需 root 權限即可運行 Docker 命令,但您應該注意安全隱患。請查看 如何在 Linux 上使用 Docker 容器.

快速連結
Docker 中的攻擊面是什麼?
「攻擊面」是指惡意使用者可以用來入侵系統並造成嚴重破壞的攻擊點(例如視窗)的數量。一般而言,IT 系統應具有最低限度的攻擊面,以最大程度地降低安全風險。
整體而言,Docker 的攻擊面極小。容器在安全、隔離的環境中運行,除非另有配置,否則不會影響主機作業系統。此外,Docker 容器僅運行少量服務,因此更加安全。
您可以設定 Linux 系統,使其無需 sudo 權限即可控制 Docker。這在開發環境中可能很方便,但在生產系統上可能是一個嚴重的安全漏洞。以下是為什麼您永遠不應該在沒有 sudo 權限的情況下執行 Docker 的原因。
1. 控制 Docker 容器的能力
如果沒有 sudo 權限,任何有權存取您的系統或伺服器的人都可以控制 Docker 的各個方面。他們可以存取您的 Docker 日誌文件,並且可以隨意或意外地停止和刪除容器。您也可能會遺失對業務連續性至關重要的關鍵資料。
如果在生產環境中使用 Docker 容器,停機會導致各種資料和信任損失。
2. 控制主機作業系統目錄
Docker Volumes 是一項強大的服務,可讓您透過將容器資料寫入主機作業系統上的特定目錄來共用和保留容器資料。
在沒有 sudo 的情況下執行 Docker 所帶來的最大威脅之一是,系統上的任何人都可以控制主機作業系統的目錄,包括您的主目錄。
您需要做的就是啟動 Linux Docker 映像(例如 Ubuntu 映像),然後使用以下命令將其掛載到您的主資料夾:
docker run -ti -v /:/hostproot ubuntu bash
由於 Linux Docker 容器以 root 使用者身分執行,這實際上意味著您可以存取整個主目錄。
上述命令將下載最新的 Ubuntu 映像,運行它並將其安裝到您的主目錄。
在 Docker 容器終端機中,導覽至目錄 /hostproot 使用 . 命令 cd:
cd /hostproot

使用指令顯示此目錄的內容 ls 所有主機作業系統檔案現在都已在您的容器中可用。現在您可以操作文件、查看機密文件、隱藏和取消隱藏文件、更改權限等等。
3. 安裝惡意軟體
精心設計的 Docker 映像可以在背景運行,篡改您的系統或收集敏感資料。更糟的是,惡意使用者可能會透過 Docker 容器在您的網路上部署惡意程式碼。
Docker 容器的實際用例非常廣泛,每個應用程式都會帶來不同的安全威脅。查看 如何在 Linux 上安裝 Docker.
在 Linux 上保護 Docker 容器
Docker 是一個強大且安全的平台。如果不使用 sudo 運行 Docker,則會增加您的攻擊面,並使您的系統容易受到攻擊。在生產環境中,強烈建議在 Docker 中使用 sudo。
如果系統上有多個用戶,那麼為每個用戶分配權限可能會非常困難。在這種情況下,遵循存取控制最佳實務可以幫助您確保系統安全。現在您可以查看 什麼是存取控制以及為什麼需要它?










