IronWorm npmアタック:開発者の機密情報を狙うサプライチェーン攻撃

「IronWorm」と名付けられた新たなサプライチェーン攻撃が明らかになりました。この攻撃は悪意あるnpmパッケージを悪用し、開発者環境への侵害、機密認証情報の窃取、そしてワーム的な自己増殖によるリポジトリへの感染拡大を行うものです。

実際の攻撃として確認されたこのキャンペーンは、ソフトウェア開発者を標的としており、特に暗号資産やWeb3エコシステムに焦点を当てています。これらの分野では、漏洩した機密情報が直接的な金銭被害につながる可能性があります。

研究者たちは、複数のパッケージが短期間に相次いで再公開されるという不審な挙動に気付きました。それぞれのパッケージには、preinstallフックを通じて実行されるネイティブバイナリが埋め込まれていました。

その一例として、weavedb-sdkバージョン0.45.3には、toolsディレクトリ内に隠されたLinux ELFバイナリが含まれており、ユーザーの操作なしにインストール時に自動実行される仕組みになっていました。

初期分析の結果、このバイナリは標準的なアンパックを回避するために改変されたUPXスタブでパックされていることが判明しました。研究者たちは変更されたUPXシグネチャを復元することでサンプルのアンパックに成功し、大規模なRust製ペイロードを露呈させました。

Rustの使用は、広範なランタイムとコンパイル済みの抽象化処理により、リバースエンジニアリングの難易度を大幅に高めています。

さらに、意味を持つ文字列はすべてコールサイトごとに固有のキーで暗号化されており、動作の詳細を解明するには個別の復号作業が必要でした。

Image

復号後、このマルウェアの全容が明らかになりました。IronWormは、クラウドプラットフォーム、CI/CDパイプライン、AIサービス、ローカルの認証情報ファイルにわたって開発者の機密情報を狙う、本格的な情報窃取・自己増殖エンジンです。

80以上の環境変数と多数の認証情報ファイルパスをスキャンし、従来型のクラウド認証情報に加えて最新のAIツールの設定ファイルも対象としています。

JFrogがGBhackersと共有したレポートによると、この攻撃はArweaveエコシステム内のasteroid-dao GitHub組織に関連する「asteroiddao」アカウントが公開したnpmパッケージで最初に確認されました。

また、このマルウェアはExodus暗号資産ウォレットを標的とした専用モジュールも備えており、悪意あるJavaScriptを注入してパスワードとリカバリーフレーズを窃取します。

IronWormの主要な特徴の一つが自己増殖機能です。窃取したGitHub認証情報を使ってアクセス可能なリポジトリに悪意あるコミットを注入します。

これらのコミットは、ビルド時の実行フックを導入するか、既存のGitHub Actionsワークフローを機密情報を収集するパイプラインに置き換えるものです。

IronWorm npmアタックの手口

確認された手法の一つでは、リポジトリの機密情報がGitHub Actions式を使ってシリアライズされ、ビルド成果物としてC2への直接通信を必要とせずに外部へ送信されます。

悪意あるコミットの一部は発見後も残存しており、侵害されたアカウントはその月に非常に活発に活動し、プライベートプロジェクトへの貢献が約4,500件に上っていました。

Image

攻撃者は悪意ある活動を正規のワークフローに紛れ込ませるため、高度な検出回避手法を駆使していました。コミットはGitの柔軟なタイムスタンプ機能を悪用して数年前の日付に改ざんされていました。

また、疑惑を回避するために「claude」や自動化ボットのdependabotといった著者IDを偽装していました。研究者が確認したところ、9つの組織にわたる57件の悪意あるコミットが特定されましたが、プライベートリポジトリでの活動を考慮すると実際の被害範囲はさらに広い可能性があります。

このマルウェアにはBPFオブジェクトのELFファイルも埋め込まれており、clang 22.1.5でコンパイルされたものでした。元のビルドパスがバイナリ内に残存していたほか、コンパイラが残したメタデータも調査の手がかりとなりました。

IronWormはさらに、npmのTrusted Publishing機能を悪用します。CI環境で実行されると、OIDCトークンをリクエストして短期間有効なnpm公開トークンと交換し、認証情報を直接扱うことなくトロイの木馬化したパッケージバージョンをリリースすることが可能になります。

Image

システムレベルでは、eBPFベースのルートキットを展開して自身の存在を隠蔽します。このルートキットはプロセスやネットワーク接続を隠すほか、カーネルレベルのテレメトリを操作してデバッグ試みを妨害します。ただし、カーネルロックダウンが有効化された堅牢なシステムでは、こうしたステルス機能の一部が制限されます。

C2通信にはTorネットワークを利用しており、組み込みのTorクライアントでトラフィックを匿名化します。

データ窃取、ペイロード配信、リモートシェルアクセスのコマンドをサポートしており、研究者はTor経由でトンネリングされたパブリックファイル共有サービスを使ったフォールバック機能も確認しています。

高度な作りである一方、このマルウェアには運用上のミスも見られます。特筆すべきは、ハードコードされた暗号資産ウォレットのリカバリーフレーズがバイナリに埋め込まれており、自身の窃取ルーティンから除外されていた点です。これはおそらく攻撃者自身の資産を守るためと思われ、帰属特定の手がかりになる可能性があります。

悪意あるnpmパッケージとGitHubコミットの大部分は発見後まもなく削除されましたが、残存しているものもあり、完全なクリーンアップには至っていないことがわかります。

今回のキャンペーンは、開発者の信頼やツールエコシステムを武器化した、高度に自動化された自己複製型サプライチェーン攻撃の増加傾向を改めて浮き彫りにしています。

侵害の痕跡(IoC)

[email protected] XRAY-989671
[email protected] XRAY-989492
[email protected] XRAY-989648
[email protected] XRAY-989666
[email protected] XRAY-989571
[email protected] XRAY-989594
[email protected] XRAY-989617
[email protected] XRAY-989784
[email protected] XRAY-989764
[email protected] XRAY-989681
[email protected] XRAY-989760
[email protected] XRAY-989766
[email protected] XRAY-989752
[email protected] XRAY-989779
[email protected] XRAY-989547
[email protected] XRAY-989747
[email protected] XRAY-989781
[email protected] XRAY-989754
[email protected] XRAY-989761
[email protected] XRAY-989753
[email protected] XRAY-989762
[email protected] XRAY-989758
[email protected] XRAY-989756
[email protected] XRAY-989775
[email protected] XRAY-989773
[email protected] XRAY-989783
[email protected] XRAY-989641
[email protected] XRAY-989771
[email protected] XRAY-989765
[email protected] XRAY-989767
[email protected] XRAY-989769
[email protected] XRAY-989787
[email protected] XRAY-989790
[email protected] XRAY-989751
[email protected] XRAY-989772
[email protected] XRAY-989785
[email protected] XRAY-989789

注意: IPアドレスおよびドメインは、誤ったアクセスやハイパーリンク化を防ぐため、意図的にデファング処理(例:[.])が施されています。MISP、VirusTotal、SIEMなどの管理されたスレットインテリジェンスプラットフォーム内でのみ、元の形式に戻して使用してください。

翻訳元: https://gbhackers.com/ironworm-npm-attack/

ソース: gbhackers.com