Dependabot の cooldown 機能でサプライチェーン攻撃のリスクを緩和する
今まで Bun なら bun update
などで手動で依存ライブラリを更新していたのだが、Dependabot を使うようにした。わざわざ手動でやるべきことでもないよねという話もあるものの、一番大きいのはサプライチェーン攻撃対策のため。
適当にライブラリを更新していると攻撃コードの入ったバージョンを踏んでしまうリスクが現実的に高まっているのを感じていたので、Renovate のようにリリースしてから一定期間経過した更新だけを取り込むようにしたいと考えていた。ただ、Renovate は導入するのに手間がかかりそうで、なかなか導入するに至っていなかった。
それが最近になって Dependabot で cooldown としてサポートされたことで、簡単に導入できるようになった。これによってついに導入する気になった。
ただ、手間という面だと、自動化すると便利というよりも大量の Pull Request が作られて、むしろ厄介なんじゃないかという懸念もあった。あまりメンテナンスされていないリポジトリにおいて、Dependabot が作成した Pull Request が大量に並んでいるのはよく見る光景である。
# Dependabot CLI を使えばローカルで cooldown ありで更新できるのかもしれないが、使っている人がそこまで多くなさそうなので試していない。
これについては、Groups という機能を使うことである程度解決できそうだった。条件に当てはまる更新をひとつの Pull Request にまとめてくれる機能で、ひとまずマイナーな更新は全部まとめてしまうようにした。
version: 2updates: - package-ecosystem: "bun" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "weekly" cooldown: default-days: 14 groups: dependencies: patterns: ["*"] update-types: ["minor", "patch"]
# 無いと思うけど、みんな cooldown するのが当たり前になったらどんどん cooldown 期間を延長しないと意味ないねってなったりするんだろうか……?