Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/devops-kung-fu/bomber
漏洞扫描器DevSecOps供应链安全
GitHubdevops-kung-fu/bomber

bomber

扫描软件物料清单 (SBOMs) 中的安全漏洞

查看仓库网站
62456157个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

bomber

GitHub release (latest by date) Go Report Card CII Best Practices codecov

bomber 是一款扫描 SBOM 以发现安全漏洞的应用程序。

概述

你向某个供应商索要其一个闭源产品的软件物料清单(SBOM),他们给了你一个 JSON 文件……然后呢?

你首先要做的事情就是查看 SBOM 中列出的组件是否存在安全漏洞,以及这些组件拥有何种许可证。这将帮助你识别使用该产品可能承担的风险。

查找 SBOM 中标识的组件的安全漏洞和许可证信息,正是 bomber 的用途。bomber 可以读取任何基于 JSON 或 XML 的 CycloneDX 格式,或者 JSON 格式的 SPDX 或 Syft 格式的 SBOM,并能很快告诉你是否存在漏洞。

目录

  • 开源 vs 闭源
  • 目的
  • 支持的 SBOM 格式
  • 提供者
    • 提供者支持
    • 提供者文档
  • 安装
    • Mac
    • Linux
  • 使用 bomber
    • 单个 SBOM 扫描
    • 整个文件夹扫描
  • 输出格式
    • HTML 输出
    • JSON 输出
    • Markdown 输出
  • 忽略漏洞
  • 过滤输出
  • 数据增强
    • 漏洞利用预测评分系统(EPSS)
  • 高级功能
    • 从 STDIN 扫描 SBOM
    • 环境变量
  • 实验性功能
    • 最高严重性返回码(实验性)
    • OpenAI AI 增强的 HTML 报告输出
  • 随意试试
  • 备注
  • 贡献
  • 软件物料清单
  • 赞助商
  • 致谢

开源 vs 闭源

软件可以分为开源或闭源。你可以在 Github 或任何公共源代码仓库中找到的第三方组件视为开源软件。从技术上讲,你在自己公司内部开发的软件也是开源的——它不是公开的,但你的内部团队可以看到。闭源软件同样可以是内部的,但这通常是你从外部供应商处购买的软件。

公司可以使用供应商提供的 SCA 工具(如 Github、Sonatype、Snyk 等)来扫描任何类型的开源软件并提供漏洞数据,甚至在某些情况下生成 SBOM。但它们目前还无法扫描你无法查看的闭源软件。这正是 SBOM 和 bomber 发挥作用的地方。SBOM 提供了你无法访问的软件的组成信息,而 bomber 则判断 SBOM 中是否有组件存在漏洞。

目的

我们创建 bomber 是为了扫描从供应商那里获得的闭源 SBOM。它也可以扫描开源 SBOM,从技术上讲,你也可以将 bomber 用作开源 SCA 工具。

支持的 SBOM 格式

目前有许多 SBOM 格式。bomber 支持以下格式:

  • SPDX
  • CycloneDX
  • Syft

提供者

bomber 支持多个漏洞信息来源。我们称之为 提供者。目前,bomber 默认使用 OSV,但你也可以使用 GitHub 安全公告数据库、Sonatype OSS Index 或 Snyk。

请注意,目前 OSV 是免费的,无需凭据即可使用;Sonatype OSS Index 免费但需要注册并获取令牌;而 Snyk 支持需要 Snyk 许可证。

除了从提供者收集的数据之外,bomber 还会用额外信息(如利用概率)对漏洞数据进行 增强。

提供者支持

请注意,每个提供者支持不同的生态系统,所以如果你在一个提供者中未发现漏洞,可以尝试另一个。生态系统简单地指包管理器或包的类型,例如 rpm、npm、gems 等。理解每个提供者可能报告不同的漏洞非常重要。如果不确定,可以多查几个。

如果 bomber 没有发现任何漏洞,这并不意味着没有漏洞。它只意味着所使用的提供者没有检测到,或者它不支持该生态系统。某些提供者返回的漏洞可能没有严重性信息。在这种情况下,严重性将被列为“UNDEFINED”。

提供者文档

bomber 的提供者文档位于:

  • OSV
  • GitHub 安全公告数据库
  • OSSINDEX
  • Snyk

安装

Mac

你可以使用 Homebrew 安装 bomber:

brew tap devops-kung-fu/homebrew-tap
brew install devops-kung-fu/homebrew-tap/bomber

如果你没有 Homebrew,也可以下载最新版本(例如:bomber_0.4.1_darwin_all.tar.gz),解压文件后使用 bomber 二进制文件。

如果你愿意,可以将 bomber 二进制文件移动到 /usr/local/bin 目录或你路径中的任何位置。

Linux

要安装 bomber,请下载最新版本对应平台的包,然后本地安装。例如,在 Ubuntu 上安装 bomber:

