2月11日早上有宣佈關於runc中的容器逃逸漏洞。咱們但願爲Kubernetes用戶提供一些指導,以確保每一個人都安全。node
簡單來講,runc是一個低層工具,它負責大量生成Linux容器。Docker、Containerd和CRI-O等其餘工具位於runc之上,用於處理數據格式化和序列化等問題,但runc是全部這些系統的核心。linux
Kubernetes位於這些工具之上,所以雖然Kubernetes自己的任何部分都不容易受到攻擊,大多數Kubernetes安裝都使用了runc。git
雖然完整的細節仍然被禁止以提供人們時間補丁,但粗略的版本是:當在容器內以root(UID 0)運行進程時,該進程能夠利用runc中的錯誤來獲取運行容器的主機的root權限。而後,這容許他們無限制地訪問服務器以及該服務器上的任何其餘容器。github
若是容器內的進程是可信任的(是你知道的東西而不是敵對的)或者沒有以UID 0運行,則不受該漏洞影響。若是已應用適當的政策,SELinux也能夠阻止它。RedHat Enterprise Linux和CentOS都在其軟件包中包含適當的SELinux權限,所以若是啓用SELinux,則應該不受影響。docker
最多見的風險來源是攻擊者-控制器(attacker-controller)容器鏡像,例如來自公共存儲庫的未經審查的鏡像。ubuntu
與全部安全問題同樣,兩個主要選項是緩解漏洞,或將runc版本升級到包含此修補程序的版本。後端
因爲漏洞須要容器內的UID 0,所以直接緩解是確保全部容器都以非0用戶身份運行。這能夠在容器鏡像中設置,也能夠經過pod規範設置:api
apiVersion: v1 kind: Pod metadata: name: run-as-uid-1000 spec: securityContext: runAsUser: 1000 # ...
這也可使用PodSecurityPolicy全局實施:安全
apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: non-root spec: privileged: false allowPrivilegeEscalation: false runAsUser: # Require the container to run without root privileges. rule: 'MustRunAsNonRoot'
考慮到在容器內做爲UID 0運行的總體風險,強烈建議設置這樣的政策。服務器
另外一個潛緩解措施是確保全部容器鏡像都通過審查和可信任。這能夠經過本身構建全部鏡像,或者經過審查鏡像的內容而後固定到鏡像版本哈希來實現(image:external/someimage@sha256:7832659873hacdef)。
升級runc一般能夠經過升級你的發行版的軟件包runc,或經過升級你的操做系統鏡像(若是使用不可變鏡像)來完成。這是各類發行版和平臺的已知安全版本列表:
一些平臺還發布了更具體的說明:
Google Container Engine (GKE)
Google發佈了一份包含更多詳細信息的安全公告,但簡而言之,若是你使用默認的GKE節點鏡像,那麼你就是安全的。若是你使用的是Ubuntu節點鏡像,則須要緩解或使用已知安全版本的runc來升級鏡像。
Amazon Elastic Container Service for Kubernetes (EKS)
亞馬遜還發布了一份包含更詳細信息的安全公告。全部EKS用戶都應該緩解問題或升級到新節點鏡像。
Docker
咱們沒有具體確認Docker for Mac和Docker for Windows是易受攻擊的,但彷佛極可能。Docker發佈了18.09.2版本的修復程序,建議你升級到它。這也適用於使用Docker的其餘部署系統。
若是您沒法升級Docker,Rancher團隊已在github.com/rancher/runc-cve上爲許多舊版本提供了修復的後端。
若是你對此漏洞如何影響Kubernetes有任何疑問,請經過discuss.kubernetes.io加入咱們的討論。
若是你想與runc團隊取得聯繫,你能夠經過Google網上論壇或Freenode IRC上的#opencontainers與他們聯繫。
KubeCon + CloudNativeCon中國論壇提案徵集(CFP)2月22日截止
KubeCon + CloudNativeCon 論壇讓用戶、開發人員、從業人員匯聚一堂,面對面進行交流合做。與會人員有 Kubernetes、Prometheus 及其餘雲原生計算基金會 (CNCF) 主辦項目的領導,和咱們一同探討雲原生生態系統發展方向。
在中國開源峯會上,與會者將共同合做及共享信息,瞭解最新和最有趣的開源技術,包括Linux、IoT、區塊鏈、AI、網絡等;並得到如何在開源社區中導向和引領的信息。
大會日期:
提醒:這是一場社區會議。所以,讓咱們儘可能避開公然推銷產品和/或供應商銷售宣傳。
KubeCon + CloudNativeCon + Open Source Summit贊助方案出爐