文档来源:
https://zhuanlan.zhihu.com/p/132509622
https://www.jianshu.com/p/a9556f9cf1c5
官方文档:
https://aquasecurity.github.io/
https://github.com/knqyf263/trivy
1、介绍
Trivy是一种适用于CI的简单而全面的容器漏洞扫描程序。软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描了。扫描只需指定容器的镜像名称。与其他镜像扫描工具相比,例如Clair,Anchore Engine,Quay相比,Trivy在准确性、方便性和对CI的支持等方面都有着明显的优势。 推荐在CI中使用它,在推送到container registry之前,您可以轻松地扫描本地容器镜像,Trivy具备如下的特征:- 检测面很全,能检测全面的漏洞,操作系统软件包(Alpine、Red Hat Universal Base Image、Red Hat Enterprise Linux、CentOS、Oracle Linux、Debian、Ubuntu、Amazon Linux、openSUSE Leap、SUSE Enterprise Linux、Photon OS 和Distrioless)、应用程序依赖项(Bundler、Composer、Pipenv、Poetry、npm、yarn和Cargo);
- 使用简单,仅仅只需要指定镜像名称;
- 扫描快且无状态,第一次扫描将在10秒内完成(取决于您的网络)。随后的扫描将在一秒钟内完成。与其他扫描器在第一次运行时需要很长时间(大约10分钟)来获取漏洞信息,并鼓励您维护持久的漏洞数据库不同,Trivy是无状态的,不需要维护或准备;
- 易于安装,安装方式:
- apt-get install
- yum install
- brew install
总结:
Trivy 是一个面向镜像的漏洞检测工具,具备如下特点:
- 开源
- 免费
- 易用
- 准确度高
- CI 友好
对比图:
2、Trivy的简单使用
下面介绍一些Trivy的简单使用的命令和一些测试的结果。主要从几个方面来测试Trivy的性能指标:- 镜像大小对Trivy扫描速度的影响;
- 扫描的镜像大小和网络流量使用情况的关系;
- 扫描的结果是否容易解析;
3、安装
RHEL/CentOS
$ sudo vim /etc/yum.repos.d/trivy.repo
[trivy]
name=Trivy repository
baseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update
$ sudo yum -y install trivy
4、使用
快速开始
https://aquasecurity.github.io/trivy/v0.19.2/getting-started/quickstart/
扫描镜像
$ trivy centos
扫描镜像文件
$ docker save ruby:2.3.0-alpine3.9 -o ruby-2.3.0.tar
$ trivy --input ruby-2.3.0.tar
根据严重程度进行过滤
$ trivy --severity HIGH,CRITICAL ruby:2.3.0
忽略未修复问题
$ trivy --ignore-unfixed ruby:2.3.0
忽略特定问题
使用 .trivyignore:
$ cat .trivyignore
# Accept the risk
CVE-2018-14618
# No impact in our settings
CVE-2019-1543
$ trivy python:3.4-alpine3.9
使用 JSON 输出结果
$ trivy -f json dustise/translat-chatbot:20190428-5
定义返回值
$ trivy --exit-code 0 --severity MEDIUM,HIGH ruby:2.3.0
$ trivy --exit-code 1 --severity CRITICAL ruby:2.3.0
相对于其它同类工具,Trivy 非常适合自动化操作,从 CircleCI 之类的公有服务,到企业内部使用的 Jenkins、Gitlab 等私有工具,或者作为开发运维人员的自测环节,都有 Trivy 的用武之地。