偽の求人面接が開発者PCにバックドアをインストール:Microsoft発見の脅威キャンペーンを解説

AI

偽の求人面接が開発者PCにバックドアをインストール:Microsoft発見の脅威キャンペーンを解説

はじめに

「技術面接のコーディング課題をやってみよう」と思ってリポジトリを開いた瞬間、あなたのPCは攻撃者のC2サーバーに接続される──そんな恐ろしい攻撃が現在、世界中の開発者を狙っている。

2026年2月、Microsoft Defender Expertsが開発者を標的とした大規模なサイバー攻撃キャンペーンを発見した。攻撃者は偽の求人面接を装い、Bitbucket上の悪意あるリポジトリを通じてバックドアをインストールしている。この記事では、攻撃の仕組み、背景、そして開発者が取るべき対策を詳しく解説する。

攻撃の全体像

何が起きているのか

この攻撃キャンペーンでは、攻撃者が「Next.jsプロジェクト」や「技術評価用リポジトリ」を装った悪意あるコードを含むリポジトリを準備。求職者に「コーディング課題」として実行させることで、以下の情報を盗み出す:

  • 環境変数(AWS認証情報、GitHubトークン、DBパスワードなど)
  • ブラウザのCookie、履歴
  • ソースコード全体

被害規模:Recorded Futureの調査によると、2024年8月から2025年9月の間に3,136個のIPアドレスが標的となり、20社以上が被害に遭った可能性がある。対象はAI、暗号資産、金融サービス、IT、ソフトウェア開発など多岐にわたる。

5W2H分析

Who(誰が攻撃しているのか)

この攻撃は、北朝鮮の脅威アクター「PurpleBravo」(別名:Lazarus Group、Famous Chollima、Gwisin Gangなど多数の別名あり)と関連があるとされる。このグループは以前から「Contagious Interview」と呼ばれるキャンペーンで、偽の求人面接を通じた攻撃を行っている。

攻撃者はLinkedIn上で「開発者」や「リクルーター」を装い、ウクライナのオデッサ出身を自称する偽のペルソナを使用している。

What(何をするのか)

攻撃の核心は、3つの実行パスを通じたバックドアのインストール:

#### パス1:VS Codeワークスペース自動化

// .vscode/tasks.json
{
  "version": "2.0.0",
  "tasks": [{
    "label": "setup",
    "type": "shell",
    "command": "node malicious.js",
    "problemMatcher": [],
    "runOn": "folderOpen"  // フォルダを開くと自動実行
  }]
}

runOn: "folderOpen"が設定されている場合、プロジェクトを開いて「信頼」するだけで悪意あるタスクが実行される。

#### パス2:ビルド時実行
トロイ化されたjquery.min.jsなどのアセットに難読化されたコードが含まれており、npm run devを実行するとVercelから悪意あるJavaScriptローダーを取得する。

#### パス3:サーバー起動時実行
バックエンドルートが.envファイルからbase64エンコードされたエンドポイントをデコードし、process.envを外部送信した後、new Function()でサーバーから供給されるJavaScriptを実行する。

When(いつ発生しているのか)

この攻撃パターンは2023年後半から確認されており、現在も進行中。最新のキャンペーンは2026年2月にMicrosoftによって発見された。

Where(どこで発生しているのか)

被害は世界中で報告されているが、特に以下の地域が標的となっている:

  • 南アジア(インド、パキスタン)
  • 北米
  • ヨーロッパ(ベルギー、ブルガリア、イタリア、オランダ、ルーマニア)
  • 中東(UAE)
  • 中央アメリカ(コスタリカ)

Why(なぜ開発者を狙うのか)

