trivy
一、概要
Trivy(tri发音像trigger,vy发音像envy)是一个简单而全面的容器漏洞扫描程序。Trivy可检测操作系统软件包(Alpine,RHEL,CentOS等)和应用程序依赖项(Bundler,Composer,npm,yarn等)的漏洞。此外,Trivy也非常易于使用。只需安装二进制文件即可执行扫描,你只需指定扫描容器的镜像名称即可。本文主要介绍镜像扫描。
二、Trivy 检测两种类型的安全问题:
- 漏洞
- 配置错误:提供内置策略来检测Docker、Kubernetes和Terraform中的配置问题。
三、Trivy 可以扫描以下几种对象:
- 容器镜像
- 文件系统
- Git仓库
四、Trivy 可以在两种不同的模式下运行:
独立 客户端服务器
五、特征
1、全面漏洞检查
- 操作系统包:(Alpine、Red Hat Universal Base Image、Red Hat Enterprise Linux、CentOS、Oracle Linux、Debian、Ubuntu、Amazon Linux、openSUSE Leap、SUSE Enterprise Linux、Photon OS 和 Distroless)
- 特定语言包:(Bundler、Composer、Pipenv、Poetry、npm、yarn、Cargo、NuGet、Maven 和 Go)
2、开箱即用提供了各种各样的内置策略
- Kubernetes
- Docker
- Terraform 支持自定义策略
3、简单的
仅指定镜像名称、包含IaC配置的目录或工件名称
4、快速的
第一次扫描将在 10 秒内完成(取决于您的网络)。随后的扫描将在几秒钟内完成。 与其他扫描程序不同,Trivy是无状态的,无需维护或准备,在第一次运行时需要花费很长时间(约10分钟)获取漏洞信息。
六、简易安装:
apt-get install,yum install并且brew install,无需安装数据库
1、centos安装:
rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v0.19.2/trivy_0.19.2_Linux-64bit.rpm
安装完成后,进行镜像扫描
trivy image nginx
2、docker安装
docker run --rm -v [YOUR_CACHE_DIR]:/root/.cache/ aquasec/trivy:0.19.2 [YOUR_IMAGE_NAME]
对镜像nginx扫描:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy:0.19.2 --format json nginx
七、快速开始
说明:无论是命令行扫描,还是用容器扫描,格式相似,所以下面以命令行为主进行介绍。
1、常用命令选项介绍:
--format 指定扫描结果输出格式,后面接table, json, template,默认为table,可以通过自定义变量[$TRIVY_FORMAT]指定默认输出格式;
--severity 扫描时显示的漏洞严重程度(逗号分隔),默认为"UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL",可以通过自定义变[$TRIVY_SEVERITY]指定;
--output 扫描结果存储到文件,可以通过TRIVY_OUTPUT指定输出文件名
--skip-db-update, --skip-update 跳过更新漏洞数据库,默认为false,可以通过[$TRIVY_SKIP_UPDATE, $TRIVY_SKIP_DB_UPDATE]定义
--download-db-only 仅下载或是更新数据漏洞,不进行扫描
2、使用
(1)只需指定镜像名称和tag,
trivy image [YOUR_IMAGE_NAME]
(2)指定输出格式
trivy image nginx --format json
或者:
export TRIVY_FORMAT="json"
trivy image nginx
(3)指定显示漏洞级别
trivy image nginx --severity HIGH,CRITICAL
或者
export TRIVY_SEVERITY="HIGH,CRITICAL"
trivy image nginx
(4)扫描结果存储到文件
trivy image nginx --output test.file
或者
export TRIVY_OUTPUT="test.file"
trivy image nginx
(5)跳过更新漏洞数据库
trivy image --skip-db-update=true nginx
或者
trivy image --skip-update=true nginx
或者
export TRIVY_SKIP_UPDATE="true"
trivy image nginx
或者
export RIVY_SKIP_DB_UPDATE="true"
trivy image nginx
(6)下载漏洞库
trivy --download-db-only
八、其他
其他相关资料,请查看官网。
https://aquasecurity.github.io/trivy/v0.19.2/