Trivy 镜像漏洞扫描:从零入门到实战指南

 

🔥「炎码工坊」技术弹药已装填!
点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】

 

——手把手带你掌握容器安全核心工具


一、安装配置:三步完成 Trivy 部署

Trivy 是由 Aqua Security 开发的开源容器安全工具,支持快速扫描镜像、文件系统、Kubernetes 等资源中的安全漏洞。以下是针对初学者的安装与配置指南。

1. 安装 Trivy

Linux 环境安装(以 Ubuntu 为例)

# 添加 Trivy 官方仓库密钥  
sudo apt-get install -y wget apt-transport-https gnupg  
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -  # 配置仓库并安装  
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list  
sudo apt-get update && sudo apt-get install -y trivy  # 验证安装  
trivy --version  

Windows 环境安装
通过 Chocolatey[1] 安装: 

choco install trivy

Docker 方式运行

docker run aquasec/trivy:latest --version

2. 配置国内镜像加速(解决数据库下载慢问题)

首次运行 Trivy 会自动下载漏洞数据库(trivy-db),由于数据库托管在 GitHub,国内用户可能遇到下载缓慢问题。
解决方案:

# 配置国内镜像源(如清华大学镜像)  
trivy --db-repository ghcr.nju.edu.cn/aquasecurity/trivy-db:2 image nginx:alpine

3. 基础扫描测试

# 扫描本地镜像  
trivy image nginx:latest  # 输出示例(终端显示结果)  
[INF] Detected OS: alpine  
[HIGH] CVE-2023-1234 [httpd] → Fixed in 2.4.56-r0  

二、核心功能演示:从基础到高级实践

1. 基础扫描功能

扫描本地 Docker 镜像

trivy image redis:6.0.9  

扫描远程仓库镜像

trivy image docker.io/library/ubuntu:20.04  

输出格式定制化

# 生成 JSON 报告  
trivy image -f json -o results.json nginx:latest  # 生成 HTML 可视化报告  
trivy image --format template --template "@/usr/share/trivy/templates/html.tpl" -o report.html nginx:latest

2. 高级功能实践

按漏洞严重级别过滤

# 仅扫描高危和紧急漏洞  
trivy image --severity HIGH,CRITICAL nginx:latest  

离线扫描模式(适用于无网络环境)

# 预先下载漏洞库  
trivy --cache-dir /path/to/cache update  # 使用本地缓存扫描  
trivy --cache-dir /path/to/cache --skip-db-update image nginx:latest  

CI/CD 集成:阻断高危漏洞提交

# 在 GitHub Actions 中配置  
trivy image --exit-code 1 --severity CRITICAL nginx:latest  

三、常见问题排查:典型错误与解决方案

1. 漏洞数据库下载失败

现象:

FATAL failed to download vulnerability DB: unable to connect to GitHub  

解决方法:

  • 配置代理
    export HTTP_PROXY="http://proxy.example.com:8080"  
  • 手动下载数据库
    trivy --download-db-only --db-repository ghcr.nju.edu.cn/aquasecurity/trivy-db:2  

2. 扫描结果为空或不完整

原因:

  • 镜像未正确加载(如镜像名称拼写错误) 
  • 漏洞库未更新(超过 12 小时未更新)

修复:

# 强制更新漏洞库  
trivy --clear-cache && trivy --cache-dir /root/.cache/trivy update  

3. 权限不足导致扫描失败

Linux 环境
确保用户有访问 Docker 套接字权限: 

sudo usermod -aG docker $USER  

Windows 环境
以管理员身份运行 PowerShell 或 CMD。


四、可视化流程图:Trivy 工作流解析


 

五、专有名词说明表

术语解释
CVE通用漏洞与暴露标识符,国际标准漏洞编号(如 CVE-2023-1234)
OCI开放容器倡议(Open Container Initiative),定义容器镜像和运行时规范
CI/CD持续集成/持续交付,自动化软件开发流程
trivy-dbTrivy 使用的漏洞数据库,包含 OS 和语言层漏洞数据
Alpine轻量级 Linux 发行版,常用于容器镜像
Docker HubDocker 官方镜像仓库,存储公共镜像
GitHub ActionsGitHub 提供的 CI/CD 服务,支持自动化构建和测试

总结
通过本文的三步指南,您已掌握 Trivy 的核心使用方法和常见问题解决方案。作为云原生安全的基石工具,Trivy 的易用性和高效性使其成为 DevOps 流程中不可或缺的一环。后续可进一步探索其 Kubernetes 安全扫描、SBOM(软件物料清单)生成等高级功能。

引用链接

[1] Chocolatey: https://chocolatey.org/

 

🚧 您已阅读完全文99%!缺少1%的关键操作:
加入「炎码燃料仓」
🚀 获得:
√ 开源工具红黑榜 √ 项目落地避坑指南
√ 每周BUG修复进度+1%彩蛋
(温馨提示:本工坊不打灰工,只烧脑洞🔥)

 

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

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

相关文章

SQL基础概念以及SQL的执行方式

1. SQL入门 1.1. SQL语言功能 可以把 SQL 语言按照功能划分成以下的 4 个部分: DDL,英文叫做 Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用 DDL&…

Rust 1.0 发布十周年,梦想再度扬帆起航!

目录 引言:发布十周年,锋芒露今朝 一、Rust的诞生:源于安全的初心 二、Rust 1.0:十年耕耘,硕果累累 三、核心利器:安全、并发与性能的十年锤炼 四、生态与应用:十年拓展,遍地开…

x86 与 ARM 汇编深度对比:聚焦 x86 汇编的独特魅力

