一個危險的Kubernetes bug:繞過身份驗證,實施DoS

研究人員稱,在某些Kubernetes配置下,Kubernetes開源雲容器軟件中的一對bug可能是“高度危險的”。

漏洞CVE-2019-16276和CVE-2019-11253已在Kubernetes 1.14.8、1.15.5和1.16.2版本中打好補丁。

Palo Alto Networks的Ariel Zelivansky和Aviv Sasson稱,利用第一個漏洞CVE-2019-16276“非常簡單”,攻擊者可以繞過身份驗證控制來訪問容器。

根據bug報告,嚴重性很高的漏洞是Go語言的標準HTTP庫(稱為net/http)中的HTTP協議衝突——該庫用於分析HTTP請求。

出現此問題是因為在HTTP規範中,請求頭中不允許有空格。Palo Alto的研究人員在一篇文章中指出,“HTTP請求由一個字段名組成,後跟一個冒號,然後是它的值……在頭的字段名和冒號之間不允許有空格……net/http庫按照解釋有效頭的方式解釋帶有空格的頭,這違反了HTTP RFC。”

當你考慮到Kubernetes API服務器可以用於身份驗證和訪問控制時,這個bug的實際效果就變得很明顯了——正如Palo Alto Networks研究人員指出的那樣,它可以“配置為使用身份驗證代理並通過請求頭標識用戶”。


一個危險的Kubernetes bug:繞過身份驗證,實施DoS



由於這個bug,代理可以忽略無效的頭並將其轉發到Go服務器,而Go服務器會將這些頭解釋為有效的。因此,攻擊者可以利用該漏洞,通過手工創建一個將傳遞到服務器的無效頭來為任何用戶進行身份驗證。

Palo Alto Networks提供了一個示例:“攻擊者可能會向代理發送以下請求:‘X-Remote-User:admin’。如果代理被設計為篩選X-Remote-User頭,但由於該頭無效而無法識別,則會將其轉發到Kubernetes API服務器,攻擊者將使用“admin”用戶的角色成功傳遞API請求。“

研究人員建議,那些使用帶有認證代理的Kubernetes用戶應該儘快更新到Go 1.12.10,並升級其Kubernetes版本。

根據bug報告,第二個漏洞CVE-2019-11253使Kubernetes API服務器易受DoS攻擊。根據Zelivansky和Sasson的說法,這種攻擊可以通過一個名為“YAML/JSON bombing”的方法針對YAML/JSON解析函數。他們認為這個bug很嚴重。

YAML和JSON是數據序列化語言,通常用於配置文件和用於存儲或傳輸數據的應用程序中。YAML/JSON bombing背後的想法是通過指數加載引用來使Kubernetes API服務器中的YAML解析器崩潰,而授權用戶可以通過發送大量惡意YAML或JSON有效負載來實現這一點。

研究人員解釋說:“儘管它可能是根據重啟策略和重啟限制而啟動的,但攻擊者可能會濫用攻擊並持續發送攻擊。我們建議檢查給用戶、pod或匿名用戶的每個角色,以確定是否需要,特別是如果允許使用YAML文件發送POST請求。”

Zelivansky和Sasson注意到,這個特殊的bug實際上存在於YAML解析器庫本身,這是合併到Kubernetes中的第三方代碼。

他們指出:“幸運的是,編寫了另一個補丁來解決go-yaml庫級別的這個問題,在其他依賴其代碼的項目中防止了這種攻擊。”

受影響的用戶應該升級以防止攻擊,特別是考慮到雲容器技術已經成為當今雲基礎設施中的必備,越來越受到網絡犯罪分子的關注。例如,稍早些時候,“Graboid”蠕蟲感染了2000多個不安全的Docker Engine(Community Edition)主機,希望挖掘Monero加密貨幣。

這並不是在Kubernetes中發現的第一個漏洞——去年發現了一個嚴重的權限提升漏洞(CVE-2018-1002105),該漏洞允許攻擊者不受限制地遠程訪問以竊取數據或破壞生產應用程序。

StackRox的高級產品經理Connor Gilbert表示,發現更多的漏洞意味著需要特別注意保護這個威脅面。

“當你運行容器時,你必須確保控制平面API surface的安全。”他說,“Docker、Kubernetes等工具非常強大,因此保護它們的API服務器是至關重要的。Kubernetes最近的漏洞突顯了多層安全方法的重要性,包括身份驗證、授權、網絡防火牆和持續監控。”

根據Lacework研究總監James Condon的說法,記住容器使傳統安全系統很難窺視內部來掃描惡意活動也是明智的。

“涉及到容器,傳統的端點解決方案可能無法準備標記惡意文件和活動。”他說,“這可能是由於容器的獨立文件系統,或者當代碼功能被拆分到多個文件時,惡意文件可能看起來很乾淨。因此,重要的是掃描預部署的鏡像,僅使用你信任的鏡像,利用具有適當容器可見性的運行時解決方案,並實現網絡安全監控。”

原文鏈接:

https://threatpost.com/kubernetes-bugs-authentication-bypass-dos/149265/


分享到:


相關文章: