新たなnpmワームが出現:IronWormとMiasma亜種が開発者の秘密情報とAIツールを標的に
**npm**エコシステムは、高度なソフトウェアサプライチェーン攻撃の標的となっています。研究者たちは、**Rust**ベースの情報窃取マルウェア「**IronWorm**」と、検知が困難な新しい**Miasma**ワームの亜種という、2つの異なるキャンペーンを発見しました。両方の脅威は、開発者の認証情報侵害、悪意のあるコードの注入、開発環境やリポジトリ全体での自己拡散を目的としています。
最近、複数のソフトウェアサプライチェーン攻撃が**npm**エコシステムを襲い、攻撃者は50以上の正規パッケージの悪意のあるバージョンや汚染されたバージョンを配布しています。これらのキャンペーンは、**Rust**ベースの情報窃取マルウェアと自己拡散型ワームを配布することを目的としており、ITセキュリティ担当者やプライバシーを重視するユーザーに重大なリスクをもたらしています。

## IronWormの台頭
セキュリティ企業**JFrog**は、**IronWorm**とコードネームが付けられた**Rust**ベースの情報窃取マルウェアについて詳細を明らかにしました。この高度なマルウェアは、開発者のマシン上のあらゆる秘密情報を収集するように設計されており、ステルス性を高めるために**eBPF**カーネルルートキットを使用し、**Tor**経由でオペレーターと通信します。
**IronWorm**は、悪名高い**Shai-Hulud**ワームに類似した手法で、窃取した認証情報を拡散メカニズムとして利用します。トロイの木馬化されたパッケージを通じて**npm**レジストリに自身を公開することで、自己複製型の攻撃ベクトルを実現します。
悪意のある活動は、侵害された**npm**アカウント「asteroiddao」にまで遡ることができ、このアカウントは`preinstall`フックを介して実行される**Rust** ELFバイナリを含むパッケージバージョンを公開していました。このマルウェアは、86個の環境変数と、**OpenAI Codex**、**Anthropic**、**Claude**、**Google Gemini**、**Cursor**、**Amazon Web Services (AWS)**、**Docker**、**Kubernetes**、**npm**、Vault設定、**Exodus**暗号通貨ウォレットファイルなどのサービスに対する認証情報を含む可能性のある様々なファイルを標的にしています。
特異な点として、この窃取マルウェアは、攻撃者自身の暗号通貨ウォレットをスキップするロジックを備えており、現時点では記録されたトランザクションはありません。
**JFrog**は**IronWorm**を「秘密情報を見つけ、プロジェクトを変更し、悪意のあるコードを注入して**GitHub**全体で自己拡散するためのサプライチェーン武器」と説明しています。9つの**GitHub**組織にまたがる悪意のあるコミットは、「claude」([email protected])という作者名で導入されており、**Anthropic**のAIチャットボットを模倣しようとしたものと見られます。
さらに分析を進めた結果、侵害された`asteroiddao` **npm**アカウントは`asteroid-dao` **GitHub**組織に対応し、`ocrybit`がメンバーであることが判明しました。このマルウェアは`ocrybit`の認証情報を窃取し、それを使用してアクセス可能なリポジトリ全体にコミットをプッシュし、他のパッケージにマルウェアを仕込んで下流への感染を広げていました。
このペイロードは、既存の**GitHub Actions**ワークフローを、秘密情報を収集し、無害に見えるファイルに書き込み、ビルド成果物としてアップロードできるものに置き換える機能も備えており、外部のコマンド・アンド・コントロール(C2)サーバーを必要としません。**CI環境**では、**npm**の**Trusted Publishing flow**を悪用して一時的なトークンを取得し、汚染されたバージョンをレジストリにプッシュします。また、このマルウェアはカーネルレベルのルートキットとして機能する**eBPF**ペイロードを組み込んでプロセスを隠蔽しますが、カーネルロックダウンが有効なシステムでは機能しません。
## Miasmaワームが再び出現
同時に、**Endor Labs**と**StepSecurity**は、別のサプライチェーン攻撃キャンペーンを明らかにしました。このキャンペーンでは、286以上の悪意のあるバージョンにわたる57個の**npm**パッケージが侵害され、**Miasma**ワームの新しい亜種が配布されました。このワームは以前、72秒以内に`@redhat-cloud-services` **npm**名前空間内の32個のパッケージ、90以上のバージョンに感染していました。
影響を受けたパッケージの一部は以下の通りです。
* `ai-sdk-ollama`
* `autotel`
* `awaitly`
* `effect-analyzer`
* `eslint-plugin-awaitly`
* `executable-stories-cypress`
* `http-uploader-dev`
* `mountly`
* `node-env-resolver`
* `node-env-resolver-aws`