開発者は以下の重要なリソースにアクセスできるため、格好の標的:

  • ソースコード:知的財産、商業機密
  • クラウド認証情報:AWS、GCP、Azureのキー
  • 本番環境へのアクセス:デプロイ権限、データベース
  • 組織全体への足がかり:1人の開発者を侵害すれば、組織全体へのアクセスが可能
  • How(どうやって攻撃するのか)

    #### C2(コマンド&コントロール)の仕組み

    攻撃は2段階のC2システムで動作:

  • ステージ1(レジストラ):軽量なポーリングで永続的なinstanceIdを取得
  • ステージ2(コントローラ)messages[]配列経由でJavaScriptタスクを受信し、Node.jsのSTDINにパイプして実行
  • 開発者:「技術課題を実行します」
    攻撃者のC2:「登録ありがとう。あなたのinstanceIdは47です。タスクを送信します」
    → コーディング課題がボットネットに参加
    

    #### 使用されているマルウェア

    • BeaverTail:JavaScriptインフォスティーラー&ローダー
    • GolangGhost(別名:FlexibleFerret、WeaselStore):Goベースのバックドア。HackBrowserDataオープンソースツールをベースにしている

    How much(どの程度の被害)

    • 3,136個のIPアドレスが標的
    • 20社以上が潜在的被害者
    • 17の異なるホスティングプロバイダーにC2サーバーを分散
    • 盗まれる可能性のある情報:

    .envファイル内のAWS認証情報
    – GitHubトークン
    – データベースパスワード
    – ブラウザのセッション情報

    IOC(侵害指標)

    セキュリティチームは以下を監視すること:

    ドメイン

    • api-web3-auth.vercel.app
    • price-oracle-v2.vercel.app

    IPアドレス

    • 87.236.177.9
    • 147.124.202.208
    • 163.245.194.216

    エンドポイント

    • /api/errorMessage
    • /api/handleErrors
    • /hsocketNext
    • /upload
    • /uploadsecond

    開発者が取るべき対策

    即時対策

  • VS Codeのワークスペース信頼機能を有効にする
  • – 未知のプロジェクトは「Restricted Mode」で開く
    – 信頼する前に.vscode/tasks.jsonnext.config.jsを確認

  • 技術課題をメインPCで実行しない
  • – 仮想マシン(VM)を使用
    – または分離された開発環境を使用

  • 求人の正当性を確認する
  • – 企業の公式サイトから確認
    – リポジトリリンクではなく、公式チャネルを通じて応募

    組織レベルの対策

  • Node.jsのアウトバウンド接続を監視
  • vercel.appドメインへの頻繁な接続
    – 不審なC2 IPへの接続

  • プロセス監視
  • – 親Node.jsプロセスから分離された子プロセス(node -)を検知

  • ファイルアクセス監視
  • node.exeCode.exeによる.env、Cookie、ブラウザ履歴への不審なアクセス

  • Microsoft Defender ASRルールを有効化
  • – 難読化スクリプトのブロック

    まとめ:開発ワークフロー自体が攻撃対象に

    この攻撃キャンペーンが特に恐ろしいのは、「サプライチェーン攻撃」ではなく「ソーシャルエンジニアリング」である点だ。

    攻撃者は開発者が日常的に行う行動を悪用:

    • フォルダを開く
    • 開発サーバーを起動する
    • バックエンドを起動する

    これらはすべて「正常な開発アクション」だが、攻撃者によって完全に武器化されている。

    Microsoftのアドバイスは明確だ:「開発ワークフローを主要な攻撃対象として扱え」

    求職活動は現代の開発者にとって日常的な行為だが、そのプロセス自体が攻撃ベクトルになり得ることを認識し、適切な防御策を講じることが今まで以上に重要になっている。

    参考情報

    • Microsoft Defender Experts調査レポート
    • Recorded Future Insikt Group:PurpleBravo調査
    • The Hacker News:North Korean PurpleBravo Campaign(2026年1月)
    • Threat Road Substack:Fake Job Interviews Are Installing Backdoors(2026年2月25日)

    コメント

    タイトルとURLをコピーしました