Trivy 是一种适用于 CI 的简单而全面的容器漏洞扫描程序。软件漏洞是指软件或操作系统中存在的 故障、缺陷或弱点。Trivy 检测操作系统包(Alpine、RHEL、CentOS 等)和应用程序依赖 (Bundler、Composer、npm、yarn 等)的漏洞。
Trivy 很容易使用,只要安装二进制文件,就可以扫描了。扫描只需指定容器的镜像名称。与其他镜像扫描工具相比,例如 Clair、Anchore Engine、Quay 相比,Trivy 在准确性、方便性和对 CI 的支持等方面都有着明显的优势。
推荐在 CI 中使用它,在推送到 container registry 之前,你可以轻松地扫描本地容器镜像。
- 无需安装数据库、库等先决条件;
- 使用简单,仅仅只需要指定镜像名称;
- 易于安装测试:
- 能检测全面的漏洞;
(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 和 Distrioless;
(2)应用程序依赖项: Bundler、Composer、Pipenv、Poetry、npm、yarn 和 Cargo; - 扫描快且无状态;
第一次扫描将在 10 秒内完成(取决于网络)。随后的扫描将在一秒钟内完成。 与其他扫描器在第一次运行时需要很长时间(大约 10 分钟)来获取漏洞信息,并鼓励你维护持久的漏洞 数据库不同,Trivy 是无状态的,不需要维护或准备;
Trivy安装
基于CentOS系统的rpm包进行安装,其它系统安装包可从项目地址进行下载。
$ wget https://github.com/aquasecurity/trivy/releases/download/v0.31.3/trivy_0.31.3_Linux-64bit.rpm $ rpm -ivh trivy_0.31.3_Linux-64bit.rpm
Trivy使用
使用Trivy扫描镜像的漏洞。
$ trivy image {image_name}:{tag}
扫描kubernetes集群
$ trivy k8s --report summary cluster
Vulnerabilities:漏洞;
Misconfigurations:表示配置错误;
Harbor中安装Trivy插件
在安装Harbor时,可以通过--with-trivy
参数来安装Trivy插件。
如果已经安装好Harbor,但是没有安装Trivy,需要停止harbor再安装Trivy插件:
$ cd /app/harbor/ #进入到Harbor安装目录 $ docker-compose down #停止Harbor服务 $ ./install.sh --with-notary --with-trivy --with-chartmuseum
在Harbor中安装好Trivy后,可以在Harbor UI看到:
1)定时进行漏洞扫描
在“系统管理”-“审查服务”-“漏洞”出设置计划任务来定时自动进行漏洞扫描。
2)镜像上传自动扫描及阻止漏洞镜像被拉取
在“项目”—“项目名称”-“配置”管理来对指定项目进行单独配置镜像上传自动扫描并阻止漏洞镜像被拉取。