当前位置: 首页 > news >正文

工具学习_CVE Binary Tool

1. 工具概述

CVE Binary Tool 是一个免费的开源工具,可帮助您使用国家漏洞数据库(NVD)常见漏洞和暴露(CVE)列表中的数据以及Redhat、开源漏洞数据库(OSV)、Gitlab咨询数据库(GAD)和Curl中的已知漏洞数据来查找软件中的已知脆弱性。该工具有两种主要操作模式:

  • 二进制扫描程序:可帮助您确定哪些包可能已作为软件的一部分包含在内。该程序包括 360 检查器,扫描程序主要适用于常见的、易受攻击的开源组件,如openssl、libpng、libxml2和expat。
  • 组件列表扫描程序:用于扫描各种格式的已知组件列表,包括.csv、几种linux分发包列表、特定语言的包扫描仪以及几种软件物料清单(SBOM)格式。

它旨在用作您的持续集成系统的一部分,以实现定期漏洞扫描,并为您的供应链中的已知问题提供预警。它还可以用于自动检测组件和创建SBOM。CVE Binary Tool 的工作流程图如下所示:

下载 CVE 数据:CVE 数据来自 NVD、Redhat、OSV、Gitlab 以及 Curl。默认情况下,这每天发生一次,而不是每次运行扫描;首次运行时,下载所有数据可能需要一些时间。

创建/读取组件列表:使用二进制检查器和语言组件列表(如python的requirements.txt)的组合创建组件列表(包括版本);阅读 SBOM(使用标准化软件物料清单格式的现有组件列表。)

创建 CVE 列表:这将查找从现有物料清单中找到或读取的所有组件,并报告与之相关的任何已知问题。

CVE 评估:根据已有的知识对 CVE 的严重程度进行评估。

生成报告:以一种或多种格式(控制台、json、csv、html、pdf)生成报告。

2. 工具使用

2.1 安装 CVE Binary Tool

通过 pip 实现 CVE Binary Tool 的安装,代码如下所示:

pip install cve-bin-tool

首次使用时(默认情况下,每天一次),该工具将从一组已知的漏洞数据源下载漏洞数据。由于NVD的可靠性问题,从3.3版本开始,我们将在https://cveb.in/默认情况下,而不是直接联系NVD。如果您希望直接从NVD服务器获取数据,则必须提供自己的NVD_API_KEY才能使用其API。

2.2 CVE Binary Tool 使用方式

使用二进制扫描程序查找已知漏洞:要在目录或文件上运行二进制扫描程序,请执行以下操作

cve-bin-tool <directory/file>

默认情况下,该工具假设您正在尝试扫描整个目录,但如果您为其提供一个列出依赖关系的.csv或.json文件,它将把它视为物料清单。您还可以直接使用--input-file选项指定物料清单文件,或按照以下说明扫描SBOM。

扫描SBOM文件以查找已知漏洞:要扫描软件物料清单文件(SBOM),请执行以下操作

cve-bin-tool --sbom <sbom_filetype> --sbom-file <sbom_filename>

有效的 sbom_filetype 包括 SPDX、CycloneDX 以及 SWID。扫描 SBOM 文件中的产品名称不区分大小写。SBOM 扫描操作指南提供了其他 SBOM 扫描示例。

生成 SBOM:除了扫描SBOM外,CVE Binary Tool 还可以用于从扫描中生成 SBOM,如下所示

cve-bin-tool  --sbom-type <sbom_type> --sbom-format <sbom-format> --sbom-output <sbom_filename> <other scan options as required>

有效的 sbom_type 包括 SPDX 和 CycloneDX,生成的 SBOM 将包括产品名称、版本以及供应商,未提供许可证信息。SBOM 生成指南提供了其他SBOM生成示例。

生成 VEX:除了扫描VEX,CVE二进制工具还可以用于从扫描中生成VEX,如下所示:

cve-bin-tool  --vex-type <vex_type> --vex-output <vex_filename> <other scan options as required>

