Cybernewsの報道によると、GitHubの盗まれたトークンとWFX stealerを中心に据えたとされるキャンペーンが、約66,000のリポジトリを危険にさらしています。攻撃者は盗んだアクセストークンを使って悪意のあるワークフローファイルを植え付け、開発パイプラインを秘密情報を収集する手段に変えたとされています。入手可能な報道は簡潔なため、本記事は述べられている事実に限定し、開発者が今すぐ取れる実践的な対策に焦点を当てます。

盗まれたトークンがどのようにGitHubワークフロー攻撃を可能にしたか

報道によると、このキャンペーンは盗まれたトークンを使用して約66,000のGitHubリポジトリに「WFX stealer」ワークフローを追加しました。トークンとは、パスワードを入力せずに個人またはアプリケーションがアカウント上で行動できるようにする資格情報です。攻撃者が十分な権限を持つ有効なトークンを保持している場合、GitHubはその行動を正当なものとして扱います。

それがワークフローを魅力的な標的にしています。GitHub Actionsのワークフローはリポジトリに保存されるファイルで、自動的に実行され、しばしばプロジェクトがコードのビルド、テスト、デプロイに使用するシークレットにアクセスできます。悪意のあるワークフローはソフトウェアのバグを悪用する必要がありません。GitHubが権限があると信じる誰かによってコミットされさえすれば、パイプライン内で実行されます。

情報源の要約はトークンが元々どのように盗まれたかを詳述しておらず、私たちは推測するつもりはありません。読者にとって重要なのはそのパターンです。パイプライン自体が配送メカニズムとなり、それを解錠する資格情報が真の獲物なのです。

WFX stealerが開発者アカウントから何を露出させ得るか

報道はワークフローを秘密情報窃取型と表現しており、示唆された視点はCI/CDパイプラインが開発者の秘密情報や個人アカウントへの経路になり得ることを指摘しています。実用的に言えば、パイプライン内で実行されるstealerは、そのパイプラインが到達できるあらゆるものに到達できる立場に置かれる可能性があります。そうした情報の典型的な例には以下が含まれます。

  • リポジトリのシークレットとして保存されたAPIキーやクラウド資格情報
  • デプロイトークンやパッケージレジストリの資格情報
  • ワークフローが利用できるその他のGitHubトークン

WFX stealerが収集する正確なデータは、私たちが持つ情報では確認されていないため、上記のリストはこのキャンペーンに関する検証済みの調査結果ではなく、パイプラインのシークレットに共通するリスクのカテゴリーとして扱ってください。より広い懸念は、1つの盗まれたトークンがさらなるトークンの窃取につながり得ることです。あるリポジトリから収集されたシークレットが他のサービスを解錠する可能性があり、これがリポジトリの侵害が個人および組織のアカウントへ広がる仕組みです。

これは私たちが以前にも取り上げたより広いテーマに合致します。人々が信頼することになっているシステムが、彼らに対して向けられるというテーマです。私たちがPixelのゼロクリック脆弱性とMSPへのScreenConnect攻撃を考察した記事も同じ不快な筋を共有しており、信頼されたツールがいかに頻繁に弱点となるかを示しています。

リポジトリが影響を受けたかどうかを確認する方法

特定のリポジトリが影響リストに載っているかどうかはお伝えできませんし、入手可能な報道もそれを公表していません。それでも改ざんの兆候を自分で探すことはできます。

  1. ワークフローファイルを確認する。 各リポジトリの.github/workflowsフォルダを開き、見覚えのないファイルや自分が行っていない編集を探してください。
  2. コミットとプルリクエストの履歴を確認する。 ワークフローに触れた最近のコミットやブランチ、特に見慣れないアカウントや奇妙な時間帯のものを探してください。
  3. Actionsの実行ログを検査する。 予期しない実行、新しいトリガー、外部へのネットワークリクエストを行うステップは、より注意深く調べる価値があります。
  4. セキュリティログと認可済みアプリを確認する。 GitHubの設定で、どの個人アクセストークン、OAuthアプリ、GitHub Appsがアクセス権を持っているかを確認し、使用していないものは削除してください。
  5. 何か見つけたら露出を前提とする。 そのワークフローが読み取れたすべてのシークレットを侵害されたものとして扱い、交換してください。

GitHubの堅牢化:トークン、MFA、サードパーティActions

これらのステップはいずれも奇抜なものではありませんが、組み合わせることで盗まれたトークンができることを減らせます。

トークンをローテーションし、縮小する。 古い個人アクセストークンを取り消し、機能する範囲で最も狭いスコープと最短の有効期限で新しいものを発行してください。特定のリポジトリに限定されたきめ細かいトークンの方が、広範なものより安全です。

多要素認証を有効にする。 MFAはアカウントのログインを保護しますが、盗まれたトークンがログインのステップを完全に迂回する可能性があることを覚えておく価値があります。だからこそトークンの衛生管理が同じくらい重要なのです。

ワークフローの権限を制限する。 デフォルトのワークフロートークンを読み取り専用に設定し、ジョブが本当に必要とする場合にのみ書き込みアクセスを付与してください。ワークフローファイルへの変更がマージされる前にレビューを必須にしてください。例えばブランチ保護やコードオーナーを通じて行えます。

サードパーティActionsを精査する。 Actionsを移動可能なタグではなく特定のコミットに固定し、信頼できるメンテナーによるものを優先してください。必要としないジョブからシークレットを遠ざけてください。

これがあなたにとって意味すること

GitHubで小さなプロジェクトであっても維持しているなら、あなたのワークフローファイルは攻撃対象領域の一部です。盗まれたトークンがあれば、誰かがあなたのシークレットを静かに読み取るワークフローを追加でき、あなたは警告に気づかないかもしれません。個人開発者、オープンソースのメンテナー、自動デプロイを行う企業はすべて対象です。

良い知らせは、防御策があなたの管理下にあり、ほとんど時間がかからないことです。これはまた、攻撃者が人々がすでに信頼しているアカウントやツールを狙うという繰り返しのパターンの一部でもあります。IncransomがTrRAC Inc.への攻撃を主張し、150GBのデータ漏洩を脅迫に関する私たちの報道は別種のインシデントですが、盗まれたアクセスがいかに迅速に実際の被害に変わり得るかを浮き彫りにしています。

実行可能な要点

  • 今日、GitHubトークンをローテーションし、使用しなくなったものは削除してください。
  • リポジトリへのアクセス権を持つすべてのアカウントでMFAを有効にしてください。
  • .github/workflowsファイルに自分が行っていない変更がないか監査してください。
  • ワークフロー権限をデフォルトで読み取り専用に設定し、サードパーティActionsを固定してください。
  • 不審な点を見つけたら、そのワークフローがアクセスできたすべてのシークレットを交換してください。

GitHubの盗まれたトークンとWFX stealerに関する報道はまだ進展中であり、詳細は変わる可能性があります。確認を待たずに自分の設定を整えてください。今日、トークンをローテーションし、MFAを有効にし、ワークフローを監査してください。