美國時間2019年2月11日晚,runc通過oss-security郵件列表披露了runc容器逃逸漏洞的詳情。runc是Docker、CRI-O、Containerd、Kubernetes等底層的容器運行時,此次安全漏洞無可避免地會影響大多數(shù)Docker與Kubernetes用戶,也因此為整個業(yè)界高度關(guān)注。
漏洞披露后,Docker在第一時間發(fā)布了兩個版本18.06.2和18.09.2,這兩個版本都可以修復runc漏洞。Rancher Labs極速響應(yīng),Rancher Kubernetes管理平臺和RancherOS操作系統(tǒng)均在不到一天時間內(nèi)緊急更新,是業(yè)界第一個緊急發(fā)布新版本支持Docker補丁版本的平臺,并持嚴謹態(tài)度在oss-security郵件列表披露漏洞后的五小時內(nèi)連夜郵件通知所有Rancher用戶此次漏洞的詳情及應(yīng)對之策。
值得一提的是,盡管Docker發(fā)布了修復版本,但因為不是所有用戶都能輕易將生產(chǎn)環(huán)境中的Docker版本升至最新,Rancher幫忙將修復程序反向移植到所有版本的Docker并提供給用戶。目前Docker官方提供的修復版本并不支持3.x內(nèi)核(只兼容4.x內(nèi)核),而runc的開發(fā)者特意向Rancher提交了支持3.x內(nèi)核的PR,目前PR已合并,Rancher提供的方案現(xiàn)已支持3.x內(nèi)核。
runc漏洞詳情
runc是一個根據(jù)OCI(Open Container Initiative)標準創(chuàng)建并運行容器的CLI工具,目前Docker引擎內(nèi)部也是基于runc構(gòu)建的。 2019年2月11日,研究人員通過oss-security郵件列表(https://www.openwall.com/lists/oss-security/2019/02/11/2)披露了runc容器逃逸漏洞的詳情,根據(jù)OpenWall的規(guī)定EXP會在7天后也就是2019年2月18日公開。
此漏洞允許以root身份運行的容器以特權(quán)用戶身份在主機上執(zhí)行任意代碼。實際上,這意味著容器可能會破壞Docker主機(覆蓋Runc CLI),而所需要的只是能夠使用root來運行容器。攻擊者可以使用受感染的Docker鏡像或?qū)ξ词芨腥镜恼谶\行的容器運行exec命令。針對此問題的已知緩解措施包括:
● 使用只讀主機文件系統(tǒng)運行
● 運行用戶命名空間
● 不在容器中運行root
● 正確配置的AppArmor / SELinux策略(當前的默認策略不夠)
Rancher團隊第一時間響應(yīng)
收到披露郵件后,Rancher OS團隊立刻嘗試編寫了攻擊腳本,在一個普通容器中運行一個非常簡單的腳本就完成了對主機的攻擊,將主機上的runc替換成了其他程序。
漏洞披露后,Docker在第一時間發(fā)布了18.09.2,用戶可升級到此版本以修復該漏洞。Rancher Labs研發(fā)團隊同樣第一時間響應(yīng),發(fā)布了Rancher v2.1.6、v2.0.11和v1.6.26,這三個新版本Rancher支持Docker剛剛發(fā)布的18.09.2,Rancher用戶可以升級Docker版本以防止被該安全漏洞影響。
無法升級Docker版本怎么辦
通常由于各種因素,很多用戶的生產(chǎn)環(huán)境并不容易升級太新的Docker版本。
為了幫助無法按照Docker官方建議升級至最新版Docker 18.09.2的用戶解決此次問題,Rancher Labs團隊更進一步,已經(jīng)將修復程序反向移植到所有版本的Docker,為Docker 1.12.6、1.13.1、17.03.2、17.06.2、17.09.1、18.03.1和18.06.1提供補丁,修復這次漏洞!相關(guān)修補程序以及安裝說明,請參考: https://github.com/rancher/runc-cve。
RancherOS的更新:v1.5.1 和 v1.4.3
RancherOS作為一款容器化操作系統(tǒng),其中很多組件依賴runc,我們也在第一時間更新了補丁并發(fā)布了v1.5.1和v1.4.3兩個版本。
RancherOS的核心部件system-docker和user-docker都依賴runc,所以v1.5.1和v1.4.3都對他們進行了更新。而針對user-docker,RancherOS可以切換各種版本的docker engine, 所以我們對以下docker engine都進行了反向移植:v1.12.6/v1.13.1/v17.03.2/v17.06.2/v17.09.1/v17.12.1/v18.03.1/v18.06.1。
如果是默認安裝v1.5.1或v1.4.3,補丁程序已經(jīng)是內(nèi)置的,你無需任何操作就可以避免該漏洞。如果你希望使用早期的docker版本,那么切換user-docker時,請使用上面提到的補丁修復版本:
同時v1.5.1版本也是支持docker 18.09.2,你可以切換到該版本,如果你考慮使用Docker官方的修復版本,只需簡單運行: ros engine switch docker-18.09.2。
我們推薦您使用最新的RancherOS v1.5.1版本,該除了修復CVE-2019-5736漏洞外還支持其他新特性以及一些Bug Fix。當然,因為仍然有很多用戶在使用1.4.x版本,所以我們也發(fā)布了v1.4.3, 它只修復了runc漏洞,沒有其他額外的更新。
AWS相關(guān)鏡像已經(jīng)上傳到各個region中,可以直接搜索查找并使用,包括AWS中國區(qū)。其他主要鏡像列表參考: https://github.com/rancher/os/blob/v1.5.x/README.md#release
更多新特性和Bug Fix請參考v1.5.1的Release Notes: https://github.com/rancher/os/releases/tag/v1.5.1
文檔說明: https://rancher.com/docs/os/v1.x/en/
RancherOS專注于Docker在Linux上的精簡體驗,它還是一個小眾的開源項目,歡迎您下載使用并給RancherOS團隊提供更多反饋。 同時,Github上的Star也是鼓勵我們繼續(xù)前行的精神動力!
初心不忘,為用戶的Docker & K8S之旅護航
Rancher Kubernetes平臺擁有著超過一億次下載量,我們深知安全問題對于用戶而言的重要性,更遑論那些通過Rancher平臺在生產(chǎn)環(huán)境中運行Docker及Kubernetes的數(shù)千萬用戶。
2018年年底Kubernetes被爆出的首個嚴重安全漏洞CVE-2018-1002105,就是由Rancher Labs聯(lián)合創(chuàng)始人及首席架構(gòu)師Darren Shepherd發(fā)現(xiàn)的;2019年1月,Kubernetes被爆出儀表盤和外部IP代理安全漏洞時,Rancher Labs第一時間向用戶響應(yīng),確保所有Rancher 2.x和1.6.x的用戶都完全不被漏洞影響。
這次,在得悉runc爆出容器逃逸漏洞之后,Rancher Labs立即響應(yīng),緊急發(fā)布新版本支持Docker補丁版本18.09.2的平臺,第一時間通知用戶漏洞詳情及應(yīng)對之策,并幫忙將修復程序反向移植到所有版本的Docker并提供給用戶,為用戶的容器安全保駕護航。
負責、可靠、快速響應(yīng)、以用戶為中心,是Rancher始終不變的初心;在每一次業(yè)界出現(xiàn)問題時,嚴謹踏實為用戶提供相應(yīng)的應(yīng)對之策,也是Rancher一如既往的行事之道。未來,Rancher也將一如既往支持與守護在用戶的K8S之路左右,確保大家安全、穩(wěn)妥、無虞地繼續(xù)前進。
About Rancher Labs
Rancher Labs由硅谷云計算泰斗、CloudStack之父梁勝創(chuàng)建,致力于打造創(chuàng)新的開源軟件,幫助企業(yè)在生產(chǎn)環(huán)境中運行容器與Kubernetes。旗艦產(chǎn)品Rancher是一個開源的企業(yè)級Kubernetes平臺,是業(yè)界首個且唯一可以管理所有云上、所有發(fā)行版、所有Kubernetes集群的平臺。解決了生產(chǎn)環(huán)境中企業(yè)用戶可能面臨的基礎(chǔ)設(shè)施不同的困境,改善Kubernetes原生UI易用性不佳以及學習曲線陡峭的問題,是企業(yè)落地Kubernetes的不二之選。
Rancher在全球擁有超過一億的下載量,超過20000家企業(yè)客戶。全球知名企業(yè)如中國人壽、華為、中國平安、民生銀行、興業(yè)銀行、上汽集團、海爾、米其林、天合光能、豐田、本田、霍尼韋爾、金風科技、普華永道、海南航空、廈門航空、恒大人壽、中國太平、巴黎銀行、美國銀行、HSCIS恒生指數(shù)、中國水利、暴雪、CCTV等均是Rancher的付費客戶。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!