容器镜像往往包含基础镜像、依赖库与应用代码,任一环节的漏洞都会随镜像进入生产环境。
一、多阶段构建减小攻击面
dockerfile
FROM golang:1.22 AS builder
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o app .
FROM gcr.io/distroless/static-debian12
COPY --from=builder /src/app /app
USER nonroot
ENTRYPOINT ["/app"]使用 distroless 基础镜像可移除包管理器与 Shell,显著缩小攻击面。
二、CI 流水线集成漏洞扫描
bash
trivy image --severity HIGH,CRITICAL myapp:latest将 Trivy、Grype 等扫描工具接入 CI,发现高危漏洞时阻断镜像推送,并定期重建基础镜像以获取安全补丁。