Appearance
Harbor集成Trivy
前置:
已经部署好了Harbor或Docker、Docker-Compose已经安装好准备部署Harbor
确认Harbor可以使用Trivy
注:这里主要说添加Trivy,Harbor的安装这里不细说
编辑harbor.yml
yaml
#配置trivy相关配置,设置离线配置
trivy:
ignore_unfixed: false
# 跳过更新
skip_update: true
skip_java_db_update: true
# 离线扫描
offline_scan: true
security_check: vuln
insecure: false已部署Harbor
使用prepare脚本启用trivy更新docker-compose.yaml配置文件
bash
$ ./prepare --with-trivy重新启动harbor环境
bash
$ docker-compose down
# docker-compose stop
$ docker-compose up -d未部署Harbor
在安装时添加参数
bash
$ ./prepare --with-trivy
$ ./install.sh --with-trivy下载漏洞数据库
Trivy DB v2托管在GHCR上。虽然GitHub默认显示 docker pull 命令,但请注意,它不能使用 docker pull 下载,因为它不是容器映像。
官方推荐使用oras工具 去下载漏洞库
项目地址: https://github.com/oras-project/oras
安装oras
bash
# 下载
https://github.com/oras-project/oras/releases/download/v1.2.1/oras_1.2.1_linux_amd64.tar.gz
# https://github.com/oras-project/oras/releases/download/v1.2.1/oras_1.2.1_linux_arm64.tar.gz
# 解压
$ tar -zxf oras_1.2.1_linux_amd64.tar.gz -C oras-install
# tar -zxf oras_1.2.1_linux_arm64.tar.gz -C oras-install
$ mv oras-install/oras /usr/local/bin/ && rm -rf oras-install
# 正常不需要这一步,有需要可以执行
$ chmod +x /usr/local/bin/oras
# 查看版本
$ oras version使用oras拉取漏洞库
bash
# 官方的下载地址:
$ oras pull ghcr.io/aquasecurity/trivy-db:2
$ oras pull ghcr.io/aquasecurity/trivy-java-db:1
# 国内代理下载地址,南大代理镜像,trivy-java-db:1低一点的harbor貌似没有
$ oras pull ghcr.nju.edu.cn/aquasecurity/trivy-db:2
$ oras pull ghcr.nju.edu.cn/aquasecurity/trivy-java-db:1离线添加漏洞库到Harbor的Trivy
查看Harbor的docker-compose.yml文件
找到trivy 相关内容
yaml
trivy-adapter:
container_name: trivy-adapter
image: goharbor/trivy-adapter-photon:v2.10.1
restart: always
cap_drop:
- ALL
depends_on:
- log
- redis
networks:
- harbor
volumes:
- type: bind
source: /data/harbor/data/trivy-adapter/trivy
target: /home/scanner/.cache/trivy
- type: bind
source: /data/harbor/data/trivy-adapter/reports
target: /home/scanner/.cache/reports
- type: bind
source: ./common/config/shared/trust-certificates
target: /harbor_cust_cert
logging:
driver: "syslog"
options:
syslog-address: "tcp://localhost:1514"
tag: "trivy-adapter"
env_file:
./common/config/trivy-adapter/env可以看到/data/harbor/data/trivy-adapter/trivy 是容器外部的漏洞库缓存路径,切换到此路径
bash
$ cd /data/harbor/data/trivy-adapter/trivy
# 清空 db 目录下的内容
$ rm -rf db/*
# 清空 java-db 目录下的内容
$ rm -rf java-db/*
# 解压 jdb.tar.gz 文件到 java-db 目录
$ tar -xvf javadb.tar.gz -C java-db
# 解压 db.tar.gz 文件到 db 目录
$ tar -xvf db.tar.gz -C db
# 删除压缩包文件
$ rm -f javadb.tar.gz
$ rm -f db.tar.gz
#chown赋权
chown -Rf 10000:10000 java-db db然后去harbor测试即可,添加漏洞库不需要重启harbor