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>
指的是你想要扫描的目标类型。 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 、构建工件路径或配置文件路径等具体目标