镜像漏洞扫描是什么
扫描把镜像里安装的软件包与已知漏洞库比对,列出可能受影响的组件、严重级别与修复版本,用来在上线前拦下明显风险。它既看得到操作系统包,也看得到语言生态的依赖,因此能覆盖“基础镜像自带组件”这类容易忽略的来源。扫描结论依赖漏洞库时效,且要看漏洞是否真的可达,需要人工研判,不能简单当成放行或阻断的唯一标准。放在持续集成里作为门槛,并记录每次扫描时间,才有治理价值。
基本信息
| 扫描对象 | 本地镜像、镜像归档文件、正在运行的容器、镜像仓库里的镜像 |
|---|---|
| 常见工具 | 官方客户端提供的镜像分析命令与开源扫描工具都能给可读结论 |
| 严重级别 | 一般分为严重、高、中、低四档,可按级别过滤输出 |
| 修复信息 | 多数工具会给出已修复版本,便于定位该升级哪个组件 |
| 门槛用法 | 设阈值让流水线在出现严重漏洞时失败,阻断不合规镜像发布 |
| 仓库存量 | 镜像仓库可配置扫描与拉取限制,把治理点前移到分发环节 |
典型使用场景
- 上线前做基线检查,确认没有已知严重漏洞随镜像进入生产
- 比较不同基础镜像版本的风险差异,为升级选型提供依据
- 定期复扫已上线镜像:漏洞库更新后,同一镜像的结论可能变化
- 在仓库侧配置扫描与阻断策略,防止高风险镜像被拉取部署
- 合规审计留痕:保留扫描结果、时间与处置记录
使用示例
使用示例
trivy image --severity HIGH,CRITICAL myapp:1.2.3 # 只关注高与严重级别
# 概览类命令用于快速判断风险总量,明细命令用于定位具体组件
trivy image --ignore-unfixed myapp:1.2.3 # 只看有修复版本的漏洞,便于安排升级
trivy image --exit-code 1 --severity CRITICAL myapp:1.2.3 # 流水线门槛:出现严重漏洞即失败
trivy image --format json -o scan.json myapp:1.2.3 # 输出结构化结果,便于存档与比对
trivy image nginx:1.27-alpine | head -40 # 先扫基础镜像本身结果怎么读
| 字段 | 含义 | 处置 |
|---|---|---|
| 漏洞编号 | 该问题的公开标识 | 去官方漏洞库核对影响范围 |
| 严重级别 | 风险等级 | 结合可达性与暴露面判断优先级 |
| 受影响组件 | 命中的软件包 | 区分系统包与应用依赖 |
| 修复版本 | 已修复的版本号 | 升级基础镜像或依赖即可闭环 |
| 扫描时间 | 结论的时效 | 归档时必须记录,便于判断是否过期 |
扫描结论依赖漏洞库时效:报告要标注扫描时间,修复后重新扫描确认闭环,不要只留第一次的结果。
基础镜像往往贡献了大部分漏洞条目:升级基础镜像版本,通常比逐个升级应用依赖的收益更大。