W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
運(yùn)行一個(gè)容器或應(yīng)用程序的核心是通過 Docker 服務(wù)端。Docker 服務(wù)的運(yùn)行目前需要 root 權(quán)限,因此其安全性十分關(guān)鍵。
首先,確保只有可信的用戶才可以訪問 Docker 服務(wù)。Docker 允許用戶在主機(jī)和容器間共享文件夾,同時(shí)不需要限制容器的訪問權(quán)限,這就容易讓容器突破資源限制。例如,惡意用戶啟動(dòng)容器的時(shí)候?qū)⒅鳈C(jī)的根目錄/
映射到容器的 /host
目錄中,那么容器理論上就可以對(duì)主機(jī)的文件系統(tǒng)進(jìn)行任意修改了。這聽起來很瘋狂?但是事實(shí)上幾乎所有虛擬化系統(tǒng)都允許類似的資源共享,而沒法禁止用戶共享主機(jī)根文件系統(tǒng)到虛擬機(jī)系統(tǒng)。
這將會(huì)造成很嚴(yán)重的安全后果。因此,當(dāng)提供容器創(chuàng)建服務(wù)時(shí)(例如通過一個(gè) web 服務(wù)器),要更加注意進(jìn)行參數(shù)的安全檢查,防止惡意的用戶用特定參數(shù)來創(chuàng)建一些破壞性的容器
為了加強(qiáng)對(duì)服務(wù)端的保護(hù),Docker 的 REST API(客戶端用來跟服務(wù)端通信)在 0.5.2 之后使用本地的 Unix 套接字機(jī)制替代了原先綁定在 127.0.0.1 上的 TCP 套接字,因?yàn)楹笳呷菀自馐芸缯灸_本攻擊。現(xiàn)在用戶使用 Unix 權(quán)限檢查來加強(qiáng)套接字的訪問安全。
用戶仍可以利用 HTTP 提供 REST API 訪問。建議使用安全機(jī)制,確保只有可信的網(wǎng)絡(luò)或 VPN,或證書保護(hù)機(jī)制(例如受保護(hù)的 stunnel 和 ssl 認(rèn)證)下的訪問可以進(jìn)行。此外,還可以使用 HTTPS 和證書來加強(qiáng)保護(hù)。
最近改進(jìn)的 Linux 名字空間機(jī)制將可以實(shí)現(xiàn)使用非 root 用戶來運(yùn)行全功能的容器。這將從根本上解決了容器和主機(jī)之間共享文件系統(tǒng)而引起的安全問題。
終極目標(biāo)是改進(jìn) 2 個(gè)重要的安全特性:
最后,建議采用專用的服務(wù)器來運(yùn)行 Docker 和相關(guān)的管理服務(wù)(例如管理服務(wù)比如 ssh 監(jiān)控和進(jìn)程監(jiān)控、管理工具 nrpe、collectd 等)。其它的業(yè)務(wù)服務(wù)都放到容器中去運(yùn)行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: