harbor系列之7:镜像漏洞扫描

镜像漏洞扫描

Harbor 默认通过开源项目 Trivy (Harbor 2.0.0 及之后版本)或 Clair (Habor v2.2.0 版本之后从默认中删除)提供镜像漏洞的静态分析 。

在harbor中可以对特定镜像或 Harbor 中的所有镜像手动启动扫描。也可以设置策略,使系统定期自动扫描所有镜像。

说明:

本文中harbor使用的截图以 Harbor v2.11.0 为例,具体操作以实际环境版本为准。

1. 启用默认扫描器–trivy

本文使用的2.11.0版本,harbor支持的扫描器为Trivy。Trivy是一款全面且多功能的安全扫描器,专为云原生应用程序设计。它能够扫描容器镜像、文件系统、Kubernetes集群、Git存储库等,检测漏洞、配置错误和恶意软件等安全问题。

官方仓库地址:https://github.com/aquasecurity/trivy

harbor安装时启用trivy扫描工具: ./install.sh --with-trivy。如果安装时未启用,可以后续执行参数更新后重启环境:

[root@e2etest harbor]# ls
common  common.sh  docker-compose.yml  harbor.v2.11.0.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare
# 使用prepare脚本启用trivy,然后更新docker-compose.yaml配置文件
[root@e2etest harbor]# ./prepare --with-trivy
# 重新启动harbor环境
[root@e2etest harbor]# docker-compose down
[root@e2etest harbor]# docker-compose up -d

界面查看配置扫描器:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UbPkWBd0-1722176258857)(https://i-blog.csdnimg.cn/direct/bc57e9b0404140bfa9ff5f02f473fc34.png#pic_center)]

在审查服务中,harbor还提供了安全中心,展示镜像漏洞的概览。在漏洞菜单可以配置漏洞扫描的策略,可以手动触发或者配置定时扫描。

上述漏扫执行的是全部的参控股镜像扫描任务。除次之外,在harbor的项目中,针对镜像提供了单独的扫描入口。

2. 设置trivy离线扫描

默认的情况下trivy会联网下载漏扫数据库,并执行数据库更新,如果环境无法联网执行扫描的时候就会有报错。内网环境中我们可以离线导入漏洞库并执行离线扫描,漏洞库采取定时手动更新的策略。

2.1 设置trivy离线扫描

[root@e2etest harbor]# ls
common  common.sh  docker-compose.yml  harbor.v2.11.0.tar.gz  harbor.yml  harbor.yml.tmpl  install.sh  LICENSE  prepare

# 修改下面的配置
[root@e2etest harbor]# vi harbor.yml
trivy:
  # 跳过更新
  skip_update: true
  #离线扫描
  offline_scan: true

# 重新启动harbor环境
[root@e2etest harbor]# docker-compose down
[root@e2etest harbor]# docker-compose up -d

2.2 离线导入漏洞库

trivy使用git下载漏洞库,所以要保证git能够联网。内网部署可以配置代理或离线导入的方式进行。本文采用离线导入的方式:

找一台可以联网的机器,安装trivy,运行镜像扫描任务下载漏洞库。trivy扫描使用的数据默认位于当前用户的.cache/目录下。也可以通过下面的命令下载漏洞数据库:trivy image --download-db-only

[root@e2etest ~]# ls .cache/trivy/
db  fanal  policy
[root@e2etest ~]# ls .cache/trivy/db/
metadata.json  trivy.db

将数据库拷贝到harbor机器的环境中:

# /data/harbor是我安装harbor时配置的数据目录
[root@e2etest ~]# ls /data/harbor/trivy-adapter/trivy/db/
metadata.json  trivy.db

# 添加权限
chown 10000:10000 -R /data/harbor/trivy-adapter/trivy

3. 执行扫描任务

完成上述配置后,我们就可以执行harbor镜像的扫描了。

3.1 扫描特定镜像

  1. 进入harbor任意一个有镜像仓库的项目,可以看到项目默认配置了Trivy扫描器,如果有多个扫描器,可以针对该项目镜像修改。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AP37ydTz-1722176258859)(https://i-blog.csdnimg.cn/direct/bc0a80a81f8b4b78b6a210b8c5f4c671.png#pic_center)]

  1. 点击镜像仓库页签,选择一个仓库源,进入该仓库的 Artifacts 页面。

  2. 勾选一个或多个需要扫描的 Artifacts ,单击扫描。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v4NkfX2M-1722176258860)(https://i-blog.csdnimg.cn/direct/2b74d530e7464ef5831c5075a969678b.png#pic_center)]

在配置管理中,也可以配置自动扫描镜像,当项目中有镜像上传后自动执行。

这里除了扫描漏洞之外,也可以借助trivy生成镜像的SBOM(软件物料清单):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iChTAe3N-1722176258860)(https://i-blog.csdnimg.cn/direct/110fdfc3e1c54f02a93ee69097bac3d0.png#pic_center)]

从sbom中可以清晰的看出镜像使用了哪些软件包、版本及license等信息。

3.2 扫描所有镜像

  1. 使用具有 Harbor 系统管理员权限的帐户登录 Harbor 界面。

  2. 选择系统管理 – 审查服务,点击漏洞页签,可以进行全部扫描。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZhHbhH2a-1722176258861)(https://i-blog.csdnimg.cn/direct/6e45c5b1c5cc456a85c96f44a6e75393.png#pic_center)]

这里也可以设置扫描策略,可以设置每小时、每天、每周扫描。也可以自定义时间,通过cron格式指定。

3.3 查看扫描的整体情况

在安全中心可以看到当前漏洞的总览信息:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QupYhOBE-1722176258861)(https://i-blog.csdnimg.cn/direct/7c52b93f20374d1eaeefbecbf385bb87.png#pic_center)]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lldhsds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值