盗まれた開発者アカウントが1つあるだけで、数十ものリポジトリへの扉が開く可能性があります。攻撃者はどうやら、そのアクセス権をはるかに大規模なサプライチェーン攻撃へと転用する手口を見つけたようです。
セキュリティ企業Aikidoの研究者によると、「wfx-loot」として追跡されているキャンペーンでは、4,837件の GitHub アカウントが侵害され、61,764件のリポジトリに影響が及びました。攻撃者は盗んだ認証情報でリポジトリの権限を探り、さらなるシークレットを盗み出すよう設計された悪意のある GitHub Actions ワークフローを仕込んでいました。
Aikidoの研究者は、このマルウェアが GitHub のアクセストークンやクラウドの認証情報、AIサービスのAPIキーなどの機密情報を収集すると説明しています。さらに永続化の機能も備えていました。侵害された開発パイプラインが、組織のインフラへの長期的な侵入口になる恐れもあります。
盗まれたトークンが数千のリポジトリへのアクセスを開いた経緯
攻撃者は、リポジトリを1つずつ侵害する必要はありませんでした。代わりに、すでに複数のプロジェクトへのアクセス権を持つ開発者の GitHub 認証情報を盗んで利用しました。
たとえば、ある開発者が複数のオープンソースリポジトリに貢献しながら、勤務先の GitHub Organization でも権限を持っているケースがあります。攻撃者がその開発者の認証情報を入手すれば、プロジェクトごとに別の脆弱性を突かなくても、複数のプロジェクトにアクセスできる可能性があります。
Aikidoによると、このキャンペーンにはdocs: dependency audit notesというタイトルの不審なプルリクエストが含まれていました。研究者は、これを攻撃者が標的候補を見極めるための活動と結び付けています。Aikidoが報告した最も早い活動は、11月10日12時45分(UTC)に記録されたものです。
キャンペーンの規模は相当なものでしたが、報告されている数値は攻撃の異なる段階を示しています。Aikidoは61,764件のリポジトリが関わる活動を確認しました。一方、 SafeDepは別途、悪意のあるコミットを受けたリポジトリが8,093件あったと報告しています。
攻撃者が侵害された認証情報をそもそもどのように入手したのかは、研究者もまだ特定できていません。フィッシング、情報窃取型マルウェア、露出したトークン、サードパーティ連携などが考えられますが、いずれも確認された事実として扱うべきではありません。
被害を受けたかどうかを確認する方法
Aikidoは、開発者や組織に対し、コラボレーター権限や Organization の権限経由でアクセスするものも含め、書き込み権限のあるすべての GitHub リポジトリを確認するよう推奨しています。11月10日以降のアクティビティについて、次の痕跡がないか調べてください。
- プルリクエスト:docs: dependency audit notes
- ブランチ:wfx-docs、chore/[ランダムな8文字]、ci-check-[4桁の数字]
- コミットメッセージ:ci: refresh build cache、ci: restore、chore: add ci helper、ci: cleanup、chore: add dependency audit workflow
- 窃取スクリプトの確認:次のハッシュ値で確認できます。89695abb392d5cfd4972672961e644bb46baa98aa1ed7173c2a2816c762735cf
調査目的のプルリクエストが見つかっただけでも、ほかに何も実行されていなかったとしても、対応が必要です。
マルウェアが実行された場合は、アクセス可能だったシークレットとクラウドの認証情報が漏えいしたものとみなしてください。影響を受けたトークンとAPIキーを失効させてローテーションし、クラウドのIAMポリシーやフェデレーテッドIDの構成を点検します。あわせて、悪意のある npm スクリプトが実行された可能性のあるセルフホストランナーや開発者のマシンも調査してください。
Aikidoは、既存ユーザーに対しても、Aikidoのセキュリティフィードを確認し、マルウェアの問題で絞り込んだうえで、手動の再スキャンを実行するよう推奨しています。ユーザーでない場合も、マルウェア検知を含む無料プランでリポジトリを接続できます。
本当の問題は「アクセス権」
サイバー攻撃が始まって以来、変わらないことが1つあります。攻撃者はアクセス権を必要としており、それを手に入れる手段を数多く見つけてきたということです。
フィッシング、情報窃取型マルウェア、露出した認証情報は、その手口のほんの一部にすぎません。wfx-loot の攻撃者がどのように GitHub トークンを入手したのかはまだ分かっていませんが、これらは依然として考えられる経路です。リポジトリの侵害は、サイバーセキュリティの世界では決して目新しいものではありません。
この不確かさは、開発者に依存する企業にとって、あらためて重要な教訓となります。開発者は格好の標的です。そのアカウントは、ソースコードだけでなく、はるかに多くのものへの扉を開くからです。
組織は、開発者アカウントと CI/CD ワークフローを価値の高いセキュリティ資産として扱う必要があります。強力な認証、最小権限の原則、定期的なアクセス権の見直し、ワークフローのシークレットに対する厳格な管理が、認証情報の窃取による被害を抑える助けになります。
セキュリティチームは、リポジトリの不審な変更、想定外のワークフロー改変、アクセストークンの不審な使用も監視すべきです。可能であれば、有効期限の短い認証情報と、範囲を絞った権限を採用することで、攻撃者がアクセスできる範囲を狭められます。
wfx-loot から得られる教訓は、単に開発者の認証情報が盗まれうるということではありません。1つのアカウントがリポジトリや自動化システムのネットワーク全体にアクセスできる場合、その認証情報によってどれほど大きな被害が生じうるかという点です。
コーネル工科大学(Cornell Tech)とイェール大学の研究者らは、AIエージェントが暗号資産の支出上限を回避できることを明らかにしました。メール認証コードを取得することで、テストした10モデルのうち9モデルが、人間による別の承認なしに自ら上限を引き上げました。自動化された決済の保護策に弱点があることが浮き彫りになっています。
翻訳元: https://www.esecurityplanet.com/threats/news-github-wfx-loot-supply-chain-attack/