【獨家】K8S漏洞報告 | CVE-2019-1002101解讀

kubectl cp漏洞CVE-2019-1002101分析

Kube-proxy IPVS添加flag ipvs-strict-arp

近期bug fix數據分析

——本期更新內容

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鏈接學習。

最後我們看下具體數據:

【獨家】K8S漏洞報告 | CVE-2019-1002101解讀
如下爲所有bug fix的彙總信息:

【獨家】K8S漏洞報告 | CVE-2019-1002101解讀
相關服務請訪問:https://support.huaweicloud.com/cce/index.html?utm_content=cce_helpcenter_2019

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章