GlassWormがネイティブ化:同じインフラ、強化された配布

GlassWormが戻ってきました。またしても。10月にこのキャンペーンを初めて暴露して以来、2つの波、45,000人超の被害者、そして諦めない攻撃者を確認しています。

前回の公開後、数週間は静かでした。ところが11月22日、見覚えのあるSolanaウォレットが新しいトランザクションと新しいC2 IPで再び動き出しました。そして数日以内に、悪意のある拡張機能が再び出現し始めました。

しかし、この波は違います。

最初のレポートで暴いた不可視Unicodeの手法は? 完全に消えました。

代わりに、コンパイルされたRustバイナリを発見しました。不可視文字から解析したあらゆる機能――SolanaのC2参照、AES復号、ペイロードのステージング――が、もはや単純にデコードできないネイティブコードとしてコンパイルされています。何が起きているかを見るには、Rustバイナリをリバースエンジニアリングする必要があります。

今回はOpenVSXにとどまらず、Microsoft公式のVSCodeマーケットプレイスも標的に拡大し、まずクリーンな拡張機能を公開してから、更新でマルウェアを混入させています。

ウォレットと攻撃チェーンは同じままですが、ペイロードはネイティブバイナリの中に隠されるようになりました。

人気のvscode-icons themeになりすます拡張機能Iconesvscodeを見てみましょう:

Image

Koidex上の偽Iconesvscode拡張機能

Image

Koidex上の本物のvscode-icons拡張機能

バージョン12.15.0は? クリーンです。22,765行のJavaScriptからなる正当なアイコンテーマで、アイコンテーマが行うべきことをそのまま実行しています。

しかし、バージョン12.15.1と12.15.2が出ると、コードベース全体が次の内容に置き換えられました:

Image

Rustバイナリローダー

残ったのは33行だけ。アイコンテーマの機能はなく、OSを検出してネイティブバイナリを実行するバイナリローダーだけです。

これらの.nodeファイル――macOS向けのdarwin.node、Windows向けのos.node――はRustバイナリで、すべてがそこに含まれています。

バイナリの中身

各拡張機能には、これらのネイティブバイナリが同梱されています 

構造:

  • Rustベース(プロジェクト名は文字通りrust_implant
  • Windows(os.node)とmacOS(darwin.node)で別ビルド
  • 各約2.4MB
  • Node.jsアドオン形式

機能:

  • Solanaブロックチェーンを照会してC2指示を取得
  • ペイロードを取得して復号(Base64、AES-256-CBC)
  • Googleカレンダーのフォールバックを内蔵

開発者の痕跡:

macOSバイナリには次のようなパスが含まれています:

/Users/davidioasd/Downloads/rust_implant/target/release/deps/librust_implant.dylib

/Users/davidioasd/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/http-body-util-0.1.3/src/combinators/collect.rs

このdavidioasdという文字列は、最初の波のバイナリで見たパターンと一致します。同じ開発者、同じキャンペーン、数週間の間隔です。

今後

拡張機能はすべて削除されました。

Solanaウォレットは依然として存在し、攻撃者のインフラも稼働したままです。そして彼らは、削除対応では長く止まらないことをすでに2回示しています。

私たちは監視を継続しています。このパターンからすると、これが最後の波ではないでしょう。

IOCs

拡張機能

OpenVSX:

  • bphpburn.icons-vscode
  • clangdcode.clangd-vscode
  • csvmech.csv-sql-tsv-rainbow
  • cweijamysq.sync-settings-vscode
  • eamodas.shiny-vscode
  • flutcode.flutter-extension
  • iconkief.icon-theme-material
  • msjsdreact.react-native-vscode
  • saoudrizvsce.claude-dev
  • saoudrizvsce.claude-devsce
  • solblanco.svelte-vscode
  • svltsweet.svetle-for-cursor
  • tailwind-nuxt.tailwindcss-for-react
  • vitalik.solidity
  • yamlcode.yaml-vscode-extension

Microsoft VSCode:

  • bphpburnsus.iconesvscode
  • iconkieftwo.icon-theme-materiall
  • clangdcode.clangd-vsce
  • codevsce.codelldb-vscode
  • csvmech.csvrainbow
  • cweijamysq.sync-settings-vscode
  • dart-vsc.code-dart
  • flutcode.flutter-extension
  • klustfix.kluster-code-verify
  • lyywemhan.code-formatter-and-minifier-vscode
  • msjsdreact.react-native-vsce
  • prettier-vsc.vsce-prettier
  • prisma-inc.prisma-studio-assistance
  • redmat.vscode-quarkus-pro
  • saoudrizvsce.claude-devsce
  • solblanco.svetle-vsce
  • vims-vsce.vscode-vim
  • vsceue.volar-vscode
  • yamlcode.yaml-vscode-extension

Rustインプラント(SHA-256)

darwin.node

  • 026873b940176d103d45b41c9fba73f14cfcaca60e3117be81d2eadef85a4d17
  • 9bd105ce732218f30719fd69d4555967b362d37f4f6aec04741c18aaa7411a73
  • fb07743d139f72fca4616b01308f1f705f02fda72988027bc68e9316655eadda

os.node

  • cbb3f830731fe2c9194f7fe5aa55479cffdae184039b0df078b1394209d7a49f
  • 29875e74f033c819c1acab58ef08bc35646aab5f4a2747ee0933ca41150d7099
  • 6ebeb188f3cc3b647c4460c0b8e41b75d057747c662f4cd7912d77deaccfd2f2

コマンド&コントロール:

  • 217.69.13.229
  • 45.76.45.151
  • 45.32.151.157
  • 107.191.62.170
  • 104.238.191.54(持ち出しサーバー)
  • 108.61.208.161(持ち出しサーバー)

翻訳元: https://www.koi.ai/blog/glassworm-goes-native-same-infrastructure-hardened-delivery

ソース: koi.ai