1. 程式人生 > >K8s爆嚴重安全漏洞?有何應對措施與建議

K8s爆嚴重安全漏洞?有何應對措施與建議

Kubernetes最近爆出嚴重安全漏洞,影響幾乎目前所有的版本。實際影響究竟多大?老版本使用者是否必須升級?以下是華為雲容器服務團隊對該漏洞的分析解讀。

Kubernetes爆出的嚴重安全漏洞:

攻擊者通過構造特殊請求,可以在一個普通許可權的連結上提升許可權,向被代理的後端伺服器傳送任意請求。

該問題影響了幾乎Kubernetes目前所有的版本,包括:

Kubernetes v1.0.x-1.9.x

Kubernetes v1.10.0-1.10.10 (fixed in v1.10.11)

Kubernetes v1.11.0-1.11.4 (fixed in v1.11.5)

Kubernetes v1.12.0-1.12.2 (fixed in v1.12.3)

什麼樣的叢集可能被攻擊?

叢集啟用了擴充套件API server,並且kube-apiserver與擴充套件API server的網路直接連通;

叢集對攻擊者可見,即攻擊者可以訪問到kube-apiserver的介面,如果你的叢集是部署在安全的私網內,那麼不會有影響;

叢集開放了 pod exec/attach/portforward 介面,則攻擊者可以利用該漏洞獲得所有的kubelet API訪問許可權。

再看具體影響的場景

叢集使用了聚合API,只要kube-apiserver與聚合API server的網路直接連通,攻擊者就可以利用這個漏洞向聚合API伺服器傳送任何API請求;

如果叢集開啟了匿名使用者訪問的許可權,則匿名使用者也利用這個漏洞。不幸的是K8s預設允許匿名訪問,即kube-apiserver的啟動引數”-- anonymous-auth=true”;

給予使用者Pod的exec/attach/portforward的許可權,使用者也可以利用這個漏洞升級為叢集管理員,可以對任意Pod做破壞操作;

該漏洞的更詳細討論,可見社群Issue:

https://github.com/kubernetes/kubernetes/issues/71411

應對措施與建議

綜合以上分析,使用華為雲CCE服務的小夥伴們不必過於擔心,因為:

CCE服務建立的叢集預設關閉匿名使用者訪問許可權

CCE服務建立的叢集沒有使用聚合API

如果,你開啟了RBAC許可權,且給使用者分配了Pod的exec/attach/portforward許可權,華為雲CCE容器服務將於今晚完成所有現網1.11版本K8S叢集的線上補丁修復,針對低於v1.10的叢集(社群已不對其進行修復),本週我們也會提供補丁版本進行修復,請關注升級公告,及時修復漏洞。

Tips:如果你是自己搭建K8s叢集,為提高叢集的安全係數,建議如下,

一定要關閉匿名使用者訪問許可權。

儘快升級到社群漏洞修復版本。合理配置RBAC,只給可信使用者Pod的

exec/attach/portforward許可權.

如果你當前使用的K8s版本低於v1.10,不在官方補丁支援範圍內,建議自行回合補丁程式碼 :

https://github.com/kubernetes/kubernetes/pull/71412