Trivy 0.75.0 开源安全扫描工具:容器镜像漏洞与 SBOM 一体化

资源概览

Trivy 是 Aqua Security 维护并捐赠给开源社区的安全扫描器,用 Go 编写,单个二进制文件即可运行。

项目内容
资源名Trivy
版本0.75.0(2026-10-01 发布)
授权协议Apache License 2.0
适用平台Windows x86_64、Linux(x86_64 / ARM / ARM64 / PPC64LE / s390x)、macOS(Intel / Apple Silicon)、FreeBSD,另有 deb / rpm 包与容器镜像
仓库github.com/aquasecurity/trivy
累计星标约 38,200
Windows 包体积52,927,180 字节(约 50.5 MB)
Windows 包 SHA2564e43bd71a30f51aee39525f60f2b47043af77eb8df8fe082aae4372b69c6660f
签名校验提供 trivy_0.75.0_checksums.txt 与 sigstore 签名

授权同样是 Apache-2.0,商业使用、内部部署、修改分发都没有障碍。

核心功能亮点

一个二进制覆盖多种扫描对象。 Trivy 支持扫描容器镜像、文件系统、Git 仓库、Kubernetes 集群、IaC 配置文件(Terraform、CloudFormation、Kubernetes YAML 等),不需要为每类对象装一个工具。

四类问题一起查。 漏洞(CVE)、错误配置(misconfiguration)、密钥泄漏(secret)、软件许可证(license)。这四类问题的排查在传统流程里通常分散在四个工具里,Trivy 把它们统一到一次扫描。

SBOM 生成。 支持输出 SPDX 与 CycloneDX 两种主流格式的软件物料清单。这在新供应链合规要求下越来越必要——很多场景要求的不是"你扫了没",而是"你能提供一份完整的依赖清单"。

扫描速度快。 采用本地缓存漏洞库的方式,第一次扫描需要下载数据库,后续从缓存读取,在 CI 里的耗时可控。

支持离线与私有仓库。 可以配置私有镜像仓库的认证,也可以做完全离线的扫描(把漏洞库预先同步到内网)。

退出码可用于 CI 门禁。 这是它被大量用在流水线里的原因——扫描结果可以配置成"发现高危就返回非零退出码",从而阻断构建。

适用场景

  • 镜像构建流水线。 每次构建后扫一遍基础镜像与应用依赖,把高危漏洞拦在上线前。

  • 存量资产盘点。 对已有的镜像仓库做批量扫描,输出一份"哪些镜像有哪些高危漏洞"的清单。

  • Kubernetes 集群巡检。 扫描运行中的工作负载,找出使用了高危镜像或存在错误配置的资源。

  • IaC 提交前检查。 在 Terraform、Kubernetes 清单进入仓库前扫一遍配置风险。

  • 供应链合规。 为交付物生成 SBOM,满足客户或监管的物料清单要求。

下载与安装

官方下载:https://github.com/aquasecurity/trivy/releases

推荐下载 trivy_0.75.0_windows-64bit.zip(Windows 64 位)。官方同时提供 trivy_0.75.0_checksums.txt 与对应的 sigstore 签名文件。

本地资源路径:resources/PC工具/Trivy-0.75.0-windows-64bit.zip

Windows 安装:

  1. 解压 zip,得到 trivy.exe。

  2. 把所在目录加入 PATH,或直接在当前目录使用 .\trivy.exe。

  3. 验证:trivy --version。

Linux 安装:

# 方式一:官方安装脚本curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.75.0# 方式二:deb 包sudo dpkg -i trivy_0.75.0_Linux-64bit.deb

macOS 安装:

brew install trivy

首次运行准备数据库: Trivy 首次扫描会从镜像站下载漏洞库。内网或网络受限环境可以先同步:

trivy image --download-db-only

国内网络下可以指定镜像源:

export TRIVY_DB_REPOSITORY=ghcr.io/aquasecurity/trivy-db

快速上手

下面四组命令覆盖主要使用场景,可直接复制执行。

场景一:扫描容器镜像。

