Kubernetes 容器防護是一項需要面面俱到的工作,涵蓋 Kubernetes 的 Pod、映像、執行時期環境、主機以及 Kubernetes 基礎架構本身。
Kubernetes 容器防護
Kubernetes 是一款熱門的開放原始碼容器協調工具,目前已成為市場上的主流。像 Kubernetes 這樣的容器協調工具對企業來說非常重要,少了它,企業就無法將容器化應用程式運用在正式的營運環境。沒有它,企業就必須手動下指令來部署與管理容器,這在大規模環境幾乎是不可能的事。
將部署、擴充以及整體容器化應用程式的管理工作自動化能帶來許多效益,但企業有一點很重要必須了解是,如果沒有適當的管制措施,這些工具也可能形成資安上的漏洞。
Kubernetes 並不負責提供資安管理
根據最新的報告,超過 86% 的企業都採用 Kubernetes 來管理某些容器工作負載,但資安依舊是一大疑慮。同樣的一份調查,有超過半數的受訪者表示其企業在容器防護方面的投資不足,在缺乏策略的情況下,這將導致 Kubernetes 部署進度落後或造成嚴重的資安事件。
除了基本功能 (如強制的角色導向存取控管) 之外,Kubernetes 並未提供防範應用程式漏洞的功能。這就是您為何必須利用其他程式或第三方廠商來確保您有一套適當的防護。
需要考量的層面
以下是保護 Kubernetes 容器安全所需考量的一些層面:
預設的組態設定
保護 Kubernetes 容器安全所需考量的第一個層面就是預設的組態設定。所有預設的 Kubernetes 組態設定都必須先檢查過一遍才能開始使用,以降低因為某個 Pod 遭到攻擊而擴散至其他 Pod 的風險。
雖然 Kubernetes 對於存取控管之類的措施確實有一套明確的架構,但大多數存取控管相關的功能通常都並非預設開啟。此外,這類控管或許也無法用來強制實施最低授權政策(least-privilege policies),使得一些不需要某些資訊的使用者也擁有完整的權限。如果因為這樣的關係而讓一些敏感的資料暴露在外,那將衍生出極大的風險,同時也使得機密資訊可能被惡意使用者所存取。
容器執行時期環境
容器執行時期環境是一個專門負責執行容器的特殊應用程式。有一點很重要必須了解的是,Kubernetes 本身並無防範執行時期攻擊的措施,同時也無法偵測是否已遭到入侵。
萬一執行中的容器已遭到入侵,或者被發現了一個新的漏洞,整個容器都必須砍掉,然後再重新啟動一個未遭入侵的版本。此外,也應善用資訊來重新設定環境內的元件組態以修正資安問題的根源。
容器映像
容器映像也可能為容器帶來更多漏洞,組態設定不當的容器映像,會變成一個很容易讓駭客入侵網路的破口,而含有認證金鑰的容器映像,將成為網路犯罪集團日後發動攻擊的跳板。
要偵測容器映像內部的惡意程式碼,需要對容器登錄與營運環境中的容器映像進行掃描,但 Kubernetes 並不具備這樣的功能。
主機防護
在設計上,Kubernetes 只是將被分派伺服器執行容器而以,由於協調工具並不會涉及到伺服器的安全,所以必須透過一些其他的流程來加以監控,以防範資安問題。
為此,許多企業在執行個體上安裝了傳統的主機防護,希望能偵測駭客對系統資源所發動的漏洞攻擊,但萬一連主機本身也遭到入侵,就會導致災難性的後果。企業必須隨時監控主機系統是否有任何遭到入侵或可疑活動的跡象,以對抗惡意的攻擊。
Pod 對 Pod 通訊
在預設情況下,Kubernetes 並不會對每一個 Pod 指定網路政策,換句話說,在 Kubernetes 環境內,各個 Pod 之間都能夠彼此互相溝通。讓容器和 Pod 彼此自由溝通,固然有助於整個部署環境的正常運作,但也很快就會變成網路犯罪集團容易下手的攻擊目標,他們只需入侵一個容器,就能輕易移轉到同一環境內的其他容器。
為一個 Pod 指定網路政策,就如同設定防火牆規則與流量管制一樣,讓這個 Pod 只能跟預先設定好的資源溝通。
保護 Kubernetes 容器
由於絕大多數的企業都採用 Kubernetes,因此確保 Kubernetes 容器的安全是維持網路與應用程式安全,防止駭客入侵與惡意攻擊的重要關鍵。企業若能將資安順利融入 Kubernetes 容器生命週期的每一階段,就等於做好了適當的防護措施,進而高枕無憂。
相關研究
相關文章