runc容器逃逸漏洞最強后續:應對之策匯總與熱點疑問解答

美國時間2019年2月11日晚,runc通過oss-security郵件列表披露了runc容器逃逸漏洞CVE-2019-5736的詳情。runc是Docker、CRI-O、Containerd、Kubernetes等底層的容器運行時,此次安全漏洞無可避免地會影響大多數Docker與Kubernetes用戶,也因此為整個業界高度關注。

漏洞披露后,Docker在第一時間發布了兩個版本18.06.2和18.09.2,這兩個版本都可以修復runc漏洞。Rancher Labs極速響應,Rancher Kubernetes管理平臺和RancherOS操作系統均在不到一天時間內緊急更新,是業界第一個緊急發布新版本支持Docker補丁版本的平臺,并持嚴謹態度在oss-security郵件列表披露漏洞后的五小時內連夜郵件通知所有Rancher用戶此次漏洞的詳情及應對之策。

更值得一提的是,盡管Docker發布了修復版本,但因為不是所有用戶都能輕易將生產環境中的Docker版本升至最新,Rancher幫忙將修復程序反向移植到所有版本的Docker并提供給用戶。且目前Docker官方提供的修復版本并不支持3.x內核(只兼容4.x內核),而runc的開發者特意向Rancher提交了支持3.x內核的PR,目前PR已合并,Rancher提供的方案現已可以支持3.x內核。

runc安全漏洞事件背景

runc是一個根據OCI(Open Container Initiative)標準創建并運行容器的CLI tool,目前Docker引擎內部也是基于runc構建的。2019年2月11日,研究人員通過oss-security郵件列表披露了runc容器逃逸漏洞的詳情,根據OpenWall的規定EXP會在7天后也就是2019年2月18日公開。

此漏洞允許以root身份運行的容器以特權用戶身份在主機上執行任意代碼。這意味著容器可能會破壞Docker主機(覆蓋Runc CLI),而所需要的只是能夠使用root來運行容器。攻擊者可以使用受感染的Docker鏡像或對未受感染的正在運行的容器運行exec命令。

Rancher在12號當天已通過公眾號文章詳細分析了漏洞詳情和用戶的應對之策。相信目前大部分用戶已經對漏洞已經有了初步的了解,甚至在Github上已經有人提交了EXP代碼。Rancher在第一時間完成了補丁修復,并向企業用戶推送的修復方案。同時在我們也收到了大量來自社區用戶在后臺的提問,為了疏解種種謎團,這篇后續文章,我們將選取大家重點關注的一些熱點疑問進行進一步的解答。

熱點問題

非特權容器也能發起攻擊嗎?

答案是肯定的,Rancher安全團隊在第一時間做了一些測試,即使運行容器時不使用privileged參數,一樣可以發起攻擊。因為這個漏洞核心要素在于,容器內的用戶是否對runc有訪問權限, 容器內默認是root用戶,只是這個root是受限制的root,但是它是具有對runc的訪問權限,所以一定可以發起攻擊。

主機上不用root用戶啟動容器可以避免攻擊嗎?

答案是無法避免,如上一個問題分析,它和容器內的用戶有關,至于在主機上以什么用戶啟動無關。Rancher安全團隊在Ubuntu系統上做了測試,即使使用ubuntu用戶啟動容器, 依然可以完成對runc的替換。

更新官方Docker的注意事項

Docker也在第一時間發布了兩個版本18.06.2和18.09.2,這兩個版本都可以修復runc漏洞,但是你需要注意的是他們都只兼容4.x內核,如果你的系統依然使用的3.x內核, 請謹慎使用,因為它基本不會起作用,甚至可能導致額外的問題。

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官方特意發表了一篇Blog:https://kubernetes.io/blog/20... 。 主要思想就是,不要在容器中使用root,它推薦的方案是使用PodSecurityPolicy。當然很多用戶修改PodSecurityPolicy后可能會引發各種問題,所以它也推薦用戶更新Docker。 同時它也提到,不能更新Docker的用戶,可以使用Rancher提供的方案,Rancher為每個版本都移植了補丁:

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提供的補丁?

