単独の攻撃者が人気のOpenSearch・Elasticsearchライブラリを模倣した14個の悪意あるnpmパッケージを公開

セキュリティ

その後、Microsoftがすべてを摘発

Microsoftによると、あるnpmユーザーが木曜日に4時間以内に14個の悪意あるパッケージを公開し、そのすべてが人気のOpenSearch、Elasticsearch、DevOps、および環境設定ライブラリを模倣していた。

これは、終わりのないように思える一連のサプライチェーン攻撃の最新事例であり、開発者ツールを標的とし、その過程で クラウド認証情報を窃取したり、CI/CDパイプラインのシークレットを盗むものだ。

新たに作成されたメンテナーエイリアス vpmdhaj(a39155771@gmail[.]com)を使用し、この脅威アクターは @opensearch および @elastic エコシステムの正規ライブラリを偽装した14個のパッケージを公開し、Amazon Web Services、HashiCorp Vault、GitHub Actions、およびnpmレジストリ自体を標的とした。これは、攻撃者が「開発者オーディエンスを選んだのは、彼らの環境にAWSおよびElasticクラウドの認証情報があると考えたためと思われる」とMicrosoftが木曜日のブログで警告している。 

悪意あるパッケージはすべて同一のインストール時ステージャーと、同一のBunコンパイル済み第2ステージペイロードを含んでいる。これはクラウドおよびCI/CD環境向けに特化して構築された195KBの認証情報ハーベスターだ。

さらに、最近の他のオープンソースサプライチェーン攻撃と同様に、トークンやその他のシークレットを盗んだ後、攻撃者はクラウド環境を横断的に移動し、さらなる機密データを窃取し、乗っ取ったメンテナーのアイデンティティが所有するパッケージに毒入りアップデートをさらにプッシュすることで、攻撃を当初の14個を超えて拡大できる。

悪意あるライブラリはすべて削除済みであり、MicrosoftはブログにすべてのリストをGoogleアナリティクスした14個を公開している。5月28日以降に影響を受けるパッケージバージョンをインストールまたはビルドしたシステムの特定に役立てるため、必ず確認すること。また、公開された可能性のあるAWS IAM/STS、HashiCorp Vault、npm publish、およびGitHub Actionsのトークンをローテーションすることも忘れずに。

ユーザーをこれらの開発者ツールや検索エンジンのインストールに誘導するため、攻撃者はタイポスクワッティング(正規のパッケージ名と1〜2文字異なる名前を付ける手法)や、よく知られたライブラリを模倣したルックアライク命名(opensearch-setup-tool、opensearch-config-utility、elastic-opensearch-helperなど)を使用した。 

このソーシャルエンジニアリング手法(ユーザーの入力ミスや信頼を利用してインストールを誘導するもの)に加え、攻撃者はサプライチェーン攻撃をより信頼性の高いものに見せるために他に2つの手法も使用した。

その一つがアップストリームメタデータのなりすましだ。「スコープなしのパッケージはすべて、package.jsonのhomepage、repository、bugsフィールドを正規のgithub.com/opensearch-project/opensearch-jsプロジェクトに設定している」とMicrosoftの脅威ハンターは説明している。

そしてもう一つは、バージョン番号の水増しだ。偽の「リリース」は1.0.7265、1.0.9108、2.1.9201といった番号から始まり、成熟したリリース履歴があるかのように見せかけている。

14個すべてがブログに掲載されているので確認してほしいが、ユーザーをnpmパッケージのインストールに誘導した後、認証情報を盗むペイロードは、被害者がnpm installを実行した瞬間にpreinstallフックを通じて自動的に実行される。

このために攻撃者は2種類のステージャーのうちの1つを使用した。Gen-1ステージャーは、install、preinstall、postinstallのフックを使用してすべてpreinstall.jsを呼び出し、ホスト名、プラットフォーム、アーキテクチャ、Nodeバージョン、USER/USERNAME、cwd、INIT_CWD、npm_package_name、npm_package_versionなど大量のホスト情報を収集する。その後、JSONをbase64エンコードし、攻撃者のコマンド&コントロールサーバーへPOSTし、サーバーはパッケージインストールディレクトリのpayload.binに書き込まれる第2ステージペイロードを返す。 

「パッケージのindex.jsは、モジュールのrequire()が呼び出されるたびに同じpayload.binを再起動する。これはCIビルドステージや開発者のリビルドループを経ても生き残る、静かな持続性メカニズムだ」とMicrosoftは述べている。

後続のGen-2ステージャーは、インストール時のC2ラウンドトリップを、ホスト上にbunが既に存在するかどうかを確認するよりステルス性の高いローダーに置き換えている。存在しない場合は正規のBunランタイムv1.3.13をダウンロードし、第2ステージペイロードを実行する。このペイロードはAWS、HashiCorp Vault、npm、GitHub Actions、およびその他のCI/CD環境全体での認証情報窃取に取り掛かる。®

翻訳元: https://www.theregister.com/security/2026/05/29/14-malicious-npm-packages-impersonated-opensearch-elasticsearch-libraries/5248792

ソース: theregister.com