検索
ニュース

その企業は本物? VS Codeを悪用する「偽の採用面接」に注意 Microsoftが説く対策ソフトウェア開発者をだましてマルウェアをインストール、実行させる

ソフトウェア開発者を狙い、採用プロセスを装って悪意あるコードを実行させるソーシャルエンジニアリング攻撃が進化を続けている。Microsoftは公式ブログでサイバー攻撃の手口と対策について解説した。

Share
Tweet
LINE
Hatena

 Microsoftは2026年3月11日(米国時間)、偽の採用面接を通じてソフトウェア開発者にマルウェアを配布するサイバー攻撃キャンペーンについて公式ブログで解説した。

 「Contagious Interview」と呼ばれるこの攻撃キャンペーンは、少なくとも2022年12月から活動を継続している。Microsoft Defender Expertsの調査によると、エンタープライズ向けソリューションプロバイダーやメディア・通信企業に勤務するソフトウェア開発者が継続的に狙われているという。

 攻撃者は、正規の人材採用プロセスを模倣した偽の採用フローを通じて標的に接触する。採用担当者を装った連絡、技術的なディスカッション、課題の提示、フォローアップといった一連のやりとりを通じて信頼を醸成した後、被害者に悪意あるパッケージやコマンドを実行させる。「採用プロセスという信頼性の高い場面を悪用するため、被害者の警戒心を下げやすいという特徴がある」と、Microsoftは述べている。

攻撃チェーンの全体像:初期アクセスからバックドア実行、データ収集、流出、後続ペイロードまで(提供:Microsoft)
攻撃チェーンの全体像:初期アクセスからバックドア実行、データ収集、流出、後続ペイロードまで(提供:Microsoft)

「VS Code」を悪用する侵害ルートと「偽の採用面接」の全貌

 Microsoftの分析によると、攻撃者は、暗号資産取引会社やAIソリューション企業の採用担当者を装い、標的に接触する。被害者は、GitHub、GitLab、Bitbucketといった主要コードホスティングプラットフォームに置かれた悪意あるnpmパッケージをクローンし、実行するよう指示される。このパッケージを実行すると追加スクリプトが起動し、バックグラウンドでバックドアが展開される。

 最近の攻撃では、「Visual Studio Code」(以下、VS Code)のワークフローを悪用する手口も確認されている。被害者がダウンロードしたパッケージをVS Codeで開くと、リポジトリ作成者を信頼するかどうか確認を求めるダイアログが表示される。信頼を許可すると、VS Codeがリポジトリのタスク設定ファイルを自動実行する。これにより、バックドアがダウンロード・展開される。

Bitbucketにホストされた典型的な偽リポジトリ。ブロックチェーンゲームを装っている(提供:Microsoft)
Bitbucketにホストされた典型的な偽リポジトリ。ブロックチェーンゲームを装っている(提供:Microsoft)

攻撃に用いられるバックドア

「OtterCookie」

 この攻撃キャンペーンで最も広く観測されているバックドアが「OtterCookie」だ。2024年9月に初めて観測されたこのJavaScriptベースのバックドアは、当初はリモートコマンドの実行と暗号鍵の探索を実行する基本的なツールにすぎなかったが、その後急速に進化した。

 現在は仮想マシン(VM)環境の検出、C2(コマンド&コントロール)通信用クライアント(socket.io)のインストール、情報の窃取、任意のシェルコマンド実行、追加モジュールのロードといった幅広い機能を備えるモジュール型プログラムになっているという。

 Microsoft Defender Expertsは、OtterCookieの2つの活発な亜種の観測を継続している。2025年10月から追跡している最新の亜種は、コア機能はそのままに、エンコードされたインデックス検索とシャッフルされた配列を通じて大幅な難読化が施されている。実行時の痕跡や(セキュリティツールからの)可視性が低下し、静的解析やシグネチャベースの検出が著しく困難になっている。

