Skip to content

Dependabotにcooldownを設定する

2025年に npm パッケージで大規模なサプライチェーン攻撃があった。以下の記事にある程度まとまっている。

対策云々はここではいいのだが、サプライチェーン攻撃があったとき、ほとんどは問題のあるリリースが公開されてから数時間で発見されているので、自分のリポジトリが汚染されないためにリリースから一定期間はアップデートを保留するという手段が取られるようになった。

もともとRenovateには minimumReleaseAge オプションがあって、pnpm でも同じオプションが追加されたりしたのだが、ようやくDependabotでも cooldown オプションが使えるようになったので設定する。

version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
cooldown:
default-days: 5

リリース告知のDependabot supports configuration of a minimum package ageによると、脆弱性の修正は cooldown の設定よりも優先してアップデート対象となるらしいので、ある程度日数を開けても問題ないと思う。

  • Stay responsive to critical security patches.

他にも semver-major-days などパラメータはあるけれど、サプライチェーン攻撃の対策として使うのであればパッチバージョンだから安全ということもないので、デフォルト設定だけでいいだろう。