2019年1月,世界上最流行的容器編排系統Kubernetes發現了第一個嚴重的安全漏洞,該漏洞襲擊了該項目的生態系統。漏洞CVE-2018-1002105允許攻擊者通過Kubernetes API服務器破壞群集,該服務器允許執行惡意代碼以安裝惡意軟件等。那年早些時候,Kubernetes控制面板的錯誤配置導致在Tesla資源上安裝了加密貨幣挖掘軟件。然后,攻擊者利用了Kubernetes面板之一不受密碼保護的事實,這使他們可以使用一個帳戶訪問其中一個Pod來訪問AWS中更大的Tesla基礎架構。
加快容器及其編排的實施速度的組織還需要采取強制性步驟來保護其基礎結構的這一關鍵部分。以下是基于客戶數據的九種Kubernetes最佳安全做法。跟隨他們以更好地保護您的基礎架構。
1.更新到最新版本
[Kubernetes]的每個季度發行版中不僅有錯誤修復,而且還提供新的安全功能。要利用它們,我們建議使用最新的穩定版本。
更新和支持可能比發行版中提供的新功能困難,因此,至少每季度計劃一次更新。可以使用托管的Kubernetes-solutions提供程序顯著簡化更新。
2.啟用基于角色的訪問控制
使用RBAC來控制誰可以訪問Kubernetes API以及他們具有哪些權限。通常,在Kubernetes 1.6版及更高版本中,默認情況下會啟用RBAC,但是如果此后已更新且未更改配置,則應仔細檢查設置。
但是,啟用RBAC是不夠的-仍然需要有效地使用它。在一般情況下,應避免對整個群集的權限,而應優先考慮某些命名空間中的權限。即使在調試時,也要避免給集群管理員特權-僅在必要時不時授予權限更為安全。
如果應用程序需要訪問Kubernetes API,請創建單獨的服務帳戶。并為他們提供每個用例所需的最小權限集。這種方法比給名稱空間中的默認帳戶過多的特權要好得多。
3.使用名稱空間設置安全邊界
創建單獨的名稱空間對于組件隔離的第一級很重要。當不同類型的工作負載部署在單獨的命名空間中時,調整安全設置要容易得多。
4.分離敏感的工作負載
限制危害潛在后果的一種好習慣是在一組專用的計算機上運行帶有敏感數據的工作負載。這種方法降低了安全性較低的應用程序訪問敏感應用程序在同一容器可執行環境或同一主機上運行的數據的風險。例如,受感染節點的kubelet通常僅在將秘密內容安裝在計劃在同一節點上執行的Pod上時才可以訪問秘密內容。如果可以在多個群集節點上找到重要機密,則攻擊者將有更多機會來獲取這些機密。
可以使用節點池,在云中或本地以及Kubernetes控制機制來完成分離。
5.保護對云服務元數據的訪問
敏感的元數據可能被盜用或出于惡意目的在集群中升級特權。例如,Shopify的漏洞賞金計劃中的一項最新發現詳細顯示了用戶如何通過使用專門為一種微服務生成的數據從云提供商接收元數據來超越權限。
GKE元數據隱藏功能以避免此類問題的方式更改了部署群集的機制。我們建議在實施永久解決方案之前使用它。
6.創建和定義群集網絡策略
網絡策略-允許您控制進出容器化應用程序對網絡的訪問。要使用它們,您必須具有支持此類資源的網絡提供商。
一旦一切準備就緒,就從簡單的默認網絡策略開始-例如,默認情況下阻止來自其他名稱空間的流量。
7.設置集群的Pod安全策略
Pod安全策略設置用于啟動集群中工作負載的默認值。考慮定義策略并啟用Pod Security Policy準入控制器:這些步驟的說明會根據所使用的云提供商或部署模型而有所不同。
開始時,您可能希望禁用容器中的NET_RAW功能,以保護自己免受某些類型的欺騙攻擊。
8.開展節點安全性工作
要提高主機安全性,您可以按照以下步驟操作:
· 確保安全且正確地配置了主機。一種方法是CIS基準測試;許多產品都有自動檢查器,可以自動檢查系統是否符合這些標準。
· 監視重要端口的網絡可用性。確保網絡禁止訪問kubelet使用的端口,包括10250和10255。考慮限制對Kubernetes API服務器的訪問-受信任的網絡除外。在不需要在kubelet API中進行身份驗證和授權的集群中,攻擊者通常會訪問此類端口以啟動加密貨幣礦工。
· 最小化對Kubernetes主機的管理訪問原則上應限制對群集節點的訪問:通常,對于調試和解決其他問題,您可以在不直接訪問節點的情況下進行。
9.啟用審核日志記錄
確保啟用了審核日志,并且正在監視其中的異常或不需要的API調用的發生,尤其是在任何授權失敗的情況下-此類條目將帶有“禁止”狀態的消息。授權失敗可能意味著攻擊者試圖利用獲得的憑據。
托管解決方案提供商可以在其界面中訪問此數據,并可以幫助您在授權失敗的情況下設置通知。
展望未來
請遵循以下準則以獲得更安全的Kubernetes集群。請記住,即使在安全地配置了集群之后,也需要確保容器配置和操作的其他方面的安全性。為了提高技術堆棧的安全性,請研究工具,這些工具提供了用于管理已部署容器,不斷監視和保護容器以及云原生應用程序的中央系統。想了解更多關于網絡安全的信息,請繼續關注中培偉業。