什麼是碼頭?
Docker 是一個容器平台,使開發人員和系統管理員能夠將應用程式及其所有相依性打包到標準化的程式碼單元中。
Docker 容器可讓企業在各種環境中(從超大規模雲端平台到本機共用機器)將應用程式作為獨立進程運作。 由於該平台的敏捷性、易用性和可擴展性,Docker 容器已成為現代雲端原生基礎架構的主要組成部分。
Docker 的工作方式
Docker 通過為企業提供一個標準平台來運行程式碼的工作。 它將給定應用程序所需的所有必要的二進製文件,庫和依賴項包裝在單一不可變的容器映像中。
Docker 容器映像可以由稱為 Docker 文件的文本文件創建。 建立影像後,就可以根據需要多次實例化它們,以 Docker 容器的方式在容器引擎上方 (例如 Docker Engine 或 Podman) 執行工作負載。 由於容器輕量、快速、易於實例化且高度可擴展,因此比在虛擬機器或裸機伺服器上運行的成熟作業系統更適合許多 CI\CD 工作流程和雲端原生微服務架構。
Docker 容器安全
Docker 的受歡迎也導致它成為攻擊者的高價值目標。 如其所示的威脅,例如 將使用 Monero 加密礦工發布惡意容器圖像到 Docker Hub 等公用容器登錄機構 以及更多細緻的安全性問題,例如 Docker cp 脆弱性 (CVE-2018-15664),企業必須考慮整個通用 Docker 生態系統中的威脅,以確保其容器安全。
讓我們來看看一些最好的 容器安全性 運行 Docker 容器的企業面臨的威脅以及可以幫助 DevSecOps 團隊緩解這些威脅的最佳實踐。
碼頭安全性問題
根據 Docker 的說法,企業應考慮進行 Docker 安全性審查的四大領域。 他們是:
- 核心安全性
- Docker 程序攻擊表面
- 配置挑戰
- 核心硬化功能及它們如何影響 Docker 容器
除了這些 Docker 安全考量之外,企業還必須考慮其容器映像的來源、給定容器使用的程式庫和二進位檔案、已知脆弱性的修補以及容器配置和通訊的複雜性。
考慮到這一切,企業在評估其安全狀況時需要考慮的一些最重要的 Docker 安全性問題是:
- 不安全的容器映像:無論它們是設定錯誤還是完全惡意,從存放庫中提取和部署不安全的映像都可以立即降低企業安全狀態。 一個案例:在 Docker Hub 上找到 400 萬個公開可用容器的掃描 6,000 個是惡意的,超過一半具有臨界脆弱性。
- 攻擊面:容器中開放的網路連接埠、檔案、函式庫和相依性越多,攻擊面就越大。 容器中未使用或不必要的元件不僅會增加膨脹,還增加攻擊者的潛在入口點數量。
- 使用特權旗幟: — 特權 flag 允許 Docker 容器以完全權限運行並繞過裝置 cgroup 控制器中的限制。 此旗標的使用應限制在一組非常狹窄的使用案例。
- 主機環境的安全性:容器引擎運作的底層核心和主機作業系統的脆弱性可能會使企業工作負載面臨風險。 如果企業控制 Docker 主機環境,則必須強化和修補主機環境。
- 容器協調安全性: Kubernetes (K8s) 等編排平台使企業能夠有效地管理和部署容器。 因此, K8s 安全 是 Docker 容器安全性的一個重要方面。
- 容器可見性:可見性是安全性的基本方面。 但是,傳統的監控和安全性掃描工具並不總是能夠為容器工作負載提供細微的可見性。
Docker 安全性最佳實務
為了限制他們接觸常見的 Docker 容器安全性問題,企業可以遵循幾種 Docker 安全性最佳做法。 除了有效的修補程序管理等基礎知識以及 shifting security left,以下是一些最重要的:
- 遵循最小權限的原則:安全性原則和配置應確保容器和使用者只能執行其執行工作所需的最低功能集。 從戰術角度來看,這意味著企業應採取措施,例如:實施 詳細的 IAM 政策、以無根模式運行容器、使用最少的基礎容器映像、鎖定網路層且不暴露 Docker 守護程式套接字、限製或限制 — 特權 標記,並盡可能使用唯讀文件系統。
- 僅執行受信任的容器:限制從 Docker 容器登錄中提取的容器使用僅受信任和簽署的映像(例如使用簽名標籤和 Docker 內容信任)映像,可大大減少企業接觸易受攻擊的容器映像。
- 套用資源配額:資源配額限制資源數量(例如 Docker 容器可以消耗中央處理器和 RAM。 設定資源配額可限制攻擊者在容器遭到入侵時消耗主機資源或影響其他服務的能力。
- 盡可能隔離容器:因為容器在 Linux 環境中以程序方式執行,因此有多種解決方案可供使企業防止核心逃生,並改善容器之間的邏輯隔離。 對於維護自己的主機環境的企業來說,使用 AppArmor、cgroups、Linux 命名空間或 SELinux 等解決方案可以幫助保護 Docker 環境。
- 主動監控和掃描:跨CI\CD 管道的端到端掃描和主動監控使企業能夠快速檢測威脅、識別容器鏡像中的脆弱性並快速修復問題。 為此最佳做法而言,必須提供企業偵測 Docker 容器的安全性問題所需的工具。
使用 CloudGuard 實現 Docker 安全
在這裡實施最佳做法和 安全容器工作負載,企業需要專門針對 Docker 和現代 DevSecOps 管道建置的安全解決方案。 CloudGuard 的容器安全 平台為企業提供全套工具,以保護 Docker 容器並大規模實施容器安全性。
例如,借助 CloudGuard,企業可以利用鏡像安全掃描來偵測容器鏡像的安全問題,並主動建議修復步驟。
此外,借助 CloudGuard 容器安全平台,企業還可以獲得:
- 跨雲端環境中所有雲端的全面保護。
- 「入口控制器」可在叢集中設定原則並強制執行權限最低的存取權限。
- 檢測嵌入式憑證和脆弱性的程式碼掃描。
- 具有自動風險評估和產生最低權限 IAM 角色的安全狀態管理。
- 即時威脅防護和運作時防護。
- 自動部署安全控制 DevSecOps 管道。
- 入侵偵測和威脅情報。
要了解更多信息,您可以 報名參加 CloudGuard 雲端資安專家主導的容器安全示範。在演示期間,雲端資安專業人員將探索與現代雲端原生環境相關的容器安全最佳實踐,以及如何利用自動化來實施 Docker。
若要進一步了解最新的容器安全最佳做法,您還可以 下載我們的容器和 Kubernetes 安全指南。本詳細的安全指南為企業所面臨的安全挑戰提供以實證為基礎的見解,並探討大規模解決這些挑戰的實用方法。