| name | performing-container-security-scanning-with-trivy |
| description | 使用 Aqua Security Trivy 扫描容器镜像、文件系统和 Kubernetes 清单,检测漏洞(Vulnerability)、错误配置、暴露的密钥和许可证合规问题,并生成 SBOM(Software Bill of Materials,软件物料清单)及集成到 CI/CD 流水线。 |
| domain | cybersecurity |
| subdomain | container-security |
| tags | ["trivy","container-security","vulnerability-scanning","sbom","docker","kubernetes","devsecops","supply-chain"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
使用 Trivy 执行容器安全扫描
概述
Trivy 是 Aqua Security 开源的安全扫描器,可检测操作系统软件包和语言特定依赖项中的漏洞、基础设施即代码(IaC)错误配置、暴露的密钥和软件许可证问题,扫描目标涵盖容器镜像、文件系统、Git 仓库和 Kubernetes 集群。Trivy 可生成 CycloneDX 和 SPDX 格式的软件物料清单(SBOM),提供供应链透明度。本 skill 涵盖全面的容器镜像扫描、CI/CD 流水线集成、Kubernetes Operator 部署以及用于安全运营的扫描结果分诊(Triage)。
前置条件
- Trivy v0.50+(二进制、Docker 或 Homebrew 方式安装)
- 本地镜像扫描需要 Docker daemon 访问权限
- 远程镜像扫描需要容器镜像仓库凭据
- CI/CD 平台(GitHub Actions、GitLab CI、Jenkins)用于流水线集成
- Kubernetes 集群用于 Trivy Operator 部署(可选)
步骤
步骤 1:扫描容器镜像
对本地构建或远程镜像仓库中的容器镜像执行漏洞和密钥扫描。配置严重性阈值并忽略未修复的漏洞。
步骤 2:生成 SBOM
从扫描的镜像生成 CycloneDX 或 SPDX 格式的 SBOM 文档,用于供应链合规和软件生命周期的漏洞追踪。
步骤 3:扫描 IaC 和 Kubernetes 清单
使用内置策略检查(与 CIS Benchmark 对齐),检测 Dockerfile、Kubernetes YAML、Terraform 和 Helm chart 中的错误配置。
步骤 4:集成到 CI/CD 流水线
将 Trivy 扫描作为流水线门控,阻止存在严重/高危漏洞的构建,为 GitHub Advanced Security 生成 SARIF 报告,并为测试仪表板生成 JUnit XML 报告。
预期输出
JSON/表格格式报告,列出 CVE 及其严重程度、CVSS 评分、修复版本、受影响软件包、错误配置发现项,以及带文件位置的暴露密钥。