【51CTO.com快译】容器部署方面的最大问题之一是安全。这之所以是个问题,是由于要检查的可变因素太多。您的容器清单文件可能很安全,可是主机呢?也许您的主机很安全,但YAML文件充斥着安全漏洞。
该如何是好?您可以花数小时乃至数天梳理所有内容以确保那些部署安全,也可以使用现成的工具。Docker Bench for Security这个预构建的容器就是这样一款工具,它在审查容器主机和目前运行的部署方面做得很好。不像许多此类工具,Docker Bench for Security非常易于使用。
Docker Bench for Security审查以下内容:
- 常规配置
- Linux主机特定配置
- Docker守护程序配置
- Docker守护程序配置文件
- 容器映像和构建文件
- 容器运行时环境
- Docker安全运营
- Docker Swarm配置
- Docker企业配置
- Docker可信注册中心配置
下面介绍如何完成此操作。
您需要什么?
您只需要在服务器上运行的Docker实例以及与可运行Docker命令的docker组关联的用户。
我将在Ubuntu Server 20.04上进行演示,但该工具可以在支持Docker的任何平台上运行。
如何获得Docker Bench?
我们首先要做的是从GitHub克隆该工具。如果您尚未安装git,使用以下命令来安装:
- sudo apt-get install git -y
使用以下命令克隆Docker Bench:
- git clone https://github.com/docker/docker-bench-security.git
使用以下命令切换到新创建的目录:
- cd docker-bench-security
如何配置Docker守护程序?
在运行审查之前,我们需要创建一个Docker守护程序配置文件。使用以下命令创建该文件:
- sudo nano /etc/docker/daemon.json
在该文件中,粘贴以下内容:
- {
- "icc": false,
- "userns-remap": "default",
- "live-restore": true,
- "userland-proxy": false,
- "no-new-privileges": true
- }
保存并关闭文件。
如何安装和配置auditd?
现在,我们需要使用以下命令安装auditd:
- sudo apt-get install auditd -y
安装完成后,使用以下命令打开auditd规则文件:
- sudo nano /etc/audit/audit.rules
在文件底部,粘贴以下内容:
- -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
保存并关闭文件。
使用以下命令重新启动auditd:
- sudo systemctl restart auditd
最后,使用以下命令重新启动Docker守护程序:
- sudo systemctl restart docker
如何运行审查?
在docker-bench-security目录中时,使用以下命令启动审查:
- ./docker-bench-security.sh
上述命令将运行审查,并开始列出以下任何一项的详细信息:
- 通过(PASS)
- 信息(INFO)
- 说明(NOTE)
- 警告(WARN)
审查完成后,您得梳理输出结果,至少要处理被列为“警告”的所有内容(见图A)。您甚至可能需要处理一些“信息”或“说明”消息。
图A. Docker Bench的输出结果清楚地表明了需要修复的内容
您得到的输出结果将取决于已部署的主机和容器的配置。然而,您的目标应该是至少修复每条警告。解决这些问题后,确保重新运行审查,直至不再看到任何“警告”标签列出来。
这就是使用Docker Bench for Security审查主机和容器的全过程。
原文标题:How to use Docker Bench for Security to audit your container deployments,作者:Jack Wallen
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】