直接的な文字列とAPIコールを使用するOtterCookieの旧亜種(提供:Microsoft)
直接的な文字列とAPIコールを使用するOtterCookieの旧亜種(提供:Microsoft)
インデックス検索と難読化された文字列プールを使用する新亜種。インジケーターとロジックを隠蔽している(提供:Microsoft)
インデックス検索と難読化された文字列プールを使用する新亜種。インジケーターとロジックを隠蔽している(提供:Microsoft)

「ビーコンエージェント」

 2025年10月から観測されているもう一つのJavaScriptバックドアが「ビーコンエージェント」だ。この軽量バックドアは、ホスト名、ネットワーク識別子、OSの詳細、パブリックIPアドレスといったホスト情報を収集し、C2サーバに定期的にビーコンを送信してタスクを受け取る。ローカルランタイムを生成し、標準入力経由で直接ペイロードをパイプ処理することで、攻撃者が供給する任意のコードを実行する機能も持つ。分離されたバックグラウンド子プロセスを起動し、それらのプロセスIDを追跡することなどにより、リモートからのライフサイクル管理を可能にしている。

「Invisible Ferret」と「FlexibleFerret」

 この攻撃キャンペーンの初期段階において、主に情報窃取ツール兼ローダーである「BeaverTail」を介して配布されていたPythonベースのバックドア「Invisible Ferret」が、最近の侵入事例では、主に後続ペイロードとして展開されるようになっている。ビーコンエージェントやOtterCookieが初期アクセスを確立した後のリモートコマンド実行、追加のシステム偵察、持続的な制御を担っている。

 この攻撃キャンペーンでは、GoとPythonの両方で実装されたモジュール型バックドアである「FlexibleFerret」も観測された。FlexibleFerretは、暗号化されたHTTP(S)/TCPチャネルを通じてプラグインを動的にロードし、リモートコマンドを実行したり、ファイルをアップロード/ダウンロードしたりする。RUNレジストリの変更によって永続化し、偵察機能と横展開機能も持つ。

 攻撃者はFlexibleFerretを起動させるために、被害者を偽の面接サイトに誘導し、「技術的エラーが発生した」と偽って、エラー解消のためとして、悪意あるコマンドを貼り付けて実行させる手口を用いる。

データ窃取

 バックドアを介して持続的なアクセスを確立した後、攻撃者は、侵害したデバイスから機密情報を収集する段階に進む。

機密データの列挙

 Windowsシステムでは、ビーコンエージェントを通じて認証情報やキーストアの関連ファイルを列挙するスクリプトが実行される。対象は、環境設定ファイル、ウォレットのニーモニックフレーズ、「KeePass」や「1Password」によるパスワードストア、メモ、暗号鍵など多岐にわたる。収集されたデータは、攻撃者が制御するインフラにHTTP POSTリクエストで送信される。

 macOSでは、同じくビーコンエージェントがシステム全体のファイルシステムを検索し、認証情報や秘密鍵に関連するパターンにマッチするファイルを探索する。一般的なシステム、ベンダー、開発者ディレクトリは検索対象から除外し、効率と隠蔽(いんぺい)性を両立させている。

Windowsシステムで実行され、認証情報やキーストアの関連ファイルを列挙するスクリプトのコードスニペット(提供:Microsoft)
Windowsシステムで実行され、認証情報やキーストアの関連ファイルを列挙するスクリプトのコードスニペット(提供:Microsoft)

スパイウェア機能:キーロギングとクリップボード監視

 一方、OtterCookieバックドアは、「node-global-key-listener」や「screenshot-desktop」といった一見無害なnpmパッケージをインストールし、キーロギングやデスクトップのスクリーンショットを取得する。繰り返し実行される隠蔽されたPowerShellコマンドを通じて、アクティブウィンドウのメタデータやクリップボードの内容を繰り返し収集するNode.jsモジュールもロードする。またOtterCookieは、クリップボードの内容をリアルタイムで攻撃者インフラに送信する。

npmパッケージによるスクリーンショット取得のイベント(提供:Microsoft)
npmパッケージによるスクリーンショット取得のイベント(提供:Microsoft)

