Microsoft Defenderの専門家は最近、悪意のあるリポジトリを正当なNext.jsプロジェクトおよび技術的評価資料に偽装して使用する、開発者を標的とした組織的なキャンペーンを特定しました。
これらのリポジトリは、一度実行されると、攻撃者に開発者のシステムへの完全な制御を提供し、重要なデータを流出させ、任意のコマンドを実行できるようにしました。
脅威アクターは一般的な開発者ワークフローを攻撃対象として利用し、悪意のあるリポジトリを一見すると正常に見えるようにしました。キャンペーンは高度に調整されており、開発者をリポジトリとのインタラクションに騙すために仕事関連の餌を使用しています。
攻撃は、攻撃者が制御するコマンドアンドコントロール(C2)インフラストラクチャへの疑わしい送信接続を通じて最初に特定されました。
テレメトリデータは、Node.jsプロセスが既知のC2 IPアドレスとの繰り返される通信を行っていることを明らかにし、さらなる調査のきっかけとなりました。
初期分析により、採用目的の技術的評価として提示されたBitbucketでホストされているリポジトリが明らかになりました。
リポジトリ名、ファイル構造、およびコードパターンをさらに詳細に検討した結果、Microsoftの防御者は複数の追加の関連リポジトリを特定しました。
これらのリポジトリは一貫した命名規則に従い、ローダーロジックを共有していたため、セキュリティ分析者は検索範囲を拡大し、攻撃に関わる追加のリポジトリを発見することができました。
「Cryptan-Platform-MVP1」などの同様の命名規則を持つリポジトリは、開発者環境を静かに危殆化させることを目的とした、調整された攻撃の一部でした。
特定された悪意のあるリポジトリは、ランタイム取得および攻撃者制御のJavaScriptの実行という同じゴールを達成するために複数のパスを使用し、その後コマンドアンドコントロール活動に段階的に発展します。
これらのパスは主に、Visual Studio Codeでプロジェクトを開くまたは開発サーバーを実行するなど、通常の開発者活動を通じてペイロードをトリガーすることを含みます。
リポジトリの一部のバリエーションはVisual Studio Codeのワークスペース自動化を悪用しています。runOn: “folderOpen”で設定された.vscode/tasks.jsonファイルは、開発者がプロジェクトを開いたときに悪意のあるタスクを自動的に実行します。
タスクはステージングサーバーからJavaScriptローダーをフェッチし、Node.jsを使用してそれを実行し、攻撃者にアクセス権を与えます。
別の実行パスは、開発者がアプリケーションを手動で実行するときにトリガーされます。悪意のあるロジックは、修正されたJavaScriptライブラリなどの一見正当なアプリケーションファイルに組み込まれています。
開発サーバーが起動すると、このコードはC2サーバーからJavaScriptローダーをフェッチし、メモリで実行します。
3番目のパスは、開発者がバックエンドサーバーを起動するときに起動されます。バックエンドモジュールまたはルート内の悪意のあるローダーロジックは、サーバー初期化中に実行されます。
このパスには、APIキーとデータベース認証情報などの環境データの流出、および動的コンパイルを使用したメモリ内でのリモートコード実行が含まれます。
これらのパスのいずれかがトリガーされると、攻撃者は軽量の登録ペイロードで初期の足がかりを確立し、C2サーバーを繰り返しポーリングします。
このサーバーは一意のインスタンス識別子で応答し、攻撃者は永続性を維持できます。その後、攻撃者は侵害されたシステムをリモートで制御し、貴重なデータを流出させ、必要に応じて追加のペイロードを実行できます。
この種の攻撃から保護するために、Microsoftは開発者とセキュリティチームの両方に対していくつかのアクションを推奨しています。
開発者は、Visual Studio Codeワークスペーストラスト設定を有効にして、信頼されていない環境でのタスクの自動実行を制限する必要があります。
さらに、開発者ワークフローを保護し、信頼を許可する前にリポジトリの内容を定期的に確認することは、この種の悪意のある活動を防ぐのに役立ちます。
組織の場合、Microsoft Defender for Endpointの高度なハンティングツールは、悪意のあるNode.jsプロセスと異常な送信接続を追跡するのに役立ちます。
翻訳元: https://cyberpress.org/hackers-exploit-malicious-next-js-repositories/