# 基础扫描:列出漏洞trivy image nginx:1.27-alpine# 只看高危与严重,并限定退出码策略trivy image --severity HIGH,CRITICAL --exit-code 1 nginx:1.27-alpine# 输出 JSON 便于后续处理trivy image -f json -o result.json nginx:1.27-alpine# 忽略已确认不修复的漏洞(配合忽略文件)trivy image --ignore-unfixed nginx:1.27-alpine

场景二:扫描代码仓库与依赖。

# 扫描当前目录的文件系统trivy fs --scanners vuln,secret .# 扫描 Git 仓库(含历史提交里的密钥)trivy repo --scanners secret https://github.com/your-org/your-repo# 只扫依赖清单文件trivy fs --scanners vuln --severity HIGH,CRITICAL ./package-lock.json

场景三:扫描 IaC 配置。

# Terraformtrivy config ./terraform# Kubernetes 清单目录trivy config ./k8s-manifests# 只看高风险规则类型trivy config --severity HIGH,CRITICAL ./terraform

场景四:生成 SBOM。

# SPDX 格式trivy image -f spdx-json -o sbom.spdx.json nginx:1.27-alpine# CycloneDX 格式trivy image -f cyclonedx -o sbom.cdx.json nginx:1.27-alpine

在 CI 里使用: 核心是把退出码策略配置好,让高危漏洞阻断构建。

- name: 镜像安全扫描  run: |    trivy image \      --severity HIGH,CRITICAL \      --ignore-unfixed \      --exit-code 1 \      --format table \      ${{ env.IMAGE_TAG }}

--ignore-unfixed 这一项很关键:它只统计上游已有修复版本的漏洞,避免因为"没有补丁可打"的问题长期卡住流水线。

同类资源对比

工具授权协议覆盖范围主要特点适合场景
TrivyApache-2.0镜像、文件系统、仓库、K8s、IaC单二进制、四类问题统一、SBOM通用扫描、CI 门禁
Grype(Anchore)Apache-2.0镜像、文件系统、SBOM专注漏洞,配套 Syft 生成 SBOM只要漏洞扫描的轻量方案
Syft(Anchore)Apache-2.0SBOM 生成专做物料清单,不查漏洞仅需 SBOM 的合规场景
ClairApache-2.0镜像服务化部署,适合做镜像仓库侧扫描私有仓库持续扫描
OpenSCAP多种开源许可主机、系统配置面向合规基线与主机加固主机层面合规审计

选择建议:需要"一个工具解决大部分扫描需求"选 Trivy;只想做依赖清单选 Syft;私有镜像仓库需要常驻扫描服务可以考虑 Clair。Trivy 与 Grype 可以并存——用 Trivy 做日常门禁,用 Grype 做二次验证,两者漏洞库来源不同,交叉比对能减少漏报。

注意事项

授权协议。 Trivy 采用 Apache License 2.0,允许商业使用。它依赖的漏洞数据库(trivy-db)来源公开可查,使用时建议确认你的合规要求是否接受该数据源。

系统要求。 单二进制无运行时依赖,对系统要求很低。但首次扫描需要网络下载漏洞库(约数百 MB),内网环境要做预同步。扫描大型镜像时对磁盘与内存有一定要求。

数据库时效性。 Trivy 的扫描结果取决于漏洞库版本。CI 环境建议每次运行时更新数据库,不要用固定缓存,否则会漏掉新披露的漏洞。可以用 --skip-db-update 配合定时预更新来平衡速度与时效。

误报处理。 漏洞扫描必然存在误报与不适用于当前上下文的结果。正确做法是建立 .trivyignore 忽略文件并记录每条忽略的原因与复核时间,而不是简单地把严重级别阈值调高。

容器镜像与二进制的区别。 官方同时提供容器镜像形式(aquasec/trivy)。如果你在 CI 里用容器方式运行,注意挂载 Docker socket 会带来权限风险,建议用 rootless 方案或者以文件系统扫描替代镜像扫描。

完整性校验。 下载后建议核对 SHA256 并用 sigstore 签名验证来源。官方发布页提供 trivy_0.75.0_checksums.txt 与对应的 .sigstore.json。