有效的 vex_type 是CSAF、CycloneDX和OpenVEX。VEX 生成指南提供了其他VEX生成示例。

漏洞分类--triage-input-file 选项可用于在扫描目录时添加额外的分类数据,如备注、评论等,以便输出反映此分类数据,从而节省重新分类的时间(用法:cve bin tool--trianges-input-filetest.vex/path/to/scan)。支持的格式是 CycloneDX VEX 格式,可以使用 --VEX 选项生成。常见的使用方式包括:

  • 通过 cve-bin-tool /path/to/scan --vex triage.vex 指令生成 triage 文件
  • 使用您最喜欢的文本编辑器编辑 triage.vex,以提供所列漏洞的分类信息。
  • 通过 cve-bin-tool /path/to/scan --triage-input-file triage.vex 指令使用 triage 文件作为新的扫描依据。

应该可以在不同运行的 cve-bin-tool 之间或与支持 CycloneDX VEX 格式的其他工具共享 triage 数据。这对于扫描相关产品或容器的团队、出于合规原因需要使用多种工具的团队、拥有提供漏洞分类指导的中央安全策略组的公司等尤其有用。

离线使用:在运行扫描时指定 --offline 选项可确保 cve-bin-tool 不会尝试下载最新的数据库文件或检查该工具的更新版本。

请注意,在工具可以脱机模式运行之前,您需要获取漏洞数据的副本。离线操作指南包含有关如何设置数据库的更多信息。

在 GitHub Action 中使用 cve-bin-tool:如果你想将 cve-bin-tool 工具集成为 github 操作管道的一部分,你可以使用 cve-bin-tool 的官方github action。在此处查找更多详细信息。GitHub Action在安全选项卡上提供报告,该选项卡可供开源项目以及为该访问付费的GitHub客户使用。

如果您希望直接使用该工具,我们还提供了一个GitHub操作示例。对于希望将报告存储在证据柜中的团队或无法访问GitHub安全选项卡的团队来说,这可能是一个不错的选择。

输出选项:cve-bin-tool 默认提供基于控制台的输出。如果要提供另一种格式,可以使用 --format在命令行上指定此格式和文件名。有效格式为 CSV、JSON、console、HTML 以及 PDF。可以使用 --output file 标志指定输出文件名。您还可以使用逗号(',')作为分隔符指定多种输出格式:

cve-bin-tool file -f csv,json,html -o report

通过指定 --VEX 命令行选项,还可以以漏洞交换(VEX)格式报告报告报告的漏洞。然后,生成的VEX文件可以用作 --triange 输入文件,以支持 triange 过程。

如果您希望使用PDF支持,则需要单独安装reportlab库。如果您打算在安装 cve-bin-tool 时使用PDF支持,您可以指定它,并且 report-lab 将作为 cve bin 工具安装的一部分安装:

pip install cve-bin-tool[PDF]

如果你已经安装了cve-bin-tool,你可以在事后使用 pip 添加 reportlab:

pip install --upgrade reportlab

请注意,reportlab 已从默认的 cve-bin-tool 安装中删除,因为它有一个已知的cve关联(cve-2020-28463)。cve-bin-tool 代码使用推荐的缓解措施来限制添加到PDF的资源,以及额外的输入验证。这有点奇怪,因为它描述了PDF的核心功能:外部项目,如图像,可以嵌入其中,因此任何查看PDF的人都可以加载外部图像(类似于查看网页如何触发外部加载)。对此没有固有的“修复”,只有缓解措施,库的用户必须确保在生成时只将预期的项目添加到PDF中。

由于用户可能不希望安装带有开放的、不可修复的CVE的软件,我们选择仅对自己安装了库的用户提供PDF支持。安装库后,PDF报告选项将起作用。

3. 工具配置

您可以使用--config选项为工具提供配置文件。您仍然可以使用命令行参数覆盖配置文件中指定的选项。

相关文章:

工具学习_CVE Binary Tool

