资源概览
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 包 SHA256 | 4e43bd71a30f51aee39525f60f2b47043af77eb8df8fe082aae4372b69c6660f |
| 签名校验 | 提供 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 安装:
解压 zip,得到
trivy.exe。把所在目录加入 PATH,或直接在当前目录使用
.\trivy.exe。验证:
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 这一项很关键:它只统计上游已有修复版本的漏洞,避免因为"没有补丁可打"的问题长期卡住流水线。
同类资源对比
| 工具 | 授权协议 | 覆盖范围 | 主要特点 | 适合场景 |
|---|---|---|---|---|
| Trivy | Apache-2.0 | 镜像、文件系统、仓库、K8s、IaC | 单二进制、四类问题统一、SBOM | 通用扫描、CI 门禁 |
| Grype(Anchore) | Apache-2.0 | 镜像、文件系统、SBOM | 专注漏洞,配套 Syft 生成 SBOM | 只要漏洞扫描的轻量方案 |
| Syft(Anchore) | Apache-2.0 | SBOM 生成 | 专做物料清单,不查漏洞 | 仅需 SBOM 的合规场景 |
| Clair | Apache-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。