跳转至

Trivy简介

Trivy 简介

Trivy 是 Aqua Security 的开源工具,支持扫描容器镜像、文件系统、 Git 存储库、虚拟机镜像等多种目标,以查找漏洞和配置错误

Trivy 漏洞扫描

Trivy 扫描几种不同类型的目标,其原理也各不相同。

以下是这些类型和对应的扫描原理:

扫描类型 原理
容器镜像( image ) Trivy 会下载 Docker 镜像,然后提取文件系统。它会解析包管理器的数据库,找到已经安装的软件包和它们的版本,然后与其自己的漏洞数据库进行匹配,以发现任何已知的漏洞
文件系统( fs ) Trivy 会直接扫描文件系统。它将解析在文件系统中找到的包管理器的数据库,以确定已安装的软件包及其版本,然后像扫描 Docker 镜像那样进行漏洞匹配
Git 存储库( repo ) Trivy 会检出 Git 存储库,然后扫描其中的文件。它会查找常见的依赖文件(例如 package.json 、 Gemfile.lock 等),解析它们来找出项目的依赖,并在其数据库中查找这些依赖的已知漏洞
构建工件( art ) Trivy 会分析构建工件(例如 JAR 文件、 node_modules 目录等)中的依赖关系,然后在其数据库中查找这些依赖的已知漏洞
配置文件( conf ) Trivy 会解析配置文件(例如 Kubernetes 配置、 Dockerfile 等),以发现常见的配置问题和最佳实践违规。这些问题可能包括未设定的资源限制、使用了过时的 API 版本等

Trivy 工具的一般用法如下:

trivy <target> <subject>

在 Trivy 命令中,<target>指的是你想要扫描的目标类型。 Trivy 支持多种类型的扫描目标,包括:

Target 描述 示例
image 用于扫描 Docker 镜像。需要提供镜像名称。 trivy image nginx:latest
fs 用于扫描文件系统。需要提供文件系统的路径。 trivy fs /path/to/directory
repo 用于扫描 Git 仓库。需要提供 Git 仓库的 URL 。 trivy repo https://github.com/aquasecurity/trivy
art 用于扫描构建工件。需要提供构建工件的路径。 trivy art /path/to/file
conf 用于扫描配置文件。需要提供配置文件的路径。 trivy conf /path/to/file

<subject>就是对应的 Docker 镜像名、文件系统路径、 Git 仓库 URL 、构建工件路径或配置文件路径等具体目标