SuperAPI AI 工具集

docker-security-guide

安全与审计

查看项目

更新于 10-14 21:10

技能介绍

用途

Docker Security Guide 是一个面向 Docker 的安全指南技能,提供跨平台(Linux、Windows、macOS)的安全准则、威胁分析与缓解措施,并覆盖合规要求。它会在以下场景中主动激活:容器安全审查、以非 root 用户运行容器、漏洞扫描、CIS 基准检查等。

核心安全原则

技能强调两条基本原则:

  • 纵深防御:在镜像、构建、运行时、网络、主机、编排、监控等多个层面同时施加安全措施。
  • 最小权限:只授予必要的最小权限,包括非 root 用户、丢弃能力、只读文件系统、最小网络暴露、限制系统调用(seccomp)、限制资源。

主要能力

镜像安全

  • 基础镜像选择:仅使用官方镜像并指定具体版本(如 node:20.11.0-alpine3.19),避免未验证来源与 latest 标签;可通过 docker image inspect 验证来源,并启用 Docker Content Trust(DOCKER_CONTENT_TRUST=1)进行镜像签名校验。
  • 最小化镜像:推荐 alpine、gcr.io/distroless/static、scratch 等最小发行版,以减少包数量、缩小攻击面、加快下载与启动、节省磁盘。
  • 微发行版:介绍 Wolfi/Chainguard 镜像,具备零 CVE 目标、默认包含 SBOM、夜间安全补丁与来源签名,适用于安全关键应用、合规要求(SOC2、HIPAA、PCI-DSS)、零信任环境与供应链安全场景,并给出多阶段构建示例。
  • 漏洞扫描:列出 Docker Scout、Trivy、Grype、Snyk、Clair 等工具,给出扫描镜像、Dockerfile、密钥的命令示例,以及 GitHub Actions 中的 CI/CD 集成示例。
  • 多阶段构建:通过构建阶段与最终阶段分离,避免构建工具与密钥残留在生产镜像中。

构建期与运行时安全

核心原则包括:构建密钥使用 --mount=type=secret 与 --mount=type=ssh,绝不用 ARG/ENV 存放敏感值;运行时丢弃全部能力再按需添加、只读根、非 root 用户、资源限制、固定镜像摘要;应用 seccomp、AppArmor、SELinux 并结合用户命名空间。完整命令与配方位于 references/build-runtime-security.md。

网络安全

  • 网络隔离:通过自定义 bridge 网络与 internal: true 实现后端隔离,防止容器间横向移动。
  • 端口暴露:绑定到 127.0.0.1 而非所有接口。
  • 容器间通信:可在 daemon.json 中设置 "icc": false 禁用默认互通,再通过显式网络放行。

密钥管理

  • Docker Secrets(Swarm 模式):通过 docker secret create 创建,在服务中挂载,容器内路径为 /run/secrets/db_password。
  • 最佳实践:绝不放环境变量(docker inspect 可见)、绝不放镜像层、绝不放版本控制;以受限权限的文件挂载;使用 Vault、AWS Secrets Manager 等密钥管理系统;定期轮换。

合规与基准

  • CIS Docker Benchmark:提供 docker-bench-security 的克隆与运行方式(含容器方式)。
  • 关键建议涵盖主机配置、Docker 守护进程(TLS、用户命名空间)、Docker 文件权限与审计、容器镜像(创建用户、可信基础镜像、不装多余包)、容器运行时(限制权限、资源限制、不共享主机网络命名空间)。

监控与检测

  • 日志:json-file 驱动配置 max-size、max-file、labels、env;集中式日志使用 syslog 驱动。
  • 运行时监控工具:Falco、Sysdig、Prometheus + cAdvisor、Docker events。
  • 监控目标:异常进程、文件修改、网络连接、资源尖峰、认证失败、提权尝试。
  • 提供 docker events 过滤命令与 Falco 容器运行示例。

平台特定安全

  • Linux:用户命名空间重映射(userns-remap)、SELinux(setenforce、label 选项、卷 :z 标签)、AppArmor(aa-status、apparmor=docker-default)。
  • Windows:Hyper-V 隔离(--isolation=hyperv)、Windows Defender 实时保护与排除项配置、定期扫描镜像。
  • macOS:保持 Docker Desktop 更新、启用 gRPC FUSE 文件共享、限制共享路径、审查资源分配。

使用方式

该技能以准则与命令示例形式提供,可直接参考其中的 Dockerfile、docker run、Compose 配置、daemon.json 与 CI 配置片段进行安全加固。技能还包含一份安全清单,分为镜像、构建、运行时、运维四类检查项,以及常见安全错误的正反示例(如禁止 root 运行、--privileged、挂载 Docker socket、硬编码密钥、使用 latest 标签等)。

适用场景

容器安全审查、以非 root 用户运行、漏洞扫描、CIS 基准检查、构建与运行时加固、网络隔离、密钥管理、合规审计准备、运行时监控部署。

限制

资料未提供该技能的安装方式、收费模式、支持平台范围之外的细节或具体版本要求;部分完整配方需查阅其引用的 references/build-runtime-security.md 文件。安全威胁持续演变,指南建议始终查阅最新的 Docker 安全文档与 CVE 数据库。