首页/安全/漏洞与攻击面速查/Trivy 镜像漏洞扫描
扫描与验证方法50 条

Trivy 镜像漏洞扫描

Trivy 可扫描容器镜像中的操作系统包与语言依赖问题,并输出按严重级别过滤的结果,是镜像上线前的例行卡点。

漏洞与攻击面速查安全更新于 2026-10-13

Trivy 镜像扫描是什么

Trivy 是开源扫描器,可在构建或上线前检查容器镜像中的操作系统包与语言依赖问题,也能覆盖部分配置类风险。它的典型用法是把「发现高危即失败」写进 CI,作为镜像上线的卡点;同时保留 JSON 输出供平台消费。需要注意镜像扫描结果是随时间变化的:今天通过不代表半年后仍无问题。

基本信息

适用平台Linux/macOS/Windows,可在 CI 中以容器方式运行
扫描对象OS 包、语言依赖(Java/Python/Go/Node 等)、部分配置问题
输出格式table(默认)、json、sarif 等
退出码配合 --exit-code 在 CI 中阻断高危镜像
忽略机制trivy.yaml 或 .trivyignore 记录已评估项与原因

常用命令

常用命令
trivy image --severity HIGH,CRITICAL nginx:1.25                         # 只看高危与严重
trivy image --format json --output result.json myapp:2026-10-12        # JSON 供平台消费
trivy image --exit-code 1 --severity CRITICAL myapp:latest             # CI 卡点:有严重问题即失败
trivy image --ignore-unfixed myapp:latest                              # 只关注有修复版本的条目
trivy image --scanners vuln,misconfig myapp:latest                     # 同时扫描配置类问题

典型使用场景

  • CI 卡点:构建阶段扫描,高危问题不允许进入镜像仓库
  • 存量体检:对仓库中已有镜像做周期重扫,发现新披露的问题
  • 基础镜像选型:对比不同基础镜像的漏洞数量与修复及时性
  • 上线前评审:提交扫描结果作为发布材料的一部分
  • 依赖治理:从扫描结果反推需要升级的语言依赖与系统包

输出逐列读法

列含义关注点
严重级别CVE 的严重度HIGH/CRITICAL 优先,但需结合是否有修复版本
包名与安装版本镜像内实际安装的组件与版本对照修复版本判断能否升级
修复版本含修复的版本号为空表示暂无官方修复
标题与 CVE问题描述与编号用于交叉核对发行版公告
镜像扫描结果随时间变化(新披露会改变结论),上线卡点之外还需对存量镜像做周期重扫,否则仓库里的老镜像会长期无人过问。
扫描通过不等于安全:运行时权限、挂载宿主目录、以 root 运行、暴露端口等风险不在镜像扫描的覆盖范围内,需要配合基线检查。

易错点

  • 扫描只在构建时跑一次,镜像在仓库躺了半年后新披露的问题无人体检
  • 用 .trivyignore 批量抑制告警且不写原因,等同于把卡点关掉
  • 基础镜像使用 latest 标签,扫描对象与部署对象可能不是同一份内容
  • 只关注条目数量不看是否有修复版本,把无法修复的噪声当成真实待办
  • 扫描通过就认为安全:配置类与运行时权限问题不在镜像扫描范围内

数据来源与参考

  • Trivy 官方文档(image 扫描与 exit-code)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