docker-bench-security 查什么
docker-bench-security 按 CIS Docker Benchmark 的条目检查宿主机与守护进程配置,覆盖 socket 文件权限、特权容器、容器资源限制、镜像标签规范、日志驱动与挂载选项等。输出是逐条的通过或失败清单,可直接用于容器宿主的基线评估;它看的是运行时配置,与镜像内容扫描互补。
基本信息
| 适用对象 | 自建 Docker 宿主机与守护进程 |
|---|---|
| 基线来源 | CIS Docker Benchmark |
| 执行方式 | 官方脚本或容器方式运行 |
| 检查分组 | 主机配置、守护进程、容器运行时、镜像与安全操作 |
| 局限 | 不覆盖编排层,K8s 需配合 kube-bench |
典型使用场景
- 新宿主上线:确认守护进程配置符合基线,再纳入生产
- 例行核查:每月跑一次并留存输出,做趋势对比
- 专项排查:出现容器逃逸类告警时核查特权容器与 socket 挂载
- 容器清理:找出长期未设置资源限制或使用 latest 标签的容器
- 合规举证:作为容器平台配置合规的证据材料
执行命令
执行命令
sh docker-bench-security.sh # 全量检查
sh docker-bench-security.sh -c 4 # 只跑指定检查组(示例)
sh docker-bench-security.sh -l out.log # 输出到日志文件
docker run --rm --net host --pid host --userns host --cap-add audit_control \
-v /etc:/etc:ro -v /usr/bin/docker-containerd:/usr/bin/docker-containerd:ro \
-v /var/lib:/var/lib:ro -v /var/run/docker.sock:/var/run/docker.sock:ro \
docker/docker-bench-security # 容器方式运行便于统一版本重点检查项与风险
| 检查项 | 风险 | 整改方向 |
|---|---|---|
| docker.sock 挂载进容器 | 容器可控制宿主守护进程 | 移除挂载,按需用代理方案 |
| 特权容器 | 近似宿主 root 权限 | 去掉 privileged,按需加能力位 |
| 无资源限制 | 单容器可耗尽宿主资源 | 设置 CPU 与内存上限 |
| latest 标签 | 版本不可控,回滚困难 | 使用固定版本或摘要 |
| 默认网桥配置 | 容器间可直接互访 | 按业务划分自定义网络 |
容器基线与镜像扫描互补:前者看运行时与守护进程配置,后者看镜像内组件版本,两类报告要并存而不是互相替代。
整改优先级建议
- 先处理可信执行路径类问题:socket 挂载与特权容器
- 再补资源限制与日志驱动:防止单容器影响整台宿主
- 最后处理标签规范与镜像来源:属于长期治理项
- 每轮整改后重跑一次并对比,确认失败项数量下降