文章目录
- 安装
- Harbor
- Trivy
- oras
- 下载压缩包
- 解压并安装
- 离线漏洞库
- oras方式
- trivy方式
- 配置离线库
- 扫描镜像
- harbor配置
- 扫描镜像
- 使用命令扫描
安装
Harbor
安装Harbor时,指定--with-trivy
参数同时安装trivy组件。
./install.sh --with-trivy
Trivy
下载最新版本的安装包:
wget https://github.com/aquasecurity/trivy/releases/download/v0.45.1/trivy_0.45.1_Linux-64bit.deb
安装deb:
sudo dpkg -i trivy_0.45.1_Linux-64bit.deb
可以在Trivy官方网站获取更多帮助。
oras
下载压缩包
通过该地址下载oras的压缩包:
https://github.com/oras-project/oras/releases
解压并安装
tar -zxf oras_1.1.0_linux_amd64.tar.gz
mv oras /usr/local/bin/
离线漏洞库
oras方式
使用oras命令获取离线扫描数据库,该过程可能耗时很长。
oras pull ghcr.io/aquasecurity/trivy-db:2
oras pull ghcr.io/aquasecurity/trivy-java-db:1
trivy方式
trivy image --download-java-db-only
trivy image --download-db-only
该命令仅下载离线库文件缓存在/root/.cache/trivy
目录下。
配置离线库
下载后将得到db.tar.gz
和javadb.tar.gz
压缩文件,将这两个文件分别复制到/data/harbor/trivy-adapter/trivy/db
和/data/harbor/trivy-adapter/trivy/java-db
目录下,其中/data/harbor
是harbor存放数据的根目录,在harbor.yaml
配置文件进行配置:
# The default data volume
data_volume: /data/harbor
解压这两个压缩包,并修改文件所属用户:
chown 10000:10000 -R db
chown 10000:10000 -R java-db
扫描镜像
harbor配置
设置扫描镜像时跳过更新漏洞库,以离线方式进行扫描。
trivy:
skip_update: true
offline_scan: true
扫描镜像
选择要扫描的镜像,在其他
页面点击扫描
按钮。
扫描结束后可以查看漏洞数量和漏洞分布。
在漏洞列表中可以看到包含风险的组件和版本信息,以及该漏洞的修复版本。
使用命令扫描
trivy image --skip-java-db-update --skip-db-update nginx:1.23.1
扫描完成后将以表格形式输出镜像包含的漏洞信息。
┌──────────────────┬──────────────────┬──────────┬──────────────┬─────────────────────────┬─────────────────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├──────────────────┼──────────────────┼──────────┼──────────────┼─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ apt │ CVE-2011-3374 │ LOW │ affected │ 2.2.4 │ │ It was found that apt-key in apt, all versions, do not │
│ │ │ │ │ │ │ correctly... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2011-3374 │
├──────────────────┼──────────────────┼──────────┤ ├─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ bash │ CVE-2022-3715 │ HIGH │ │ 5.1-2+deb11u1 │ │ a heap-buffer-overflow in valid_parameter_transform │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-3715 │
├──────────────────┼──────────────────┼──────────┤ ├─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ bsdutils │ CVE-2022-0563 │ LOW │ │ 1:2.36.1-8+deb11u1 │ │ partial disclosure of arbitrary files in chfn and chsh when │
│ │ │ │ │ │ │ compiled with... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2022-0563 │
├──────────────────┼──────────────────┤ ├──────────────┼─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ coreutils │ CVE-2016-2781 │ │ will_not_fix │ 8.32-4+b1 │ │ coreutils: Non-privileged session can escape to the parent │
│ │ │ │ │ │ │ session in chroot │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2016-2781 │
│ ├──────────────────┤ ├──────────────┤ ├─────────────────────────┼──────────────────────────────────────────────────────────────┤
│ │ CVE-2017-18018 │ │ affected │ │ │ coreutils: race condition vulnerability in chown and chgrp │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2017-18018 │
├──────────────────┼──────────────────┼──────────┼──────────────┼─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