合规性与审计
容器安全合规是生产部署的基础,下面介绍基线检查与审计方法。
CIS Docker Benchmark
安全基线检查
CIS (Center for Internet Security) 提供 Docker 安全基线标准。
关键检查项:
- 容器不以 root 运行
- 限制容器_capabilities_
- 启用 AppArmor/Seccomp
- 只读根文件系统
- 限制进程数
- 禁用特权升级
自动化检查
Bash
# 使用 docker-bench-security
docker run -it --net host --pid host --userns host \
--cap-add audit_control \
-v /etc:/etc:ro \
-v /var/lib/docker:/var/lib/docker:ro \
-v /usr/lib/systemd:/usr/lib/systemd:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
docker/docker-bench-security
审计日志
Docker Daemon 审计
JSON
// /etc/docker/daemon.json
{
"live-restore": true,
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "5",
"labels": "production_status"
}
}
操作审计
Bash
# 记录 Docker CLI 操作
# /etc/profile.d/docker-audit.sh
export PROMPT_COMMAND='echo "$(date) $(whoami) docker $BASH_COMMAND" >> /var/log/docker-audit.log'
API 审计
Bash
# 启用 Docker API 日志
sudo dockerd --log-level=debug
# 查看 API 请求
journalctl -u docker | grep "API"
镜像合规
Bash
# 扫描镜像漏洞
trivy image --severity HIGH,CRITICAL my-app:latest
# 检查 Dockerfile 最佳实践
docker run --rm -i hadolint/hadolint < Dockerfile
Dockerfile 合规
dockerfile
# Hadolint 检查
# hadolint ignore=DL3008
RUN apt-get update && apt-get install -y nginx
# 固定版本
FROM ubuntu:22.04
RUN apt-get install -y nginx=1.18.0-6ubuntu14
运行时审计
进程审计
Bash
# 查看容器进程
docker top my-app
# 审计进程活动
docker exec my-app auditctl -l
文件审计
Bash
# 监控文件系统变更
docker diff my-app
# 输出
C /etc/nginx/nginx.conf # 修改
A /tmp/new-file # 新增
D /var/log/old-file # 删除
合规报告
Bash
# 生成合规报告
docker-bench-security -c container_images -c container_runtime
# 输出
[PASS] 检查项 1: 容器非 root 运行
[WARN] 检查项 2: 未限制 capabilities
[FAIL] 检查项 3: 未启用 Seccomp
要点总结
- CIS Docker Benchmark 提供安全基线检查标准
- docker-bench-security 自动化检查容器安全配置
- 审计日志记录 Docker 操作和 API 请求
- 镜像合规性扫描漏洞和检查 Dockerfile 最佳实践
- 运行时审计监控进程和文件系统变更
📝 发现内容有误?点击此处直接编辑