软件经常依赖来自各种来源的包,形成的依赖关系可能在不知情的情况下引入安全漏洞。当您的代码依赖于已知存在安全漏洞的包时,您会成为攻击者的目标,这些攻击者试图利用您的系统——可能获取您的代码、数据、客户或贡献者。Dependabot 警报会通知您有漏洞的依赖项,以便您升级到安全版本,保护您的项目。
当 Dependabot 发送警报
Dependabot 扫描您仓库的默认分支,并在以下情况发送警报:
- GitHub Advisory 数据库中添加了新的漏洞
- 您的依赖关系图发生变化——例如,当您推送更新包或版本的提交时
对于受支持的生态系统,请参阅 依赖关系图支持的包生态系统。
了解警报
当 GitHub 检测到有漏洞的依赖项时,Dependabot 警报会出现在仓库的 安全性和质量 选项卡和依赖关系图中。每个警报包括
- 受影响文件的链接
- 有关漏洞及其严重程度的详细信息
- 有关已修复版本的信息(若可用)
有关查看和管理警报的信息,请参阅 查看和更新 Dependabot 警报。
谁可以启用警报?
仓库管理员和组织所有者可以为其仓库和组织启用 Dependabot 警报。启用后,GitHub 会立即生成依赖关系图,并为识别到的任何有漏洞的依赖项创建警报。仓库管理员可以授予其他人员或团队访问权限。
请参阅 配置 Dependabot 警报。
警报所有权和分配
拥有写入权限或更高权限的用户可以将 Dependabot 警报分配给仓库协作者、团队或 Copilot,以确立漏洞修复的明确所有权。分配有助于追踪每个警报的责任人,防止漏洞被忽视。
当警报被分配时,被指派人会收到通知,警报列表中会显示其姓名。您可以按指派人过滤警报以跟踪进度。将警报分配给 Copilot 会自动生成修复并打开一个草稿拉取请求以供审查。
有关分配警报的信息,请参阅 查看和更新 Dependabot 警报。
警报通知如何工作
默认情况下,GitHub 会向同时符合以下条件的人员发送有关新警报的电子邮件通知:
- 对仓库拥有写入、维护或管理员权限
- 正在关注该仓库并已启用安全警报或该仓库所有活动的通知
您可以通过选择想要接收的通知类型,或在用户通知设置页面(https://github.com/settings/notifications)中完全关闭通知,从而覆盖默认行为。
无论您的通知偏好如何,在首次启用 Dependabot 时,GitHub 不会对仓库中发现的所有有漏洞的依赖项发送通知。相反,只有在 Dependabot 启用后识别出的新有漏洞依赖项,才会在您的通知偏好允许的情况下发送通知。
如果您担心收到过多通知,建议使用 Dependabot 自动分流规则自动忽略低风险警报。规则在发送警报通知之前生效,因此在创建时被自动忽略的警报不会发送通知。请参阅 关于 Dependabot 自动分流规则。
或者,您可以选择接收每周邮件摘要,甚至在保持 Dependabot 警报启用的同时完全关闭通知。
限制
Dependabot 警报有一些限制
- 警报无法捕获所有安全问题。请始终审查您的依赖项,并保持清单文件和锁定文件最新,以确保检测准确。
- 新的漏洞可能需要时间才能出现在 GitHub Advisory 数据库中并触发警报。
- 仅审查通过的 GitHub 建议会触发警报。
- Dependabot 不会扫描已归档的仓库。
- 对于 GitHub Actions,仅对使用语义化版本的操作生成警报,而不是使用 SHA 版本的操作。
GitHub 永不公开披露任何仓库的漏洞。