【云原生安全篇】一文掌握Harbor集成Trivy应用实践

【云原生安全篇】一文掌握Harbor集成Trivy应用实践

目录

  • 1 概念
    • 1.1 什么是 Harbor 和 Trivy?
      • 1.1.1 Harbor
      • 1.1.2 Trivy
    • 1.2 Harbor 与 Trivy 的关系
      • Trivy 在 Harbor 中的作用:
    • 1.3 镜像扫描工作流程
  • 2 实战案例:在Harbor 配置 Trivy
    • 2.1 环境准备
    • 2.2 步骤 1:启用 Trivy 作为漏洞扫描工具
    • 2.3 步骤 2:配置扫描策略
    • 2.4 步骤 3:推送镜像到 Harbor
    • 2.5 步骤 4:查看漏洞扫描结果
    • 2.6 步骤5: 其他操作
  • 3 总结
  • 4 参考资料

❤️ 摘要:随着容器技术的广泛应用,确保容器镜像的安全性变得至关重要。Harbor 是一个强大的企业级容器镜像仓库,而 Trivy 是一款高效的开源安全扫描工具。通过将 Trivy 与 Harbor 集成,企业可以在镜像上传过程中自动进行漏洞扫描,从而增强容器镜像的安全性。本文将简述 Harbor 和 Trivy 的应用,并给出详细的工作流程、配置步骤和验证方法。


1 概念

1.1 什么是 Harbor 和 Trivy?

❤️ 文档参考: 想详细了解Harbor,可以提前读《一文读懂Harbor以及部署实践攻略》; 想详细了解Trivy,可以提前读《【云原生安全篇】一文读懂Trivy 》

1.1.1 Harbor

Harbor 是一个开源的企业级容器镜像仓库管理平台,旨在帮助组织安全高效地存储、管理和分发 Docker 容器镜像。Harbor 还支持多种集成工具,如漏洞扫描工具 Trivy,用于增强镜像安全。

1.1.2 Trivy

Trivy 是由 Aqua Security 开发的开源安全扫描工具,能够扫描容器镜像、文件系统、基础设施即代码(IaC)等对象中的已知漏洞。Trivy 提供了快速、准确的扫描结果,帮助开发人员在开发早期识别潜在的安全风险。

1.2 Harbor 与 Trivy 的关系

Harbor 自 2.0 版本开始,默认支持与 Trivy 集成,作为其漏洞扫描工具。通过应用集成,当用户上传镜像到 Harbor 仓库时,Trivy 会自动扫描镜像中操作系统包和应用程序依赖中的已知漏洞,并生成详细的漏洞报告。

Trivy 在 Harbor 中的作用

  • 在镜像推送到 Harbor 仓库后,Trivy 自动触发扫描。
  • Harbor 将扫描结果存储,并可以通过 Web 界面查看扫描的详细信息。
  • Harbor 支持为不同的项目设置不同的漏洞扫描策略(如阻止带有高危漏洞的镜像拉取)。

1.3 镜像扫描工作流程

下图展示了 Harbor 结合 Trivy 进行镜像安全扫描的工作流程:

用户推送容器镜像到 Harbor
Harbor 存储镜像
Trivy 自动扫描镜像漏洞
Harbor 存储扫描结果
用户查看漏洞扫描报告
扫描发现高危漏洞?
Harbor 阻止镜像拉取
镜像可正常拉取

❔ 流程说明:

  1. 用户通过 Docker CLI 或 CI/CD 工具将容器镜像推送到 Harbor 容器镜像仓;
  2. Harbor 在接收到镜像后,启动镜像存储过程,同时触发 Trivy 进行漏洞扫描;
  3. Trivy 解析镜像中的操作系统包和应用依赖,与漏洞数据库检索比对,然后查找已知漏洞;
  4. 漏洞扫描完成后,Harbor 将扫描结果存储到本地数据库,通过Web页面方式供管理员或开发者查看;
  5. 如果扫描结果中包含高危漏洞,根据 Harbor 的安全策略,可能阻止该镜像的拉取,直到漏洞得到修复。

