Dependabot、更新前に待機時間を導入
本文の状態
日本語全文を表示中
詳細モードで約7分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
GitHub Blog
GitHub は依存関係の自動更新ツールであるDependabotに、セキュリティアップデート以外のバージョン更新において最大2時間の悪意あるコード拡散を防ぐための3日間の待機期間(クールダウン)をデフォルト設定として導入した。
AI深層分析を開く2026年7月27日 12:26
AI深層分析
キーポイント
サプライチェーン攻撃への対策強化
npm などのパッケージレジストリで公開された直後に悪意あるコードが含まれるケースが増加しており、GitHub はこのリスクに対応するため更新の待機期間を導入した。
Dependabot のデフォルト動作変更
セキュリティアップデートは即座に発行されるが、通常のバージョンアップにおいてはリリース公開から少なくとも3日後にプルリクエストが開かれるように設定が変更された。
ユーザーによる柔軟な設定維持
dependabot.yml 内の cooldown 設定オプションにより、プロジェクトの要件に応じて待機期間を短縮または延長するカスタマイズが可能である。
マルウェア対策の時間的窓を回避
GitHub Advisory Database は2026年5月までの1年で約6,500件のnpmマルウェアアドバイザリを公開しており、毎日約18件が新規登録されている。3日間の待機期間はこの攻撃が活発な時間的窓を過ぎるまで待ち、リリースに検証の機会を与えることで保護する。
多層防御の一部として機能
この対策は短期間で検出されるマルウェアには有効だが、潜伏するバックドアやメンテナによる破壊など長期戦の攻撃には無力であるため、ロックファイルの使用やCIでのインストールスクリプト無効化などの他の防御策と併用すべきだ。
重要な引用
Waiting a few days before adopting a new release gives maintainers, security researchers, and automated scanners time to spot a malicious version and get it pulled before it ever reaches your pull requests.
The new three-day cooldown default applies only to version updates. Security updates still open right away, since a delay there would hold back a fix for a flaw that is already public.
A cooldown keeps you out of that opening window and lets a release accumulate some scrutiny before it reaches you.
Three days as the default balances two goals: it pushes you past the window where most of these attacks live, and it doesn't hold your dependencies back longer than necessary.
編集コメントを表示
編集コメント
自動化の速度とセキュリティの確保という相反する要件を、待機時間という単純かつ効果的なパラメータで調整した事例である。この変更は、開発者が無意識のうちに脆弱なコードを採用してしまうリスクを大幅に低減し、DevSecOps の実践において重要な一歩となる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
2025 年 9 月、ある npm のメンテナの認証情報がフィッシング攻撃によって盗まれ、chalk や debug など、週に合計 20 億回以上ダウンロードされる約 dozen のパッケージに仕掛けられた偽バージョンが公開されました。このコードは、それを読み込んだブラウザアプリ内の暗号化ウォレットのアドレスを書き換えるものでした。悪意のあるバージョンは約 2 時間公開されていましたが、コミュニティによって発見され、npm 側で削除されるまででした。
2 時間の対応は迅速です。しかし、自動化された更新ツールにとっては、新しいバージョンを認識し、プルリクエストを開いてチームに提示するまでに十分な時間でもあります。なぜなら、バージョン更新ツールはリリースが公開された瞬間に最新版を取得するように設計されているからです。
このパターンは、サプライチェーン攻撃の増加した割合の背後にある要因です。悪意のあるコードは新リリースに乗って公開レジストリに載り、人間やスキャナーが確認する前に数分以内にビルドパイプラインに取り込まれてしまいます。
コールドダウン(待機期間)はこの計算を変えます。新しいリリースを採用する前に数日待つことで、メンテナ、セキュリティ研究者、自動化されたスキャナーが悪意のあるバージョンを特定し、プルリクエストに到達する前に削除する時間を確保できます。
セキュリティ上の問題ではないバージョンアップの場合、Dependabot は現在、リリースが公開されてから少なくとも 3 日後にプルリクエストを開くようになります。ただし、dependabot.yml のコールドダウン設定オプションは依然として動作を制御するため、プロジェクトに合わせて異なる待機期間パラメータを選択することも可能です。
Dependabot の更新には 2 つのタイプがある
Dependabot は GitHub に標準搭載されたツールで、依存関係のセキュリティ維持と最新状態の保ちを担っています。このツールは大きく分けて 2 つの役割を果たします。
1 つ目は「セキュリティ更新」です。これは既知の脆弱性に対応するもので、利用しているパッケージに関する注意報が発表されると、Dependabot が即座にアラートを発行し、パッチ適用版へ移行するためのプルリクエストを起票します。
2 つ目は「バージョン更新」です。これは現在の依存関係の状態に関わらず、新しいリリースが出た時点で常に最新状態を保つためのものです。
今回導入された 3 日間の待機期間(クールダウン)のデフォルト設定は、「バージョン更新」のみを対象としています。「セキュリティ更新」については依然として即座に起票されます。なぜなら、すでに公知となっている欠陥に対する修正を遅らせることは許されないからです。本記事で取り上げているのは「バージョン更新」です。ここでは目標が最新状態の維持であり、リスクとなるのが未検証のリリースを採用してしまうことです。
事例と GitHub Advisory Database のデータ
攻撃者が人気のあるパッケージを乗っ取った場合、悪意あるバージョンは短命である傾向があります。公開され、インストールを通じて拡散し、通常は数時間以内に検出されます。前述の例では、その悪意あるバージョンはわずか 2 時間の稼働でした。他の広く使われているパッケージでも同様の経過をたどっており、Solana の web3.js、Axios、ua-parser-js などに対する改ざんされたビルドも、公開から数時間以内に検出されています。
より一般的に、GitHub は GitHub Advisory Database を通じてこのパターンを直接把握しています。これはさまざまなエコシステムにおけるオープンソースのセキュリティアドバイザリをカタログ化したデータベースです。2026 年 5 月までの 1 年間には、npm のマルウェアに関する advisories が前年の約 6,200 件から増加し、6,500 件以上が登録されました。これは、毎日およそ 18 件の新しい悪意のある npm パッケージがカタログに追加されていることを意味します。
コールドダウン(待機期間)を設定することで、こうした攻撃の隙間を避け、リリースがあなたの手元に届く前に十分な検証が行われる時間を確保できます。
なぜ 3 日間なのか
人気のあるパッケージを狙った公開されたマルウェアは、通常すぐに検出されます。2018 年から 2026 年にかけて報告された 21 の広範なサプライチェーンインシデントをレビューした結果、同じパターンが確認されました。axios、Solana web3.js、ua-parser-js、Ledger Connect Kit などの悪意のあるバージョンは、公開から数時間以内に削除されています。もしコールドダウンの仕組みがあれば、これらの一時的な公開の大半は、誰かがインストールする前にフィルタリングできたはずです。
デフォルトの 3 日間という設定は、2 つの目標をバランスよく達成するためのものです。つまり、攻撃が最も頻繁に起こる期間を過ぎさせる一方で、依存関係の更新を必要以上に遅らせることはありません。
他のコミュニティメンバーも同様に 3 日間のコールドダウンを採用しており(一部はさらに長い期間を設定している)、これにより開発者がツール間を移動しても Dependabot の挙動が一定に保たれます。
なお、Dependabot の設定オプションで、より長くまたは短い待機時間を指定することも可能です。
多層防御の考え方
コールドダウン(待機期間)は、悪意あるバージョンが公開され、瞬く間に拡散して検知されるという特定の攻撃パターンを想定した機能です。しかし、リリースに仕掛けられたバックドアが休眠状態のまま放置されるような長期戦や、メンテナによる破壊行為、ビルドシステムの乗っ取りなどに対しては、単独では大きな効果を発揮しません。
このデフォルト設定の目的は、時間的制約のある一般的な脆弱性を排除することであり、他の防御策を代替するものではありません。コールドダウンは高速な攻撃への対策に過ぎないため、複数の防御層の一つとして位置づけるべきです。
具体的な追加対策としては、ロックファイルによる依存関係の固定、CI 環境でのインストールスクリプト無効化(可能な場合)、ビルドパイプラインにおけるトークンの範囲限定、マージ前の更新内容レビューなどが挙げられます。
信頼性の高い内部パッケージとパブリックレジストリで待機時間を切り替えたい場合は、Dependabot の設定に関するドキュメントをご覧ください。また、コールドダウンパラメータの全リストについては、Dependabot 設定オプションのリファレンスを参照してください。
ここから先へ
これは、GitHub で開発するすべての人のソフトウェアサプライチェーンを強化するために私たちが取り組んでいる複数の施策の一つです。デフォルトで有効になっているため、アクティブ化のために特別な変更は不要です。また、ワークフローに合わせて調整することも可能です。
Dependabot コミュニティのディスカッションで、実際の運用結果についてご意見を聞かせてください。
本記事「The case for a cooldown: Why Dependabot now waits before issuing version updates」は、GitHub Blog の投稿です。
AI算出
主要ニュースainew評価標準
AI モデルそのものの更新ではないが、AI エージェントや自動化ツール(Dependabot)の運用における重要なセキュリティ実装の変更であり、サプライチェーン攻撃への対策という文脈で AI/テック業界に直接的な影響を与える新事実を報じている。
6つの評価軸を見る
- AI関連度
- 50
- 情報源の信頼性
- 100
- 新規性
- 75
- 調べる価値
- 75
- 重複の少なさ
- 100
- 日本での有用性
- 25
関連記事
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み