如上一個問題提到的,用戶可以直接訪問https://github.com/rancher/ru... 來獲取方案,值得一提的是Rancher為3.x和4.x內核用戶都提供了補丁版本。

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,因為它每暴露一次,就為整體環境增加了一絲風險,我們可以研究學習但是不要惡意傳播。 我們在后臺看到有些人問到,他們使用了某些EXP代碼,攻擊沒有成功,想知道是不是自己的系統是安全的,不用考慮升級。 Rancher安全團隊也查看了一些外部公開的EXP,有些EXP是不完整的,它可能只能在某些環境上起作用。 比如利用libseccomp的EXP,就無法在靜態編譯的runc上起作用,我們使用了一些公開的EXP就無法在RancherOS上完成攻擊。 雖然不同版本的Docker都使用runc,但是不同的操作系統使用runc的方式不同,有的使用static runc,有的使用dynamic runc。 所以不能以某些公開的EXP的執行結果為標準,來判斷自己系統是否存在漏洞。

守護用戶的K8S之路

Rancher Kubernetes平臺擁有著超過一億次下載量,我們深知安全問題對于用戶而言的重要性,更遑論那些通過Rancher平臺在生產環境中運行Docker及Kubernetes的數千萬用戶。

2018年年底Kubernetes被爆出的首個嚴重安全漏洞CVE-2018-1002105,就是由Rancher Labs聯合創始人及首席架構師Darren Shepherd發現的。

2019年1月Kubernetes被爆出儀表盤和外部IP代理安全漏洞時,Rancher Labs也是第一時間向用戶響應,確保了所有Rancher 2.x和1.6.x的用戶都完全不被漏洞影響。

負責、可靠、快速響應、以用戶為中心,是Rancher始終不變的初心;在每一次業界出現問題時,嚴謹踏實為用戶提供相應的應對之策,也是Rancher一如既往的行事之道。未來,Rancher也將一如既往支持與守護在用戶的K8S之路左右,確保大家安全、穩妥、無虞地繼續前進??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280316.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280316.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280316.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

OOD之問題空間到解空間—附FP的建模

通常會被問到,什么事OOD,然后大部分人期待的答案比較死板,繼承、封裝、多態!懂這個的人多的去了,有什么好問?回答出來的人是否拿著Java又去做一些面向過程的勾當? 計算機革命起源于機器&#xf…

com surrogate_什么是“ COM Surrogate”(dllhost.exe),為什么它在我的PC上運行?

com surrogateIf you poke around in your Task Manager, there’s a good chance you’ll see one or more “COM Surrogate” processes running on a Windows PC. These processes have the file name “dllhost.exe”, and are part of the Windows operating system. You’…

云計算時代,互聯網金融背后的想象空間

本文講的是云計算時代,互聯網金融背后的想象空間,【IT168評論】阿里巴巴在紐交所的開市鐘史無前例的由八位合作伙伴敲響,可見阿里對互聯網時代構筑起生態系統的堅持。這其中,由余額寶所敲開的互聯網金融熱潮的熱度持續不減&#x…

JavaScript數據結構與算法——集合

