Socketは、npmレジストリをホスティングおよび配布元として悪用した標的型フィッシング攻撃キャンペーンに関する調査報告を公開した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
サイバーセキュリティ企業Socketの脅威リサーチチームは2025年12月23日(米国時間)、npmレジストリをホスティングおよび配布元として悪用した持続的な標的型フィッシング攻撃キャンペーンに関する調査報告を公開した。
このフィッシング攻撃キャンペーンは、少なくとも5カ月にわたって行われた。米国および同盟国の重要インフラ関連業種(製造、産業オートメーション、プラスチック、医療、製薬など)の営業担当者など25人を標的としていた。
この攻撃は、6つの異なるnpmアカウントから公開された27の悪意あるパッケージが使用された。Socketによると、これらのnpmパッケージは全て、ブラウザで実行されるフィッシングコンポーネントを配布するように設計。埋め込まれたHTMLとJavaScriptのバンドルはいずれも、ページの読み込みと同時にブラウザ上で展開・実行され、安全な文書共有ワークフローや、Microsoftサインインプロセスの一部であるかのような偽の画面を表示するものだったという。
Socketによると、この攻撃キャンペーンでは、npmとCDN(コンテンツデリバリーネットワーク)をホスティングインフラとして悪用し、npmパッケージに埋め込んだクライアントサイドHTMLおよびJavaScriptを配布していた。パッケージコードは、フィッシングページ(偽のダイアログ)をテンプレート文字列として保存したものであり、document.open()、document.write()、document.close()を用いて現在のページを消去し、脅威アクターが制御するコンテンツに置き換える。
脅威アクターが制御するコンテンツとして最初に表示されるのが、左の「MicroSecure」文書共有サービスのダイアログだ。このダイアログは、RFQ(見積もり依頼)、プロジェクトの技術説明、会社概要、レイアウト図を含むPDFが共有されたことを伝え、電子メールを確認して操作を続行するよう促している。標的となった受信者のメールアドレスがページにハードコードされている(画像では、青字のプレースホルダーに置き換えられている)。
このダイアログで「Verify and Continue」(確認して続行)ボタンを押すと、右の偽Microsoftサインインダイアログが表示される。このダイアログは、セッションがタイムアウトしたことを知らせ、再認証を促す。左のダイアログと同じく、標的のメールアドレスがあらかじめ入力されている。
Socketの分析によると、悪意あるnpmパッケージは、セキュリティ製品によるサンドボックスや自動分析システムを検知して回避するため多層的なスクリーニングを実装していた。
まずスクリプトが、ブラウザの環境情報(navigator.webdriverフラグ、ユーザーエージェント、画面サイズなど)を検査し、botの特徴がないかどうかを確認する。同時に、マウスの移動やタッチイベントといった人間特有の動作が検知されるまで、「確認して続行」ボタンを無効化する。
さらに、分析自動化ツールの習性を逆手に取る「ハニーポット」の仕組みもあった。画面上では見えない隠し入力フィールド「company」を設置し、コード内の全項目を機械的に埋めようとするツールがこれに値を入力すると「人間ではない」と即座に判定する。
これらのチェックのいずれかに引っ掛かった場合、スクリプトはセッションが自動化されていると見なし、接続を遮断してフローをブロックする仕組みになっていたという。
標的が偽のMicrosoftサインインダイアログで、誘導に従って再認証すると、スクリプトは、脅威アクターが制御する外部のWebインフラにブラウザをリダイレクトし、URLフラグメントに標的の識別子を埋め込み、下流での認証情報収集を可能にする。
それらのインフラドメインの一部は、「Evilginx」と呼ばれるツールを利用した「AiTM」(Adversary-in-the-Middle:中間者攻撃型のフィッシング手法)攻撃インフラとして以前から知られているものだ。Evilginxは、中間者攻撃を実行するためのオープンソースのツールキットであり、ユーザー名、パスワード、セッショントークンの窃取に使用される。
Evilginx経由のAiTM攻撃では、標的が対話型認証を行う際に、脅威アクターがセッションcookieやトークンを取得する。従来の多要素認証(MFA)を無効化する一般的な手法だ。
従来のドメイン評価に基づくフィルタリングだけでは、正規のCDNやnpmレジストリ上の悪意あるコンテンツを防ぐことは困難だ。Socketは、npmホスト型フィッシングインフラやAiTMを用いた認証情報窃取のリスクを軽減するため、以下の対策を推奨している。
Socketはnpmセキュリティチームに、この攻撃キャンペーンと、残存していたライブパッケージについて通報し、パッケージ発行者のアカウント停止を要請した。標的となった人物が所属する25の組織に通知し、トリアージを支援するため関連メトリクスを共有したという。
ReactにCVSSスコア最大値10の深刻な脆弱性 どんな影響があるのか?
npmパッケージを狙った2度目の大規模攻撃 492のパッケージが自己増殖型ワーム「Shai Hulud」に感染
合計で毎週20億以上ダウンロード、「debug」「Chalk」など18の人気npmパッケージにマルウェア混入Copyright © ITmedia, Inc. All Rights Reserved.