ここ数週間で3度目となる、オープンソースのnpmエコシステムに対する重大な脅威について、専門家が警告しています。これは、シークレットを窃取するために設計された初のワーム型マルウェアが発見されたためです。
ReversingLabsによると、月曜日に数百万回の週間ダウンロード数を誇るさまざまな人気npmパッケージの悪意あるバージョンが出現し始めました。同社は昨日、このキャンペーンによって少なくとも700件のGitHubリポジトリが影響を受けたと観測したと述べています。
マルウェア自体(3MB以上のJavaScript)は「Shai-Hulud」と名付けられています。これは映画『Dune』に登場する巨大なサンドワームの名前です。
「npm開発者アカウントが侵害されると、ワームはその開発者が管理している他のパッケージを探します。そして、それぞれのパッケージに自身を注入して新しいバージョンを作成します」とReversingLabsは説明しています。
「新たに作成された各パッケージには、postinstallアクションが追加され、これにより、何も知らないユーザーが侵害されたパッケージをダウンロードした際に悪意あるbundle.jsが実行されます。ワームが新たな開発者を感染させるたびにこのプロセスが繰り返され、さらに広範囲に拡散します。」
npmの脅威についてさらに読む:悪意あるnpmコードがクラウド環境の10%に到達
侵害されたnpmアカウントによって公開されたパッケージは、自動的に悪意あるbundle.jsファイルで更新され、ワームの拡散が加速されるとベンダーは付け加えています。
bundle.jsスクリプトは、npm、GitHub、AWS、GCPのトークンを窃取するよう設計されています。しかし、それだけでなく、最大800件のシークレットを検出できるオープンソースツール「TruffleHog」もインストールします。
GitHubトークンを発見した場合、ワームは「Shai-Hulud」という名前の新しい公開GitHubリポジトリを作成し、被害者のシークレットをそこにダンプします。
また、アクセス可能なすべてのリポジトリに新しいGitHub Actionsワークフローをプッシュします。
「このGitHubアクションは、PUSHイベントでトリガーされる実行可能なアクションを持ち、ワークフロー環境からアクセス可能なトークンをURL hxxps://webhook.site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7 に流出させるよう設計されています。このデータは二重にBase64エンコードされています」とReversingLabsは述べています。
Shai-Huludのもう一つの悪意ある機能は、侵害されたGitHubアカウントが所有するプライベートリポジトリを、公開アクセス可能なリポジトリに移行することです。
「これは、おそらくそれらのリポジトリにハードコードされたシークレットへのアクセスを得るため、または含まれるソースコードを窃取するための試みと考えられます」とレポートは続けています。
「盗まれたコードは、後の攻撃で利用可能な脆弱性を分析するために使われる可能性があります。」
ReversingLabsは、この方法で700件の被害者のプライベートリポジトリが公開されたのを確認したと述べています。
S1ngularityとの関連
複数のセキュリティベンダーが、このキャンペーンを「Nx」という人気パッケージの作者を標的とした類似の攻撃と関連付けています。
「被害者の傾向から、Wiz Researchはこの活動が最近のs1ngularity/Nxサプライチェーン攻撃と関連していると評価しています。ここでは最初のGitHubトークン窃取が、より広範な侵害と元プライベートリポジトリの流出につながりました」とWizは述べています。
「この連鎖反応を引き起こした最初のnpmパッケージには、s1ngularity攻撃で既知の被害者が複数含まれていました。」
JFrogは、Shai-Huludによって侵害されたパッケージをインストールしたことがある人は、シークレットが流出したと想定すべきだと警告しています。
影響を受けたマシンに保存されていたアクセス・トークンについては、以下の条件に該当する場合、すぐにローテーションするよう促しています:
- 以下のいずれかのプロバイダーによって発行されたもの:GitHub、npm、AWS、GCP、Azure
- TruffleHogで識別可能なもの
翻訳元: https://www.infosecurity-magazine.com/news/supply-chain-worm-hundreds-npm/