1. 工具概述 CVE Binary Tool 是一个免费的开源工具&#xff0c;可帮助您使用国家漏洞数据库&#xff08;NVD&#xff09;常见漏洞和暴露&#xff08;CVE&#xff09;列表中的数据以及Redhat、开源漏洞数据库&#xff08;OSV&#xff09;、Gitlab咨询数据库&#xff08;GAD&am…...

智观察 | 行业赛道里的AI大模型

‍ “AI改变世界”被炒得热火朝天&#xff0c;结果就换来AI聊天&#xff1f; 实际上&#xff0c;在日常娱乐之下&#xff0c;AI正在暗暗“憋大招”&#xff0c;深入各行各业&#xff0c;发挥更专业的作用。 自动驾驶 最近“萝卜快跑”霸榜热搜长达一周&#xff0c;让无人驾…...

linux 进程 inode 信息获取

根据端口查找 ss -neltup | grep "$port"根据 pid 查找 ss -neltup | grep "pid$pid"根据 inode 查找 ss -neltup | grep "ino:$inode"根据pid查找进程打开的inode ls -al /proc/$pid/fd查看inode信息 cat /proc/$pid/net/tcp | grep $ino…...

计算机网络-网络层

负责在不同的网络之间转发数据包&#xff0c;基于数据包的 IP地址转发&#xff0c;每个数据包可以按照不同路径传输。网络层不负责丢包重传&#xff0c;以及数据包之间数据顺序的的问题。 网络设备 路由器工作在第三层&#xff1a;网络层&#xff0c;能看到网络层的地址&…...

机器学习:识别AI,GraphRAG,LoRA,线性变换,特征

1.AI识别 1.bitgrit 生成式 AI API 文档 生成式 AI 假图像检测 API 可用于以编程方式检测假图像&#xff08;即由生成式 AI 创建的图像&#xff09;。2.X Virality Prediction API 旨在预测推文的潜在病毒式传播力。https://bitgrit.net/api/docs/x_virality_prediction 2.Gr…...

阿里云SMS服务C++ SDK编译及调试关键点记录

一. 阿里云SMS服务开通及准备工作 在阿里云官网上完成这部分的工作 1. 申请资质 个人or企业 我这里是用的企业资质 2. 申请签名 企业资质认证成功后&#xff0c;会自动赠送一个用于测试的短信签名 也可以自己再进行申请&#xff0c;需要等待审核。 3. 申请短信模板 企…...

Flutter 正在迁移到 Swift Package Manager ,未来会弃用 CocoaPods 吗?

什么是 Swift Package Manager &#xff1f;其实 Swift Package Manager (SwiftPM) 出现已经挺长一段时间了&#xff0c;我记得第一次听说 SwiftPM 的时候&#xff0c;应该还是在 2016 年&#xff0c;那时候 Swift 3 刚发布&#xff0c;不过正式出场应该还是在 2018 年的 Apple…...

PDF——分割pdf的10个工具

PDF分割器是一种可用于将PDF文档分割成更小的文档甚至单个页面的工具。分割 PDF 文档的主要原因是为了更容易共享。 但该过程的成功取决于您用于拆分 PDF 的工具。较简单的工具仅提供几个选项&#xff0c;可能并不适合所有类型的文档。我们将在本文中列出的 10 个最佳 PDF 分割…...

深入解析 Nginx 反向代理:配置、优化与故障排除

深入解析 Nginx 反向代理&#xff1a;配置、优化与故障排除 Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;它以其高并发和高可扩展性在业界享有盛誉。反向代理是 Nginx 的重要功能之一&#xff0c;通过反向代理可以实现负载均衡、安全代理、缓存等多种用途。本篇文…...

深度学习入门(一):感知机与输入数据

单层感知机与多层感知机 单层感知机&#xff08;Single-Layer Perceptron&#xff09;和多层感知机&#xff08;Multi-Layer Perceptron&#xff0c;简称MLP&#xff09;是神经网络的基本形式&#xff0c;用于执行各种机器学习任务&#xff0c;包括分类和回归。它们都基于早期…...

kubernetes 集群组件介绍

