包管理器要设冷却期,可预防大多数供应链攻击!

2026-06-09 19:52:29 161阅读 0评论 SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

2025 年 11 月的时候,William Woodruff 写了一篇文章 We should all be using dependency cooldowns,指出大部分供应链攻击都可以通过设置一个冷却期(即依赖自发布到被认为适合使用的时间窗口)来预防。

作者分析了 10 起近期攻击,8 起的攻击窗口小于 1 周(从本月的一连串供应链攻击中也可以看出来非常拟合),而其中知名的 xz-utils 事件是唯一超过 2 周的例外。

因此设置一个简单的冷却期就可以预防大多数供应链攻击了,例如说 Dependabot 就支持。

包管理器要设冷却期,可预防大多数供应链攻击!

而本月初 Andrew Nesbitt 写了另一篇文章 Package Managers Need to Cool Down,这个月发生的一连串供应链攻击让这两篇文章的观点更加突出了。

这篇文章指出许多语言生态的包管理器已经迅速采取了措施,加入了「冷却期」的设置:

包管理器要设冷却期,可预防大多数供应链攻击!

语言 包管理器
JavaScript pnpm、Yarn、Bun、npm、Deno 均支持
Python uv、pip(仅支持绝对时间戳)
Rust RFC 进行中

下面是我自己个人的一些配置:

uv 参考文档,配置在 ~/.config/uv/uv.toml,配置为 exclude-newer

exclude-newer = "1 week" [pip] exclude-newer = "1 week"

Bun 参考文档,配置在 ~/.bunfig.toml,配置为 minimumReleaseAge

[install] minimumReleaseAge = 604800 # 7 days in seconds

npm 参考文档,配置在 ~/.npmrc,配置为 min-release-age。需要 npm v11.10.0+,即 2026.2.11 以后的版本:

min-release-age=7

Dependabot 参考文档,配置在 .github/dependabot.yml,配置为 cooldown

diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c965369..92329c7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -40,6 +42,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -72,6 +76,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 3 assignees: - "pilgrimlyieu" 网友解答:


--【壹】--: jql:

即依赖自发布到被认为适合使用的时间窗口

大部分都没有问题,就是有时候遇到bug需要使用最新的版本就尴尬了


--【贰】--:

好的,yay


--【叁】--:

其中部分包管理器我记得是可以有豁免的,抑或是紧急修复也是可以安装最新版本,具体可以了解包管理器相关文档。


--【肆】--:

如果大家都设置了冷静期那么是不是供应链攻击就更难被发现了?


--【伍】--:

我记得之前看过文章go也有类似的设置,不过似乎还在提案阶段


--【陆】--:

确实会有这种可能,但也有安全专家盯着,而且这算是一个比较简易又收获巨大的举措了。

标签: 管理器 供应链
问题描述:

2025 年 11 月的时候,William Woodruff 写了一篇文章 We should all be using dependency cooldowns,指出大部分供应链攻击都可以通过设置一个冷却期(即依赖自发布到被认为适合使用的时间窗口)来预防。

作者分析了 10 起近期攻击,8 起的攻击窗口小于 1 周(从本月的一连串供应链攻击中也可以看出来非常拟合),而其中知名的 xz-utils 事件是唯一超过 2 周的例外。

因此设置一个简单的冷却期就可以预防大多数供应链攻击了,例如说 Dependabot 就支持。

包管理器要设冷却期,可预防大多数供应链攻击!

而本月初 Andrew Nesbitt 写了另一篇文章 Package Managers Need to Cool Down,这个月发生的一连串供应链攻击让这两篇文章的观点更加突出了。

这篇文章指出许多语言生态的包管理器已经迅速采取了措施,加入了「冷却期」的设置:

包管理器要设冷却期,可预防大多数供应链攻击!

语言 包管理器
JavaScript pnpm、Yarn、Bun、npm、Deno 均支持
Python uv、pip(仅支持绝对时间戳)
Rust RFC 进行中

下面是我自己个人的一些配置:

uv 参考文档,配置在 ~/.config/uv/uv.toml,配置为 exclude-newer

exclude-newer = "1 week" [pip] exclude-newer = "1 week"

Bun 参考文档,配置在 ~/.bunfig.toml,配置为 minimumReleaseAge

[install] minimumReleaseAge = 604800 # 7 days in seconds

npm 参考文档,配置在 ~/.npmrc,配置为 min-release-age。需要 npm v11.10.0+,即 2026.2.11 以后的版本:

min-release-age=7

Dependabot 参考文档,配置在 .github/dependabot.yml,配置为 cooldown

diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c965369..92329c7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -40,6 +42,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 5 assignees: - "pilgrimlyieu" @@ -72,6 +76,8 @@ updates: day: "monday" time: "09:00" timezone: "Asia/Shanghai" + cooldown: + default-days: 7 open-pull-requests-limit: 3 assignees: - "pilgrimlyieu" 网友解答:


--【壹】--: jql:

即依赖自发布到被认为适合使用的时间窗口

大部分都没有问题,就是有时候遇到bug需要使用最新的版本就尴尬了


--【贰】--:

好的,yay


--【叁】--:

其中部分包管理器我记得是可以有豁免的,抑或是紧急修复也是可以安装最新版本,具体可以了解包管理器相关文档。


--【肆】--:

如果大家都设置了冷静期那么是不是供应链攻击就更难被发现了?


--【伍】--:

我记得之前看过文章go也有类似的设置,不过似乎还在提案阶段


--【陆】--:

确实会有这种可能,但也有安全专家盯着,而且这算是一个比较简易又收获巨大的举措了。

标签: 管理器 供应链