Checkmarxのツールを標的としたサプライチェーン攻撃により、開発者の環境がさらされた。
攻撃者は悪意のあるDockerイメージをプッシュし、認証情報などの機密データを窃取できる改ざん済みの拡張機能も展開した。
Team Cymruのサイバー脅威インテリジェンスアドバイザー、Eli Woodward氏は、eSecurityPlanetへの電子メールで「これは、過去1カ月で加速した危険な傾向の継続です。CI/CDパイプラインが新たな境界線になっています」と述べた。
さらに同氏は、「派手なゼロデイ攻撃や巧妙なフィッシングキャンペーンではなく、TeamPCPはテクノロジーエコシステム全体で信頼されたリソースを組織的に悪用しています」と付け加えた。
Checkmarxサプライチェーン攻撃の内部事情
今回の侵害の中心にあるのは、Terraform、Kubernetesなどのクラウド設定ファイルをスキャンしてセキュリティリスクを検出する、広く利用されているツール、Keeping Infrastructure as Code Secure(KICS)だ。
Socketの研究者は、checkmarx/kicsのDocker Hubリポジトリにある公式イメージが攻撃者によって汚染され、同梱されたKICSバイナリに隠れたデータ収集機能が追加されていたことを発見した。
その結果、機密性の高い設定の詳細、認証情報、秘密情報を含むことが多いスキャン結果が、気付かれないまま収集され、攻撃者が管理するインフラへ送信される可能性があった。
KICSはCI/CDパイプラインに組み込まれることが多いため、このリスクはさらに高まる。つまり組織は、通常の自動スキャン中に、知らぬ間に機密性の高いインフラデータをさらしていた可能性がある。
v2.1.20、alpine、debian、latestなど、広く使われていた複数のタグが一時的に悪意のあるイメージへリダイレクトされた後、元に戻された。
また、正規のアップストリームリリースに対応していない不正なv2.1.21タグも追加された。
悪意のあるVS Code拡張機能とペイロードの配信
調査が進むにつれ、インシデントは侵害されたコンテナイメージだけにとどまらないことが明らかになった。
研究者はCheckmarx関連のVS Code拡張機能で不審な挙動を確認し、複数の配布経路にまたがる、より広範で協調的なサプライチェーン攻撃であることを示した。
さらに詳しい分析により、特定の拡張機能のバージョン(特に1.17.0と1.19.0)に、Bunランタイムを使って第2段階のペイロードであるmcpAddon.jsをダウンロードして実行する隠れた機能が含まれていたことが判明した。
このペイロードは、Checkmarxのリポジトリにある日付をさかのぼって操作されたコミットにひも付けられた、ハードコードされたGitHub URLから取得された。攻撃者は信頼されたソースを利用して検知を回避できた。
認証情報の窃取と攻撃の拡散
mcpAddon.jsのペイロードは、GitHubトークン、クラウド認証情報、npm設定、SSHキー、環境変数などの機密データを標的とする、包括的な認証情報窃取ツールとして機能する。
収集されたデータは圧縮・暗号化されたうえで、外部インフラや攻撃者が管理する公開GitHubリポジトリへ流出させられる。被害者のアカウント内で行われることもある。
場合によっては、リポジトリのメタデータやコミットメッセージも、密かなステージング経路として使われていた。
今回のキャンペーンは、巧妙な多段階のソフトウェアサプライチェーン侵害である。
タグの上書きによるDockerイメージの汚染、日付をさかのぼったコミットによるGit履歴の操作、開発者向け拡張機能を介したRCE、CI/CDパイプラインの悪用といった手法を組み合わせている。
マルウェアは盗み出したGitHub認証情報を使い、秘密情報を含むリポジトリを特定し、新たなブランチを作成して、秘密情報をアーティファクトとして抽出する悪意のあるワークフローを注入することで拡散する。
これらのワークフローはコミット時に自動実行され、その後、フォレンジック調査での可視性を下げるために削除される。これにより、攻撃はリポジトリ、組織、パイプラインをまたいで拡大できる。
攻撃者の特定と広範な影響
研究者は攻撃チェーンが実際に機能することを確認しているが、作戦の一部については現在も調査が続いている。
TeamPCPとして知られる脅威アクター集団が犯行声明を出している。
今回のキャンペーンは、Checkmarxのツールだけにとどまらない可能性もある。
別の調査結果によると、Bitwarden CLIも同様のGitHub Actions経由の手法で侵害されており、開発者向けツールとCI/CDパイプラインを標的とした、より広範なサプライチェーン攻撃であることがうかがえる。
Socketの研究チームは、Bitwardenのインシデントについても調査を続けている。
サプライチェーンのリスクを低減する方法
組織は今回のインシデントを、単独のツールの問題ではなく、サプライチェーンと認証情報の露出に関する問題として扱うべきだ。
直ちに封じ込めることは重要だが、長期的なリスク低減には、CI/CDパイプライン、依存関係、アイデンティティ管理全体の統制を強化する必要がある。
- 影響を受けたCheckmarxのDockerイメージをすべて削除し、拡張機能や関連アーティファクトも削除したうえで、不変ダイジェストを指定した検証済みの信頼できるバージョンに置き換える。
- 露出した可能性のある認証情報をすべてローテーションし、GitHubトークン、クラウド認証情報、npmトークン、SSHキー、CI/CDの秘密情報などを対象とし、可能な場合は短期間またはジャストインタイムの認証情報へ移行する。
- GitHubとCI/CD環境を監査し、権限のないリポジトリを特定し、注入されたワークフロー、不審な実行、予期しないアーティファクトの生成やダウンロードがないか確認する。
- ワークフローの作成を制限してCI/CDパイプラインを強化し、トークンの権限を制限し、最小権限を徹底するとともに、新規または変更されたワークフローには承認を必須とする。
- エンドポイントを監視し、ビルドシステムとクラウド環境で異常な挙動(Bunなどによる予期しないランタイム実行、認証情報へのアクセス、異常なトークン使用を含む)がないか確認する。
- サプライチェーンのセキュリティを強化し、依存関係を固定し、アーティファクトを検証し、レジストリの許可リストを適用するとともに、可視性を確保するためのSBOM追跡を実施する。
- インシデント対応計画をテストし、サプライチェーン攻撃のシナリオを用いて、検知、封じ込め、復旧の能力を検証する。
こうした対策を講じることで、組織はサプライチェーン攻撃へのレジリエンスを高め、侵害が発生した場合も被害の拡大範囲を抑えられる。
サプライチェーン脅威へのシフト
今回のインシデントは、攻撃者の関心がソフトウェアサプライチェーンへと広がっていることを示している。信頼されたツールを侵害すれば、単一の侵入口から複数の環境へアクセスできるためだ。
また、認証情報を利用した攻撃への注目が高まっていることも浮き彫りにした。盗まれたトークン、キー、秘密情報によって、システム、パイプライン、クラウド環境をまたいだ永続化と横展開が可能になる。
ゼロトラストソリューションを導入して、信頼を管理し、サプライチェーンインシデントの被害範囲を限定する。

