GlassWormに関連するソフトウェアサプライチェーン攻撃のキャンペーンで、一見無害なVisual Studio Code(VS Code)のカラーテーマが悪用されました。攻撃者はこれらを通じて、Visual Studio MarketplaceとOpen VSX Registryの両方に悪意のあるローダーを配布していました。
この事例は、エディターの配色を変えるだけのはずの拡張機能が、不要な実行可能JavaScriptを含むことで、影響の大きい初期侵入の経路になり得ることを示しています。
問題の2つの拡張機能は、いずれも洗練された見た目のカスタマイズ用テーマを装っていました。しかしテーマは本来、宣言的な設定ファイルだけで動作するにもかかわらず、実行可能なコードが含まれていました。
研究者らは、Gitの履歴、再利用されたソースコード、そして特徴的なロシア語のコメントから、この2つのプロジェクトが過去に削除された悪意のある拡張機能「Aurora Nocturne Night Theme」と関連していることを突き止めました。
以前のパッケージは、ゼロ幅Unicode文字によるエンコードなどを用いて、高度に難読化されたJavaScriptペイロードでWindows向けダウンローダーを隠蔽していました。
有効化されると、このダウンローダーはfingercakes4sale[.]storeに接続し、攻撃者が用意した内容を%TEMP%\temp_batch.cmdに書き込み、cmd.exeでサイレント実行します。
こうした動作は、カラーテーマには本来まったく不要です。VS Codeのテーマに期待されるのは、構文の強調表示やインターフェースの色、エディターの外観を変更することであり、スクリプトのダウンロードやコマンドファイルの作成、システムプロセスの起動ではありません。
調査はMicrosoftのマーケットプレイスにとどまらず、Open VSX上でクラスターに関連する6つの拡張機能のIDを特定しました。これにはCoca-Cola Christmas、Aurora Borealis Studio Theme、Cosmic Nebula Themesの各バージョンが含まれます。
SocketはVisual Studio Marketplace版のCosmic Nebula Themesを分析し、GlassWormキャンペーンに結びつく多段階のマルウェアローダーであることを高い確度で確認しました。
Cosmic Nebula Themesは実行可能なJavaScriptのエントリーポイントを宣言しており、VS Codeを起動するたびに有効化されます。
このローダーは、埋め込まれた次段階のコードをAES-256-CBCで復号し、eval()で実行します。実行を続ける前に、ロシア語環境やロシアのタイムゾーンかどうかも確認します。
続いてマルウェアはSolanaのトランザクションメモを照会し、次のペイロードの配信インフラを動的に取得します。これにより運営者は、新しい拡張機能バージョンを公開しなくても、C2(コマンド&コントロール)サーバーの接続先を切り替えられます。
ローダーにはSolanaアドレスBjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SCが含まれていました。AES鍵と実行モデルも、過去のGlassWormの攻撃で確認されたものと同じです。
復元された第2段階のコードは、攻撃者が管理するJavaScriptを取得し、メモリ上で実行できます。その際、Node.jsの機能であるrequire、Buffer、process、タイマーをペイロードに公開します。
Socket Threat Researchが特定した2つの不審なテーマは、調査時点でもVisual Studio Marketplaceで公開が続いていました。Coca-Cola ChristmasとAurora Borealis Studio Themeです。
GlassWormのサプライチェーン攻撃
このキャンペーンでは、技術的な隠蔽とソーシャルエンジニアリングを組み合わせていました。Coca-Cola Christmasは世界的に知られた消費者ブランドを利用し、Aurora Borealis Studio Themeは、以前から存在する正規のAurora Borealis拡張機能に似せるか、検索結果で埋もれさせる狙いがあったとみられます。
こうしたブランドの乗っ取りや名前の便乗によって、見慣れないパッケージでも、開発者が発行元やソースリポジトリ、実行時の挙動を確かめる前に、信頼できるものに見えてしまいます。
Socketはさらに、Coca-Cola Christmas、Aurora Nocturne Night Theme、Aurora Borealis Studio Themeの間で、共通のGitアイデンティティが使われていることも突き止めました。
各リポジトリには、正規化するとほぼ同一になるテーマ定義、繰り返し現れるロシア語のセクションマーカー、ウェルカムページや初回起動時の動作に使われる酷似したapp.jsの骨組みが含まれていました。
これらの開発上の痕跡により、ペイロードが有効でない場合でも、各プロジェクトの関連性が裏付けられます。
研究者らは、調査したバージョンのCoca-Cola ChristmasとAurora Borealis Studio Themeは、まだ攻撃用に武器化されていなかったと指摘しています。
ただし、どちらも一般的なテーマには不要な実行機能を残しており、悪意があると確認された拡張機能を少なくとも2つ含むクラスターと関連していました。
Coca-Cola ChristmasとAurora Borealis Studio Themeは、合計でMarketplaceでのインストール数が8,000件を超えていました。関連するOpen VSXのパッケージも、数万件のダウンロードを集めています。
Microsoftは、Socketからの報告を受けて、問題のあったVisual Studio Marketplaceの拡張機能を削除しました。
Microsoftによると、社内の検知やコミュニティからの報告で見つかったマルウェアは直ちに削除されます。削除されたVS Code拡張機能は、エディター上でブロックすることも可能です。これにより、今後のインストールを防ぎ、すでにインストールされているものも強制的に削除できます。
今回の事件は、サプライチェーンセキュリティの重要な教訓を改めて示しています。マーケットプレイスでの評判や洗練されたブランディング、無害に見える公開リポジトリがあっても、配布される拡張機能パッケージが安全だとは限りません。
Aurora Nocturneの場合、公開されていたソースは無害に見えましたが、実際にインストールされるMarketplace上の成果物には、難読化された実行時ローダーが含まれていました。
組織は、Visual Studio Marketplace、Open VSX、Cursor互換環境、その他のVS Code派生エディターにわたり、テーマを含むすべての開発者向け拡張機能を棚卸しすべきです。
セキュリティチームは、package.json、アクティベーションイベント、宣言されたエントリーポイント、同梱のJavaScript、ネットワークアクセス、プロセス実行、実行時の復号、バージョン間の変更点を点検する必要があります。
GlassWormはすでに、拡張機能のエコシステムを使って、開発者の認証情報、セッション情報、暗号資産ウォレット、クラウドトークン、SSH鍵、CI/CDのシークレットを狙えることを実証しています。
IOC(侵害指標)
| 指標の種類 | 値 |
|---|---|
| ファイル | out/extension.js |
| SHA-256 | 5e68ca8c2097caccdb74d2752b85b85595a4bf646b442b8431a2416e87dbf268 |
| ドメイン | fingercakes4sale[.]store |
| ペイロードURL | hxxps://fingercakes4sale[.]store/dsyuC |
| ドロップされたファイル | %TEMP%\temp_batch.cmd |
注: IPアドレスとドメインは、誤って名前解決されたりハイパーリンク化されたりするのを防ぐため、意図的に無害化(デファング)しています(例: [.])。元の形式に戻すのは、MISP、VirusTotal、SIEMなど、管理された脅威インテリジェンスプラットフォーム内に限ってください。
SOCのアラート調査を1件あたり21分短縮。IOCの背景情報を即座に得て、迅速な対応を実現します。 SOCにTI Lookupを導入する
翻訳元: https://gbhackers.com/glassworm-supply-chain/