K8S漏洞報告|近期bug fix解讀&1.11主要bug fix匯總

angoo 6年前發布 | 14K 次閱讀 K8s

在本周的跟蹤分析中,以1.11版本為例,共有24條bug fix,其中8條與Kubernetes核心內容相關。

另外,近期公布了一條高危漏洞,本文會對此進行具體分析。

由于社區目前已經停止維護1.9版本,建議大家盡快升級1.11。本文也將開始持續更新1.11版本bug fix解讀,并停止更新1.9。

1.    嚴重漏洞CVE-2018-1002105深入解讀

背景

近日kubernetes被爆出高位特權升級漏洞(CVE-2018-1002105),通過特制的網絡請求,任何用戶都可以通過Kubernetes應用程序編程接口(API)服務器與后端服務器建立連接。一旦建立,攻擊者就可以通過網絡連接直接向該后端發送任意請求。

攻擊步驟

具體攻擊步驟如下:

  1. 發送第一個請求,通過kube-apiserver創建一個錯誤的websocket請求(例如請求體中缺少必要的字段),去調用kubelet的api(例如exec pod),使kubelet的api返回非101(StatusSwitchingProtocals)錯誤碼(例如:400)。

  2. 發送第二個請求,通過kube-apiserver訪問kubelet另一個越權的api(例如list pods),便可以繞過kube-apiserver的認證鑒權,獲取同一個kubelet所有租戶的pod信息。

攻擊原理

攻擊原理是:

 

  1.  kube-apiserver發送的websocket的請求轉到kubelet,kubelet把錯誤信息返回給kube-apiserver后認為該請求已經結束了,因為kube-apiserver并沒有判斷kubelet的返回碼,只做透傳,kube-apiserver仍然保存著這個連接。

  2. 第二個請求,在kube-apiserver中直接復用第一個請求的連接,然后構造一個越權的api直接訪問kubelet,此時kube-apiserver之前請求的長連接還在,直接透傳,而kubelet認為是一個新的請求,直接響應返回結果給客戶端,導致kube-apiserver中的認證鑒權失效。

修復版本

好在目前并未發現針對該漏洞的實際應用,社區也已經在所有維護的版本緊急修復了這個漏洞,包括:

v1.10 v1.11 v1.12 v1.13
v1.10.11 v1.11.5 v1.12.3 v1.13.0

具體修復方法可以參考

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

簡單來說就是,在kube-apiserver端增加第一個請求的返回碼判斷邏輯,如果返回碼不是101,則直接請求失敗,關閉連接。

驗證方法

雖然目前還沒有發現針對該漏洞的應用,但是現在這個漏洞已經發布出來,很多人都掌握了這個漏洞的攻擊方法,所以趕快驗證下自己的環境有沒有問題,有問題就趕快修復吧。

https://github.com/gravitational/cve-2018-1002105/blob/master/main.go

大家下載下來,編包,然后配置好環境上的kubeconfig文件,執行二進制,如果當前環境還有這個漏洞,則會返回:

Testing for unauthenticated access...

Testing for privilege escalation...

> API is vulnerable to CVE-2018-1002105

如果沒有漏洞,執行結果中不會出現最后一行。

2.近期bug fix數據分析

本周更新近期(11/9-12/11)1.11版本的bug-fix數據及分析。

在關注的時間段內,1.11版本有24條bug-fix,其分布情況如圖所示:

從上圖可以看出,這段時間更新的bug fix干貨滿滿,apiserver相關的就有4條,另外還有kubelet/scheduler/controller等核心組件相關內容。

從嚴重程度來看,除了前文提到的高危漏洞外,還有8條比較嚴重的bug fix,需要大家重點關注。

Bug fix嚴重程度統計,2及以下的bug fix有15個,嚴重程度為3的bug fix有8個,需要重點關注。

3.1.11重要bug fix解讀

由于社區目前已停止維護1.9和1.10版本,建議大家盡快升級到1.11版本,本周也將開始更新1.11版本bug fix解讀。

 

1.11.1版本重要bug fix解讀信息:

 

4.重要bug fix解讀

1.9.9-1.9.10重要bug fix解讀:

 

 

來自:https://mp.weixin.qq.com/s/Yru-nOdVs5oOj9DICoApww

 

 本文由用戶 angoo 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!