一、引言 汇编语言是硬件与软件的桥梁,x86 和 ARM 作为两大主流架构,其汇编语言在设计理念、指令集、编程风格上差异显著。本文以 x86 汇编为核心,结合与 ARM 的对比,解析 x86 汇编的技术细节与应用场景,助力开发者深…

入驻面包多了

前言 入驻面包多了,其实已经开通面包多账号老久了,一直没有认证,因为没什么拿得出手的作品。 后边会努力沉淀,希望能出一些作品,给大家带来一些帮助,然后能赚到一些些奶茶钱。 一个小工具 上架了一个Win…

Python----目标检测(MS COCO数据集)

一、MS COCO数据集 COCO 是一个大规模的对象检测、分割和图像描述数据集。COCO有几个 特点: Object segmentation:目标级的分割(实例分割) Recognition in context:上下文中的识别(图像情景识别&#xff0…

【Spring AI集成实战】基于NVIDIA LLM API构建智能聊天应用:从配置到函数调用全解析

【Spring AI集成实战】基于NVIDIA LLM API构建智能聊天应用:从配置到函数调用全解析 前言 在人工智能应用开发领域,大语言模型(LLM)的集成能力至关重要。NVIDIA作为全球领先的GPU厂商,其LLM API提供了对Meta Llama-3.…

通用的管理账号设置设计(一)

背景 首先说明一下需求背景: 在整个角色分类中分为管理员和用户,用户可以分为很多级别,比如用户处于哪个组(group),用户处于哪个site(城市)。管理员可以: 2.1 锁定整个…

第5章 软件工程基础知识

5.2 软件过程模型 掌握常见软件开发模型的基本概念。 瀑布模型:各阶段的固定顺序,如同瀑布流水。适用于需求明确,且很少发生较大变化的项目。 演化模型: 原型模型:适用于用户需求不清,需求经常变化的情况…

深浅拷贝?

一、定义: 浅拷贝:只复制对象的第一层属性,若第一层属性是引用类型(如对象、数组),则复制其内存地址,修改拷贝后的嵌套对象会影响原对象。 深拷贝:递归复制对象的所有层级&#xf…

MMA: Multi-Modal Adapter for Vision-Language Models论文解读

abstract 预训练视觉语言模型(VLMs)已成为各种下游任务中迁移学习的优秀基础模型。然而,针对少样本泛化任务对VLMs进行微调时,面临着“判别性—泛化性”困境,即需要保留通用知识,同时对任务特定知识进行微…

蚂蚁集团 CTO 何征宇:AGI时代,海量数据带来的质变|OceanBase 开发者大会实录

5 月 17 日,“第三届 OceanBase 开发者大会”在广州举办,会中,蚂蚁集团 CTO 何征宇,进行了题为《AGI时代,海量数据带来的质变》的主题分享。他深度剖析了AI 时代下,数据应用范式的变革,以及生成…

python网络爬虫的基本使用

各位帅哥美女点点关注,有关注才有动力啊 网络爬虫 引言 我们平时都说Python爬虫,其实这里可能有个误解,爬虫并不是Python独有的,可以做爬虫的语言有很多例如:PHP、JAVA、C#、C、Python。 为什么Python的爬虫技术会…

网页模板素材网站 web前端网页制作模板

在当今数字化时代,Web 前端网页制作对于企业和个人来说至关重要。无论是企业官网、个人博客还是电商网站,一个美观、功能性强且易于维护的网页设计能够有效提升用户体验和品牌形象。然而,从零开始设计一个网页往往需要耗费大量的时间和精力&a…

ROS系列(一):ROS入门指南 —— 核心解析与版本演进

引言 机器人操作系统(ROS)的诞生,不仅是一场技术革命,更是一张重新定义机器人开发范式的蓝图。从实验室的原型验证到工业场景的规模化落地,从单机智能到群体协作,ROS以开源、模块化和生态驱动的特性&#…

将 Docker 镜像推送到 GitLab Container Registry 的完整步骤

一、前提准备 GitLab 项目: 在 GitLab 上拥有一个项目,例如 your-group/your-project-name。重要: 确保项目路径(尤其是项目名称部分)全部使用小写字母。例如,如果初始是 Your-Project,请在项目设置中将其路径修改为 y…

Java-HashMap基础与扩展学习总结

​面试官​: “HashMap 是 Java 中最常用的数据结构之一,你能说说它的底层实现吗?比如哈希冲突是怎么解决的?” ​你​(结合源码与优化场景): “好的,HashMap 底层是数组链表/红黑…

嵌入式学习之系统编程(五)进程(2)

一、进程的退出 (一)僵尸进程与孤儿进程 (二)相关函数 1、exit函数 2、_exit函数 3、atexit函数 二、进程空间的回收(相关函数) 1、wait函数 2、waitpid函数 3、练习 4、exec族 5、system函数 一…

AI时代新词-Transformer架构:开启AI新时代的关键技术

一、什么是Transformer架构? Transformer架构 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型架构,最初由Vaswani等人在2017年的论文《Attention Is All You Need》中提出。它主要用于处理序列数据&#xff08…

基于cornerstone3D的dicom影像浏览器 第二十三章 mpr预设窗值与vr preset

文章目录 前言一、mpr窗口预设窗值二、vr preset三、调用流程 前言 实现mpr窗口预设窗值,vr窗口预设配色 效果如下: 一、mpr窗口预设窗值 可参考 第十五章 预设窗值 逻辑一样的,把windowWidth, windowCenter值转换为voiRange值,…

shell之通配符及正则表达式

通配符与正则表达式 通配符(Globbing) 通配符是由 Shell 处理的特殊字符,用于路径或文件名匹配。当 Shell 在命令参数中遇到通配符时,会将其扩展为匹配的文件路径;若没有匹配项,则作为普通字符传递给命令…