AsyncAPI npm packages infected with credential-stealing malware

情報窃取機能を備えたリモートアクセストロイの木馬を配布するサプライチェーン攻撃により、AsyncAPI パッケージの悪意のあるバージョン5つが Node Package Manager (npm) に公開されました。

攻撃者は、設定ミスのあった GitHub Actions ワークフローを悪用し、@asyncapi ネームスペースにトロイの木馬化されたパッケージをプッシュしました。このネームスペースの週間累計ダウンロード数は 225 万回を超えていました。

複数のセキュリティ企業が、7月14日に攻撃者が2つのAsyncAPI GitHubリポジトリを侵害し、プロジェクトファイルにマルウェアを注入したことを確認しました。

image

Step Securityのレポートには、「どちらの攻撃もCI/CDパイプラインの侵害によるものであり、npmトークンの盗難や悪意のあるメンテナによるものではない」と記されている。

研究者らは、「攻撃者はプレースホルダーのGit IDでコミットをプッシュし、各リポジトリの実際のリリースワークフローが、npmのGitHub OIDCトラステッドパブリッシャー統合を介して公開を行うようにした」と説明している。

これにより、攻撃者は、生成されたパッケージが正当なSLSA出所証明を持ち、承認されたワークフローに由来することを示すようにした。

npmにプッシュされた悪意のあるAsyncAPIパッケージは以下の通りです:

アプリケーションセキュリティ企業のSocketによると、公開されたパッケージに含まれる第1段階のインプラントは難読化されたJavaScriptステートメントであり、感染したファイルがインポートされると最終的にダウンローダーを起動させるという。

設定の詳細とメインの実行環境を含む第2段階のスクリプトは、IPFSのピアツーピア型コンテンツ配信ネットワークから取得され、隠しプロセスとして起動される。

クラウドおよびアプリケーションセキュリティ企業のWiz によると、第 3 段階のペイロードは「モジュール式アーキテクチャを持つ 92,000 行のマルウェアフレームワーク」であり、システム上に永続性を確立し、以下の複数のチャネルを介してコマンド&コントロール(C2)サーバーと通信する。 HTTP、Nostrリレー、イーサリアムのスマートコントラクト、およびlibp2pメッシュネットワーク。

Attack flow diagram
攻撃フロー図
出典:Step Security

最終的なペイロードは、過去のサプライチェーン攻撃で確認された「Miasma」バックドアを指すアーティファクト名や設定ファイルを使用しているものの[1,2]、SafeDepの研究者らは、このマルウェアについて「同じオペレーターによる非公開の並行ビルドか、ソースコードが公開された後にMiasmaのブランドを採用した別のグループによるもの」のいずれかであると考えている。

その目的は、認証情報、認証キー、トークン、ブラウザデータ、CI/CDシステムやAI開発ツールからの機密情報、暗号資産ウォレット、データベースなどの機密情報を窃取することにあるようだ。

さらに、このマルウェアのコードには、機密情報の収集を支援するためのツール「Gitleaks」および「HackBrowserData」をダウンロードする機能が組み込まれている。

しかし、サイバーセキュリティ企業Aikidoの報告書によると、これらの機能はすべて動作せず、データ収集ツールは何も収集する前に終了してしまうという。とはいえ、研究者らは、これらすべてをシェルを使用して手動で実行することは可能だと述べている。

Ox Securityはまた、 このマルウェアがローカル環境でロシアとの一致を確認し、一致した場合にプロセスを終了させることも指摘している 。

本稿執筆時点で、4つの悪意のあるパッケージの全5バージョンはnpmから削除されていますが、開発者は、既存のインストールや、脆弱性が公開されていた期間中に作成されたロックファイルには、依然として悪意のあるリリースが含まれている可能性があることに留意する必要があります。

公開期間は、7月14日の07:10から11:18(UTC)までの約4時間7分間に及びます。

推奨される対応策は、正常であることが確認されているファイルにピン留めし、ロックファイルを再生成し、隠された「NodeJS/sync.js」ペイロードを削除し、すべての悪意のあるプロセスを終了させ、影響を受けたシステムで認証情報を更新することです。