2 实战案例:在Harbor 配置 Trivy

下面介绍如何配置 Harbor 与 Trivy 进行集成,确保每次镜像推送到 Harbor 后都能自动触发 Trivy 的漏洞扫描。

2.1 环境准备

  • 提前部署并运行的 Harbor 实例(要求2.0 及以上版本)。
  • Harbor 配置使用 Trivy 作为默认扫描器。

2.2 步骤 1:启用 Trivy 作为漏洞扫描工具

因为我是使用docker-compose官方方式部署,如果要安装trivy组件,需要先执行以下命令:

cd /harbor
sudo ./install.sh --with-trivy

检查harbor的状态

root@harbor:~/harbor/harbor# docker-compose psName                   Command                State                 Ports
------------------------------------------------------------------------------------------
harbor-core         /harbor/entrypoint.sh        Up (healthy)
harbor-db           /docker-entrypoint.sh 13     Up (healthy)14
harbor-jobservice   /harbor/entrypoint.sh        Up (healthy)
harbor-log          /bin/sh -c /usr/local/bin/   Up (healthy)   127.0.0.1:1514->10514/tcp...
harbor-portal       nginx -g daemon off;         Up (healthy)
nginx               nginx -g daemon off;         Up (healthy)   0.0.0.0:80->8080/tcp,:::80->8080/tcp,0.0.0.0:443->8443/tcp,:::443->8443/tcp
redis               redis-server                 Up (healthy)/etc/redis.conf
registry            /home/harbor/entrypoint.sh   Up (healthy)
registryctl         /home/harbor/start.sh        Up (healthy)
trivy-adapter       /home/scanner/entrypoint.s   Up (healthy)
  • 看到harbor的组件比之前多个trivy的容器

可以进入trivy容器,查看trivy的信息

root@harbor:~/harbor/harbor# docker exec -it trivy-adapter bash

查看版本和数据库

scanner [ / ]$ trivy version
Version: 0.52.2
Vulnerability DB:Version: 2UpdatedAt: 2024-09-13 12:12:21.448692961 +0000 UTCNextUpdate: 2024-09-13 18:12:21.4486927 +0000 UTCDownloadedAt: 2024-09-13 15:19:40.854214676 +0000 UTC
Java DB:Version: 1UpdatedAt: 2024-09-13 01:08:50.455768046 +0000 UTCNextUpdate: 2024-09-16 01:08:50.455767885 +0000 UTCDownloadedAt: 2024-09-13 15:20:47.499356951 +0000 UTC

登录Harbor页面检查trivy应用是否启用;

点击“审查服务”,在界面中,可以看到Trivy已经作为默认的漏洞扫描器并状态是 “启用”

2.3 步骤 2:配置扫描策略

为确保所有上传的镜像都能被自动扫描,你需要为项目设置自动扫描策略。

操作路径:项目→项目名称“hcie”→配置管理

找到 漏洞扫描,选择 自动扫描镜像,以确保每次推送镜像后,Trivy 会自动扫描该镜像。

2.4 步骤 3:推送镜像到 Harbor

在hcie项目中,先删除原镜像,重新上传一个nginx:1.26.1的镜像。

  1. 登录到 Docker 客户端:
    docker login harbor.zx
    
  2. 标记要推送的镜像:
    docker tag registry.cn-hangzhou.aliyuncs.com/hcie/nginx:1.26.1 harbor.zx/hcie/nginx:1.26.1
    
  3. 推送镜像到 Harbor:
    docker push harbor.zx/hcie/nginx:1.26.1
    

2.5 步骤 4:查看漏洞扫描结果

镜像推送完成后,Harbor 会自动触发 Trivy 进行漏洞扫描。您可以通过 Harbor 控制台查看扫描结果:

操作路径: 项目→项目名称“hcie”→名称hcie/nginx→Artifacts

点击该镜像的标签(tag),在详情页面中,点击 漏洞 标签,查看 Trivy 生成的漏洞扫描报告。报告中列出了所有检测到的漏洞,按严重性分类,并提供相应的修复建议。