kubernetes 集群组件介绍 Kubernetes 架构 在Kubernetes&#xff08;k8s&#xff09;集群中&#xff0c;主节点&#xff08;Master Node&#xff09;和工作节点&#xff08;Worker Node&#xff09;都运行特定的软件组件&#xff0c;它们共同管理和运行容器化的应用程序。以下…...

Java | Leetcode Java题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; class Solution {public int countRangeSum(int[] nums, int lower, int upper) {long sum 0;long[] preSum new long[nums.length 1];for (int i 0; i < nums.length; i) {sum nums[i];preSum[i 1] sum;}BalancedTree treap ne…...

开发一个MutatingWebhook

介绍 Webhook就是一种HTTP回调&#xff0c;用于在某种情况下执行某些动作&#xff0c;Webhook不是K8S独有的&#xff0c;很多场景下都可以进行Webhook&#xff0c;比如在提交完代码后调用一个Webhook自动构建docker镜像 准入 Webhook 是一种用于接收准入请求并对其进行处理的…...

【leetcode详解】另一棵树的子树 (C++递归:思路精析 过程反思)

思路详解&#xff1a; 总体框架&#xff1a; 对root树进行先序遍历&#xff0c;如果当前结点&#xff08;记为cur&#xff09;的值和subRoot的根节点值相等时&#xff0c;就开始判断 以cur为根节点的树 和 子树 是否结构一样? 如何判断两棵树是否结构完全相同&#xff1f; …...

物联网遇到人工智能,极快的加速物联网时代

近些年物联网已成为众多科技企业的战略目标&#xff0c;如智能家居等&#xff0c;在未来&#xff0c;手机、传感器等智能设备都走进了生活当中&#xff0c;据数据显示已经有80%以上的的智能手机配备了人工智能。人工智能也不陌生&#xff0c;自动驾驶、人脸识别这些应用场景都是…...

Vue3+Ts项目中经常遇到导入组件,vscode报无法找到模块xxx,xxx隐式拥有 “any“ 类型解决办法~

1、报错截图&#xff1a; 2、解决办法&#xff1a;在确保路径正确的情况下&#xff0c;你会在 src 目录下找到一个名为 env.d.ts 的文件&#xff08;或者类似的名称&#xff09;。在这个文件中&#xff0c;你可以声明 .vue 文件的模块类型。例如&#xff1a;(这告诉 TypeScript…...

郑州轻工业大学zzulioj1151~1159合集

郑州轻工业大学zzulioj1151~1159合集 郑州轻工业大学zzulioj1151~1159合集 1150数数多少个整数1151大整数加法题目描述1152: 二分搜索1153简易版最长序列题目描述1154: 校门外的树1155字符串比较 多实例题目描述1156单数变复数题目描述1157连续的n个1题目描述1158又是排序&…...

开发框架DevExpress XAF v24.2产品路线图预览——增强跨平台性

DevExpress XAF是一款强大的现代应用程序框架&#xff0c;允许同时开发ASP.NET和WinForms。XAF采用模块化设计&#xff0c;开发人员可以选择内建模块&#xff0c;也可以自行创建&#xff0c;从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。 DevExpress XAF是一…...

程序员短视频上瘾综合症

一、是你疯了还是面试官疯了&#xff1f; ​ 最近有两个学员咨询问题&#xff0c;把我给整得苦笑不得。大家来看看&#xff0c;你有没有同样的症状。 ​ 第一个学员说去一家公司面试&#xff0c;第一轮面试聊得挺好的。第二轮面试自我感觉良好&#xff0c;但是被面试官给Diss…...

image.convert()函数转换格式及显示图像的RGB三通道图像

引 言 视觉任务处理的图片按照图像通道深度分为单通道图像和多通道图像。单通道图像有grayscale灰度图、binary二值图、PNG图&#xff0c;多通道图像有三通道24位真彩色RGB图&#xff0c;8位伪彩色图像&#xff0c;YCbCr图像等。本文先介绍各种格式图像的特点&#xff0c;随后讲…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...