Kubernetes 首爆嚴重安全漏洞,請升級你的 Kubernetes
Kubernetes 最近爆出特權升級漏洞,這是 Kubernetes 的首個重大安全漏洞。為了修補這個嚴重的漏洞,Kubernetes 近日推出了幾個新版本。
谷歌高階工程師 Jordan Liggitt 在週一釋出的 Kubernetes 安全公告中稱,Kubernetes v1.10.11、v1.11.5,v1.12.3 和 v1.13.0-rc.1 已經發布了修復版本,修復了特權升級漏洞 CVE-2018-1002105(ofollow,noindex">https://access.redhat.com/security/vulnerabilities/3716411 )。
這個錯誤的嚴重程度被指定為 9.8(滿分 10 分),因為它可以遠端執行,攻擊並不複雜,不需要使用者互動或特殊許可權。
根據 Liggitt 的說法,惡意使用者可以通過 Kubernetes API 伺服器連線到後端伺服器,利用 API 伺服器的 TLS 憑證進行身份驗證併發送任意請求。
API 伺服器是 Kubernetes 的主要管理實體,它與分散式儲存控制器 etcd 和 kublet 發生互動,這些代理會監視容器叢集中的每個節點。
Rancher Labs 的首席架構師兼聯合創始人 Darren Shepherd 發現了這個漏洞。
Red Hat OpenShift 是一個面向企業的容器平臺,已經為所有產品打上了補丁。
Red Hat OpenShift 總經理 Ashesh Badani 在一篇博文中表示:“這是一個大問題。不法分子不僅可以竊取敏感資料或注入惡意程式碼,還可以從企業防火牆內破壞應用程式和服務”。
該漏洞主要有兩個攻擊媒介。
-
首先,預設情況下,擁有 Pod exec/attach/portforward 許可權的個人可以成為叢集管理員,從而獲得對 Pod 中任意容器及潛在資訊的訪問許可權。
-
第二種方法可以讓一個未經身份驗證的使用者訪問 API,建立未經批准的服務,這些服務可用於注入惡意程式碼。
Red Hat 產品安全保障經理 Christopher Robinson 在給 The Register 的一封電子郵件中解釋說,“任何未經身份驗證但有許可權訪問 Kubernetes 環境的使用者都可以訪問用於代理聚合 API 伺服器(不是 kube-apiserver)的端點”。
“向 API 傳送一個訊息,造成升級失敗,但連線仍然活躍,這個時候可以重用任意標頭,獲得叢集管理員級別的訪問許可權來訪問聚合 API 伺服器。這可以被用於服務目錄,進而建立任意服務例項。”
這個漏洞之所以令人如此不安,是因為未經授權的請求很難被檢測到。根據 Liggitt 的說法,它們不會出現在 Kubernetes API 伺服器的審計日誌或伺服器日誌中。惡意請求在 kublet 或聚合 API 伺服器日誌中是可見的,但卻難以將它們與經過授權的請求區分開來。
現在的修復辦法只有一個,那就是升級 Kubernetes,就現在。 Kubernetes v1.10.11,v1.11.5,v1.12.3 和 v1.13.0-rc.1 已經發布了修補版本。
如果你仍在使用 Kubernetes v1.0.x-1.9.x,請更新到修補版本。 如果由於某種原因無法升級,還是有補救措施,但破壞性很大:必須暫停使用聚合的 API 伺服器,並從不應有 kubelet API 完全訪問許可權的使用者中刪除 pod exec / attach / portforward 許可權。Jordan Liggitt 表示,這些補救措施可能具有破壞性。
所以唯一的解決方法是升級 Kubernetes。
雖然現在還沒有人利用這個漏洞進行共計,但是濫用漏洞會在日誌中留下明顯的痕跡。 而且,既然有關 Kubernetes 特權升級漏洞的訊息已經公開,那麼這個漏洞被濫用只是時間問題。
因此,在陷入困境之前,還是對 Kubernetes 系統進行升級吧。
參考連結:
https://www.theregister.co.uk/2018/12/03/container_code_clusterfact_theres_a_hole_in_kubernetes
RSSbaffb68" target="_blank" rel="nofollow,noindex">https://www.zdnet.com/article/kubernetes-first-major-security-hole-discovered/#ftag=RSSbaffb68