容器安全:DevOps 工程師的五大優秀實踐
容器安全確保您的云原生應用程序免受與容器環境相關的網絡安全威脅。
容器化導致許多企業和組織以不同方式開發和部署應用程序。Gartner最近的一份報告表明,到 2022 年,超過 75% 的全球組織將在生產中運行容器化應用程序,高于 2020 年的不到 30%。然而,盡管容器具有許多好處,但它們無疑仍然是網絡攻擊的來源曝光,如果沒有適當的保護。
以前,網絡安全意味著保護一個“邊界”。通過引入新的復雜層,容器使這個概念過時了。容器化環境具有更多的抽象級別,這就需要使用特定的工具來解釋、監控和保護這些新應用程序。
什么是容器安全?
容器安全性使用一組工具和策略來保護容器免受影響應用程序、基礎設施、系統庫、運行時等的潛在威脅。容器安全涉及為容器堆棧實施安全環境,其中包括以下內容:
- 容器鏡像
- 容器引擎
- 容器運行時
- 注冊表
- 主持人
- 協調器
大多數軟件專業人士自動假設 Docker 和 Linux 內核是安全的,不受惡意軟件的侵害,這是一個很容易被高估的假設。
5 大容器安全最佳實踐
1.主機和操作系統安全
容器提供與主機的隔離,盡管它們共享內核資源。經常被忽視的是,這一方面使攻擊者更難但并非不可能通過內核利用來破壞操作系統,從而獲得對主機的 root 訪問權限。
運行容器的主機需要通過確保底層主機操作系統是最新的來擁有自己的一組安全訪問權限。例如,它正在運行最新版本的容器引擎。理想情況下,您將需要設置一些監控以提醒主機層上的任何漏洞。此外,選擇一個“瘦操作系統”,這將加速您的應用程序部署并通過刪除不必要的包并使您的操作系統盡可能小來減少攻擊面。
本質上,在生產環境中,無需讓人工管理員通過 SSH 連接到主機來應用任何配置更改。相反,最好通過 IaC 使用Ansible或Chef 來管理所有主機, 例如。這樣,只有協調器才能持續訪問運行和停止容器。
2. 容器漏洞掃描
應定期對您的容器或主機進行漏洞掃描,以檢測和修復黑客可能用來訪問您的基礎設施的潛在威脅。一些容器注冊表提供這種功能;當您的圖像被推送到注冊表時,它會自動掃描它以查找潛在的漏洞。
一種主動的方法是通過采用“左移”理念在 CI 管道中設置漏洞掃描,這意味著您在開發周期的早期實施安全性。同樣,Trivy 將是實現這一目標的絕佳選擇。
假設您正嘗試對本地節點設置這種掃描。在這種情況下,Wazuh 是一個可靠的選擇,它將記錄每個事件并根據多個 CVE(常見漏洞和暴露)數據庫驗證它們。
3.容器注冊安全
容器注冊表提供了一種方便且集中的方式來存儲和分發圖像。通常會發現組織在其注冊表中存儲了數千個圖像。由于注冊表對于容器化環境的工作方式非常重要,因此必須妥善保護它。因此,您應該考慮花時間監控和防止未經授權訪問您的容器注冊表。
4. Kubernetes 集群安全
您可以采取的另一項措施是圍繞您的容器編排加強安全性,例如防止來自過度特權帳戶或網絡攻擊的風險。遵循最低特權訪問模型,保護 pod 到 pod 通信將限制攻擊造成的損害。在這種情況下,我們推薦的工具是Kube Hunter,它充當滲透測試工具。因此,它允許您在 Kubernetes 集群上運行各種測試,以便您可以開始采取措施來提高它的安全性。
你可能也對Kubescape感興趣,它類似于 Kube Hunter;它會掃描您的 Kubernetes 集群、YAML 文件和 HELM 圖表,為您提供風險評分:
5. 機密安全
容器或 Dockerfile 不應包含任何秘密。(證書、密碼、令牌、API 密鑰等)而且,我們仍然經常看到秘密被硬編碼到源代碼、圖像或構建過程中。選擇機密管理解決方案將使您能夠將機密存儲在安全、集中的保險庫中。
結論
這些是您可以采取的一些主動安全措施來保護您的容器化環境。這一點至關重要,因為 Docker 出現的時間很短,這意味著其內置的管理和安全功能仍處于起步階段。值得慶幸的是,好消息是可以使用多種工具輕松地在容器化環境中實現良好的安全性,例如我們在本文中列出的工具。