GitHubは、サプライチェーン攻撃対策として、依存関係管理ツール「Dependabot」に3日間のクールダウン期間(遅延期間)を導入した。新しいパッケージが公開されても、更新用プルリクエストの作成を3日間待機することで、悪意ある更新を検知・調査する時間を確保する狙いだ。
Dependabotの仕組みと攻撃のリスク
Dependabotはプロジェクトの依存関係を自動的にスキャンし、依存しているプロジェクトの新しいリリースを提案する機能だ。攻撃者はこの仕組みを悪用することでサプライチェーン攻撃の速やかな展開を可能としていたが、GitHubはこの自動化された更新メカニズムの悪用を防止するために3日間の遅延期間を導入する。
クールダウン期間の詳細
遅延期間の導入後、Dependabotがアップデートを検出しても、プルリクエストの作成は遅延期間だけ先送りされるようになる。この期間を確保することでパッケージの管理者およびセキュリティ研究者は、悪意のあるアップデートの調査時間を確保できるようになる。
デフォルトポリシーとして設定される遅延期間は3日間。これはセキュリティの向上およびソフトウェアの依存関係を適切に保つバランスの取れた期間として採用された。リポジトリの管理者は、自らの判断においてこの期間の調整ができる。
一方で、脆弱性を修正するセキュリティアップデートにはクールダウン期間は適用されず、更新用のプルリクエストは従来どおり即座に作成される。
推奨される追加のセキュリティ対策
この仕組みは、パッケージのメンテナーやセキュリティ研究者などが悪意のある更新を検知・調査する時間を確保する目的で導入される。高度な難読化や、攻撃主体がリモートに存在する場合など、検出に時間を要する場合は意味をなさない可能性がある。
そこでGitHubは、この仕組みと追加のセキュリティ対策の組み合わせを提案。依存関係の固定、インストールスクリプトの無効化、ビルドパイプラインでトークンのスコープを設定、マージ前の更新内容の確認などを推奨している。
クールダウン期間の導入によって、Dependabotの利用者はデフォルト設定のままでサプライチェーン攻撃への耐性が高まることになる。しかしながら、時間的猶予が与えられるだけであり、安全性が直接向上するわけではない。リポジトリーの管理者および関係者には、基本的な安全対策の維持および継続的な強化が望まれている。



