Kubernetes(又名K8s)是Google開源的容器集群管理系統(tǒng)(谷歌內部:Borg),現(xiàn)在由Cloud Native Computing Foundation維護,旨在幫助提升Docker容器化工作負載、服務、應用程序的部署、擴展和管理的自動化程度和便捷性。
Kubernetes通過將應用程序容器組織到Pod、節(jié)點(物理機或虛擬機)和群集中來實現(xiàn)此目的,其中多個節(jié)點形成一個由主節(jié)點管理的群集,該主節(jié)點負責協(xié)調與群集相關的任務,例如擴展、調度或更新應用程序。
近日Kubernetes曝出一個“先天性”中間人攻擊漏洞,Kubernetes產品安全委員會已經發(fā)布了一個有關如何暫時阻止攻擊者利用漏洞的建議,該漏洞可能使攻擊者能夠在中間人(MiTM)攻擊中攔截來自多租戶Kubernetes集群中其他Pod的流量。
受影響的服務未廣泛部署
曝光的漏洞嚴重性被評為“中等”,CVE編號為CVE-2020-8554,是一個影響所有Kubernetes版本的設計缺陷。
蘋果公司負責Kubernetes安全的軟件工程師Tim Allclair解釋說:“如果潛在的攻擊者已經可以在集群中創(chuàng)建或編輯服務和Pod,那么他們就可以攔截集群中其他Pod(或節(jié)點)的流量。”
“如果使用任意外部IP創(chuàng)建服務,則從群集內部到該外部IP的流量將被路由到該服務。”Allclair補充說。“這使攻擊者有權使用外部IP創(chuàng)建服務,以攔截到任何目標IP的流量。”
幸運的是,由于外部IP服務未在多租戶群集中廣泛使用,并且不建議為租戶用戶授予LoadBalancer IP補丁服務/狀態(tài)權限,因此該漏洞只會影響少數(shù)Kubernetes部署。
據Anevia公司的Etienne Champetier報告,利用該漏洞可以被攻擊者遠程利用,而無需用戶參與,可以作為低復雜度攻擊的一部分。
如何緩解CVE-2020-8554漏洞
由于Kubernetes開發(fā)團隊尚未提供安全更新來解決此問題,建議管理員通過限制對易受攻擊功能的訪問來緩解CVE-2020-8554。
您可以使用準入webhook容器來限制外部IP使用,此處(https://github.com/kubernetes-sigs/externalip-webhook)提供了源代碼和部署說明。
還可以使用此處(https://github.com/open-policy-agent/gatekeeper-library/tree/master/library/general/externalip)提供的模板,在Kubernetes的開放策略代理關守策略控制器的幫助下限制外部IP。
由于推薦的配置不容易受到攻擊,因此未提供針對LoadBalancer IP的緩解措施,但是如果需要限制,則外部IP建議也適用于LoadBalancer IP。
要想檢測嘗試利用此漏洞的攻擊,用戶必須使用易受攻擊的功能手動審核多租戶群集中外部IP使用情況。
“外部IP服務并未得到廣泛使用,因此我們建議手動審核任何外部IP使用情況。”Allclair說。“用戶不應對服務狀態(tài)進行修補,因為對于已通過用戶身份驗證的補丁服務狀態(tài)請求的審核事件可能會令人懷疑。”