跳至主要内容

关于 Dependabot 警报

当我们检测到您的代码库使用易受攻击的依赖项时,GitHub 会发送 Dependabot 警报。

谁可以使用此功能?

Dependabot 警报适用于以下代码库

  • GitHub 上的公共代码库

Dependabot 警报会告诉您代码何时依赖于不安全的程序包。通常,软件是使用来自各种来源的大量开源代码程序包构建的。这些依赖项之间的复杂关系以及恶意行为者轻松将恶意软件插入上游代码的方式意味着,您可能在不知不觉中使用了存在安全漏洞(也称为漏洞)的依赖项。

如果您的代码依赖于存在安全漏洞的程序包,这可能会导致您的项目或使用它的人员出现一系列问题。使用易受攻击的程序包会使您成为寻找利用您系统的恶意用户的软目标。例如,他们可能会试图从您的客户或贡献者那里访问您的代码和数据。您应尽快升级到程序包的安全版本。如果您的代码使用恶意软件,则需要将程序包替换为安全的替代方案。

Dependabot 不会为恶意软件生成 Dependabot 警报。有关更多信息,请参阅“关于 GitHub 安全公告数据库”。

有关 Dependabot 提供的不同功能的概述以及入门说明,请参阅“Dependabot 快速入门指南”。

检测不安全的依赖项

Dependabot 会扫描您的代码库的默认分支以检测不安全的依赖项,并在以下情况下发送 Dependabot 警报:

  • 向 GitHub 安全公告数据库添加新的公告。有关更多信息,请参阅“在 GitHub 安全公告数据库中浏览安全公告”。

    注意

    只有经过 GitHub 审查的公告才会触发 Dependabot 警报。

  • 代码库的依赖关系图发生变化。例如,当贡献者推送提交以更改其依赖的程序包或版本时,或者当其中一个依赖项的代码发生更改时。有关更多信息,请参阅“关于依赖关系图”。

注意

Dependabot 不会扫描存档的代码库。

此外,GitHub 可以审查针对代码库的默认分支提交的拉取请求中添加、更新或删除的任何依赖项,并标记任何会降低项目安全性的更改。这使您可以发现并处理易受攻击的依赖项,而不是在它们到达代码库之后。

由于 Dependabot 警报依赖于依赖关系图,因此 Dependabot 警报支持的生态系统与依赖关系图支持的生态系统相同。有关这些生态系统的列表,请参阅“依赖关系图支持的软件包生态系统”。

注意

务必保持清单文件和锁文件的最新状态。如果依赖关系图无法准确反映您当前的依赖项和版本,则您可能会错过针对您使用的非安全依赖项的警报。您也可能会收到有关您不再使用的依赖项的警报。

Dependabot 仅会为使用语义版本控制的易受攻击的 GitHub Actions 创建 Dependabot 警报。对于使用 SHA 版本控制的易受攻击的操作,您不会收到警报。如果您使用具有 SHA 版本控制的 GitHub Actions,我们建议您为您的仓库或组织启用 Dependabot 版本更新,以使您使用的操作保持最新版本。

Dependabot 警报配置

GitHub 会检测公共仓库中的易受攻击的依赖项并显示依赖关系图,但默认情况下不会生成 Dependabot 警报。仓库所有者或具有管理员访问权限的人员可以为公共仓库启用 Dependabot 警报。私有仓库的所有者或具有管理员访问权限的人员可以通过为其仓库启用依赖关系图和 Dependabot 警报来启用 Dependabot 警报。

您还可以启用或禁用您的用户帐户或组织拥有的所有仓库的 Dependabot 警报。有关更多信息,请参阅“配置 Dependabot 警报”。

有关与 Dependabot 警报相关的操作的访问权限要求的信息,请参阅“组织的仓库角色”。

GitHub 会立即开始生成依赖关系图,并在识别到任何不安全的依赖项后立即生成警报。该图通常会在几分钟内填充完毕,但对于依赖项较多的仓库,这可能需要更长时间。有关更多信息,请参阅“管理仓库的安全性和分析设置”。

当 GitHub 识别到易受攻击的依赖项时,我们会生成 Dependabot 警报,并在仓库的安全选项卡和仓库的依赖关系图中显示它。警报包含指向项目中受影响文件的链接以及有关已修复版本的相关信息。

GitHub 还可能会根据其通知偏好设置通知受影响仓库的维护者有关新警报的信息。首次启用 Dependabot 时,GitHub 不会发送有关在您的仓库中发现的所有易受攻击的依赖项的通知,而仅发送有关在启用 Dependabot 后识别的新的易受攻击的依赖项的通知。有关更多信息,请参阅“配置 Dependabot 警报的通知”。

如果您已为您的仓库启用了 Dependabot 安全更新,则警报还可能包含指向拉取请求的链接,该拉取请求将清单文件或锁文件更新到解决漏洞的最低版本。有关更多信息,请参阅“关于 Dependabot 安全更新”。

此外,您可以使用 Dependabot 自动分类规则来大规模管理您的警报,以便您可以自动驳回或暂停警报,并指定您希望 Dependabot 为其打开拉取请求的警报。有关不同类型的自动分类规则以及您的仓库是否有资格的信息,请参阅“关于 Dependabot 自动分类规则”。

警告

GitHub 的安全功能并非声称能够捕获所有漏洞。我们积极维护 GitHub 安全建议数据库并使用最新信息生成警报。但是,我们无法捕获所有内容,也无法在保证的时间范围内告知您已知的漏洞。这些功能不能替代对每个依赖项进行人工审查以查找潜在漏洞或任何其他问题,我们建议在必要时咨询安全服务或进行彻底的依赖项审查。

访问 Dependabot 警报

您可以在仓库的安全选项卡或仓库的依赖关系图中查看影响特定项目的所有警报。有关更多信息,请参阅“查看和更新 Dependabot 警报”。

默认情况下,我们会通知在受影响的仓库中具有写入、维护或管理员权限的人员有关新的 Dependabot 警报的信息。GitHub 绝不会公开披露任何仓库的不安全依赖项。您还可以使 Dependabot 警报对与您拥有或拥有管理员权限的仓库一起工作的其他人员或团队可见。有关更多信息,请参阅“管理仓库的安全性和分析设置”。

要接收有关仓库中 Dependabot 警报的通知,您需要关注这些仓库,并订阅接收“所有活动”通知或配置自定义设置以包含“安全警报”。有关更多信息,请参阅“配置通知”。您可以选择通知的传递方式以及发送通知的频率。有关更多信息,请参阅“配置 Dependabot 警报的通知”。

您还可以查看与 GitHub 安全建议数据库中的特定建议相对应的所有 Dependabot 警报。有关更多信息,请参阅“在 GitHub 安全建议数据库中浏览安全建议”。

进一步阅读