OWN NEWS GATHER
← 戻る
The Hacker News

npmのAsyncAPI関連パッケージが侵害、多段階で感染を広げる強力なボットネットマルウェアを混入

要点

  • @asyncapiネームスペースに属する4つのnpmパッケージが侵害され、多段階型のボットネットローダーを配布していたことが確認された。

  • 悪意あるコードは、Node.jsでパッケージがインポートされた際に実行され、バックグラウンドでマルウェアをダウンロードする仕組みになっていた。

  • ダウンロードされるマルウェア「Miasma」は、6種類の通信チャネルや自動消去機能など、極めて高度な機能を備えている。

  • 攻撃者はGitHub Actionsのリリースパイプラインを悪用しており、npmトークンの窃取ではなく、リポジトリへのプッシュ権限の侵害が原因とされる。

  • 該当する悪意あるパッケージバージョンはすでにnpmレジストリから削除されている。

  • 開発者向けの仕様策定ツールなどを提供する「@asyncapi」のnpmパッケージが侵害され、多段階のボットネットローダーを配布する踏み台にされていたことが明らかになった。OX Security、SafeDep、Socket、StepSecurityら複数のセキュリティ機関が共同でこの事態を報告した。今回のサイバー攻撃は、セキュリティ認証情報を正しく備えたリリースフローを悪用する、巧妙なサプライチェーン攻撃の手法がとられていたという。

影響を受けたパッケージと実行時の挙動

今回の攻撃で影響が確認されたのは、以下の4つのパッケージの特定バージョンである。

  • @asyncapi/generator-helpers@1.1.1
  • @asyncapi/generator-components@0.7.1
  • @asyncapi/generator@3.3.1
  • @asyncapi/specs(v6.11.2、v6.11.2-alpha.1)

これらのパッケージには、難読化(コードの解析を難しくする処理)された第1段階のプログラムが埋め込まれていた。これまでのマルウェアのようにインストール時のフック(セットアップ時に自動実行される仕組み)を悪用するのではなく、Node.js(JavaScriptを実行する環境)がこれらのモジュールを読み込んだ瞬間に実行される点が特徴である。実行されると、バックグラウンドで独立したプロセスが立ち上がり、P2P型の分散ファイルシステムであるIPFSから「sync.js」と呼ばれる第2段階の暗号化されたローダーをダウンロードし、OSごとの専用パスに書き込んで実行する。

高度な機能を持つマルウェア「Miasma」

ダウンロードされる最終的なプログラムは、「Miasma」と呼ばれる強力なコマンド実行フレームワークである。Miasmaは744個ものモジュールを内包しており、極めて多彩で強力な機能を備えている。

通信面では、C2(攻撃者が遠隔で指令を送るサーバー)とのやり取りに6種類もの独立したチャネル(HTTP、Nostrリレー、IPFS、BitTorrent DHT、libp2p、イーサリアムのスマートコントラクト)を使い分けられる。これにより、一部の通信経路が遮断されても、別の方法で命令を受信し続けることが可能となっている。

機能的にも、PC内のログイン情報の窃取、AIツールの汚染、LAN内での他端末への横展開、さらにはnpmやPyPI、Cargoといった各言語のパッケージ公開サーバー上でのワームのような自己拡散機能まで備えている。さらに、LinuxのsystemdやWindowsのレジストリ自動起動キーなどを用いた、再起動後も動作を継続する永続化の処理も行う。

また、マルウェア内には「デッドマンズスイッチ(安全装置)」が組み込まれており、不正に入手した特定のアクセストークンが管理者に無効化されたことを検知すると、自身の存在を隠蔽するためにその環境のディレクトリを強制的に全消去する。加えて、解析用の仮想環境やロシア語設定のシステム、あるいはCrowdStrikeなどの大手セキュリティツールが導入された環境を検知すると、動作を停止して自身の発覚を防ぐ設計になっていた。

CI/CDパイプラインの盲点を突いた攻撃

今回の侵害は、開発者のアカウントが乗っ取られたり、npmの認証トークンが盗まれたりしたことによるものではない。

セキュリティ研究者の調査によると、攻撃者は何らかの方法でリポジトリに対するプッシュアクセス(コードを送信する権限)を入手し、ダミーのGitアイデンティティ(差出人情報)を使って不正なコードをコミットした。その後、プロジェクト自体が元々設定していた正規のGitHub Actions(開発作業を自動化するツール)のリリースパイプラインが自動的に作動し、パッケージが公開された。

これにより、パッケージには「OIDC(安全に認証情報を連携するプロトコール)」による署名と、正当なビルド手順を示す証明書(SLSA provenance attestations)が付与された。この結果、システム上は「安全なパッケージ」としてすり抜けてしまったという。研究者は「証明書は開発元の承認されたフローで作成されたことしか証明できず、送信されたコード自体の正当性を保証するものではない。プッシュする権限そのものが侵害された場合には無力である」と警告している。

現状とユーザーへの推奨対策

現在、悪意あるコードが含まれていた5つのバージョンは、すでにnpmの公開レジストリからすべて削除されている。しかし、これらのパッケージを一度でもプロジェクトに導入して実行したことのある環境については、すでに侵害されたものとみなして対処し、パスワードの変更やシステムのクリーンアップといった対応をとることが推奨されている。

元URL