软件通常依赖来自各种来源的包,形成的依赖关系可能危及项目安全。例如,恶意人员可以利用恶意包发起恶意软件攻击,获取对您的代码、数据、用户和贡献者的访问权限。
为帮助保障项目安全,Dependabot 可以检查您的依赖项是否包含已知的恶意包,并生成包含建议修复步骤的警报。
当 Dependabot 发送恶意软件警报
当您仓库默认分支中的某个包被标记为恶意时,Dependabot 会发送恶意软件警报。现有依赖项的警报会在该包在 GitHub Advisory Database 上被标记后立即生成。
当您推送的提交添加了已知的恶意包或将某个包更新到已知的恶意版本时,也会生成警报。
注意
如果内部包的生态系统、名称和版本与某个恶意公开包相同,Dependabot 可能会产生误报。
警报内容
当 Dependabot 检测到恶意依赖时,恶意软件警报会出现在仓库的 安全与质量 选项卡中。每个警报包括
- 指向受影响文件的链接
- 有关恶意包的详细信息,包括包名、受影响的版本以及已修补的版本(如果有)
- 修复步骤
可用性
目前,Dependabot 恶意软件警报仅适用于 npm 生态系统中的包。
警报通知
默认情况下,GitHub 会向满足以下两项条件的用户发送关于新警报的电子邮件通知:
- 拥有仓库的写入、维护或管理员权限
- 关注该仓库并已开启安全警报或所有活动的通知
在 GitHub.com 上,您可以通过在用户通知设置页面 https://github.com/settings/notifications 中选择所需的通知类型,或完全关闭通知,以覆盖默认行为。
如果您担心收到过多通知,建议使用 Dependabot 自动分流规则自动撤销低风险警报。参见 关于 Dependabot 自动分流规则。
限制
Dependabot 恶意软件警报存在一些限制
- 警报并不能捕获所有安全问题。请始终审查您的依赖项并保持清单和锁定文件最新,以确保检测精确。
- 新的恶意软件可能需要一段时间才能出现在 GitHub Advisory Database 并触发警报。
- 仅 GitHub 审核通过的建议会触发警报。
- Dependabot 不会扫描已归档的仓库。
- 针对 GitHub Actions,仅对使用语义化版本的操作生成警报,SHA 版本则不生成。
GitHub 永不公开披露任何仓库的恶意依赖。
后续步骤
要开始保护项目免受恶意依赖影响,请参阅 配置 Dependabot 恶意软件警报。