跳至主要内容

关于 GitHub Advisory 数据库

GitHub Advisory 数据库包含已知安全漏洞和恶意软件的列表,分为三个类别:GitHub 审核的通报、未审核的通报以及恶意软件通报。

关于 GitHub Advisory 数据库

我们从以下来源向 GitHub Advisory 数据库添加通报

  • 在 GitHub 上报告的安全通报
  • 国家漏洞数据库
  • npm 安全通报数据库
  • FriendsOfPHP 数据库
  • Go Vulncheck 数据库
  • Python 包安全通报数据库
  • Ruby 安全通报数据库
  • RustSec 安全通报数据库
  • 社区贡献。更多信息,请参阅 https://github.com/github/advisory-database/pulls

如果您知道我们应该从其他数据库导入通报,请在 https://github.com/github/advisory-database 中打开一个 issue 告诉我们。

安全通报以 JSON 文件形式发布,采用开源漏洞(OSV)格式。有关 OSV 格式的更多信息,请参阅 开源漏洞格式

安全通报类型

GitHub Advisory 数据库中的每条通报都针对开源项目中的漏洞或恶意开源软件。

漏洞是项目代码中的问题,可能被利用来破坏项目或使用其代码的其他项目的机密性、完整性或可用性。漏洞在类型、严重程度和攻击方式上各不相同。代码中的漏洞通常是意外引入的,并在发现后很快得到修复。您应在可用时尽快更新代码,以使用已修复的依赖版本。

相比之下,恶意软件是故意设计用于执行不需要或有害功能的代码。恶意软件可能针对硬件、软件、机密数据或使用受感染软件的任何用户。您需要从项目中移除恶意软件,并寻找更安全的依赖替代方案。

GitHub 审核的通报

GitHub-reviewed 通报已映射到我们支持的生态系统中的软件包。我们会仔细审核每条通报的有效性,并确保它们包含完整的描述以及生态系统和软件包信息。

通常,我们将支持的生态系统命名为与相应编程语言的包注册表相同的名称。如果通报涉及来自受支持注册表的软件包的漏洞,我们会对其进行审核。

如果您对我们应支持的新的生态系统有建议,请打开一个 issue 进行讨论。

如果您为仓库启用了 Dependabot 警报,当有新的 GitHub 审核通报报告您所依赖的软件包出现漏洞时,您将自动收到通知。更多信息,请参阅 关于 Dependabot 警报

未审核的通报

Unreviewed 通报会自动从国家漏洞数据库的馈送直接发布到 GitHub Advisory 数据库中。

Dependabot 不会为未审核的通报创建警报,因为此类通报未进行有效性或完整性检查。

恶意软件通报

Malware 通报涉及由恶意软件导致的漏洞,仅限于 npm 生态系统。我们会从 npm 安全团队提供的信息中直接自动发布这些通报到 GitHub Advisory 数据库。

当检测到恶意软件时,Dependabot 不会生成警报,因为大多数此类漏洞无法由下游用户解决。您可以通过在 GitHub Advisory 数据库中搜索 type:malware 来查看恶意软件通报。

我们的恶意软件通报大多涉及替换攻击。在此类攻击中,攻击者在公共注册表中发布一个与用户从第三方或私有注册表依赖的包同名的包,企图让用户使用到恶意版本。Dependabot 不会检查项目配置以判断这些包是否来自私有注册表,因此我们无法确定您使用的是恶意版本还是正常版本。对依赖范围进行恰当设置的用户不应受到恶意软件的影响。

安全通报中的信息

在本节中,您可以找到有关 GitHub Advisory 数据库中各数据属性的更详细信息。

GHSA ID

每条安全通报(无论类型)都有一个唯一标识符,称为 GHSA ID。当在 GitHub 上创建新通报或从受支持的来源将通报加入 GitHub Advisory 数据库时,会分配一个 GHSA-ID 标识符。