1.集合數據結構 集合是一組無序且唯一(不能重復)的項組成的。這個數據結構使用了和有限集合相同的數學概念。 2.創建集合 function Set() {// 這里使用對象而不是數組來表示集合 // js對象中不允許一個鍵值指向兩個不同屬性,也保證了集合中的…

php用兩個棧來實現隊列

php用兩個棧來實現隊列 一、總結 我主要的問題是不知道的是題目描述,題目和貴的代碼之間的關系,以及返回值 思路:A棧做入隊操作,B棧做出隊操作,入隊的時候元素直接入A,出隊的時候判斷B棧是否為空&#xff0…

facebook 邀請好友_如何查看緊急情況下您的Facebook朋友是否安全

facebook 邀請好友Facebook’s Safety Check feature lets you check in during an emergency to confirm you’re safe. If you have friends or family in an area that you haven’t heard from, though, you may want to ask them directly. Here’s how to ask someone to…

【您有一封來自阿里云的邀請函】阿里云成都客戶服務中心20+職位虛席以待,來吧,成就最好的自己!...

如果你不想辜負這個科技的時代,相信它會因你而不同。如果你不想僅做年度大戲的觀眾,相信自己會成為主角。如果你不想淹沒在枯燥與茍且中,相信工作有詩和遠方。那么,不要猶豫,加入我們!在這,你已…

A - A Secret -擴展KMP

題目大意:給你兩個字符串A,B,現在要你求B串的后綴在A串中出現的次數和后綴長度的乘積和為多少。題解:擴展KMP模板題,將A和B串都逆序以后就變成了求前綴的問題了,擴展KMP求處從i位置開始的最長公共前綴存于數組。最后通…

.NET 代碼優化 聊聊邏輯圈復雜度

本文屬于 dotnet 代碼優化系列博客。相信大家都對圈復雜度這個概念很是熟悉,本文來和大家聊聊邏輯的圈復雜度。代碼優化里面,一個關注的重點在于代碼的邏輯復雜度。一段代碼的邏輯復雜度越高,那么維護起來的難度也就越大。衡量代碼的邏輯復雜…

GO語言基礎條件、跳轉、Array和Slice

1. 判斷語句if 1. 條件表達式沒有括號(這點其他語言轉過來的需要注意) 2. 支持一個初始化表達式(可以是并行方式,即:a, b, c : 1, 2, 3) 3. 左大括號必須和條件語句或 else 在同一行 4. 支持單行模式 5. 初始化語句中的…

干式真空泵原理_如何安裝干式墻錨在墻壁上懸掛重物

干式真空泵原理If you ever plan to mount something to the wall that’s even remotely heavy, you’ll need to use drywall anchors if a stud isn’t available. Here are the different types of drywall anchors, and how to use each one. 如果您打算將甚至更重的東西安…

sharding-jdbc學習

sharding-jdbc的全局id生成策略是通過雪花算法來實現的。 sharding-jdbc也是一個數據的中間件,可實現讀寫分離和分庫分表,比mycat要簡單些。 nginx與ribbon實現負載均衡的區別:nginx是實現服務器端的負載均衡,ribbon是實現客戶端即…

像go 一樣 打造.NET 單文件應用程序的編譯器項目bflat 發布 7.0版本

現代.NET和C#在低級/系統程序以及與C/C/Rust等互操作方面的能力完全令各位刮目相看了,有人用C#開發的64位操作系統: GitHub - nifanfa/MOOS: C# x64 operating system pro...,截圖要介紹的是一個結合Roslyn和NativeAOT的實驗性編譯器bflat :h…

添加dubbo.xsd的方法

整合dubbo-spring的時候,配置文件會報錯 因為 阿里關閉在線的域名了.需要本地下載xsd文件 所以,需要下載本地引入。 解決方式: 在dubbo的開源項目上找到xsd文件: https://github.com/alibaba/dubbo Idea使用本地xsd Setting…

Spring Cloud Feign注意點

2019獨角獸企業重金招聘Python工程師標準>>> 1、只要在啟動類中加入EnableFeignClients注解,才會掃描FeignClient注解 2、Feign主要是通過接口調用,底層其實也是HttpClient/OkHttp 1)提供一個Feign接口,加入對應的rest…

.gitkeep是什么? .gitignore和.gitkeep之間的區別(譯)

你是不是在git工程里遇到過.gitkeep文件?如果你通過angular腳手架來生成angular2或者angular4工程,你會發現.gitkeep文件在./src/app/assets文件夾里。你對著個文件感到奇怪嗎?我們都知道我們的老朋友.gitignore。你也許會覺得它是.gitignore…

掃描PDF417崩潰的原因找到:手機攝像頭分辨率低

換孩子姥姥華為手機解決了。 能掃pdf417碼了轉載于:https://www.cnblogs.com/strongdady/p/9049155.html

word 替換 增加引號_如何在Word 2013文檔中替換部分(不是全部)智能引號

word 替換 增加引號Word includes a setting that allows you to automatically convert straight quotes to smart quotes, or specially curved quotes, as you type. However, there may be times you need straight quotes and you may have to convert some of the quotes…

i-i.me:網址導航真的是偽需求嗎?

每一個程序員都有一個框架夢,每一個站長曾經都有一個網址導航夢。本人從07年開始接觸互聯網,成為一名中國草根站長,到現在終于熬成半個程序員。10年時間,沒有賺到錢,也沒有練就一身過硬的技術(所以叫半個程…

.Net AOT--Win11搭建和編譯 X64 匯編

楔子:windows11上編譯x64匯編,很多人不太了解。甚至搞出DOSBox這種幾億年前的老古董,還有的專門搞些Linux下面的工具來搞到Windows上運行。其實這些大可不必,也沒這么麻煩。微軟技術出身,基本上工具鏈齊全。本篇來看下…