StepSecurity 为 Dependabot 配置新增了冷却时间和分组支持,使团队能够控制 npm、pip、Docker 和 GitHub Actions 的更新频率和 PR 批次合并。减少告警疲劳。合并更多补丁。强化供应链安全。
StepSecurity 现已支持 Dependabot 配置管理中的 cooldown 和 group 属性。这些新增功能使组织能够精确控制依赖项更新的合并方式以及更新推送的频率,覆盖 npm、pip、Docker、GitHub Actions 和 Dependabot 支持的其他生态系统。
如果您已经熟悉 StepSecurity 的 npm Package Cooldown 检查(它会阻止引入最近发布包的 PR),那么可以将本文介绍的内容视为冷却机制的另一半。npm Package Cooldown 检查控制的是何时可以安全采用新的包版本。Dependabot 冷却时间控制的是更新 PR 最初被提出的频率。二者共同为组织提供了管理依赖更新节奏和安全性的完整框架。
新增功能
Group:将相关更新批量合并到一个 PR 中
group 属性允许您定义规则,将相关依赖项更新合并到一个 PR 中,而不是创建多个 PR。您可以按更新类型(minor 和 patch 合并)、包名模式或依赖作用域进行分组。
一个典型的配置可能将所有非 major 版本的生产依赖项更新合并为每周一个 PR,同时将 major 版本升级保留为单独的 PR 以便更仔细地审查。这适用于 Dependabot 支持的所有生态系统。
引入 group 属性的 PR diff
Cooldown:控制更新 PR 的推送频率
cooldown 属性控制新 Dependabot PR 之间的最小间隔。您不再是在每个更新可用时立即接收,而是设置与团队审查能力相匹配的节奏。
这可以防止常见情况:当传递依赖项更新大量涌现时,会导致 PR 队列泛滥,团队完全停止审查依赖项 PR。
引入 cooldown 属性的 PR diff
集中管理
两个属性均可通过 StepSecurity 的集中式 Dependabot 配置获得。您可以定义分组和冷却策略一次,然后一致地应用到组织中的每个代码库。StepSecurity 还可以自动为缺少正确配置的代码库生成或增强 dependabot.yml 文件。
引入 group 和 cooldown 属性的 PR diff
这与 npm Package Cooldown 的关联
StepSecurity 已在 GitHub Checks 套件中提供 npm Package Cooldown 检查。该功能服务于不同但互补的目的。
npm Package Cooldown 检查是一个 PR 级别的安全门。当拉取请求引入或更新某个依赖项至在可配置时间窗口内发布的版本(默认:2 天)时,检查失败并阻止合并。逻辑很简单:大多数供应链攻击是在恶意包发布后的 24 小时内被发现的。在采用前等待一段较短的时间可以显著降低拉取被入侵版本的风险——在任何人有机会标记它之前。
这在 2025 年的 Shai-Hulud 攻击 中证明了其价值。当被入侵的 npm 包发布时,cooldown 检查自动拒绝了尝试采用恶意版本的 PR,因为这些版本仅在几小时前发布。启用了 cooldown 的客户完全免受意外合并恶意更新的影响。
新的 Dependabot cooldown 服务于同一问题的不同层面。npm Package Cooldown 检查问的是"这个特定包版本是否足够老以至于可以信任?",而 Dependabot cooldown 问的是"这个团队接收更新的速度是否在其处理能力范围内?"一个是针对单个包的安全门,另一个是针对提议变更量的工作流控制。
它们协同工作。Dependabot cooldown 确保您的团队不会被更新 PR 淹没,所以他们会实际审查收到的 PR。npm Package Cooldown 检查确保这些 PR 中的版本已经发布足够长的时间以接受生态系统的审查。有了这两者,您就可以获得可持续的更新速度,同时拥有一个针对最新被入侵包的内置安全网。
为什么是现在
2026 年 3 月是近几个月来软件供应链攻击最活跃的月份之一。我们的团队检测并响应了一系列连续发生的事件。
TeamPCP 入侵了 Trivy GitHub Action 77 个版本标签中的 76 个,嵌入了从 CI/CD 运行器收集凭据的凭据窃取器。几天后,Checkmarx KICS GitHub Action 遭受了同样的攻击手法。从这些被入侵管道窃取的 npm 令牌助长了 CanisterWorm,这是一款自我传播的 npm 蠕虫,在它能触及的每个命名空间发布带后门的补丁版本,包括 @opengov 作用域下的 16+ 个包。同一个威胁行为者使用 WAV 隐写术在 litellm 和 telnyx PyPI 包中植入了凭据窃取器。
然后是 axios 入侵事件。一个民族国家行为者,后被归因于朝鲜组织 UNC1069,劫持了 npm 上最流行的 HTTP 客户端。每周下载量超过 1 亿次。恶意版本被发布,携带一个隐藏依赖项,用于释放跨平台远程访问木马。当我们创建 GitHub Issues 警告社区时,攻击者使用被入侵维护者的账户删除了大约 20 次这些 Issues,之后 GitHub 才暂停了该账户。
这些攻击都针对依赖项信任。在每一种情况下,应对最得当的组织是那些拥有最新依赖项树和正常运作的更新工作流的组织。他们能够立即回答这个问题:我们运行的是什么版本,其中是否有被入侵的?
那些 Dependabot PR 堆积了数周未被审查的组织无法回答这个问题。
这些功能解决的问题
Dependabot 被广泛启用,但并未被广泛有效使用。
没有分组,一个普通的代码库每周可能产生数十个单独的 PR。对测试工具的小版本升级与关键安全补丁受到同等对待。信噪比崩溃,开发者完全停止审查依赖项更新。
没有冷却控制,更新按 Dependabot 的默认时间表到达,无论是否有人有能力审查。在一段时间不活动或传递更新的级联之后,队列变得难以管理。团队静音通知、批量关闭 PR 或禁用 Dependabot。
结果是可能的最坏结果:该工具技术上已启用,但没有更新被合并。补丁速度下降。已知漏洞未被修复。当下一次供应链事件发生时,该组织对其依赖项状态没有清晰的了解。
这正是 group 和 cooldown 弥合的差距。分组减少数量,使每个 PR 都能得到实际关注。Cooldown 使流量可持续,使团队保持审查而不是放弃。
当像 CanisterWorm 这样的攻击专门针对补丁版本——因为它们会被自动静默安装——时,您需要您的团队审查补丁更新,而不是因为队列中有 40 个看起来相同的 PR 而忽略它们。当这些分组、有节奏的 PR 到达时,npm Package Cooldown 检查作为最后一道安全网,阻止任何发布太近而不被信任的版本。
如何开始
如果您已经在配置中使用 StepSecurity Policy Driven PRs,可以更新 Dependabot 配置以包含 cooldown 和 group 属性
此交互式演示引导您完成为使用 Policy Driven PRs 的代码库配置 cooldown 和 group 属性的过程
如果您有缺少 dependabot.yml 文件的代码库,StepSecurity 可以生成一个已配置分组和冷却策略的文件。
如果您尚未启用 npm Package Cooldown 检查,可以在 StepSecurity 仪表板的 GitHub Checks 下启用它。默认冷却窗口为 2 天,可根据您组织的风险承受能力配置为 1 到 30 天。我们建议同时启用 Dependabot cooldown 用于工作流节奏控制和 npm Package Cooldown 检查用于包级别安全。
如果您尚未使用 StepSecurity,可以免费开始或请求演示,了解这些功能如何融入您的供应链安全策略。
更广阔的图景
检测很重要。在过去一个月通过 axios、CanisterWorm 等事件我们已经证明了这一点。但检测本质上是反应性的。在事件发生前保持依赖项最新、持续审查更新、并维护对组织运行版本可见性的上游规范,决定了您在事件发生前的暴露程度和事件发生后的恢复速度。
StepSecurity 现在涵盖完整的依赖项更新生命周期。Dependabot group 和 cooldown 确保更新以可管理的节奏和可审查的格式到达。npm Package Cooldown 检查确保被提议的版本已发布足够长的时间以接受审查。npm Package Compromised Updates 检查阻止已知恶意的版本。当事件确实发生时,npm Package Search 会准确告诉您哪些代码库受到影响。
依赖项管理不是开销。它是一项安全控制。这些增强功能旨在使其成为一项真正有效的控制。