互聯(lián)網(wǎng)安全中心發(fā)布Docker安全基準(zhǔn)第二版,其中添加Docker 1.11.0版本相關(guān)內(nèi)容。
安全性目前及可預(yù)見的未來始終是阻礙容器廣泛普及的困擾所在,技術(shù)行業(yè)對(duì)于容器與虛擬機(jī)間安全性差異的爭論之聲亦是此起彼伏。
事實(shí)上,容器生態(tài)支持者們表示目前已經(jīng)有大量工具及產(chǎn)品可對(duì)其平臺(tái)安全性做出改善,具體包括靜態(tài)分析(鏡像掃描)、運(yùn)行時(shí)漏洞檢測、出處溯源(鏡像簽名)、細(xì)粒度授權(quán)以及密碼驗(yàn)證等等。
亦有大量初創(chuàng)企業(yè)開始以容器安全功能作為業(yè)務(wù)基礎(chǔ)。目前相關(guān)變化正在快速推進(jìn),而且可以肯定的是,開源社區(qū)及各供應(yīng)商在過去一年中立足于多種層面——包括操作系統(tǒng)、容器運(yùn)行時(shí)、容器鏡像、主機(jī)到集群編排工具、PaaS乃至CaaS——為容器的安全性提升做出了卓越而顯著的貢獻(xiàn)。
互聯(lián)網(wǎng)安全中心(簡稱CIS)正是其中之一。CIS致力于提升網(wǎng)絡(luò)安全水平,同時(shí)幫助公共與私營部門之間實(shí)現(xiàn)快速響應(yīng)。CIS制定的安全基準(zhǔn)旨在提供一套經(jīng)過嚴(yán)格定義、公正且協(xié)商一致的行業(yè)最佳實(shí)踐方案,幫助企業(yè)對(duì)自身安全性做出評(píng)估及改進(jìn)。在合作社區(qū)的不懈努力下,第一套CIS Docker基準(zhǔn)已經(jīng)于去年4月面向Docker 1.6正式發(fā)布。而就在本月13號(hào),添加Docker 1.11.0版本相關(guān)內(nèi)容的全新基準(zhǔn)版本亦新鮮出爐。
CIS Docker基準(zhǔn)針對(duì)Docker容器基礎(chǔ)設(shè)施安全配置做出說明性指導(dǎo)(以規(guī)則形式)。新的基準(zhǔn)版本中添加了22條新規(guī)則,同時(shí)取消了原本的23條規(guī)則,目前總規(guī)則數(shù)量為83條。
隨著Docker在過去一年中的快速發(fā)展,部分規(guī)則經(jīng)過對(duì)應(yīng)更新或者被直接取消,旨在保證新版本中的各條規(guī)則切實(shí)符合Docker現(xiàn)狀。在1.11.0版本中,Docker將容器監(jiān)控與運(yùn)行時(shí)加以拆分,并由containerd與runc兩個(gè)守護(hù)進(jìn)程負(fù)責(zé)管理。
此次基準(zhǔn)將Docker安全問題分為以下幾類(括號(hào)中為各分類的相關(guān)規(guī)則數(shù)量):
·主機(jī)配置 (15)
·Docker守護(hù)進(jìn)程配置(13)
·Docker守護(hù)進(jìn)程配置文件 (20)
·容器鏡像與Build文件 (5)
·容器運(yùn)行時(shí) (25)
·Docker安全操作 (5)
每條規(guī)則不僅描述了相關(guān)安全議題與如何審計(jì)部署方案的安全水平,同時(shí)還指導(dǎo)大家如何對(duì)其加以解決。規(guī)則及其補(bǔ)救措施建議皆立足于容器主機(jī)制定,而非以集群為基礎(chǔ),因此大家在選擇解決辦法時(shí)需要將集群的規(guī)模與平臺(tái)選擇考慮進(jìn)來(包括裸機(jī)、容器PaaS乃至云環(huán)境等等)。
此次CIS Docker 1.11.0基準(zhǔn)(PDF格式,英文原文)中的新增規(guī)則包括:
·主機(jī)配置
1.11 審計(jì)Docker文件與目錄 - docker.socket
1.13審計(jì)Docker文件與目錄- /etc/docker/daemon.json
1.14審計(jì)Docker文件與目錄- /usr/bin/docker-containerd
1.15審計(jì)Docker文件與目錄- /usr/bin/docker-runc
·Docker守護(hù)進(jìn)程配置
2.8啟用用戶命名空間支持
2.9確認(rèn)默認(rèn)cgroup使用情況
2.10非必要時(shí)不變更基礎(chǔ)設(shè)備規(guī)模
2.11 使用授權(quán)插件
2.12配置集中化與遠(yuǎn)程登錄
2.13禁用舊有注冊(cè)表(v1)操作
·Docker守護(hù)進(jìn)程配置文件
3.17驗(yàn)證daemon.json文件歸屬被設(shè)置為root:root
3.18驗(yàn)證daemon.json文件權(quán)限被設(shè)置為644或更嚴(yán)格
3.19驗(yàn)證/etc/default/docker文件歸屬被設(shè)置為root:root
3.20驗(yàn)證/etc/default/docker文件權(quán)限被設(shè)置為644或更嚴(yán)格
·容器鏡像與Build文件
4.5為Docker啟用內(nèi)容信息
·容器運(yùn)行時(shí)
5.19不可將掛載傳播方式設(shè)定為共享
5.20不可共享主機(jī)的UTS命名空間
5.21不可禁用默認(rèn)seccomp配置文件
5.22不可以權(quán)限選項(xiàng)使用docker執(zhí)行命令
5.23不可以用戶選項(xiàng)使用docker執(zhí)行命令
5.24確認(rèn)cgroup使用情況
5.25限制容器獲取額外權(quán)限
部分容器安全廠商亦參與到Docker安全基準(zhǔn)的制定工作當(dāng)中,也有一些提交了其產(chǎn)品或項(xiàng)目以檢測并解決相關(guān)問題。雖然部分方案能夠利用策略驅(qū)動(dòng)型編排機(jī)制解決部分失敗的安全測試問題,但實(shí)際上其幾乎無法完全修復(fù)任何問題(自動(dòng)修復(fù)機(jī)制僅適合少數(shù)特定問題)。
安全配置基準(zhǔn)以免費(fèi)方式向全球范圍內(nèi)發(fā)布,并作為面向用戶的標(biāo)準(zhǔn)使用及部署。遵循1.11.0基準(zhǔn)要求的現(xiàn)有工具之一為Docker Bench for Security——這是一款開源命令行工具,用于根據(jù)CIS Docker基準(zhǔn)執(zhí)行相關(guān)檢查。