L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Déploiement et opérations · SKILL.md

performing-docker-bench-security-assessment

performing-docker-bench-security-assessment

Docker Bench for Security 是一个开源脚本,用于检查生产环境中部署 Docker 容器的数十项常见最佳实践。基于 CIS Docker Benchmark,审计宿主机配置,生成包含通过/失败/警告结果的合规报告。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: performing-docker-bench-security-assessment description: Docker Bench for Security 是一个开源脚本,用于检查生产环境中部署 Docker 容器的数十项常见最佳实践。基于 CIS Docker Benchmark,审计宿主机配置,生成包含通过/失败/警告结果的合规报告。 domain: cybersecurity subdomain: container-security tags: [containers, docker, security, CIS-benchmark, assessment] version: "1.0" author: mahipal license: Apache-2.0

执行 Docker Bench 安全评估

概述

Docker Bench for Security 是一个开源脚本,用于检查生产环境中部署 Docker 容器的数十项常见最佳实践。基于 CIS Docker Benchmark,它审计宿主机配置、Docker daemon 设置、容器镜像、运行时配置和安全运营,生成包含通过/失败/警告结果的合规报告。

前置条件

  • Docker Engine 已安装并运行
  • Docker 宿主机上的 root 或 sudo 访问权限
  • Docker Bench Security 脚本或容器镜像

实施步骤

步骤 1:运行 Docker Bench Security

# 以容器方式运行(推荐)
docker run --rm --net host --pid host --userns host --cap-add audit_control \
  -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
  -v /etc:/etc:ro \
  -v /usr/bin/containerd:/usr/bin/containerd:ro \
  -v /usr/bin/runc:/usr/bin/runc:ro \
  -v /usr/lib/systemd:/usr/lib/systemd:ro \
  -v /var/lib:/var/lib:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --label docker_bench_security \
  docker/docker-bench-security

# 以 JSON 格式输出运行
docker run --rm --net host --pid host --userns host --cap-add audit_control \
  -v /etc:/etc:ro \
  -v /var/lib:/var/lib:ro \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  docker/docker-bench-security -l /dev/stdout 2>/dev/null | tee docker-bench-results.json

# 仅运行特定部分
docker run --rm --net host --pid host --userns host \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  docker/docker-bench-security -c container_images,container_runtime

步骤 2:解读结果

[INFO] 1 - 宿主机配置
[PASS] 1.1.1 - 确保已为容器创建独立分区
[WARN] 1.1.2 - 确保只有受信任的用户可以控制 Docker daemon
[PASS] 1.1.3 - 确保已为 Docker daemon 配置审计

[INFO] 2 - Docker daemon 配置
[FAIL] 2.1 - 以非 root 用户运行 Docker daemon
[PASS] 2.2 - 确保默认网桥上容器间网络流量受限

步骤 3:修复常见失败项

# 修复 2.2:限制容器间通信
echo '{"icc": false}' | sudo tee /etc/docker/daemon.json

# 修复 2.17:限制容器获取新权限
echo '{"no-new-privileges": true}' | sudo tee -a /etc/docker/daemon.json

# 修复 5.3:限制 Linux 内核能力
# 在 docker run 命令中使用 --cap-drop ALL

# 修复 5.12:以只读方式挂载容器根文件系统
# 在 docker run 命令中使用 --read-only 参数

# 配置更改后重启 Docker daemon
sudo systemctl restart docker

步骤 4:自动化定期评估

# 定期评估的 docker-compose 配置
version: '3.8'
services:
  bench-security:
    image: docker/docker-bench-security
    network_mode: host
    pid: host
    userns_mode: host
    cap_add:
      - audit_control
    volumes:
      - /etc:/etc:ro
      - /var/lib:/var/lib:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./results:/results
    command: -l /results/bench-$(date +%Y%m%d).log
    deploy:
      restart_policy:
        condition: none

验证命令

# 验证修复效果
docker run --rm docker/docker-bench-security 2>&1 | grep -E "(PASS|FAIL|WARN)" | sort | uniq -c

# 按类型统计结果
docker run --rm docker/docker-bench-security 2>&1 | grep -c "PASS"
docker run --rm docker/docker-bench-security 2>&1 | grep -c "FAIL"
docker run --rm docker/docker-bench-security 2>&1 | grep -c "WARN"

参考资料

Skills enregistrées