エンジニアの求人テストを装う悪性 Next.jsリポジトリ サイバー攻撃

セキュリティニュース

投稿日時: 更新日時:

エンジニアの求人テストを装う悪性 Next.jsリポジトリ サイバー攻撃

Microsoftは2026年2月24日、開発者を狙った攻撃キャンペーンを公表しました。正規のNext.jsプロジェクトや採用用の技術課題を装った悪性リポジトリが配布され、開発者が通常の作業(リポジトリを開く、開発サーバを起動する、バックエンドを起動する)を行うだけで、攻撃者が用意したJavaScriptが実行され、段階的なC2(指令通信)へ移行するという内容です。

Defenderのテレメトリでは、Node.jsプロセスが攻撃者のC2インフラへ繰り返し通信している兆候から調査が始まり、Bitbucket上の採用課題風リポジトリなどが初期侵入点として特定されたとしています。

概要

このサイバー攻撃は求人や技術課題に見せかけたリポジトリを開発者に扱わせ、VS Codeの自動化、ビルド時の資産読み込み、バックエンド起動時の処理など、開発プロセスの自然なタイミングでコードが動くように仕込む点が特徴です。

ソースコードを実行うすると攻撃者が管理するJavaScriptを実行時に取得し、ローカルでメモリ内実行し、登録用の軽量ステージ(Stage 1)を経て、持続的にタスクを受け取るコントローラ(Stage 2)へ移行します。これにより、後続ペイロードの投入、探索、段階的な情報持ち出しが可能になります。

手口

Microsoftは、同一バックドアに至る3つの実行パスを示しています。

  • パス1:VS Codeワークスペース起点
    .vscode/tasks.json がフォルダを開いたタイミングでタスク実行されるように構成され、リポジトリを開いて信頼した直後に動作するパターンです。取得先としてVercel上のステージング(例:price-oracle-v2.vercel.app)が示されています。

  • パス2:開発サーバ起動時(ビルド時)
    npm run dev などで起動した際、正規ライブラリに見せかけた改変済みJavaScript(例としてjquery.min.js)がローダとして働き、同様にVercel上のステージングへ接続し、メモリ内実行に至ると説明されています。

  • パス3:バックエンド起動時(環境変数の送信と動的実行)
    .envに埋め込まれたエンドポイント情報を復号し、process.env(環境変数)を外部へ送信したうえで、返ってきたJavaScriptを動的に実行する流れが示されています。クラウド鍵、DB資格情報、APIトークンなどの露出につながり得る点が明記されています。

Stage 1とStage 2の役割

  • Stage 1:登録・ブートストラップ
    ホスト情報を収集し、一定間隔で登録エンドポイントへポーリングします。応答によっては識別子(instanceId)を受け取り、その後の通信で使い回すとされています。特定条件下では追加コードをメモリ内実行する仕組みも示されています。

  • Stage 2:タスク実行と持続化
    Stage 1から渡される別C2へ接続し、タスク配列(messages[])として受け取ったJavaScriptをメモリ内で実行します。ディレクトリ閲覧や、upload系の段階アップロードでファイル転送を行う観測も示されています。

検知の観点

Microsoftは、以下の観測可能な挙動を重視すべきだとしています。

  • Node.jsプロセスから不審な外向き通信が短い間隔で繰り返される

  • まずVercel上のステージング(例:price-oracle-v2.vercel.app)への接続が先行し、その後にC2へ継続コールバックする(HTTP、ポート300)

  • 端末起点での探索・アップロード挙動(ディレクトリ列挙、upload系の分割転送)が出る

また、調査・横展開にはMicrosoft Defender for EndpointのAdvanced Huntingで、DeviceNetworkEventsやDeviceProcessEventsを使う手順が示されています。

対策

開発フローの信頼境界を固める

VS CodeのWorkspace TrustとRestricted Modeは、未信頼フォルダでの自動実行(タスク、デバッグ、ワークスペース設定、拡張機能など)を抑止する目的で設計されています。未知ソースのリポジトリは未信頼のまま扱い、信頼付与前に自動化ファイルをレビューする運用が推奨されています。

侵害時は端末だけでなくIDとセッションも手当てする

本キャンペーンは資格情報やセッション盗用の可能性も想定されており、封じ込めとスコーピングに加えて、Microsoft Entra ID Protectionによるリスクサインイン/リスクユーザー調査と、セッション側の是正を含めるべきだとしています。

SaaS側の持ち出しも抑える

盗まれたトークンやブラウザセッションの悪用が懸念される場合、Microsoft Defender for Cloud AppsのConditional Access app controlでセッションを監視し、高リスク操作を制限する考え方が示されています。

端末防御の基本を落とさない

Microsoftは、Defender for EndpointのASR(攻撃面の縮小)ルール、Defender Antivirusのクラウド保護、SmartScreenの評価ベース保護などを組み合わせ、スクリプト実行や不審なダウンロード連鎖を抑える方針を案内しています。