docker/docker-bench-security注意:此镜像已不再在Docker Hub上维护。 请访问 [***] 获取最新镜像。
!Docker Bench for Security运行截图
Docker Bench for Security是一个脚本工具,用于检查数十项关于在生产环境中部署Docker容器的常见最佳实践。所有测试均为自动化执行,其灵感来源于CIS Docker Community Edition Benchmark v1.1.0标准。该工具作为Understanding Docker Security and Best Practices博客文章的后续内容发布。
本工具以开源形式提供,使Docker社区能够轻松地根据此基准对其主机和Docker容器进行自我评估。
最简单的使用方式是运行预构建的容器镜像。注意,由于需要对主机进行安全检查,容器需要以较高权限运行,包括共享主机的文件系统、PID和网络命名空间。
bashdocker run -it --net host --pid host --userns host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/lib/systemd:/usr/lib/systemd \ -v /etc:/etc --label docker_bench_security \ docker/docker-bench-security
注意:对于不含
auditctl的发行版,审计测试将通过检查/etc/audit/audit.rules文件来验证规则是否存在。解决此问题的特定发行版Dockerfile可在distros目录中找到。
Docker Bench for Security提供以下命令行选项:
-b 可选 不打印彩色输出 -h 可选 打印帮助信息 -l FILE 可选 将输出记录到指定文件 -c CHECK 可选 以逗号分隔的特定检查项列表 -e CHECK 可选 以逗号分隔的要排除的特定检查项列表 -i INCLUDE 可选 以逗号分隔的容器名称中要检查的模式列表 -x EXCLUDE 可选 以逗号分隔的要从检查中排除的容器名称模式列表 -t TARGET 可选 以逗号分隔的要检查的镜像名称列表
默认情况下,Docker Bench for Security脚本将运行所有可用的CIS测试,并在当前目录中生成名为docker-bench-security.sh.log.json和docker-bench-security.sh.log的日志文件。
基于CIS的检查命名为check_<section>_<number>,例如check_2_6,社区贡献的检查命名为check_c_<number>。完整的检查列表可在functions_lib.sh中找到。
仅运行检查2.2 确保日志级别设置为'info':
bashsh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -c check_2_2
运行所有可用检查,但排除2.2 确保日志级别设置为'info':
bashsh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -e check_2_2
如果需要自行构建和运行容器,可以按照以下步骤操作:
bashgit clone [***] cd docker-bench-security docker build --no-cache -t docker-bench-security . docker run -it --net host --pid host --userns host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/lib/systemd:/usr/lib/systemd \ -v /etc:/etc --label docker_bench_security \ docker-bench-security
bashgit clone [***] cd docker-bench-security docker-compose run --rm docker-bench-security
也可以直接在基础主机上运行脚本:
bashgit clone [***] cd docker-bench-security sudo sh docker-bench-security.sh
该脚本符合POSIX 2004标准,因此应可在任何Unix平台上移植使用。
DOCKER_CONTENT_TRUST: 传递Docker内容信任设置,用于检查镜像签名验证配置为执行全面的安全检查,容器需要挂载以下主机目录:
/var/lib: Docker数据目录/var/run/docker.sock: Docker守护进程套接字/usr/lib/systemd: systemd配置目录(根据操作系统调整)/etc: 系统配置目录对于未包含Docker 1.13.0或更高版本的发行版,或有特定系统配置的环境,可以使用发行版特定Dockerfiles来解决兼容性问题。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务