このキャンペーンで窃取されたデータは、現在アクセス不能な**GitHub**アカウント`liuende501`に流出し、236のリポジトリがステージングされていました。アカウントの削除元(GitHubまたは攻撃者)は不明です。
**StepSecurity**の研究者Sai Likhithは、「**Phantom Gyp**」と呼ばれる新しい技術を強調しました。攻撃者は、一般的に監視されている`preinstall`または`postinstall`ライフサイクルスクリプトに依存するのではなく、157バイトの`binding.gyp`ファイルを悪用して、`npm install`中にコード実行をトリガーし、多くのセキュリティチェックを回避します。
以前の**Miasma**インシデントと同様に、この攻撃チェーンは**Bun JavaScriptランタイム**をダウンロードしてインストールし、それを使用して包括的な認証情報ハーベスターをロードします。このハーベスターは、**AWS**、**Google Cloud**、**Microsoft Azure**、**HashiCorp Vault**、**Docker**、**Kubernetes**、**GitHub Actions**、**npm**、**RubyGems**、**PyPI**、**SSH**、パスワードマネージャー、AIアシスタントから秘密情報を抽出するように調整されています。
「この亜種の最も新規で懸念される機能は、AIコーディングアシスタントの設定を標的にしていることです」と**StepSecurity**は述べています。このマルウェアは、開発者がAI支援IDEでプロジェクトを開くたびに実行される、永続的なバックドアファイルをプロジェクトリポジトリに注入します。
影響を受けたバージョンをインストールした開発者は、認証情報のローテーション、インストールスクリプトとネイティブリビルドのデフォルトでの無効化、およびパッケージの整合性ハッシュによるピン留めを強く推奨します。
**Red Hat**は、以前の**Miasma**サプライチェーンインシデントの根本原因は、**RedHatInsights** **GitHub**組織内のリポジトリに不正なコミットをプッシュするために使用された、侵害された**GitHub**アカウントであった可能性が高いと明らかにしました。
**Microsoft**のキャンペーン分析では、「ペイロードはLinux、macOS、Windowsで動作し、各プラットフォームに適した**Bun**ランタイムを動的にダウンロードしましたが、Linux CI/CDランナーが主な標的であったようです。」と指摘しています。開発者システムでは、マルウェアは**SSH**キー、コマンドラインインターフェイス(CLI)認証情報、ブラウザおよびウォレットデータを窃取しました。CI/CD環境では、**GitHub Actions**ランナーメモリから秘密情報を収集し、パスワードなしの`sudo`を使用して権限を昇格させ、偽造された**Supply-chain Levels for Software Artifacts (SLSA) provenance**で汚染されたパッケージを再公開して下流への拡散を継続しました。
## 進化する攻撃チェーンと永続性
**Miasma**ペイロードは、以前**TeamPCP**が他のキャンペーンで使用していた**Shai-Hulud**ワームの派生物であると考えられており、主に外見上の変更が加えられています。**TeamPCP**が**Shai-Hulud**のコードを公開したため、最近の攻撃の帰属は不明瞭なままです。

**OX Security**は、**Miasma**攻撃チェーンの追加ステージを発見しました。これには、「firedalazer」という文字列を含む**GitHub**コミットの検索(以前にフラグが立てられた「**FIRESCALE**」デッドドロップを置き換える)が含まれており、別のペイロードであるJavaScriptファイル(`index.js`)を取得します。このファイルには**Shai-Hulud**ワームの代替バージョンが含まれており、事実上、永続的な感染ループを作成します。このシナリオでは、窃取されたデータは公開**GitHub**リポジトリに流出します。
これらの継続的なキャンペーンは、ますます高度化するマルウェアから保護するために、堅牢なサプライチェーンセキュリティ対策、継続的な監視、および開発者の警戒の重要性を強調しています。