安全性目前及可預見的未來始終是阻礙容器廣泛普及的困擾所在,技術行業對於容器與虛擬機器間安全性差異的爭論之聲亦是此起彼伏。
事實上,容器生態支持者們表示目前已經有大量工具及產品可對其平台安全性做出改善,具體包括靜態分析(映象掃瞄)、執行時漏洞檢測、出處溯源(映象簽名)、細粒度授權以及密碼驗證等等。
亦有大量初創企業開始以容器安全功能作為業務基礎。目前相關變化正在快速推進,而且可以肯定的是,開源社群及各**商在過去一年中立足於多種層面——包括作業系統、容器執行時、容器映象、主機到集群編排工具、paas乃至caas——為容器的安全性提公升做出了卓越而顯著的貢獻。
cis docker基準針對docker容器基礎設施安全配置做出說明性指導(以規則形式)。新的基準版本中新增了22條新規則,同時取消了原本的23條規則,目前總規則數量為83條。
隨著docker在過去一年中的快速發展,部分規則經過對應更新或者被直接取消,旨在保證新版本中的各條規則切實符合docker現狀。在1.11.0版本中,docker將容器監控與執行時加以拆分,並由containerd與runc兩個守護程序負責管理。
此次基準將docker安全問題分為以下幾類(括號中為各分類的相關規則數量):
·主機配置 (15)
·docker守護程序配置(13)
·docker守護程序配置檔案 (20)
·容器映象與build檔案 (5)
·容器執行時 (25)
·docker安全操作 (5)
每條規則不僅描述了相關安全議題與如何審計部署方案的安全水平,同時還指導大家如何對其加以解決。規則及其補救措施建議皆立足於容器主機制定,而非以集群為基礎,因此大家在選擇解決辦法時需要將集群的規模與平台選擇考慮進來(包括裸機、容器paas乃至雲環境等等)。
此次cis docker 1.11.0基準(pdf格式,英文原文)中的新增規則包括:
·主機配置
1.11 審計docker檔案與目錄 - docker.socket
1.13審計docker檔案與目錄- /etc/docker/daemon.json
1.14審計docker檔案與目錄- /usr/bin/docker-containerd
1.15審計docker檔案與目錄- /usr/bin/docker-runc
·docker守護程序配置
2.8啟用使用者名稱空間支援
2.9確認預設cgroup使用情況
2.10非必要時不變更基礎裝置規模
2.11 使用授權外掛程式
2.12配置集中化與遠端登入
2.13禁用舊有登錄檔(v1)操作
·docker守護程序配置檔案
3.17驗證daemon.json檔案歸屬被設定為root:root
3.18驗證daemon.json檔案許可權被設定為644或更嚴格
3.19驗證/etc/default/docker檔案歸屬被設定為root:root
3.20驗證/etc/default/docker檔案許可權被設定為644或更嚴格
·容器映象與build檔案
4.5為docker啟用內容資訊
·容器執行時
5.19不可將掛載傳播方式設定為共享
5.20不可共享主機的uts命名空間
5.21不可禁用預設seccomp配置檔案
5.22不可以許可權選項使用docker執行命令
5.23不可以使用者選項使用docker執行命令
5.24確認cgroup使用情況
5.25限制容器獲取額外許可權
部分容器安全廠商亦參與到docker安全基準的制定工作當中,也有一些提交了其產品或專案以檢測並解決相關問題。雖然部分方案能夠利用策略驅動型編排機制解決部分失敗的安全測試問題,但實際上其幾乎無法完全修復任何問題(自動修復機制僅適合少數特定問題)。
安全配置基準以免費方式向全球範圍內發布,並作為面向使用者的標準使用及部署。遵循1.11.0基準要求的現有工具之一為docker bench for security——這是一款開源命令列工具,用於根據cis docker基準執行相關檢查。
Docker的安全基準
docker公司與center for internet security cis 合作,製作了乙份基準文件 pdf 包含很多針對部署docker的安全性的建議。diogo m nica在一篇部落格 理解docker的安全性和最佳實踐 中公布了該基準,最近她和nathan mccauley一起受僱來...
Docker 容器安全
由下圖可見,虛擬機器是通過管理系統 hypervisor 模擬出 cpu 記憶體 網路等硬體,然後在這些模擬的硬體上建立客戶核心和作業系統。這樣做的好處就是虛擬機器有自己的核心和作業系統,並且硬體都是通過虛擬機器管理系統模擬出來的,使用者程式無法直接使用到主機的作業系統和硬體資源,因此虛擬機器也對隔...
docker學習 10(Docker 安全)
docker 呼叫lxc start命令。lxc start建立一系列的 namespaces 和 cgroups 進行資源限制。限制記憶體 cpu io 和網路使用。試 決 dos 攻擊問題。更適用於多使用者 多程序的系統。docker 基礎技術 linux namespace 下 docker ...