2.6 步骤5: 其他操作

关于漏洞扫描,还有一些功能介绍说明:

路径:审查服务→漏洞→定期扫描所有

  • 手动扫描:这里你可以点击开始扫描, 手动触发对现有所有镜像的漏洞扫描;
  • 定时扫描:也可以设置定时扫描策略,如按小时/天/周/自定义

自定义任务,按crontab的格式:

在安全中心页面,可以看到全局镜像的扫描结果,以及数据可视化展示,包括漏洞总览、最危险的5个 Artifacts、漏洞详细列表。

3 总结

通过将 HarborTrivy 集成,可以在容器镜像推送到镜像仓库的过程中自动执行漏洞扫描,确保开发和运维团队在开发生命周期能尽早发现并修复潜在的安全问题。

通过本文的配置和工作流程,您可以轻松设置 Harbor 和 Trivy 的集成,确保容器镜像在上线前通过严格的安全检查。

4 参考资料

[1] harbor-scanner-trivy的github项目

[2] harbor脚本部署

[3]harbor漏洞扫描

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

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

相关文章

2018年国赛高教杯数学建模D题汽车总装线的配置问题解题全过程文档及程序

2018年国赛高教杯数学建模 D题 汽车总装线的配置问题 一.问题背景   某汽车公司生产多种型号的汽车,每种型号由品牌、配置、动力、驱动、颜色5种属性确定。品牌分为A1和A2两种,配置分为B1、B2、B3、B4、B5和B6六种,动力分为汽油…

