摘要:年月日,研究人員通過郵件列表披露了容器逃逸漏洞的詳情,根據(jù)的規(guī)定會在天后也就是年月日公開。在號當(dāng)天已通過公眾號文章詳細(xì)分析了漏洞詳情和用戶的應(yīng)對之策。
美國時(shí)間2019年2月11日晚,runc通過oss-security郵件列表披露了runc容器逃逸漏洞CVE-2019-5736的詳情。runc是Docker、CRI-O、Containerd、Kubernetes等底層的容器運(yùn)行時(shí),此次安全漏洞無可避免地會影響大多數(shù)Docker與Kubernetes用戶,也因此為整個業(yè)界高度關(guān)注。
漏洞披露后,Docker在第一時(shí)間發(fā)布了兩個版本18.06.2和18.09.2,這兩個版本都可以修復(fù)runc漏洞。Rancher Labs極速響應(yīng),Rancher Kubernetes管理平臺和RancherOS操作系統(tǒng)均在不到一天時(shí)間內(nèi)緊急更新,是業(yè)界第一個緊急發(fā)布新版本支持Docker補(bǔ)丁版本的平臺,并持嚴(yán)謹(jǐn)態(tài)度在oss-security郵件列表披露漏洞后的五小時(shí)內(nèi)連夜郵件通知所有Rancher用戶此次漏洞的詳情及應(yīng)對之策。
更值得一提的是,盡管Docker發(fā)布了修復(fù)版本,但因?yàn)椴皇撬杏脩舳寄茌p易將生產(chǎn)環(huán)境中的Docker版本升至最新,Rancher幫忙將修復(fù)程序反向移植到所有版本的Docker并提供給用戶。且目前Docker官方提供的修復(fù)版本并不支持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)標(biāo)準(zhǔn)創(chuàng)建并運(yùn)行容器的CLI tool,目前Docker引擎內(nèi)部也是基于runc構(gòu)建的。2019年2月11日,研究人員通過oss-security郵件列表披露了runc容器逃逸漏洞的詳情,根據(jù)OpenWall的規(guī)定EXP會在7天后也就是2019年2月18日公開。
此漏洞允許以root身份運(yùn)行的容器以特權(quán)用戶身份在主機(jī)上執(zhí)行任意代碼。這意味著容器可能會破壞Docker主機(jī)(覆蓋Runc CLI),而所需要的只是能夠使用root來運(yùn)行容器。攻擊者可以使用受感染的Docker鏡像或?qū)ξ词芨腥镜恼谶\(yùn)行的容器運(yùn)行exec命令。
Rancher在12號當(dāng)天已通過公眾號文章詳細(xì)分析了漏洞詳情和用戶的應(yīng)對之策。相信目前大部分用戶已經(jīng)對漏洞已經(jīng)有了初步的了解,甚至在Github上已經(jīng)有人提交了EXP代碼。Rancher在第一時(shí)間完成了補(bǔ)丁修復(fù),并向企業(yè)用戶推送的修復(fù)方案。同時(shí)在我們也收到了大量來自社區(qū)用戶在后臺的提問,為了疏解種種謎團(tuán),這篇后續(xù)文章,我們將選取大家重點(diǎn)關(guān)注的一些熱點(diǎn)疑問進(jìn)行進(jìn)一步的解答。
熱點(diǎn)問題
非特權(quán)容器也能發(fā)起攻擊嗎?
答案是肯定的,Rancher安全團(tuán)隊(duì)在第一時(shí)間做了一些測試,即使運(yùn)行容器時(shí)不使用privileged參數(shù),一樣可以發(fā)起攻擊。因?yàn)檫@個漏洞核心要素在于,容器內(nèi)的用戶是否對runc有訪問權(quán)限, 容器內(nèi)默認(rèn)是root用戶,只是這個root是受限制的root,但是它是具有對runc的訪問權(quán)限,所以一定可以發(fā)起攻擊。
主機(jī)上不用root用戶啟動容器可以避免攻擊嗎?
答案是無法避免,如上一個問題分析,它和容器內(nèi)的用戶有關(guān),至于在主機(jī)上以什么用戶啟動無關(guān)。Rancher安全團(tuán)隊(duì)在Ubuntu系統(tǒng)上做了測試,即使使用ubuntu用戶啟動容器, 依然可以完成對runc的替換。
更新官方Docker的注意事項(xiàng)
Docker也在第一時(shí)間發(fā)布了兩個版本18.06.2和18.09.2,這兩個版本都可以修復(fù)runc漏洞,但是你需要注意的是他們都只兼容4.x內(nèi)核,如果你的系統(tǒng)依然使用的3.x內(nèi)核, 請謹(jǐn)慎使用,因?yàn)樗静粫鹱饔?,甚至可能?dǎo)致額外的問題。
Ubuntu 14.04 customers using a 3.13 kernel will need to upgrade to a supported Ubuntu 4.x kernel
參考兩個版本的RN:
https://docs.docker.com/engin...
https://docs.docker.com/engin...
Kubernetes用戶怎么辦?
使用K8s的用戶都很清楚,K8s并不能兼容太高的Docker版本,所以更新官方Docker版本是很難的一件事,為此K8s官方特意發(fā)表了一篇Blog:https://kubernetes.io/blog/20... 。 主要思想就是,不要在容器中使用root,它推薦的方案是使用PodSecurityPolicy。當(dāng)然很多用戶修改PodSecurityPolicy后可能會引發(fā)各種問題,所以它也推薦用戶更新Docker。 同時(shí)它也提到,不能更新Docker的用戶,可以使用Rancher提供的方案,Rancher為每個版本都移植了補(bǔ)?。?/p>
If you are unable to upgrade Docker, the Rancher team has provided backports of the fix for many older versions at github.com/rancher/runc-cve.
如何使用Rancher提供的補(bǔ)???
如上一個問題提到的,用戶可以直接訪問https://github.com/rancher/ru... 來獲取方案,值得一提的是Rancher為3.x和4.x內(nèi)核用戶都提供了補(bǔ)丁版本。
To install, find the runc for you docker version, for example Docker 17.06.2 for amd64 will be runc-v17.06.2-amd64.
For Linux 3.x kernels use the binaries that end with no-memfd_create. Then replace the docker-runc on your host with the patched one.
如何正確使用EXP?
首先不建議大家廣泛傳播EXP,因?yàn)樗勘┞兑淮?,就為整體環(huán)境增加了一絲風(fēng)險(xiǎn),我們可以研究學(xué)習(xí)但是不要惡意傳播。 我們在后臺看到有些人問到,他們使用了某些EXP代碼,攻擊沒有成功,想知道是不是自己的系統(tǒng)是安全的,不用考慮升級。 Rancher安全團(tuán)隊(duì)也查看了一些外部公開的EXP,有些EXP是不完整的,它可能只能在某些環(huán)境上起作用。 比如利用libseccomp的EXP,就無法在靜態(tài)編譯的runc上起作用,我們使用了一些公開的EXP就無法在RancherOS上完成攻擊。 雖然不同版本的Docker都使用runc,但是不同的操作系統(tǒng)使用runc的方式不同,有的使用static runc,有的使用dynamic runc。 所以不能以某些公開的EXP的執(zhí)行結(jié)果為標(biāo)準(zhǔn),來判斷自己系統(tǒng)是否存在漏洞。
守護(hù)用戶的K8S之路
Rancher Kubernetes平臺擁有著超過一億次下載量,我們深知安全問題對于用戶而言的重要性,更遑論那些通過Rancher平臺在生產(chǎn)環(huán)境中運(yùn)行Docker及Kubernetes的數(shù)千萬用戶。
2018年年底Kubernetes被爆出的首個嚴(yán)重安全漏洞CVE-2018-1002105,就是由Rancher Labs聯(lián)合創(chuàng)始人及首席架構(gòu)師Darren Shepherd發(fā)現(xiàn)的。
2019年1月Kubernetes被爆出儀表盤和外部IP代理安全漏洞時(shí),Rancher Labs也是第一時(shí)間向用戶響應(yīng),確保了所有Rancher 2.x和1.6.x的用戶都完全不被漏洞影響。
負(fù)責(zé)、可靠、快速響應(yīng)、以用戶為中心,是Rancher始終不變的初心;在每一次業(yè)界出現(xiàn)問題時(shí),嚴(yán)謹(jǐn)踏實(shí)為用戶提供相應(yīng)的應(yīng)對之策,也是Rancher一如既往的行事之道。未來,Rancher也將一如既往支持與守護(hù)在用戶的K8S之路左右,確保大家安全、穩(wěn)妥、無虞地繼續(xù)前進(jìn)??
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27686.html
摘要:爆出中等嚴(yán)重性安全漏洞拒絕服務(wù)漏洞。本文將進(jìn)行漏洞解讀和情景再現(xiàn),并分享漏洞修復(fù)方案,用戶來看應(yīng)對之策了漏洞美國當(dāng)?shù)貢r(shí)間年月日,社區(qū)發(fā)布了拒絕服務(wù)的漏洞,即有寫入權(quán)限的用戶在寫入資源時(shí)會導(dǎo)致過度消耗資源,此漏洞被評級為中等嚴(yán)重性。 Kubernetes爆出中等嚴(yán)重性安全漏洞——Kubernetes API Server拒絕服務(wù)漏洞CVE-2019-1002100。 本文將進(jìn)行漏洞解讀和...
摘要:今天,發(fā)布了一系列補(bǔ)丁版本,修復(fù)新近發(fā)現(xiàn)的兩個安全漏洞命令安全漏洞和端口映射插件漏洞。因?yàn)槎丝谟成洳寮乔度氲桨姹局械模挥猩壷列掳姹镜牟拍芙鉀Q此問題?,F(xiàn)在修復(fù)之后,將端口映射插件的規(guī)則由最優(yōu)先變?yōu)楦郊?,則可以讓流量優(yōu)先由規(guī)則處理。 今天,Kubernetes發(fā)布了一系列補(bǔ)丁版本,修復(fù)新近發(fā)現(xiàn)的兩個安全漏洞CVE-2019-1002101(kubectl cp命令安全漏洞)和CVE-...
摘要:網(wǎng)易云技術(shù)團(tuán)隊(duì)則迅速完成分析和測試,并以最高優(yōu)先級處理該漏洞,緊急上線了漏洞修復(fù)方案,最終完全消除了該漏洞可能產(chǎn)生的影響,確保了公有云服務(wù)的安全性。 近日,業(yè)界爆出的runC容器越權(quán)逃逸漏洞CVE-2019-5736,席卷了整個基于runC的容器云領(lǐng)域,大量云計(jì)算廠商和采用容器云的企業(yè)受到影響。網(wǎng)易云方面透露,經(jīng)過技術(shù)團(tuán)隊(duì)的緊急應(yīng)對,網(wǎng)易云上的容器服務(wù)已經(jīng)被成功修復(fù),網(wǎng)易云公有云客戶在...
摘要:漏洞披露后,在第一時(shí)間發(fā)布了,用戶可升級到此版本以修復(fù)該漏洞。年年底被爆出的首個嚴(yán)重安全漏洞,就是由聯(lián)合創(chuàng)始人及首席架構(gòu)師發(fā)現(xiàn)的。年月被爆出儀表盤和外部代理安全漏洞時(shí),也是第一時(shí)間向用戶響應(yīng),確保所有和的用戶都完全不被漏洞影響。 runC是一個根據(jù)OCI(Open Container Initiative)標(biāo)準(zhǔn)創(chuàng)建并運(yùn)行容器的CLI工具,目前Docker引擎內(nèi)部也是基于runc構(gòu)建的。...
摘要:中國論壇提案征集月日截止論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進(jìn)行交流合作。贊助方案出爐多元化獎學(xué)金現(xiàn)正接受申請即將首次合體落地中國 2月11日早上有宣布關(guān)于runc中的容器逃逸漏洞。我們希望為Kubernetes用戶提供一些指導(dǎo),以確保每個人都安全。 Runc是什么? 簡單來說,runc是一個低層工具,它負(fù)責(zé)大量生成Linux容器。Docker、Containerd和CRI-O等...
閱讀 3892·2021-09-27 13:36
閱讀 4625·2021-09-22 15:12
閱讀 3072·2021-09-13 10:29
閱讀 1840·2021-09-10 10:50
閱讀 2374·2021-09-03 10:43
閱讀 528·2019-08-29 17:10
閱讀 453·2019-08-26 13:52
閱讀 3265·2019-08-23 14:37