几个月前,GitHub推出了Dependabot告警自动排除(auto-dismiss)策略,以减少误报。现在,GitHub 又添加了自定义规则支持,让开发人员可以定义自动排除和重新打开告警的标准。
虽然像 Dependabot 这样的解决方案,承诺通过自动识别项目依赖项中的漏洞来帮助提高安全性,但这一切都是有代价的。这可能会增加 Dependabot 的误报数量,即告警不是实际的威胁,但开发人员还是需要手动评估和诊断。误报包括不太可能被利用的漏洞,或者与长时间运行的构建或测试相关的系统小故障。
事实上,这就是“告警疲劳(alert fatigue)”概念的由来。然而,根据 GitHub 的数据,至少十分之一的告警是误报。矛盾的是,告警疲劳可能会分散开发人员的注意力,使他们无法解决真正的漏洞。为了缓解这种情况,GitHub 引入了一些通用策略,旨在通过忽略开发阶段所使用的依赖项(在 npm 世界中也称为devDependencies
)中存在的低影响问题来减少误报数量。
这一新特性受到了开发人员的广泛欢迎,受此鼓舞,GitHub 现在通过定义自定义规则来控制 Dependabot 如何自动排除告警,在缓解告警疲劳的道路上更进一步。该特性包括两个新选项,它们将取消告警,或使告警无限期休眠或直到有补丁可用。
在定义规则时,开发人员指定一组标准来确定何时应用规则。这包括包名、漏洞严重性、生态系统、清单文件、范围和安全建议。当规则匹配时,告警将被无限期地解除,或者直到有补丁可用为止。
在这个最初的版本中,规则还需要逐个存储库定义,很快,GitHub 就会提供组织级的规则。将来,自动排除规则将扩展可使用的元数据以及可用的修复流。
自定义自动诊断规则在所有公共存储库上都是免费的,而在私有存储库上使用则需要付费。
Dependabot于2019年推出,能够扫描项目的依赖项以查找任何漏洞,并自动为每个依赖项创建PR,让维护人员通过简单地合并这些 PR 就可以完成安全漏洞的修复。
原文链接:
https://www.infoq.com/news/2023/09/GitHub-dependabot-auto-triage/
评论