dpkg -i bomber_0.5.0_linux_arm64.deb

使用 bomber

你可以使用 bomber 扫描整个 SBOM 文件夹或单个 SBOM。bomber 不关心单个文件夹中是否有多种格式,它会自动处理。

注意,bomber 的默认输出是 STDOUT。以 HTML 或 JSON 格式输出的选项将在本文档后面描述。

单个 SBOM 扫描

# 使用 OSV(默认提供者),无需任何凭据
bomber scan cyclonedx.sbom.json

# 使用需要凭据的提供者(ossindex)
bomber scan --provider=xxx --username=xxx --token=xxx [sbom.json]

如果提供者发现漏洞,你将看到类似以下的输出:

如果提供者未返回任何漏洞,你会看到一条消息,表示未发现漏洞。

注意: 使用指定提供者未发现漏洞,并不意味着没有漏洞。请尝试 bomber 支持的其他提供者。

整个文件夹扫描

当你从供应商处收到同一产品的多个 SBOM 时,或者想了解整个组织中的漏洞情况时,这种方式很实用。文件夹扫描会查找所有组件、去重,然后扫描漏洞。

# 扫描一个 SBOM 文件夹(以下命令将扫描当前目录下名为 "sboms" 的文件夹)
bomber scan --provider=xxx --username=xxx --token=xxx ./sboms

你将看到与单个 SBOM 扫描类似的结果。

输出格式

bomber 以三种有用的格式输出数据。默认情况下,输出到命令行。对于增强的报告,你可以使用 --output=html 标志输出到 HTML。要输出为 JSON,请使用 --output=json 标志。使用逗号分隔的输出规范可以同时获得多种格式的输出:--output=html,stdout,json。

HTML 输出

如果你想生成一份包含详细漏洞信息的可读报告,可以使用 --output 标志将报告保存为 HTML 文件。

示例命令:

bomber scan bad-bom.json --output=html

这将在当前文件夹中保存一个名为 "YYYY-MM-DD-HH-MM-SS-bomber-results.html" 的文件。如果你在浏览器中打开此文件,将看到类似以下的输出:

JSON 输出

bomber 可以使用 --output 标志以 JSON 格式输出漏洞数据。默认输出到 STDOUT。JSON 输出中包含的信息比终端显示的多得多。你可以看到包描述及其用途、漏洞名称、漏洞摘要等。

示例命令:

bomber scan bad-bom.json --output=json > filename.json

Markdown 输出

bomber 也支持 Markdown 格式的输出。这与 HTML 输出非常相似,但将样式职责交给了 Markdown 渲染器(例如 GitHub)。输出文件格式为 "YYYY-MM-DD-HH-MM-SS-bomber-results.md"。

示例命令:

bomber scan bad-bom.json --output=md

忽略漏洞

如果需要,你可以使用 --ignore-file 标志加载一个 CVE 列表,在漏洞输出中忽略这些 CVE。该列表需要采用特定格式,每个要忽略的 CVE 单独一行,如下所示:

CVE-2022-31163
CVE-2022-23520

这里 提供了一个示例 bomber.ignore 文件。

要使用 bomber.ignore 文件,请使用以下语法:

bomber --ignore-file=bomber.ignore scan bom.json

过滤输出

你可以使用 --severity 标志设置严重性级别,以返回特定严重性的漏洞。例如,如果设置 --severity=moderate,则只返回严重性为 MODERATE 及以上的漏洞。

例如,以下命令将只返回高和严重漏洞。

bomber --severity=high scan bom.json

数据增强

bomber 能够增强从提供者获得的漏洞数据。我们已实现的第一个“增强器”用于 EPSS。

注意: 在 bomber 0.5.0 及以上版本 中,EPSS 评分不再是默认项。要显示 EPSS 分数,请确保使用 --enrich=epss 标志。

漏洞利用预测评分系统(EPSS)

EPSS 代表漏洞利用预测评分系统,是一个预测漏洞被利用概率的框架。EPSS 通常用于帮助识别高风险漏洞,以确定修复优先级。

EPSS 使用百分比表示概率。因此,如果你看到 94,该分数意味着该漏洞有 94% 的利用概率。理所当然,像 94 这样高的分数值得立即关注,而像 20 这样的分数优先级较低。

高级功能

如果你愿意,可以设置两个环境变量来存储凭据,从而无需在命令行中输入它们。请查看本 README 后面的环境变量信息。

从 STDIN 扫描 SBOM

如果你在 CI/CD 管道中使用 bomber,可以使用一条命令结合 Syft 生成并扫描 SBOM 以发现漏洞。可以执行类似以下命令:

# 确保在命令末尾包含 - 字符。这会触发 bomber 从 STDIN 读取
syft packages . -o cyclonedx-json | bomber scan --provider ossindex --output json -
下载工具