Golang | Leetcode Golang题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; func canPartition(nums []int) bool {n : len(nums)if n < 2 {return false}sum, max : 0, 0for _, v : range nums {sum vif v > max {max v}}if sum%2 ! 0 {return false}target : sum / 2if max > target {return false}dp …

fastadmin 根据选择数据来传参给selectpage输入框

文章目录 js代码php代码&#xff1a;完结 js代码 $(document).on(change,#table .bs-checkbox [type"checkbox"],function(){let url$(#chuancan).attr(data-url)urlurl.split(?)[0]let idsTable.api.selectedids(table)if(ids.length){let u_id[]ids.forEach(eleme…

Seata学习笔记

目录 Seata的三大角色 角色 相关流程 相关事务模式 AT 模式&#xff08;默认模式&#xff09; 概述 整体机制 分析 XA 模式 概述 机制 分析 TCC 模式 概述 机制 分析 SAGA 模式 概述 机制 分析 参考&#xff1a; Seata的三大角色 角色 TC (Transaction Co…

虚拟机:4、配置12.5的cuda和gromacs

前言&#xff1a;本机环境是win11&#xff0c;通过wsl2安装了ubuntu实例并已实现gpu直通&#xff0c;现在需要下载12.5的cuda 一、查看是否有gpu和合适的cuda版本 在ubuntu实例中输入 nvidia-smi输出如下&#xff1a; 说明该实例上存在gpu驱动&#xff0c;且适合的CUDA版本…

智能新突破:AIOT 边缘计算网关让老旧水电表图像识别

数字化高速发展的时代&#xff0c;AIOT&#xff08;人工智能物联网&#xff09;技术正以惊人的速度改变着我们的生活和工作方式。而其中&#xff0c;AIOT 边缘计算网关凭借其强大的功能&#xff0c;成为了推动物联网发展的关键力量。 这款边缘计算网关拥有令人瞩目的 1T POS 算…

VS Code 技巧

在编程世界里&#xff0c;工具的好坏取决于使用者的水平。Visual Studio Code&#xff08;VS Code&#xff09;就像一把锋利的刀&#xff0c;它功能强大&#xff0c;但需要熟练的技巧才能发挥出色。然而&#xff0c;对于初学者来说&#xff0c;它可能显得有些复杂&#xff0c;因…

9.Branch-and-Bound 方法

Branch-and-Bound 方法 Branch-and-Bound&#xff08;分支限界&#xff09;是一种用于解决优化问题的算法框架&#xff0c;尤其适用于组合优化问题&#xff0c;如整数规划、旅行商问题&#xff08;TSP&#xff09;、指派问题等。该方法通过系统地搜索解空间树来找到问题的最优…

[spring]springboot日志

文章目录 一. 日志的用途二. 打印日志三. 日志框架门面模式(外观模式)SLF4J框架介绍 四. 日志格式日志级别配置日志级别日志持久化配置日志文件分割配置日志格式 五. 更简单的日志输出 一. 日志的用途 二. 打印日志 得到日志对象: 需要使用日志工厂LoggerFactory RestControl…

【小程序】uniapp自定义图标组件可动态更换svg颜色

组件描述 通过图标名称加载对应svg&#xff0c;size参数调整图标大小&#xff0c;color参数调整图标颜色 解决思路&#xff1a; 存svg获svg&#xff0c;对象方式正则替换svg的fill值&#xff0c;不改变源文件&#xff0c;通过base64直接加载缓存svg源文件&#xff0c;避免重…

聚铭下一代智慧安全运营中心荣获CNNVD兼容性资质证书

近日&#xff0c;聚铭网络旗下安全产品——聚铭下一代智慧安全运营中心正式通过了国家信息安全漏洞库&#xff08;CNNVD&#xff09;兼容性认证测试&#xff0c;荣获国家信息安全漏洞库兼容性资质证书。 关于CNNVD兼容性 国家信息安全漏洞库&#xff08;CNNVD&#xff09;是…

2003-2022年各省区域创新能力评价相关指标数据(报告年份2003-2022年)

2003-2022年各省区域创新能力相关指标数据&#xff08;报告年份2003-2022年&#xff09; 1、来源&#xff1a;2003-2022年中国区城创新能力评价报告 2、指标&#xff1a;综合值、知识创造综合指标、研究开发投人综合指标、专利综合指标、科研论文综合指标、知识获取综合指标、…

CSS02-字体属性、文本属性

一、字体属性 CSS Fonts(字体)属性用于定义字体系列、大小、粗细、和文字样式(如斜体)。 1-1、font-family属性 当font-family有多个值的时候&#xff0c;代码会依次查找当前系统中存在哪种字体&#xff0c;有则使用&#xff0c;没有则查找下一个字体。 1-2、font-size属性 1-3…

解决ArmDS Fast Models 中部分内核无法上电的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型&#xff0c;只有Core 0是上电状态&#xff0c;而Core 1处于掉电状态&#xff0c;如图2-1所示&…

AI大模型日报#0923:李飞飞创业之后首个专访、华为云+腾讯音乐发布昇腾适配方案

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;、“智谱AI”&#xff08;glm-4-0520&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅…

基于单片机无线智能报警系统的设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…

计算机毕业设计 基于Python的荣誉证书管理系统 Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

2024全球超模大赛(北京|山东|内蒙三城联动)顺利举办

近日&#xff0c;2024 全球超模大赛&#xff08;北京|山东|内蒙&#xff09;三城联动暨新国潮文化赛事主题发布会在紫薇美力集团国贸鲁采赋盛大举行。此次发布会旨在鼓励优质模特共同传播中国传统文化&#xff0c;让其在全球范围内绽放光彩&#xff0c;展现中国人的骄傲与风采&…

用Python提取PowerPoint演示文稿中的音频和视频

将多种格式的媒体内容进行重新利用&#xff08;如PowerPoint演示中的音频和视频&#xff09;是非常有价值的。无论是创建独立的音频文件、提取视频以便在线分发&#xff0c;还是为了未来的使用需求进行资料归档&#xff0c;从演示文稿中提取这些媒体文件可以为多媒体内容的多次…

基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STM32F103C8T6 采用DHT11读取温度、滑动变阻器模拟读取电流、电压。 通过OLED屏幕显示,设置电流阈值为80,电流小阈值为50,电压阈值为60,温度阈值为30 随便哪个超过预祝,则继电器切断,LE…