Gheist攻撃者、盗んだGitHubトークンの悪用に失敗

GitHubリポジトリを狙った最近の攻撃キャンペーンが、思うように進んでいないことが分かりました。攻撃者は盗んだアクセストークンを使い、複数のリポジトリにまたがる1万3500以上のブランチに、シークレットを盗み出すワークフローを仕込んでいました。

Wizが10月25日に公開した調査によると、同社は「Gheist」と名付けたこのキャンペーンを9月15日から追跡してきました。侵害された850以上のアカウントから、問題のブランチを回収したということです。攻撃の対象は、盗んだトークンでアクセスできるすべてのリポジトリで、個人プロジェクトから企業の非公開リポジトリまで幅広く及んでいました。

Wizによると、トークンの入手元は情報窃取型マルウェア(インフォスティーラー)のログと、過去のサプライチェーン侵害です。後者には、3月に起きたセキュリティスキャナー「Trivy」の侵害などが含まれます。一部のアカウントは、マルウェアの配布や暗号資産のマイニングにも使われていました。

ワークフローを使った手口、GitHubの承認保留に阻まれる

攻撃者はトークンを使ってブランチを作成し、リポジトリのシークレットを自らのログに出力するGitHub Actionsのワークフローをコミットしていました。その後、GitHubのアプリケーションプログラミングインターフェース(API)経由でログをダウンロードし、数秒後には実行履歴を削除しています。このためキャンペーンでは、外部のコマンド&コントロール(C2)サーバーが不要でした。

キャンペーン最大の障害となったのが、7月28日に導入されたGitHubの制御機能です。この機能は、公開リポジトリで悪意がある可能性のあるワークフローの実行を、コラボレーターが承認するまで保留にします。Wizによると、調査したGheistの公開リポジトリ上の実行は、すべての亜種でaction_required状態のままでした。そのため、悪意あるワークフローは実行されませんでした。

ただし、この保護は非公開リポジトリやGitHub Enterprise Serverには適用されません。Wizは、こうした環境では攻撃者が作成したブランチ上でワークフローが完了し、その後に実行履歴が削除されていたことを確認しています。

盗まれたサプライチェーンのシークレットについて詳しくはこちら:TeamPCP Explores Ways to Exploit Stolen Supply Chain Secrets

非公開リポジトリは依然として無防備

企業の組織では、攻撃者がユーザーアカウントや自動化アカウントのトークンを次々に使い回し、非公開リポジトリをクローンする様子が確認されました。数時間後には、同じ組織のクラウド認証情報を使って、Amazon Web ServicesのSecrets Managerの列挙が行われています。

ツールには2つの亜種があり、並行して動作していました。一方はデプロイ環境のサポートを追加しており、環境単位のシークレットを露出させます。これらは多くの場合、本番環境の認証情報です。この亜種は後に、セルフホストランナーから認証情報やその他の機密ファイルを探すジョブも備えました。ただしWizは、このジョブを「バグが多い」と評しています。

10月24日時点で、関与が疑われるアカウントの約3分の2がGitHub上で利用できなくなっていました。Wizは、同社がキャンペーンをGitHubに報告した後の対応が反映されたものとみています。一方で研究者らは、Gheistは現在も続いており、進化を続けていると指摘しています。

このキャンペーンは、盗まれたGitHubトークンによって、正規の自動化機能が認証情報の窃取手段に変わりうることを示しています。また、プラットフォーム側の新たな制御で悪用の一部は阻止できるものの、認証情報の侵害という根本的なリスクはなくならないことも浮き彫りにしました。

翻訳元: https://www.infosecurity-magazine.com/news/gheist-attackers-abuse-stolen/

本記事は infosecurity-magazine.com の記事を翻訳・要約したものです。