ソフトウェア開発者が持つ、あらゆる情報資産が狙われる

 この攻撃キャンペーンは、採用プロセスを永続的な攻撃チャネルとして武器化している。技術面接やコーディングテストを悪用し、依存関係のインストールやリポジトリタスクを通じてマルウェアを実行させることで、ソースコード、CI/CD(継続的インテグレーション/継続的デリバリー)パイプライン、本番インフラへのアクセス権を持つ開発者エンドポイントを侵害する。

 「攻撃者が狙うのは、APIトークン、クラウド認証情報、署名鍵、暗号資産ウォレット、パスワード管理ツールのデータ(アーティファクト)など、開発者が保有する高価値な情報資産だ。モジュール型バックドアはインフラのローテーションを可能にし、アクセスを維持するとともに、検出を困難にしている」(Microsoft)

コード品質の特徴

 この攻撃キャンペーンで使用されるマルウェアの最近のサンプルには、従来のものとは異なる特徴が見られる。ビーコンエージェントのスクリプトには、一貫性のないエラー処理や空のcatchブロックが存在し、FlexibleFerretのPython亜種にはチュートリアル風のコメント、絵文字を使ったログ出力、プレースホルダーの秘密鍵マーカーが、機能的なマルウェアロジックと混在している。

 Microsoftはこれらの特徴について「洗練されたエンジニアリングよりもスピードと機能的なアウトプットを優先した開発ワークフローを示唆するものだ」と指摘。これは主に、悪意あるコードの迅速な反復開発を可能にする、脅威アクターの進化する開発手法とツールの迅速な適応を反映していると分析している。

Microsoftが推奨する対策

 Microsoftは組織と開発者に対し、以下の対策を推奨している。

開発および面接ワークフローの強化

  • コーディングテストや課題には、本番認証情報や内部リポジトリにアクセスできない専用の隔離環境(非永続的なVM〈仮想マシン〉など)を使用する
  • 採用担当者から提供されたリポジトリについて、スクリプト実行や依存関係のインストール、タスク実行の前に、開発者がレビューすることを義務付けるポリシーを策定する
  • 短縮URLでのリダイレクト、新規作成されたリポジトリ、複雑すぎるセットアップ手順、セキュリティ対策の無効化や、不明なリポジトリ作成者を信頼するように求める指示といった危険な兆候について、開発者向けのガイダンスを提供する

アタックサーフェス(攻撃対象領域)の縮小

  • 改ざん防止機能とリアルタイムウイルス保護を有効にし、エンドポイントのセキュリティ更新を適用する
  • Node.js、Python、PowerShellなどのスクリプトエンジンと開発ランタイムを可能な限り制限する
  • curlやwgetからシェルへのパイプ処理や、短縮リンクリダイレクトサービスへのアウトバウンドリクエストを監視、ブロックする

シークレットの保護と影響範囲の限定

  • 使用期間が短いジャストインタイムの認証情報を使用し、シークレットはボールト(Vault:保管庫)に保存する。環境ファイルや設定ファイルでの長期間有効なトークンの使用を避ける
  • ソース管理、CI/CD、クラウドコンソール、IDプロバイダーに多要素認証と条件付きアクセスを適用する
  • パスワード管理ツールのVaultや開発者の署名鍵へのアクセス権を確認し、制限する

検出、調査、対応

  • コードエディタや開発ツールを起点に、すぐにシェルやスクリプトの実行に移行する実行チェーン(例:Visual Studio Code/Cursor → cmd/PowerShell/bash → curl/wget → スクリプト実行)を探し出す。見つかったら、リポジトリのタスク設定やビルドスクリプトを確認する
  • Node.jsやPythonプロセスを監視し、認証情報、鍵のファイルシステム列挙、クリップボード監視、スクリーンショット取得、HTTP POSTによるデータ送信などの動作がないかチェックする
  • 侵害が疑われる場合はデバイスを隔離し、漏えいした恐れのある認証情報とトークンをローテーションし、コードリポジトリとCI/CDシステムへの最近のアクセスを精査して、後続ペイロードや永続化の有無を確認する

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る