北朝鮮ハッカー集団、「伝染性インタビュー」キャンペーンでコードリポジトリを悪用

概要:巧妙化するサイバー攻撃の脅威

北朝鮮の脅威アクターが、「Contagious Interview」(伝染性インタビュー)と名付けられた新たなキャンペーンを展開し、開発者ツールやコードリポジトリのワークフローを悪用して、資格情報、暗号通貨ウォレットを窃取し、リモートアクセスを確立していることがSEAL社の分析で明らかになりました。驚くべきことに、被害者が送られてきたコードを「実行」しなくても、感染が成立するケースが報告されています。

最近SEAL社が分析したケースでは、悪意のあるBitbucketリポジトリ(hxxps://bitbucket[.]org/0xmvptechlab/ctrading)が、LinkedIn経由で開発者への持ち帰り技術評価として配布されました。過去1ヶ月間で、同様のソーシャルエンジニアリングの手口と技術的痕跡によって、3人の被害者が重大な金銭的損失を被ったとSEAL社に連絡しています。

「伝染性インタビュー」作戦の内部

このキャンペーンの中核は、Node.jsレイヤー(BeaverTail)とPythonレイヤー(InvisibleFerret亜種)を組み合わせた「デュアルスタック」マルウェアアーキテクチャです。

Node.jsコンポーネント(BeaverTail)の機能

  • 感染後すぐに実行され、資格情報の窃取、キーロギング、LevelDBブラウザ・ウォレットデータの強奪を行います。
  • 被害者の~/.npmディレクトリ配下に秘密のリモートアクセスツール(RAT)を起動します。
  • キーロガーとスクリーンショット機能は、172.86.116.178に情報を送信します。
  • 開発者の機密情報(.env.ssh、ウォレット、設定ファイル)に特化したファイルグラバーを含みます。
  • 暗号アドレス用のクリップボードクリッパー、ブラウザの資格情報窃取機能、完全なソケットベースのリモートシェルを提供します。

Pythonコンポーネント(InvisibleFerret亜種)の機能

  • 難読化された「.nlp」スクリプトを介して展開され、~/.n2および~/.n3配下に並行した監視スタックを確立します。
  • 主要モジュールであるway.pyはRATおよびウォレット窃取ツールとして機能し、Chrome/Braveを強制終了してLevelDBのロックを解除し、Node.js側がアクティブなウォレットデータベースを隠しステージングフォルダにコピーできるようにします。
  • pow.pyは、Windowsのスタートアップフォルダスクリプト、スケジュールされた「Runtime Broker」タスク、Windows Defenderの除外ルールを悪用して、XMRigマイナー(msedge.exeを装う)を再起動後も持続させることに重点を置いています。
  • LinuxおよびmacOSでは、pow.pyはWindows固有のインポートのため早期に失敗しますが、初期のデータ窃取は影響を受けません。

初期アクセス経路:IDEとアプリケーションロジックの悪用

初期アクセスは、従来の脆弱性悪用ではなく、密接に統合された「コードの悪用」によって実現されます。ctradingプロジェクトは、以下の3つのベクトル(うち2つが積極的に使用された)を通じてマルウェアを埋め込んでいます。

  1. VS Codeタスクハイジャック: 隠された.vscode/tasks.jsonエントリ「eslint-check」がrunOn: folderOpenに設定されており、フォントファイル(public/font/fa-brands-regular.woff2)に偽装されたJavaScriptペイロードを直接指しています。
  2. アプリケーションロジックフック: 自動タスクを避けるターゲットのために、バックアップトリガーがserver/routes/api/profile.jsに存在します。ここでgetPassport関数がタイプミスのあるドメイン(chainlink-api-v3[.]com)に接続し、エラーボディを動的なnew Function()コンストラクタに渡します。
  3. 過去のキャンペーンの遺物であるnpm依存関係(grayavatar)は、分析時点でnpmから削除されていました。

調査結果とDPRKへの帰属

SEAL社のフォレンジックレビューによると、マルウェアは特に非Windowsプラットフォームにおいて、長期的な安定した永続性よりも、データ、資格情報、ウォレットコンテンツの一回限りの窃取を強く優先していることが示されています。各被害者の環境には同じ侵害の痕跡(IOCs)が含まれており、ctradingリポジトリのコミットメタデータは一貫して韓国標準時(UTC+9)の構成を示していました。

今回の攻撃は、北朝鮮のオペレーターに高い確信度で帰属されています。「John Meltzer」というLinkedInのペルソナと「Meta2140」プロジェクトは、北朝鮮のIT労働者によって完全に管理されていると見られています。コミット作成者「Pietro」(github.com/pietroETH)は、以前の詐欺的な「Ultra-X」プロジェクトで見られたインフラストラクチャやIDと重複しています。これらのインフラストラクチャの再利用、タイムゾーンの痕跡、ソーシャルエンジニアリングの手口を総合すると、SEAL社はこのクラスターが2024年初頭まで遡る既知のDPRKのIT活動に関連していると結論付けています。

開発者とセキュリティチームへの推奨事項

本件は、開発者やセキュリティチームに対し、リポジトリをクローンし、VS Codeの「信頼できるワークスペース」を有効にするだけで、IDEタスクやアプリケーションのエラーハンドラに隠されたコード実行チェーンがトリガーされる可能性があるという、厳しい警告を発しています。手動でnpm startを実行する必要さえありません。

以下の対策が、プロフェッショナルな環境で不審なコードを扱う際の必須の衛生習慣となります。

  • 厳格なVS Codeワークスペース信頼性制御を適用する。
  • 自動タスクを無効にする。
  • ~/.n2~/.n3~/.nlp、および異常な~/.npmコンテンツなど、隠されたアーティファクトを定期的にスキャンする。

侵害の痕跡(IOCs)

以下のURL/IPは、本キャンペーンにおけるマルウェアのステージングおよび機能に関連するものです。

  • chainlink-api-v3.com:ステージ1 & 5でJSペイロードを配布(404エラーを介して)
  • 146.70.253.107:Python Stager (.nlp)、RAT (way)、Miner (pow) のダウンロード、RATのデータ流出とコマンドチャネルに使用
  • 172.86.116.178:Node RATのvhost.ctl通信、スクリーンショット/クリップボードのアップロードに使用

元記事: https://gbhackers.com/contagious-interview/