脅威データベース マルウェア CanisterWormマルウェア

CanisterWormマルウェア

当初は広く利用されているTrivyスキャナーを標的とした高度なサプライチェーン攻撃が、多数のnpmパッケージに影響を与えるより広範な侵害へとエスカレートした。この攻撃の背後にいる攻撃者は、これまで報告されていなかった自己増殖型ワーム「CanisterWorm」を配備した疑いがあり、これにより侵入の規模と影響が大幅に拡大した。

このマルウェアは、コマンドインフラストラクチャの一部として、分散型ブロックチェーン上にホストされた改ざん耐性のあるスマートコントラクトであるインターネットコンピュータプロトコル(ICP)キャニスターを使用していることからその名が付けられました。これは、ICPキャニスターがコマンド&コントロール(C2)エンドポイントの取得に武器として利用されたことが公に記録された最初の事例であり、従来の対策を困難にする斬新かつ強固な戦術を提示しています。

侵害されたパッケージと初期アクセス経路

今回の攻撃は、様々な範囲にわたる複数のnpmパッケージに影響を与え、ソフトウェアサプライチェーンにおける広範囲な影響範囲を示している。

  • @EmilGroup のスコープ下にあるパッケージは 28 件です。
  • @opengov のスコープ下にある 16 パッケージ
  • @teale.io/eslint-config、@airtm/uuid-base32、@pypestream/floating-ui-dom などの追加パッケージ

今回の攻撃は、認証情報漏洩事件の直後に発生したもので、攻撃者はTrivy関連ツール(具体的にはtrivy、trivy-action、setup-trivy)の悪意のあるバージョンを公開し、これらのツールには認証情報を盗む機能が組み込まれていた。この攻撃は、TeamPCPと呼ばれるクラウド関連のサイバー犯罪グループと関連していると考えられている。

感染ワークフローと分散型コマンドインフラストラクチャ

感染経路はnpmパッケージのインストールプロセス中に始まり、インストール後のスクリプトによってローダーが実行されます。このローダーは、ICPキャニスターと通信するように設計されたPythonベースのバックドアをデプロイします。キャニスターはデッドドロップリゾルバーとして機能し、感染したシステムが次の段階のペイロードをダウンロードして実行するためのURLを返します。

ICPインフラストラクチャの分散型構造は、攻撃者にとって大きな利点となる。キャニスターはペイロードURLを動的に更新できるため、攻撃者は展開済みのマルウェア自体を変更することなく、感染したすべてのシステムに新たな悪意のあるバイナリを配布できる。このアーキテクチャは、テイクダウン作業を著しく困難にする。

持続メカニズムとステルス技術

永続性は、悪意のあるプロセスを自動的に再起動するように構成されたsystemdユーザーサービスを作成することによって実現されます。主な特徴は次のとおりです。

  • Restart=always ディレクティブにより自動再起動が強制されます
  • バックドアが終了した場合に再起動するまでに5秒の遅延が発生します。
  • 「pgmon」という名前で、正規のPostgreSQL監視ソフトウェアを装ったサービス

この手法は、正規のシステムサービスに溶け込むことで、検出される可能性を最小限に抑えつつ、継続的な運用を保証します。

適応型ペイロード配信とキルスイッチ動作

バックドアは、疑念を避けるために偽装したブラウザのユーザーエージェントを使用して、50分ごとにICPキャニスターと定期的に通信します。返されたURLによって、次のアクションが決まります。

  • URLが有効なペイロードを指している場合、マルウェアはそれをダウンロードして実行します。
  • URLに「youtube.com」が含まれている場合、マルウェアは休眠状態に入ります。

この仕組みは、実質的にリモートキルスイッチとして機能します。攻撃者は、キャニスターのURLを無害なYouTubeリンクと悪意のあるペイロードの間で切り替えることで、感染したすべてのシステムでマルウェアを有効化または無効化できます。特筆すべきは、マルウェアは以前のプロセスを終了させないため、以前に実行されたペイロードはバックグラウンドで実行され続けることです。

同様のYouTubeベースのキルスイッチは、トロイの木馬化されたTrivyバイナリ(バージョン0.69.4)でも確認されており、これは別のPythonドロッパーを介して同じICPインフラストラクチャと通信する。

ワームの機能と自動増殖

当初、攻撃の拡散はdeploy.jsという手動実行スクリプトに依存しており、このスクリプトは盗まれたnpm認証トークンを利用して、アクセス可能なパッケージに悪意のあるコードを注入していた。このスクリプトはインストール時に実行されるのではなく、攻撃範囲を拡大するための独立したツールとして機能していた。

CanisterWormのその後の派生バージョンは大きく進化しました。@teale.io/eslint-configに含まれるバージョン1.8.11および1.8.12などの新しいバージョンでは、ワームはパッケージのインストールプロセスに直接自己増殖機能を組み込んでいます。更新されたメカニズムには以下が含まれます。

  • 感染環境からnpm認証トークンを抽出する
  • 伝播ルーチンを独立したバックグラウンドプロセスとして即座に実行する
  • 収集した認証情報を使用して侵害されたパッケージを自動的に公開する

この変化により、攻撃は手動で行われるキャンペーンから、完全に自律的な拡散システムへと変貌する。

自己持続的なサプライチェーン脅威へのエスカレーション

自動トークン収集と自己増殖の導入は、重大なエスカレーションを意味します。侵害されたパッケージをインストールし、アクセス可能なnpm認証情報を含む開発者ワークステーションやCI/CDパイプラインは、すべてアクティブな増殖ノードとなります。これにより、感染したパッケージが下流の依存関係全体にさらなる感染を引き起こすという連鎖的な影響が生じます。

この段階になると、脅威は単なるアカウント侵害にとどまらず、マルウェア拡散の自己持続的なエコシステムへと進化します。新たに感染した環境はそれぞれ拡散に寄与し、指数関数的な成長を可能にし、封じ込めを著しく困難にします。

さらに懸念されるのは、プレースホルダーペイロード(「hello123」)などのテストアーティファクトが存在することから、攻撃者が完全に動作する悪意のあるバイナリを展開する前に、攻撃チェーンを積極的に改良および検証していることが示唆される点である。

トレンド

最も見られました

読み込んでいます...