WaterPlumが「StoatWaffle」マルウェアをVSCode供給チェーン攻撃で発表

北朝鮮に関連した脅威グループWaterPlumは、進行中のContagious Interviewキャンペーンの一環として、「StoatWaffle」と呼ばれる新しいマルウェア亜種を導入しました。

このアクティビティはWaterPlum内のサブグループであるTeam 8に起因しており、MoralisまたはModilusクラスタとしても追跡されています。

このチームは以前OtterCookieマルウェアに関連していましたが、2025年12月以来、研究者は新たに開発されたツールセットへの明確なシフトを観察しています。

攻撃は、正当なブロックチェーン関連プロジェクトに偽装した悪意のあるリポジトリで始まります。このリポジトリ内では、攻撃者は特別に細工されたtasks.jsonファイルを含む隠された.vscodeディレクトリを含めています。

このファイルは「runOn」設定を悪用し、その値を「folderOpen」に設定します。その結果、被害者がVSCodeでリポジトリを開いて信頼すると、定義済みのタスクがさらなる対話なしに自動的に実行されます。

レポートによると、キャンペーンはVisual Studio Code(VSCode)などの信頼された開発環境を悪用することで、特にブロックチェーンプロジェクトに関与する開発者をターゲットにし続けています。

Image

このスクリプトは環境チェックを実行し、攻撃チェーンの永続性を確保します。まずシステムにNode.jsがインストールされているかどうかを確認します。インストールされていない場合は、公式ソースからNode.jsをダウンロードしてインストールし、異なるオペレーティングシステム間での互換性を確保します。

Node.jsが利用可能になると、スクリプトはenv.nplとpackage.jsonの2つの追加ファイルをダウンロードします。その後、env.nplを実行し、StoatWaffleマルウェアフレームワークへの遷移をマークします。

StoatWaffleローダーメカニズム

トリガーされたタスクはVercelホストのウェブアプリケーションからペイロードデータをダウンロードします。ペイロードはcmd.exeを介して実行され、vscode-bootstrap.cmdという名前のセカンダリスクリプトを取得するシンプルなダウンローダーとして機能します。

Image

サーバーがエラーステータスで応答した場合、返されたコンテンツは実行可能なNode.jsコードとして扱われます。

数分間のポーリング後、ローダーは第2段階のペイロードを受け取ります。この第2ダウンローダーは同様の動作をしますが、異なるエンドポイント「/api/handleErrors」と通信し、C2サーバーから配信されたコマンドを実行し続けます。

分析中、研究者は第2段階が盗み取りモジュールとリモートアクセストロイの木馬(RAT)の両方を迅速に配置することを観察し、モジュール化された柔軟なマルウェアアーキテクチャを示しています。

env.nplファイルはStoatWaffleの初期ローダーとして機能します。5秒ごとにエンドポイント「/api/errorMessage」をポーリングすることで、コマンドアンドコントロール(C2)サーバーとの通信を確立します。

Image

盗み取りモジュールは複数のソースから機密データを抽出するように設計されています。ウェブブラウザに保存されている認証情報をターゲットにし、ブラウザ拡張機能からデータを収集します。

Chromiumベースのブラウザの場合、マルウェアは保存された認証情報と共に拡張機能データを収集します。Firefox環境では、extensions.jsonファイルを解析して、特定のキーワードに基づいてターゲット拡張機能を識別した後、関連データを抽出します。

macOSシステムでは、マルウェアはKeychainデータベースまでその範囲を拡張し、侵害の影響をさらに増加させます。

収集されたデータはランダム化されたファイル名を使用して一時ディレクトリにステージングされた後、「/upload」エンドポイント経由でC2サーバーにアップロードされます。さらに、インストールされたソフトウェアを含むシステムプロファイリングデータは、セカンダリエンドポイント「/uploadsecond」に送信されます。

注目すべき機能は、Windows Subsystem for Linux(WSL)への認識です。WSL環境内で実行された場合、マルウェアはwslpathを使用してWindowsファイルパスをLinux互換パスに変換し、Linux環境内からWindowsユーザーデータへのアクセスを可能にします。

リモートアクセス機能

RATモジュールは感染したシステムに対する永続的な制御を提供します。これは継続的にC2サーバーと通信し、「/api/hsocketNext」からコマンドを取得し、「/api/hsocketResult」に実行結果を送信します。

Image

これにより、攻撃者は任意のコマンドを実行し、長期的なアクセスを維持し、侵害された環境に対する制御を拡張することができます。

StoatWaffleの導入はWaterPlumの戦術の進化を強調しており、特に開発者エコシステムとVSCodeのような信頼されたツールへの焦点を示しています。

一見正当なリポジトリ内に悪意のある設定を埋め込くことで、攻撃者は従来のセキュリティ認識を効果的に回避します。

このキャンペーンは、開発ワークフロー内の供給チェーン攻撃のリスク増加を強調しており、特にブロックチェーンのような高価値セクターでは、共有コードリポジトリへの信頼が重要です。

翻訳元: https://gbhackers.com/stoatwaffle-malware/

ソース: gbhackers.com