Harbor整合容器漏洞扫描工具-Trivy
Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。
安装harbor 和trivy
安装harbor参考:https://199604.com/2488
重点在 执行install.sh
加成--with-trivy
参数即可整合Trivy
如果第一次安装没有添加trivy安装参数,建议参考以下文档进行添加:
https://goharbor.io/docs/2.3.0/install-config/reconfigure-manage-lifecycle/
其他参数可参考:
https://goharbor.io/docs/2.3.0/install-config/run-installer-script/
配置trivy漏洞库
harbor整合的trivy,其加载漏洞库是直接从trivy官网走的,但是公司网络无法访问github,能访问速度很慢无法下载完成扫描。
因此只能使用离线模式。
Trivy方式
下载漏洞库文件:https://github.com/aquasecurity/trivy-db/releases
或者在能正常拉取数据库的trivy执行trivy image --download-db-only
手工下载更新db库,然后将保存在/root/.cache/trivy/db/
下的文件拷贝到harbor的trivy-db目录中,目录映射到容器中的/home/scanner/.cache/trivy/db/
下,宿主机目录在harbor.yml中定义的data_volume目录下的trivy-adapter/trivy/db
目录里
oras方式
#trivy-db
docker run -it --rm -v $(pwd):/workspace ghcr.io/oras-project/oras:v1.1.0 pull ghcr.io/aquasecurity/trivy-db:2
#trivy-java-db
docker run -it --rm -v $(pwd):/workspace ghcr.io/oras-project/oras:v1.1.0 pull ghcr.io/aquasecurity/trivy-java-db:1
将下载的trivy-db
和trivy-java-db
放到宿主机目录在harbor.yml中定义的data_volume目录下的trivy-adapter/trivy/db
目录里
解压这两个压缩包,并修改文件所属用户:
chown 10000:10000 -R db
chown 10000:10000 -R java-db
harbor配置
设置扫描镜像时跳过更新漏洞库,以离线方式进行扫描。
修改harbor.yml
的trivy.skip_update: true
,不进行漏洞库升级,offline_scan: true
trivy在harbor中的使用
实时按需扫描
按照各自的需求,单独对某个项目进行实时安全漏洞的扫描
选择某个项目
上传时自动扫描
用户根据需求对上传的镜像自动进行安全检查。同时也使用于管理员自动检测用户上传的镜像的安全状态,对于存在明显重大漏洞的镜像通知镜像所属人员进行漏洞修复。此处需要管理员权限或者更高权限才可以看到该配置
定时自动扫描
管理员或者安全人员可以定时对所有项目进行安全检查,以便了解其安全状态。
参考:
https://aquasecurity.github.io/trivy/v0.30.4/docs/misconfiguration/scanning/
https://goharbor.io/docs/2.6.0/install-config/