0


带你体验一款主流且开源的镜像漏洞扫描工具

Trivy是一款全面多功能的安全扫描器,现已经被 Github Action、Harbor 等主流工具集成,Trivy支持大多数流行的编程语言、操作系统和平台的扫描,是该领域目前使用最广的开源工具之一。

在这里插入图片描述

开源项目地址https://github.com/aquasecurity/trivy

1. Trivy简介

Trivy是一款全面且多功能的安全扫描器,是以色列在2015年成立的云原生安全技术软件公司Aqua Security提供的开源项目。

Trivy开发商信息

Trivy的原理是利用静态分析技术,对镜像进行深度扫描,从而发现其中存在的安全漏洞,支持以下6种扫描对象

  • 容器镜像
  • 文件系统
  • Git仓库(可远程扫描)
  • 虚拟机映像VMI
  • Kubernetes
  • AWS

在这里插入图片描述

扫描器能力

  • 正在使用的操作系统包和软件依赖关系(SBOM)
  • 已知漏洞(CVE)
  • IaC问题和配置错误
  • 敏感信息和密钥
  • 软件许可证

Trivy支持多种报告格式

  • JSON
  • SARIF
  • 自定义模板
  • SBOM
  • GitHub依赖关系快照
  • 表格

要了解更多信息,请访问Trivy官方网站查看详细信息。

2. 安装Trivy

Trivy的安装有三种主流方式:

  • macOS:brew install trivy(仅适用于苹果电脑)
  • Docker:docker run aquasec/trivy(需提前安装Docker环境)
  • 软件包:直接从官网下载二进制文件(本文使用此方案安装)

进入软件包官方下载页面:https://github.com/aquasecurity/trivy/releases

软件包下载界面

在以上列表中找到适合自己平台的软件包,下载到本地解压即可快速完成安装。软件包内主要包含:

  • 可执行程序trivy
  • 默认的报告模板(可以基于此模板定制自己想要的报告模板)

软件包内容

3. 命令格式介绍

Trivy的命令格式如下:

trivy <target> [--scanners <scanner1,scanner2>] <subject>

其中,

  • target为前面提到的6种扫描对象类型,本文主要以容器镜像类型为例进行介绍。
  • 默认情况下,启用了漏洞和密钥扫描,我们可以使用--scanner进行配置。
  • subject为具体的扫描对象

示例:

trivy image python:3.4-alpine

下面介绍几种常用的报告格式:

  • JSON格式(适用于机器阅读)$ trivy image -f json -o results.json python:3.4-alpine
  • SARIF格式(适用于报告交换)$ trivy image --format sarif -o report.sarif python:3.4-alpine
  • 模板格式(适用于各种场景)- 从模板路径前缀为@的文件中加载模板$ trivy image --format template --template "@contrib/junit.tpl" -o junit-report.xml python:3.4-alpine- 安装Trivy时默认的HTML模板$ trivy image --format template --template "@/usr/local/share/trivy/templates/html.tpl" -o report.html python:3.4-alpine

更多报告格式的高级用法可参阅:https://aquasecurity.github.io/trivy/v0.55/docs/configuration/reporting/#converting

4. 镜像漏洞扫描实测

博主在本地事先拉取了两个Docker镜像,我们以其中的一个镜像

owasp/benchmark:latest

为例,执行命令

./trivy image owasp/benchmark

在这里插入图片描述

由于命令中未指定报告格式,所以扫描后的结果直接回显在了终端屏幕上,可以看到检出了136个漏洞且正确识别到了容器的OS类型为ubuntu 24.04。

在这里插入图片描述

为了方便看漏洞详情,接下来博主将报告导出为人类更容易阅读的网页格式。执行如下命令

$ trivy image --format template --template "@/Users/me/Downloads/contrib/html.tpl" -o report.html owasp/benchmark:latest

扫描完成后可以看到当前路径下多出了一个

report.html

文件,打开后格式如下(包含漏洞组件、漏洞ID、组件修复版本及漏洞参考链接等)。

HTML格式报告

当然,企业在使用这款镜像漏扫工具时,会将此工具集成在CI/CD中,所以一般会选择将其导出为JSON格式以方便机器识别和自动化处理。

由于这款工具非常主流,在这里就不做详细评测了,但有一点大家需要考虑,这个工具的漏洞知识库来源何处?是否全面且权威? 此外,你们在日常使用中有遇到过什么问题或疑问?欢迎评论区留言,知无不答~

5. 总结

Trivy是一款高效实用的镜像漏洞扫描工具,其无状态设计、易用性和集成能力使得它在容器安全领域具有广泛的应用前景(博主了解到很多数公司也都在用)。通过使用Trivy进行镜像漏洞扫描,可以大大提高容器的安全性,减少潜在的安全风险。


标签: 容器

本文转载自: https://blog.csdn.net/u013129300/article/details/142435710
版权归原作者 全栈安全 所有, 如有侵权,请联系我们删除。

“带你体验一款主流且开源的镜像漏洞扫描工具”的评论:

还没有评论