攻撃者がGitHub Actionsのワークフローを悪用し、数百のnpmおよびPyPIリポジトリから数千件の認証情報を抜き取った。
GitGuardianは、GhostActionと名付けられた新たなソフトウェアサプライチェーン攻撃キャンペーンを公開しました。この攻撃は、9月5日に検知・封じ込められるまでに数千件の機密認証情報を流出させました。
攻撃者はGitHub Actionsのワークフロー(特定のイベントに応じてGitHubリポジトリで定義される自動化プロセス)を操作し、817のリポジトリにわたる327人のユーザーから3325件のシークレットを盗み出しました。
「GitGuardianのセキュリティリサーチチームは、FastUUIDプロジェクトに関連するGitHubリポジトリが侵害された可能性があるとの内部アラートを受けました」とGitGuardianのセキュリティ研究者Gaetan Ferry氏とGuillaume Valadon氏はブログ投稿で述べています。「調査の結果、悪意のあるGitHubワークフローファイルがプロジェクトに注入されていたことが判明しました。」侵害されたユーザーは、他のパブリックおよびプライベートリポジトリにも同一の悪意あるコミットをプッシュしていました。
盗まれた認証情報は、PyPI、npm、DockerHub、GitHubトークンなど多岐にわたり、HTTP POST経由で攻撃者が管理するエンドポイントに送信されていました。
CI/CDトークンの傍受
GhostActionキャンペーンはPythonプロジェクトFastUUIDで発覚しました。‘Grommash9’という偽名のコントリビューターが9月2日にワークフローの変更を導入し、その中にPYPI_API_TOKENなどの機密トークンを抽出し、攻撃者が管理するドメインへHTTP POSTリクエストで送信するコードが含まれていました。
「このトークンによって攻撃者はPyPI上のFastUUIDパッケージを侵害できたはずですが、侵害期間中に悪意のあるパッケージリリースは確認されませんでした」と研究者らは述べており、最初の侵害後に攻撃者が行動を起こさなかったことから、FastUUIDが主な標的ではなかった可能性が示唆されています。
その後の調査で、少なくとも5つのパブリックリポジトリと推定10のプライベートリポジトリで同様の悪意あるワークフローが発見されました。この攻撃は非常に適応的で、コンテナレジストリの認証情報からクラウドプロバイダーのキーまで、環境固有のシークレットを狙っていました。
「攻撃パターンはすべてのプロジェクトで一貫していました。攻撃者はまず正規のワークフローファイルからシークレットを列挙し、それらのシークレット名を悪意あるワークフローにハードコードしていました」と研究者らはブログで付け加えています。GhostActionは、パッケージの改ざん、不正なインフラアクセス、さらなるサプライチェーン侵害に利用可能な数千件の機密トークンを流出させました。
数日以内に脅威を封じ込め
GitGuardianのセキュリティチームは検知後すぐに対応し、FastUUIDパッケージはPyPI管理者によって数分以内に読み取り専用に設定されました。悪意のあるコミットもすぐに元に戻されました。GitGuardianは影響を受けたリポジトリのメンテナーに通知し、573件のプロジェクトへの連絡に成功。また、GitHub、npm、PyPIのセキュリティチームにも悪用監視を依頼しました。
現時点で公式レジストリに悪意のあるパッケージは公開されていませんが、GitGuardianは一部のパッケージが依然としてリスクにさらされていると報告しています。「初期調査によると、今後数時間から数日以内に侵害されるリスクがあるnpmパッケージが9件、PyPIパッケージが15件あります」と研究者らは述べています。
ブログでは、ネットワークやGitHubワークフローのインジケーターを含む侵害の兆候リストも共有されました。追加の保護策として、研究者らはリポジトリのワークフローの見直し、漏洩した認証情報のローテーション、GitHub Actionsに対するより厳格な制御の導入が、今後の同様のインシデント防止に重要であると強調しています。
npmやPyPIのようなパッケージエコシステムは、その人気と開発者コミュニティ内での広範な利用から、攻撃の標的となりやすい状況が続いています。最近のnpm偵察キャンペーンのように、悪意のあるパッケージを直接公開するだけでなく、攻撃者はタイポスクワッティング(似た名前のパッケージを作成)や、AIの幻覚による依存関係の悪用などの手法も用い、開発者に不正なコードをインストールさせようとしています。
ニュースレターを購読する
編集部からあなたの受信箱へお届け
まずは下記にメールアドレスを入力してご登録ください。