Harbor+Trivy实现镜像漏洞扫描

news2024/11/19 3:50:08

文章目录

  • 安装
    • 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.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                   │
├──────────────────┼──────────────────┼──────────┼──────────────┼─────────────────────────┼─────────────────────────┼──────────────────────────────────────────────────────────────┤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1062648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

目标检测算法改进系列之Backbone替换为FocalNet

FocalNet 近些年,Transformers在自然语言处理、图像分类、目标检测和图像分割上均取得了较大的成功,归根结底是自注意力(SA :self-attention)起到了关键性的作用,因此能够支持输入信息的全局交互。但是由于…

OpenCV项目开发实战--使用最先进的方法“F、B、Alpha Matting”进行图像抠图--提供完整代码

示范 让我们对现实生活中的图像启动 FBA Matting 方法。要应用 FBA Matting 算法,我们首先需要生成一个 trimap(我们稍后会介绍它是什么)。在我们的演示中,我们将使用预训练的DeepLabV3生成分割掩模,其中每个像素属于前景类的概率。之后,我们将使用大量膨胀操作将边界像…

【6】c++设计模式——>UML表示类之间的依赖关系

依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系,大多数情况下依赖关系体现在某个类的方法使用另一个类的对象作为参数。 在U…

JavaEE-网络编程套接字(UDP/TCP)

下面写一个简单的UDP客户端服务器流程 思路: 对于服务器端:读取请求,并解析–> 根据解析出的请求,做出响应(这里是一个回显,)–>把响应写回客户端 对于客户端:从控制台读取用户输入的内容–>从控制…

【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门

大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。 因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

约束优化算法(optimtool.constrain)

import optimtool as oo from optimtool.base import np, sp, pltpip install optimtool>2.4.2约束优化算法(optimtool.constrain) import optimtool.constrain as oc oc.[方法名].[函数名]([目标函数], [参数表], [等式约束表], [不等式约数表], [初…

1798_GNU pdf阅读器evince_支持的格式

全部学习汇总: GreyZhang/g_GNU: After some years I found that I do need some free air, so dive into GNU again! (github.com) 顺着之前的wiki了解的文档,这一次看看evince支持的文件格式。关于这部分,原始的介绍网页链接: A…

SpringCloud(二)Docker、Spring AMQP、ElasticSearch

文章目录 DockerDocker与虚拟机Docker架构镜像、容器、镜像托管平台Docker架构Docker实践 Spring AMQP简单使用案例工作队列- WorkQueue发布订阅服务FanoutExchangeDirectExchangeTopicExchange 消息转换器 ElasticSearch倒排索引IK分词器IK分词拓展与停用字典 操作索引库mappi…

创建django文件

1、在指定目录里打开终端,输入D:\Softwares\Anaconda3\envs\pytorch\Scripts\django-admin .exe startproject 名称 ,即可在对应目录里创建django文件。

后端面经学习自测(二)

文章目录 1、Http1.1和2.0的区别大概是什么?HTTP & HTTPS 2、HTTP,用户后续的操作,服务端如何知道属于同一个用户cookie & session & token手机验证码登录流程SSO单点登录 3、如果服务端是一个集群机器?4、hashmap是线…

目标检测算法改进系列之Backbone替换为PoolFormer

PoolFormer MetaFormer是颜水成大佬的一篇Transformer的论文,该篇论文的贡献主要有两点:第一、将Transformer抽象为一个通用架构的MetaFormer,并通过经验证明MetaFormer架构在Transformer/ mlp类模型取得了极大的成功。 第二、通过仅采用简单…

2019强网杯随便注bugktu sql注入

一.2019强网杯随便注入 过滤了一些函数,联合查询,报错,布尔,时间等都不能用了,尝试堆叠注入 1.通过判断是单引号闭合 ?inject1-- 2.尝试堆叠查询数据库 ?inject1;show databases;-- 3.查询数据表 ?inject1;show …

六、互联网技术——数据存储

文章目录 一、存储系统层次结构二、按照重要性分类三、磁盘阵列RAID三、RAID基础四、磁盘阵列分级五、数据备份与恢复六、容灾与灾难恢复 一、存储系统层次结构 常见的三层存储体系结构如下图所示,分为高速缓冲存储器、主存储器和外存储器。 二、按照重要性分类 …

项目进展(八)-编写代码,驱动ADS1285

一、代码 根据芯片的数据手册编写部分驱动,首先看部分引脚的波形: DRDY: CS: 首先在代码初始化时连续写入三个寄存器: void WriteReg(uint8_t startAddr, uint8_t *regData, uint8_t number) {uint8_t i0;// 循环写number1次…

WVP-28181协议视频平台搭建教程

28181协议视频平台搭建教程 安装mysql安装redis安装ZLMediaKit安装28181协议视频平台安装依赖下载源码编译静态页面打包项目, 生成可执行jar修改配置文件启动WVP 项目地址: https://github.com/648540858/wvp-GB28181-pro 说明: wvp-GB28181-pro 依赖redis和mysql中…

前端 富文本编辑器原理——从javascript、html、css开始入门

文章目录 ⭐前言⭐html的contenteditable属性💖 输入的光标位置(浏览器获取selection)⭐使用Selection.toString () 返回指定的文本⭐getRangeAt 获取指定索引范围 💖 修改光标位置💖 设置选取range ⭐总结⭐结束 ⭐前…

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备: 二、配置mariadb主从复制 三台主机下载mariadb 1)主的操作 2)从的操作 3)测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…

Linux——指令初识

Linux下基本指令 前言一、 ls 指令二、 pwd命令三、cd 指令四、 touch指令五、mkdir指令六、rmdir指令 && rm 指令七、man指令八、cp指令九、mv指令十、cat指令十一、.more指令十二、less指令十三、head指令十四、tail指令总结 前言 linux的学习开始啦! 今…

MyBatisPlus(十二)排序查询:orderBy

说明 排序查询&#xff0c;对应SQL语句中的 orderBy 语句&#xff0c;对查询结果按照指定字段排序。 升序&#xff1a;orderByAsc /*** 查询用户列表&#xff0c; 查询条件&#xff1a;按照 年龄 升序排列*/Testvoid orderByAsc() {LambdaQueryWrapper<User> wrapper …

OpenCV实现人脸检测(Haar特征)

学习目标 原理 实现 import cv2 as cv print(cv.__file__) 路径&#xff1a;E:\Anaconda3\envs\test_py3.6\Lib\site-packages\cv2\data 代码实现 import cv2 as cv import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei] #1&#x…