Docker 等容器化技術讓公司可以比使用傳統流程更快地部署服務和應用程序。無需部署和配置功能齊全的操作系統和所需的應用程序,您只需下載并啟動該應用程序的 Docker 映像,通常只需幾分鐘即可開始使用它。Docker 是可移植的,這意味著您可以在運行 Linux、Windows 或 Mac 的工作站上運行相同的映像。例如,DevOps 工程師通常會先在自己的 Mac 或 Windows 工作站上通過 Docker 映像創建和測試新服務,然后再將其上傳到生產環境中的目的地。無論圖像是在他們的工作站上運行還是在云服務提供商托管的生產環境中運行,他們都可以依靠類似的行為。
下載并安裝 Docker 后,您可以立即使用它。使用 Docker 命令,您可以指定一個注冊表(Docker 鏡像形式的軟件集合),然后下載特定應用程序的 Docker 鏡像并啟動它。Docker 鏡像是一個非常小的專用文件,通常只包含啟用應用程序所需的最少文件。例如,可以不使用 Ubuntu Linux 發行版,而是使用占用空間較小的發行版(例如 Alpine-Linux)構建映像。通常,只包括必需品,這會使圖像小得多。這也有可能更安全的理想副作用,因為更少的代碼和包通常會導致更小的表面積供攻擊者利用。
較大的環境通常會使用 Kubernetes 等編排軟件來管理其容器環境。Kubernetes 有助于根據定義的業務邏輯管理容器的擴展和部署。服務網格和微服務架構在設計和支持可擴展的基于云的應用程序方面也發揮著重要作用。服務網格協調不同服務之間的網絡流量,并可以充當服務之間的負載均衡器。服務網格還可以提供額外的安全功能,例如互連服務之間的加密和身份驗證。將應用程序部署為容器中的微服務意味著每個服務(例如,用戶帳戶管理服務和購物車服務)都是獨立構建和托管的。結合 Kubernetes 和服務網格,
保護這些技術依賴于與保護傳統網絡和服務類似的安全原則,但確實需要一種略有不同的方法和技術來了解容器的運行方式。讓我們回顧一下用于保護和管理這些新技術并防止容器防御出現漏洞的工具和流程。
漏洞管理
容器是使用定義容器行為的只讀文件的圖像來部署的。通常您會從外部注冊表(如 docker hub)下載圖像,或者更高級的用戶會創建自己的圖像。鏡像通常基于一個非常輕量級的操作系統,在該操作系統之上安裝了一個特定的應用程序(例如 Nginx 或 MySQL)。在部署容器之前,使用容器和鏡像感知漏洞掃描器掃描鏡像以確保鏡像安全。當您檢測到圖像中的漏洞時,更新圖像并重新部署容器。使用傳統的漏洞掃描器(例如 Nessus)在容器化環境中可能效果不佳,因為目標容器會隨著負載的變化而變化,并且 IP 地址通常會在服務網格或覆蓋網絡架構中重復使用。換句話說,掃描網絡范圍的結果可能每天都不同,并且關聯發現可能很困難。
存貨
容器化架構依賴于新技術,清點這些對象及其依賴關系以適當保護它們仍然很重要。這在原則上與對包括服務器、應用程序和網絡配置(如子網和訪問控制列表)的 IT 資源進行傳統盤點沒有必然的不同。然而,傳統 IT 環境和容器化環境之間的構造通常不同。容器化環境中需要清點的重要對象包括使用了哪些圖像、運行的容器、運行托管圖像的 Docker 的節點、環境中運行的所有服務和應用程序,以及限制對這些對象的訪問的網絡組。
記錄
在容器化環境中記錄事件和收集重要的遙測數據有助于發現異常行為。尋找可以檢查容器網絡連接的容器感知工具。由于容器的短暫性和動態性,傳統方法(例如基于 IP 地址的靜態規則)可能效果不佳。記錄活動是運行時保護的重要組成部分。尋找可以衡量正常操作情況的軟件作為基準,然后對變體發出警報,包括事件前后發生的事情。許多容器安全解決方案分析和呈現有助于跟進可能事件的日志數據取證視圖。
結論
容器正迅速成為云計算中的流行標準。它們相對快速且易于引入環境,但傳統的安全工具和流程可能無法識別這些技術。一定要了解容器是如何工作的,這樣當它們進入您的環境時,您就會做好準備并避免您的環境中出現可能給您帶來不必要風險的黑洞。
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11319瀏覽量
209830 -
容器
+關注
關注
0文章
496瀏覽量
22074 -
Docker
+關注
關注
0文章
478瀏覽量
11873
發布評論請先 登錄
相關推薦
評論