タイポスクワッティングされたnpmパッケージがクラウドおよびCI/CDの秘密情報を窃取

OpenSearch、ElasticSearch、およびDevOpsツールを使用する開発者を標的とした組織的なnpmサプライチェーン攻撃が発見され、攻撃者は感染したシステムからクラウド認証情報やCI/CDの秘密情報を積極的に窃取しています。

悪意のあるパッケージは、opensearch-setupやelastic-opensearch-helperといった類似名を使用して正規ライブラリを模倣しており、メタデータ内で公式のOpenSearch GitHubリポジトリへのリンクを偽装しています。

信頼性をさらに高めるために、攻撃者は異常に高いバージョン番号を設定し、成熟した広く使用されているソフトウェアであるかのような錯覚を作り出しています。

インストールされると、パッケージはnpmライフサイクルフック、具体的にはpreinstallスクリプトを通じて悪意のあるコードを自動的に実行し、開発者からの操作を一切必要とせずにトリガーされます。

これにより、攻撃者は依存関係のインストール中に即座にコードを実行でき、侵害を無音かつ効果的なものにしています。

この攻撃は二段階のペイロードシステムを使用しています。初期バージョンでは、JavaScriptベースのステージャーがホスト名、オペレーティングシステム、Node.jsバージョン、環境変数などのシステム情報を収集し、このデータをリモートのコマンド&コントロールサーバーに送信します。

サーバーは圧縮されたバイナリペイロードで応答し、それがホストシステム上で実行されます。通信中には「X-Supply: 1」という固有のHTTPヘッダーが使用されており、これはネットワークログにおける検出指標として機能します。

Microsoftの研究者が報告したところによると、2026年5月28日、「vpmdhaj」というエイリアスを使用する単一の脅威アクターがわずか4時間以内に14個の悪意のあるパッケージを公開し、タイポスクワッティングとメタデータのスプーフィングを利用して開発者をインストールするよう欺きました。

後期バリアントでは、攻撃者は直接的なコマンド&コントロール通信を排除することでステルス性を向上させました。

Image

代わりに、悪意のあるスクリプトはGitHubから正規のBunランタイムをダウンロードし、npmパッケージ内に埋め込まれた事前パッケージ化された第二段階ペイロードを実行するために使用します。このアプローチにより、疑わしいアウトバウンドトラフィックが減少し、従来の検出メカニズムを回避するのに役立ちます。

第二段階のペイロードは、認証情報の収集に特化したコンパクトなBunコンパイル済みバイナリです。Amazon Web Services、HashiCorp Vault、GitHub Actions、npmなど複数のプラットフォームを標的にしています。

タイポスクワッティングされたnpmパッケージ

マルウェアは環境変数からAWS認証情報を抽出し、EC2インスタンスメタデータサービスおよびECSタスクメタデータエンドポイントへのクエリを実行し、複数のリージョンにわたってAWS Secrets Managerに保存された秘密情報を列挙します。

新しいバージョンでは、アクターはノイズの多いHTTP-C2設計を、インストール時のC2ラウンドトリップを完全に排除するよりステルス性の高いローダーに置き換えました。

また、Vaultトークンの収集やnpmパブリッシュトークンの検証も行い、攻撃者がパッケージメンテナーのアカウントを乗っ取り、さらなるサプライチェーン攻撃を拡散できるようにします。

Image

注目すべき持続化メカニズムにより、ペイロードは初回インストール後も実行が継続されます。悪意のあるモジュールは、アプリケーションコードでインポートされるたびにペイロードを再起動し、開発サイクルやCI/CDパイプラインの実行をまたいで生き残ることができます。

このキャンペーンの影響は深刻です。窃取されたAWS認証情報はクラウド環境全体での横方向移動を可能にし、侵害されたCI/CDトークンは攻撃者がビルドパイプラインを操作したり本番システムに悪意のあるコードを注入したりすることを可能にします。

npmパブリッシュトークンの窃取は追加のリスクをもたらします。攻撃者が正規パッケージに悪意のある更新をプッシュし、攻撃の範囲を拡大する可能性があります。

責任ある開示の後、特定されたパッケージおよび関連アカウントはnpmレジストリから削除されました。しかし、これらのパッケージをインストールした可能性のある組織は依然としてリスクにさらされています。

セキュリティチームは、2026年5月28日以降にインストールされた影響を受ける依存関係についてシステムを監査し、AWS IAMロール、Vaultトークン、npmパブリッシュトークン、GitHub Actionsシークレットを含む漏洩した認証情報を直ちにローテーションすることが推奨されます。

開発者は、ignore-scripts設定を使用してnpm installスクリプトを一時的に無効化し、依存関係のロックファイルとビルドログの異常を慎重に確認する必要があります。

ネットワーク防御担当者は、特に「X-Supply: 1」ヘッダーを含むリクエストなど、疑わしいアウトバウンドトラフィックを監視し、キャンペーンに関連する既知の悪意のあるドメインをブロックする必要があります。

さらに、急速なロールの引き受けやクロスリージョンのシークレットアクセスなど、異常なAPIアクティビティについてCloudTrailログを確認することで、侵害された環境の特定に役立ちます。

このインシデントは、npmなどの信頼されたエコシステムが機密性の高いクラウドおよび開発インフラストラクチャへのアクセス獲得のためにますます悪用されている、ソフトウェアサプライチェーン攻撃の高度化を浮き彫りにしています。

侵害の痕跡(IOC)

指標 種別 説明
@vpmdhaj/elastic-helper (1.0.7269) パッケージ タイポスクワット – ElasticSearch/OpenSearchヘルパー
@vpmdhaj/devops-tools (1.0.7267) パッケージ タイポスクワット – DevOpsツール / OpenSearchセットアップ
@vpmdhaj/opensearch-setup (1.0.7267) パッケージ タイポスクワット – OpenSearchセットアップユーティリティ
@vpmdhaj/search-setup (1.0.7268) パッケージ タイポスクワット – 検索エンジンセットアップ
opensearch-security-scanner (1.0.10) パッケージ スコープなし類似品 – セキュリティスキャナー
opensearch-setup (1.0.9103) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
opensearch-setup-tool (1.0.9108) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
opensearch-config-utility (1.0.9106) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
search-engine-setup (1.0.9108) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
search-cluster-setup (1.0.9104) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
elastic-opensearch-helper (1.0.9108) パッケージ スコープなし類似品 – opensearch-projectリポジトリURLを偽装
vpmdhaj-opensearch-setup (1.0.9102) パッケージ スコープなし – 作者名付きOpenSearchセットアップ
env-config-manager (2.1.9201) パッケージ タイポスクワット – dotenvスタイルの設定マネージャー
app-config-utility (1.0.9300) パッケージ タイポスクワット – 汎用アプリ設定ユーティリティ

注意: IPアドレスとドメインは、偶発的な名前解決やハイパーリンク化を防ぐために意図的に無害化されています(例:[.])。MISP、VirusTotal、またはSIEMなどの管理された脅威インテリジェンスプラットフォーム内でのみ再有効化してください。

翻訳元: https://gbhackers.com/typosquatted-npm-packages/

ソース: gbhackers.com