
Next.jsは、ReactベースのフルスタックWebフレームワークです。
高速なパフォーマンスとSEOに強いWebアプリを効率的に構築可能で、サーバーサイドレンダリング(SSR)や静的サイト生成(SSG)を簡単に切り替えられる点が特徴です。
ルーティング設定が不要で、小〜大規模開発に最適です。
性能が高いことだけでなく、サーバ側でHTMLを生成するため検索エンジンがコンテンツを認識しやすいというSEO対策に強いという面も持っています。
広く利用されているのも頷けます。
Next.jsも他のモダンなコンピュータ言語と同じように、多くのソフトウェア資産が公開されているリポジトリを利用することができます。
これは大きな資産でNext.jsの利便性を向上させるものなのですが、他のコンピュータ言語のそれと同じように、このリポジトリにも脅威アクターが忍び寄ってきています。
JavaScriptのメモリ内実行
脅威アクターの用意した悪意あるJavaScriptをメモリ内で実行してしまうコードが複数確認されています。
いずれも別の実行パスなのですが、最終的にC2を構成されてしまうという点は同一です。
- Visual Studio Codeワークスペースの実行
いくつかのリポジトリは、Visual Studio Codeのワークスペース自動化を悪用し、開発者がプロジェクトを開いて(そして信頼して)すぐに実行をトリガーします。
実行が開始されると自動的に外部から後続のコードを取得し、続けてこれを実行します。
後続の実行部分はファイル化されず、そのままメモリ内実行が実施されます。
実行後、スクリプトは攻撃者が制御するインフラストラクチャへのビーコン送信を開始します。 - アプリケーション開発中のビルド時実行
この種の亜種では、開発者が npm run dev やサーバの直接起動など、アプリケーションを手動で実行したときにトリガーされます。
コードの多くの部分は通常のコードに見えるように用意されていますが、通常のコードに加えて悪意のあるロジックも一緒に動作します。
開発サーバが起動すると、トロイの木馬化されたアセットはBase64エンコードされたURLをデコードし、VercelでホストされているJavaScriptローダーを取得します。
取得されたペイロードはNode.jsによってメモリ内で実行されます。
実行後、別のパターンと同じように、スクリプトは攻撃者が制御するインフラストラクチャへのビーコン送信を開始します。 - 環境の流出と動的なリモートコード実行を介したサーバー起動時の実行
アプリケーションバックエンドを起動すると、バックエンドモジュールまたはルートファイル内に隠された悪意のあるローダーロジックが実行されます。
ローダーはプロセス環境を外部サーバに送信し、Node.jsサーバプロセス内のメモリ内でレスポンスとして受信したJavaScriptを実行します。
いずれも脅威アクターの用意したJavaScriptを実行されてしまうという問題として作用します。
実行されてしまうJavaScriptは、2段階目のC2サーバとして機能します。
ソフトウェアに関わる仕事は広い範囲に及びますが、なかでもソフトウェア開発者は到達できる情報が広いことが予想されるため脅威アクターの標的となりやすいといえます。
ではわたしは開発者でないので安心だ、というわけにはいかなさそうです。
悪意ある取り組みはどんどん広がっています。
開発者にしろ何にしろ、入手元には注意が必要ということですね。
Developer-targeting campaign using malicious Next.js repositories
https://www.microsoft.com/en-us/security/blog/2026/02/24/c2-developer-targeting-campaign/
| この記事をシェア |
|---|