跳至主要内容

关于 GitHub 安全漏洞数据库

GitHub 安全建议数据库包含已知安全漏洞和恶意软件的列表,分为三类:GitHub 审核建议、未审核建议和恶意软件建议。

关于 GitHub 安全建议数据库

我们从以下来源将安全建议添加到 GitHub 安全建议数据库

如果您知道我们应该导入安全建议的其他数据库,请通过在 https://github.com/github/advisory-database 中创建一个问题来告诉我们。

安全建议以开放源代码漏洞 (OSV) 格式的 JSON 文件形式发布。有关 OSV 格式的更多信息,请参阅“开放源代码漏洞格式”。

关于安全建议的类型

GitHub 安全建议数据库中的每个建议都是针对开源项目中的漏洞或恶意开源软件。

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

相比之下,恶意软件或恶意代码是故意设计为执行不需要的或有害功能的代码。恶意软件可能会针对使用恶意软件的任何应用程序的硬件、软件、机密数据或用户。您需要从项目中删除恶意软件,并为依赖项找到替代的安全替换方案。

GitHub 审核建议

GitHub 审核建议是已映射到我们支持的生态系统中的包的安全漏洞。我们会仔细审核每个建议的有效性,并确保它们具有完整的描述,并且包含生态系统和包信息。

通常,我们会根据软件编程语言的关联包注册表命名我们支持的生态系统。如果建议针对的是来自受支持注册表的包中的漏洞,我们会审核这些建议。

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

如果您为您的存储库启用 Dependabot 警报,则当新的 GitHub 审核建议报告您依赖的包的漏洞时,您会自动收到通知。更多信息,请参阅“关于 Dependabot 警报”。

未审核建议

未审核建议是我们直接从国家漏洞数据库提要中自动发布到 GitHub 安全建议数据库中的安全漏洞。

Dependabot 不会为未审核建议创建 Dependabot 警报,因为此类建议未经过有效性或完整性检查。

恶意软件建议

恶意软件建议与由恶意软件引起的漏洞有关,是 GitHub 直接从 npm 安全团队提供的信息中自动发布到 GitHub 安全建议数据库中的安全建议。恶意软件建议专用于 npm 生态系统。GitHub 不会编辑或接受这些建议的社区贡献。

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

我们的恶意软件建议主要涉及替换攻击。在此类攻击期间,攻击者会将包发布到公共注册表,其名称与用户依赖于第三方或专用注册表的依赖项的名称相同,希望使用恶意版本。Dependabot 不会查看项目配置以确定包是否来自专用注册表,因此我们不确定您使用的是恶意版本还是非恶意版本。已正确设置依赖项范围的用户不应受到恶意软件的影响。

关于安全建议中的信息

在本节中,您可以找到有关GitHub安全漏洞数据库中特定数据属性的更多详细信息。

关于GHSA ID

每个安全漏洞通告,无论其类型如何,都有一个唯一的标识符,称为GHSA ID。当在GitHub上创建新的通告或从任何受支持的来源添加到GitHub安全漏洞数据库时,会分配一个GHSA-ID限定符。

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

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

您可以使用正则表达式验证GHSA ID。

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

关于CVSS等级

GitHub安全漏洞数据库同时支持CVSS 3.1版和CVSS 4.0版。

每个安全漏洞通告都包含有关漏洞或恶意软件的信息,其中可能包括描述、严重性、受影响的软件包、软件包生态系统、受影响的版本和已修补的版本、影响以及可选信息,例如参考资料、解决方法和贡献者。此外,来自国家漏洞数据库的通告包含指向CVE记录的链接,您可以在其中阅读有关漏洞、其CVSS评分及其定性严重性级别的更多详细信息。更多信息,请参见美国国家标准与技术研究院的“国家漏洞数据库”。

严重性级别是“通用漏洞评分系统 (CVSS),第5节”中定义的四个可能级别之一。

  • 中/中等
  • 严重

GitHub安全漏洞数据库使用上述CVSS等级。如果GitHub获得CVE,GitHub安全漏洞数据库将使用维护者分配的CVSS版本,该版本可以是3.1版或4.0版。如果导入CVE,GitHub安全漏洞数据库支持CVSS 4.0版、3.1版和3.0版。

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

关于EPSS评分

漏洞利用预测评分系统 (EPSS) 是全球事件响应和安全团队论坛 (FIRST) 设计的一个系统,用于量化漏洞利用的可能性。该模型产生的概率分数介于0和1之间 (0%和100%),分数越高,漏洞被利用的概率越大。有关FIRST的更多信息,请参见https://www.first.org/

GitHub安全漏洞数据库包含来自FIRST的EPSS评分,这些评分适用于包含具有相应EPSS数据的CVE的通告。GitHub还显示EPSS评分百分位数,即所有具有相同或更低EPSS评分的漏洞的比例。

例如,如果一个通告的EPSS评分在第95个百分位数的百分比为90.534%,根据EPSS模型,这意味着

  • 该漏洞在未来30天内在实际环境中被利用的可能性为90.534%。
  • 在未来30天内,总共建模的漏洞中95%被认为比该漏洞不太可能被利用。

有关如何解释这些数据的更多信息可以在FIRST的EPSS用户指南中找到。这些信息可帮助您了解如何使用百分比和百分位数来解释根据FIRST模型,漏洞在实际环境中可能被利用的可能性。更多信息,请参见FIRST网站上的FIRST的EPSS用户指南

FIRST还提供有关其EPSS数据分布的附加信息。更多信息,请参见FIRST网站上的EPSS数据和统计文档

注意

GitHub通过每日同步操作保持EPSS数据最新。虽然EPSS评分百分比将始终完全同步,但评分百分位数只有在差异显著时才会更新。

在GitHub,我们并不编写这些数据,而是从FIRST获取这些数据,这意味着这些数据在社区贡献中不可编辑。

进一步阅读