如何使用Docker Bench for Security審查部署的容器?
譯文【51CTO.com快譯】容器部署方面的最大問題之一是安全。這之所以是個(gè)問題,是由于要檢查的可變因素太多。您的容器清單文件可能很安全,可是主機(jī)呢?也許您的主機(jī)很安全,但YAML文件充斥著安全漏洞。
該如何是好?您可以花數(shù)小時(shí)乃至數(shù)天梳理所有內(nèi)容以確保那些部署安全,也可以使用現(xiàn)成的工具。Docker Bench for Security這個(gè)預(yù)構(gòu)建的容器就是這樣一款工具,它在審查容器主機(jī)和目前運(yùn)行的部署方面做得很好。不像許多此類工具,Docker Bench for Security非常易于使用。
Docker Bench for Security審查以下內(nèi)容:
- 常規(guī)配置
- Linux主機(jī)特定配置
- Docker守護(hù)程序配置
- Docker守護(hù)程序配置文件
- 容器映像和構(gòu)建文件
- 容器運(yùn)行時(shí)環(huán)境
- Docker安全運(yùn)營
- Docker Swarm配置
- Docker企業(yè)配置
- Docker可信注冊中心配置
下面介紹如何完成此操作。
您需要什么?
您只需要在服務(wù)器上運(yùn)行的Docker實(shí)例以及與可運(yùn)行Docker命令的docker組關(guān)聯(lián)的用戶。
我將在Ubuntu Server 20.04上進(jìn)行演示,但該工具可以在支持Docker的任何平臺(tái)上運(yùn)行。
如何獲得Docker Bench?
我們首先要做的是從GitHub克隆該工具。如果您尚未安裝git,使用以下命令來安裝:
- sudo apt-get install git -y
使用以下命令克隆Docker Bench:
- git clone https://github.com/docker/docker-bench-security.git
使用以下命令切換到新創(chuàng)建的目錄:
- cd docker-bench-security
如何配置Docker守護(hù)程序?
在運(yùn)行審查之前,我們需要?jiǎng)?chuàng)建一個(gè)Docker守護(hù)程序配置文件。使用以下命令創(chuàng)建該文件:
- sudo nano /etc/docker/daemon.json
在該文件中,粘貼以下內(nèi)容:
- {
- "icc": false,
- "userns-remap": "default",
- "live-restore": true,
- "userland-proxy": false,
- "no-new-privileges": true
- }
保存并關(guān)閉文件。
如何安裝和配置auditd?
現(xiàn)在,我們需要使用以下命令安裝auditd:
- sudo apt-get install auditd -y
安裝完成后,使用以下命令打開auditd規(guī)則文件:
- sudo nano /etc/audit/audit.rules
在文件底部,粘貼以下內(nèi)容:
- -w / usr / bin / docker -p wa
- -w / var / lib / docker -p wa
- -w / etc / docker -p wa
- -w /lib/systemd/system/docker.service -p wa
- -w /lib/systemd/system/docker.socket -p wa
- -w / etc / default / docker -p wa
- -w /etc/docker/daemon.json -p wa
- -w / usr / bin / docker-containerd -p wa
- -w / usr / bin / docker-runc -p wa
保存并關(guān)閉文件。
使用以下命令重新啟動(dòng)auditd:
- sudo systemctl restart auditd
最后,使用以下命令重新啟動(dòng)Docker守護(hù)程序:
- sudo systemctl restart docker
如何運(yùn)行審查?
在docker-bench-security目錄中時(shí),使用以下命令啟動(dòng)審查:
- ./docker-bench-security.sh
上述命令將運(yùn)行審查,并開始列出以下任何一項(xiàng)的詳細(xì)信息:
- 通過(PASS)
- 信息(INFO)
- 說明(NOTE)
- 警告(WARN)
審查完成后,您得梳理輸出結(jié)果,至少要處理被列為“警告”的所有內(nèi)容(見圖A)。您甚至可能需要處理一些“信息”或“說明”消息。
圖A. Docker Bench的輸出結(jié)果清楚地表明了需要修復(fù)的內(nèi)容
您得到的輸出結(jié)果將取決于已部署的主機(jī)和容器的配置。然而,您的目標(biāo)應(yīng)該是至少修復(fù)每條警告。解決這些問題后,確保重新運(yùn)行審查,直至不再看到任何“警告”標(biāo)簽列出來。
這就是使用Docker Bench for Security審查主機(jī)和容器的全過程。
原文標(biāo)題:How to use Docker Bench for Security to audit your container deployments,作者:Jack Wallen
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】