SuperAPI AI 工具集

performing-container-image-hardening

设计与创作

查看项目

更新于 10-16 01:30

技能介绍

用途:用于构建生产环境容器镜像时最小化攻击面,满足 CIS Docker Benchmark 对容器配置的要求,减少未使用软件包带来的漏洞暴露,并为容器化工作负载实施纵深防御,或从臃肿基础镜像迁移到 distroless/精简镜像。不适用于运行时容器安全监控(用 Falco)、宿主机 Docker 守护进程加固或容器编排安全扫描。

主要能力与用法:

  1. 多阶段构建:用 builder 阶段安装依赖并编译,production 阶段仅复制产物,减小最终镜像体积。
  2. 精简基础镜像:可选 distroless、Alpine、slim 或 scratch;示例使用 gcr.io/distroless/static-debian12:nonroot。
  3. 移除不必要组件:清理 apt 缓存、文档、man 页,删除包管理器、shell 及 setuid/setgid 二进制。
  4. 非 root 用户:创建 appuser 并 USER appuser,或使用 distroless 的 nonroot 用户。
  5. 只读文件系统:在 Kubernetes securityContext 中设置 readOnlyRootFilesystem、runAsNonRoot、drop ALL capabilities,并挂载 emptyDir 供 /tmp 等写入。
  6. 固定基础镜像:用 @sha256 摘要替代可变标签,保证可复现。
  7. 验证:trivy image --severity HIGH,CRITICAL hardened-app:latest;docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/docker-bench-security;用 whoami 验证非 root,用 touch /test 验证只读。

适用场景:生产镜像构建、合规检查、镜像瘦身、迁移到 distroless。限制:移除系统包后需充分测试运行时共享库依赖;Alpine 的 musl libc 可能与 numpy、pandas 不兼容;本技能不覆盖运行时监控与编排安全。