Harbor+Trivy实现镜像漏洞扫描

安装

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.gzjavadb.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                   │
├──────────────────┼──────────────────┼──────────┼──────────────┼─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤

### 配置Harbor复制管理器实现HTTPS到HTTP Harbor仓库间Docker镜像同步 为了使Harbor能够作为源端通过HTTPS协议拉取镜像并推送到目标端的HTTP Harbor实例,需确保两端配置正确无误。 #### 修改Docker守护进程配置文件 对于推送至HTTP类型的私有仓库,在客户端机器上编辑`/etc/docker/daemon.json`文件来指定不安全注册表地址。这允许本地Docker服务忽略SSL证书验证从而支持向未启用TLS加密的目标发送请求[^1]: ```json { "insecure-registries": ["http_harbor_ip:http_port"] } ``` 重启Docker服务应用更改后的设置以生效新参数。 #### 设置Harbor复制策略 登录到具有管理员权限的源Harbor界面完成如下操作: - 导航至'Administration'下的'Replication'选项卡创建新的复制规则; - 输入名称描述以及设定调度计划; - 填写远程站点URL(即目的HTTP Harbor服务器),注意这里应填写完整的域名或IP加上端口号形式如`http://destination_harbor_address:port`; - 认证部分输入拥有相应权限的操作账号密码用于访问目的地库; - 选择要同步的对象范围比如项目、标签等具体条件过滤; 保存上述配置之后即可启动一次即时传输测试连接性与功能正常与否。 #### 脚本化部署流程 考虑到自动化运维需求可以编写Shell脚本来简化重复性的环境准备动作,下面给出一段简单的示例代码片段用来下载官方提供的docker-compose模板文件以便快速安装单节点版Harbor[^2]: ```bash #!/bin/bash # 下载harbor离线包 curl -O http://your_source_server/harbor-offline-installer.tgz tar xf harbor-offline-installer.tgz cd harbor ./install.sh --with-trivy --with-chartmuseum ``` 此段命令序列实现了从给定位置获取压缩包解压执行默认安装过程同时开启漏洞扫描插件Trivy及Helm Chart存储特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值