用防火墻來保障容器安全(Docker/Kubernetes)
在部署任何基于容器的應用程序之前,首先通過確保Docker、Kubernetes或其他容器防火墻來保護容器的安全至關重要。有兩種方式來實現容器防火墻:手動或通過使用商業解決方案。但是,不建議對基于Kubernetes的容器部署進行手動防火墻部署。無論如何,無論采取哪種策略,創建一套網絡防火墻規則來保護容器部署至關重要,這可以防止容器敏感系統和數據被訪問。
新漏洞的不但出現加強了容器安全的必要性,Apache Struts背后的黑客的創造力,Linux堆棧沖突以及cow exploits,所有這些都是因重大數據泄露和勒索軟件攻擊臭名昭著,企業永遠不知道接下來會發生什么。此外,這些攻擊具有相當的復雜性,不僅需要漏洞掃描和修補來應對威脅。
攻擊通常是一系列的事件(或稱為kill chain),攻擊者將進入一個易受攻擊的系統,然后升級他的訪問權限并掃描其他系統,最終違反數據并造成損害。主動式容器防火墻策略可以幫助檢測多個階段的kill chain,并減少此類攻擊,即便在涉及零漏洞的情況下也是如此。
部署防火墻來保護容器并不簡單,就本質而言,容器部署根據需要動態擴展、更新并遷移主機和云,以優化環境。編排工具管理Pod和容器的IP地址,使得攻擊者難以了解網絡流量。每個容器都包含容器的虛擬化網絡接口,無論是Docker、Kubernetes還是其他程序,環境的編排工具都會自動部署。由于這種高度動態的特性,對傳統防火墻規則和iptables來說,檢查流量并防止容器受到不必要的訪問是一個巨大的挑戰。
容器防火墻保護
可用于容器防火墻部署的選擇與傳統防火墻的選擇相同,包括以下內容:
- 3/4層過濾:容器安全性可以基于IP地址和端口實現。還可以使用Kubernetes網絡策略和其他Kubernetes工具以動態方式更新規則,在部署更改和擴展容器時加以保護。需要指出的是,這些工具沒有配備實現實時流量監控和可視化。
- Web應用攻擊檢測:運行Web應用程序的面向Internet的容器可以通過檢測常見攻擊的方式進行保護,這符合Web應用程序防火墻(WAF)的功能。需要注意的是,僅限于常見的外部攻擊,保護內部容器到容器之間的流量所需的多協議過濾超出了此方法的范疇。
- 7層Docker防火墻:通過具有7層過濾功能的容器防火墻和容器間流量的深度包檢測,可以使用網絡應用程序協議來保護容器。與此同時,這類防火墻還集成了容器運行時引擎和Kubernetes等云容器編排工具,自動創建策略,基于白名單的保護以及支持云和主機安全的應用程序威脅保護。
手動配置Docker容器防火墻
對于那些對自己的Linux網絡功能充滿信心的用戶而言,手動配置Dcoker容器防火墻是一種有效的選擇。
完成此操作的基本步驟如下:
- 將iptables設置為false以確保Docker不會覆蓋您的規則
- 檢查您創建的規則并保存
- 添加允許/轉發的規則(I/O接口,ICMP,Docker)
- 為輸入和輸出流量以及流量路由添加防火墻規則,確保容器仍然能夠根據需要訪問互聯網
- 加載防火墻規則
- 允許或限制icc設置為等于true的主機到主機容器通信
遵循這些步驟將能夠通過基本的網絡通信進行控制,通過進一步的規則更新或商用Docker容器解決方案來實現這些功能的自動化,可以實現對容器與其他容器進行通信的更細致的命令。實際上,在高度動態的環境中手動更新容器與容器之間的規則是不可取的。
云原生方式
盡管云原生Docker容器防火墻與下一代防火墻或WAF相似,但它們在云和托管安全功能方面有巨大差異。通過在云原生容器環境中提供保護,這些防火墻不僅能夠保護外部南北向流量,還能夠保護內部東西向流量,同時隔離并保護工作負載、應用程序對戰和動態容器環境。
通過行為學習來啟用自動策略創建
容器防火墻可能了解容器環境中每個基于容器服務的正常行為,通過收集盡可能多的行為數據,防火墻就可以系統地理解應用程序的意圖,管理安全策略以自動支持此意圖,識別并禁止與此意圖不符合的行為。
深度包檢測(DPI)
深度包檢測(DPI)技術是容器防火墻可以提供的另一個重要安全需求。所有漏洞都使用可預測的攻擊媒介:惡意HTTP請求可能包含格式錯誤的頭文件,或者在可擴展標記語言(XML)對象中包含可執行的shell命令。有效的檢測部署可以查找和識別這些方式,DPI為此過程增加了一個必要的確定性,允許容器防火墻實時審查每個容器連接,并判斷是否允許數據包繼續傳輸。
無論是手動部署容器防火墻還是使用商用防火墻,對于用戶的解決方案能夠檢測主機和容器中的特權升級和可疑進程,掃描這些漏洞以及監控其活動和行為的任何容器環境的安全性至關重要。商用的容器網絡安全選擇通常提供終端安全和審計功能以及強大的防火墻功能。安全審計和一致性測試工具,如Docker Bench for Security或CIS Kubernetes基準測試工具,將用戶的容器環境納入測試并指出安全改進的特定需求。