当代码依赖于不安全的包时,Dependabot alerts 会向你发出通知。 通常,软件是使用来自各种源的开源代码包生成的。 这些依赖项之间存在复杂关系,而且恶意的开发人员可以轻易地将恶意软件插入到上游代码中,这意味着你可能在不知情的情况下使用具有安全缺陷的依赖项(也称为漏洞)。
当代码依赖于具有安全漏洞的包时,这可能会导致项目或使用它的人遇到一系列问题。 使用易受攻击的包会让恶意用户认为你是容易攻击的目标,从而利用你的系统。 例如,他们可能寻求从客户或参与者获取你的代码和数据的访问权限。 应该尽快升级到包的安全版本。 如果代码使用了恶意软件,则需要将包替换为安全的替代方法。
Dependabot 不会为恶意软件生成 Dependabot alerts。 有关详细信息,请参阅“关于 GitHub 公告数据库”。
有关 Dependabot 提供的不同功能的概述以及如何入门的说明,请参阅“Dependabot 快速入门指南”。
不安全依赖项的检测
为检测不安全的依赖项,Dependabot 会对存储库的默认分支执行扫描,并在以下情况下发送 Dependabot alerts:
-
新公告添加到 GitHub Advisory Database。 有关详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。
注意:只有经过 GitHub 审核的公告才会触发 Dependabot alerts。
-
存储库的依赖项关系图发生更改。 例如,当参与者推送提交以更改所依赖的包或版本时,或者当某个依赖项的代码发生更改时。 有关详细信息,请参阅“关于依赖关系图”。
注意:Dependabot 不会扫描存档的存储库。
此外,GitHub 还可以查看在针对存储库默认分支的拉取请求中添加、更新或删除的任何依赖项,并标记任何会降低项目安全性的更改。 因此可以在易受攻击的依赖项到达代码库之前(而非之后)发现并进行处理。 有关详细信息,请参阅“审查拉取请求中的依赖项更改”。
由于 Dependabot alerts 依赖于依赖项关系图,因此 Dependabot alerts 支持的生态系统与依赖项关系图支持的生态系统相同。 有关这些生态系统的列表,请参阅“依赖项关系图支持的包生态系统”。
注意:保持清单和锁定文件处于最新状态非常重要。 如果依赖关系图不能准确反映你当前的依赖项和版本,则可能错过有关你使用的不安全依赖项的警报。 您还可以收到不再使用的依赖项的警报。
Dependabot 只会为使用语义版本控制的易受攻击的 GitHub Actions 创建 Dependabot alerts。 你将不会收到有关使用 SHA 版本控制的易受攻击操作的警报。 如果将 GitHub Actions 与 SHA 版本控制配合使用,建议为存储库或组织启用 Dependabot version updates 以保留更新到最新版本的操作。
Dependabot alerts 的配置
GitHub 检测公共存储库中易受攻击的依赖项并显示依赖项关系图,但默认情况下不会生成 Dependabot alerts。__ 仓库所有者或具有管理员访问权限的人员可以为公共公共仓库启用 Dependabot alerts。 私有仓库的所有者或具有管理员权限的人员可以通过为其仓库启用依赖关系图和 Dependabot alerts 来启用 Dependabot alerts。
你也可以为用户帐户或组织拥有的所有存储库启用或禁用 Dependabot alerts。 有关详细信息,请参阅“配置 Dependabot 警报”。
有关 Dependabot alerts 相关操作的访问要求的信息,请参阅“组织的存储库角色”。
GitHub 将立即开始生成依赖关系图,并在发现任何不安全的依赖项后立即生成警报。 依赖关系图通常在几分钟之内填充,但对于依赖项很多的仓库,可能需要更长时间。 有关详细信息,请参阅“管理存储库的安全和分析设置”。
当 GitHub 识别出易受攻击的依赖项时,我们会生成 Dependabot 警报,并将其显示在存储库的“安全性”**** 选项卡和存储库的依赖项关系图中。 该警报包括指向项目中受影响的文件的链接,以及有关修复的版本的信息。
GitHub 会根据通知首选项将新警报通知给受影响存储库的维护者。首次启用 Dependabot 时,GitHub 不会针对存储库中找到的所有易受攻击的依赖项发送通知,只会针对启用 Dependabot 后标识的易受攻击的新依赖项发送通知。有关详细信息,请参阅“为 Dependabot 警报配置通知”。
如果已启用存储库的 Dependabot security updates,警报中还会包含一个拉取请求链接,用于将清单或锁定文件更新到可解决该漏洞的最低版本。 有关详细信息,请参阅“关于 Dependabot 安全更新”。
注意****:GitHub 的安全功能并不能捕获所有漏洞。 我们积极维护 GitHub Advisory Database 并生成包含最新信息的警报。 但是,我们无法在保证的时间范围内捕获所有漏洞或告知你已知的漏洞。 这些功能不能替代针对每个依赖项潜在漏洞或任何其他问题的人工评审,建议在必要时咨询安全服务或进行彻底的依赖项评审。
访问 Dependabot alerts
你可以在存储库的“安全性”选项卡中或在存储库的依赖项关系图中查看影响特定项目的所有警报。 有关详细信息,请参阅“查看和更新 Dependabot 警报”。
默认情况下,我们会向受影响存储库中具有写入、维护或管理权限的人员通知有关新的 Dependabot alerts。 GitHub 绝不会公开披露任何存储库的不安全依赖项。 也可以将 Dependabot alerts 设为对使用你拥有或具有管理员权限的存储库的其他人或团队可见。 有关详细信息,请参阅“管理存储库的安全和分析设置”。
若要在存储库上接收有关 Dependabot alerts} 的通知,需要监视这些存储库,并订阅以接收“所有活动”通知或配置自定义设置以包括“安全警报”。 有关详细信息,请参阅“配置通知”。 可以选择通知的传递方法,以及通知发送给你的频率。 有关详细信息,请参阅“为 Dependabot 警报配置通知”。
你还可以查看与 GitHub Advisory Database 中的特定公告对应的 Dependabot alerts。 有关详细信息,请参阅“在 GitHub Advisory Database 中浏览安全公告”。