您好,登錄后才能下訂單哦!
如何進行K8S漏洞CVE-2019-1002101解讀,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
kubectl cp漏洞
近期kubernetes的kubectl cp命令發現安全問題(CVE-2019-1002101),該問題嚴重程度比較高,建議將kubectl升級到Kubernetes 1.11.9,1.12.7,1.13.5或1.14.0版本以解決此問題。
kubectl cp命令允許用戶在容器和主機之間復制文件,其基本原理是:
在源地址將文件打包。
打包輸出內容作為stream流通過網絡傳遞給目標地址。
傳遞路徑包括:apiserver、kubelet、runtime
stream流在目的地址作為tar的輸入,解壓。
具體執行過程可以參考kubernetes/pkg/kubectl/cmd/cp.go文件中的copyToPod和copyFromPod兩個函數。
在這個過程中,如果容器中的tar二進制文件是惡意的,它可以運行任何代碼并輸出意外的惡意結果。當調用kubectl cp時,攻擊者可以使用它將文件寫入用戶計算機上的任何路徑,僅受本地用戶的系統權限限制。
目前社區在1.11-1.14版本均修復了該問題,具體修復方式可參考:
https://github.com/kubernetes/kubernetes/pull/75037
用戶可以通過kubectl version --client命令查看自己使用的kubectl版本,并升級到1.11.9,1.12.7,1.13.5或1.14.0版本以修復該漏洞。
Kube-proxy IPVS添加flag ipvs-strict-arp
首先了解些背景知識。
kube-proxy的ipvs模式會將clusterIP/externalIP等綁定到節點上名為kube-ipvs0的dummy設備,以確保節點上的ipvs規則可以對訪問這些地址的流量作轉發。
在1.13版本中,引入一個操作
echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
以禁止IPVS模式下對kube-ipvs0 dummy設備上綁定的ip的ARP回復,具體可參考pr #70530,該改動是為了修復ipvs模式下load banlancer類型service不能正常使用的問題(issue:#59976)。
而本次的buf fix則是跟前面的改動有關,因為前面的改動雖然解決了loadbalancer的問題,但是又引入了其他問題:有些CNI插件在主機和容器間的連接會用到ARP協議。因此我們看到有些用戶升級到1.13后反饋下面的問題:
issue#72779:kube-proxy v1.13.0 and 1.13.1 brokes services with externalIPs
issue#71555:kube-proxy/IPVS: arpignore and arpannounce break some CNI plugins
而本bug fix也很簡單,就是為kube-proxy加了一個啟動參數ipvs-strict-arp,默認為0,即不改變節點上的ARP配置,如果需要改變,則設置該參數值為1。
不得不說,這只是一個規避方案,無論是否使用該參數,kube-proxy ipvs模式下總有一部分功能受影響。
但是IPVS模式本身就有它獨特的優勢,是iptables所沒有的,在這些優勢的基礎上,一定要ipvs實現原來iptables實現的所有功能似乎也不太合理。
近期bug fix數據分析
近期在我們關注的1.13版本(1.13.5之后)沒有比較重要的bug fix發布,為數不多的幾條也都是集群部署、第三方云提供商、e2e測試相關,不需要太多關注。
前文提到的CVE-2019-1002101漏洞也是在1.13.5版本之前已經修復的,上次的bug fix已經覆蓋到,大家如果有興趣深入研究的話可以根據本文提供的pr鏈接學習。
最后我們看下具體數據:
如下為所有bug fix的匯總信息:
看完上述內容,你們掌握如何進行K8S漏洞CVE-2019-1002101解讀的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。