GHSA ID 的语法遵循以下格式:GHSA-xxxx-xxxx-xxxx,其中

  • x 为以下集合中的字母或数字:23456789cfghjmpqrvwx
  • 在 GHSA 名称部分之外
    • 数字和字母是随机分配的。
    • 所有字母均为小写。

您可以使用正则表达式验证 GHSA ID 的有效性。

Bash
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/

CVSS 等级

GitHub Advisory 数据库同时支持 CVSS 3.1 版和 CVSS 4.0 版。

每条安全通报都包含有关漏洞或恶意软件的信息,可能包括描述、严重程度、受影响的软件包、软件包生态系统、受影响版本和已修复版本、影响范围,以及可选的参考、解决方法和致谢等信息。此外,来自国家漏洞数据库的通报条目会提供指向 CVE 记录的链接,您可在其中阅读有关漏洞的更多细节、CVSS 分数以及定性严重程度。更多信息,请参阅美国国家标准与技术研究院的 国家漏洞数据库

严重程度等级为 通用漏洞评分系统(CVSS)第 5 节中定义的四个可能等级之一。

  • 中等/一般
  • 严重

GitHub Advisory 数据库使用上述 CVSS 等级。如果 GitHub 获取到 CVE,数据库会采用维护者分配的 CVSS 版本(3.1 或 4.0)。如果该 CVE 为导入的记录,GitHub Advisory 数据库支持 CVSS 4.0、3.1 和 3.0 版本。

您还可以加入 GitHub Security Lab,浏览安全相关主题并为安全工具和项目做出贡献。

EPSS 分数

Exploit Prediction Scoring System(漏洞利用预测评分系统),简称 EPSS,是全球事件响应与安全团队论坛(FIRST)制定的用于量化漏洞被利用可能性的系统。该模型给出 0 到 1(0% 到 100%)之间的概率分数,分数越高表示漏洞被利用的可能性越大。有关 FIRST 的更多信息,请访问 https://www.first.org/

GitHub Advisory 数据库为包含相应 EPSS 数据的 CVE 通报提供 FIRST 的 EPSS 分数。GitHub 还会显示 EPSS 分数的百分位,即所有已评分漏洞中得分相同或更低的比例。

例如,如果某条通报的 EPSS 分数为 90.534%,且位于第 95 百分位,根据 EPSS 模型,这意味着

  • 在接下来的 30 天内,该漏洞被实际利用的概率为 90.534%。
  • 在所有已建模的漏洞中,95% 的漏洞在未来 30 天被利用的可能性低于此漏洞。

关于如何解读这些数据的更多说明,请参阅 FIRST 的 EPSS 用户指南。该指南帮助您了解如何使用百分比和百分位来解释漏洞在野外被利用的可能性。更多信息,请访问 FIRST 网站的 EPSS 用户指南

FIRST 还提供有关其 EPSS 数据分布的额外信息。更多内容请参阅 EPSS 数据与统计文档(FIRST 网站)。

注意

GitHub 通过每日同步操作保持 EPSS 数据的最新。EPSS 分数百分比始终完全同步,百分位仅在出现显著差异时更新。

在 GitHub,我们并不自行编写这些数据,而是从 FIRST 获取,这意味着社区贡献无法编辑该数据。有关社区贡献的更多信息,请参阅 在 GitHub Advisory 数据库中编辑安全通报

社区贡献

一个 社区贡献 是向 github/advisory-database 仓库提交的 pull request,旨在改进全局安全通报的内容。进行社区贡献时,您可以编辑或添加任何细节,包括额外受影响的生态系统、严重程度等级或受影响者的描述。GitHub Security Lab 的策展团队会审阅提交的贡献,若通过审核则将其发布到 GitHub Advisory 数据库。

如果我们接受并发布该社区贡献,提交该 pull request 的人员将自动获得 “Analyst”(分析员)类型的致谢。更多信息,请参阅 创建仓库安全通报

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.