新手の巧妙な中間者型フィッシングサービス「VoidProxy」の正体
Okta脅威インテリジェンスチームは、VoidProxyと名付けられた、新しくかつ非常に回避性の高いフィッシング・アズ・ア・サービス(PhaaS) オペレーションに関する詳細な分析を公開しました。
VoidProxyは、攻撃者がMicrosoftやGoogleのアカウントを標的とするために使用されており、OktaのようなサードパーティのSSO(シングルサインオン)プロバイダーで保護されたアカウントを、フィッシングページにリダイレクトすることも可能です。
VoidProxyは、従来のメールセキュリティや認証制御をすり抜ける、成熟した、スケーラブルで回避性の高い脅威を表しています。
このサービスは、Adversary-in-the-Middle(AitM、中間者攻撃)技術を活用し、リアルタイムで認証フローを傍受し、認証情報、MFAコード、サインイン時に確立されたセッショントークンを取得します。この機能により、SMSコードやワンタイムパスワード(OTP)など一般的なMFA方式の保護を回避することが可能です。
Oktaは、Okta FastPassを含むフィッシング耐性のある認証手段を提供しています。私たちが観測したすべての攻撃において、FastPass に登録されたユーザーは、VoidProxy インフラを通じて認証情報を共有したりサインインしたりすることができず、アカウントが攻撃されているという警告を受け取っていました。
VoidProxyは、複数の解析回避機能によって、これまで分析を免れてきました。このプラットフォームは、侵害されたメールアカウント、複数のリダイレクト、Cloudflare CAPTCHA、Cloudflare Workers、動的DNSサービスを悪用して分析を回避しています。VoidProxyの全体像を把握できたのは、Okta FastPassを使用するお客様環境におけるフィッシング攻撃の検出・警告を可能にするOktaの独自機能、および当社の脅威分析・調査チームによる継続的な努力によるものです。
本ブログ記事では、各種の解析回避技術を要約するとともに、Oktaのセキュリティサイト(security.okta.com)では次の内容を含む完全な脅威アドバイザリを提供しています:
- VoidProxy PhaaSインフラに関する20ページ超の詳細分析
- 攻撃者の管理パネルの内部情報
- このサービスを使用している既知の脅威アクターを識別する侵害インジケーター(IoC)(これらのIoCはOktaのIdentity Threat Protection with Okta AIに登録されており、Oktaのお客様はリアルタイムの対応を自動化できます)
VoidProxyのような高度なフィッシングインフラをサービスとして提供することで、多様な脅威アクターがAitMフィッシング攻撃を実行する技術的ハードルが大幅に下がっています。PhaaS プラットフォームを通じて侵害されたアカウントは、以下のようなさまざまな悪意ある活動に悪用される恐れがあります:
- ビジネスメール詐欺(BEC)
- 金融詐欺
- データ流出
- 被害者ネットワーク内での横展開(ラテラルムーブメント)
この投稿の前半では、ユーザーの視点からVoidProxyのフィッシング攻撃の流れをたどります。後半では、攻撃者のインフラ構成を分析します。ここには、攻撃者がキャンペーンを構成したり、盗まれた認証情報を取得したりするために使用する管理パネルも含まれます。
VoidProxy攻撃のステップバイステップ
ステージ1:配信と誘導
私たちが観測した攻撃の初期段階では、実在するメール配信業者(ESPs)(例:Constant Contact、Active Campaign(Postmarkapp)、NotifyVisitorsなど)の侵害されたアカウントから、フィッシングメールが送信されていました。これにより、メールの評判値を利用してスパムフィルターを回避していました。
各フィッシングメールには、TinyURLなどのURL短縮サービスを使ったリンクが埋め込まれており、複数のリダイレクトを経て、最終的に第一段階のフィッシングサイトに誘導されます。これは自動解析(スキャン)を回避するための手口です。
図1. URLscanのデータが、TinyURLリンクからフィッシングドメインへのリダイレクトを示している。
これら第一段階のフィッシングページは、以下のような安価かつ信頼性の低いTLD(トップレベルドメイン)上に登録されたドメインでホストされています:
.icu、.sbs、.cfd、.xyz、.top、.home など
この戦略により、運用コストを最小限に抑え、ドメインを使い捨て資産として扱うことができます。ブロックリストに載った場合はすぐに廃棄され、新しいドメインに切り替えられます。さらに、これらのフィッシングサイトはCloudflareの背後に置かれており、実際のIPアドレスを隠蔽することで、セキュリティチームが攻撃サーバーを追跡・停止するのを困難にしています。
ステージ2:回避技術と誘導ページの読み込み
第一段階のランディングページが読み込まれる前に、Cloudflare CAPTCHAによるチャレンジが表示され、アクセス元がインタラクティブなユーザーかボットかを判定されます。
図2. フィッシングドメインに表示されたCloudflare CAPTCHAチャレンジ
次に、ターゲットユーザーのブラウザは Cloudflare Worker(*.workers.dev) と通信を行います。私たちはこのWorkerが、ゲートキーパー(入口制御)かつ誘導ローダーとして機能していると評価しています。その主な役割は、「入ってくるトラフィックをフィルタリングすること」と、「対象に応じた適切なフィッシングページを読み込ませること」です。このアーキテクチャにより、初期フィルタリングとフィッシング本体の処理が分離されています。チャレンジを通過すると、正規ログインポータルを完全に模倣したフィッシングページが表示されます。
第一段階のフィッシングサイトでは、次のような一貫したドメイン登録パターンが確認されています:
図3: Googleフィッシングページの場合: accounts.<phishing_domain>.<tld>
図4: Microsoftフィッシングページの場合: login.<phishing_domain>.<tld>
自動スキャナーやセキュリティツールでこれらのサイトにアクセスを試みた場合、汎用的な「Welcome!」ページにリダイレクトされ、それ以上の機能は表示されません。
図5. クエリパラメータがない場合に表示される「Welcome!」ページ
ステージ3:第二段階ランディングページ
被害者が第一段階のフィッシングページでMicrosoftまたはGoogleの認証情報を入力すると、そのデータは VoidProxy の中核となるAitM(中間者)プロキシサーバーに送信されます。ここから、VoidProxyの多層構造と高度な手法が展開されます。
Federated(フェデレーション)ユーザーは、MicrosoftやGoogleのアカウントに対する一次認証情報を入力した後、第二段階のランディングページにリダイレクトされます。一方、Non-federated(非フェデレーション)ユーザーは、プロキシを介して直接MicrosoftまたはGoogleのサーバーにリダイレクトされます。
ユーザーアカウント |
第一段階ページ |
第二段階ページ |
プロキシ先 |
ローカルMicrosoftアカウント |
Microsoftを偽装するランディングページ:login.<phishing_domain>.<tld> |
なし |
Microsoftサーバー |
ローカルGoogleアカウント |
Googleを偽装するランディングページ: accounts.<phishing_domain>.<tld> |
なし |
Googleサーバー |
Microsoftアカウント(OktaでSSO連携) |
Microsoftを偽装するランディングページ:login.<phishing_domain>.<tld> |
Oktaを用いたOffice 365のログインフローを偽装するランディングページ:newnewdom<randomstring>.<phishing_domain>.<tld> |
Oktaサーバー |
Googleアカウント(OktaでSSO連携) |
Googleを偽装するランディングページ: accounts.<phishing_domain>.<tld> |
Oktaを用いたGoogleのログインフローを偽装するランディングページ: securedauthxx<randomstring>.<phishing_domain>.<tld> |
Oktaサーバー |
図6. VoidProxyは、アカウント構成に応じて第一段階と第二段階のランディングページを切り替えてリダイレクト
ステージ4:AitMリレーとセッションハイジャック
フィッシング攻撃の次のステージでは、一時的なインフラ上にホストされた中核プロキシサーバーが、Adversary-in-the-Middle(AitM)攻撃を実行します。
このサーバーはリバースプロキシとして動作し、以下を傍受・中継します:
- ユーザー名・パスワード
- 多要素認証(MFA)の応答
- セッション確立時に発行されるセッションクッキー
正規サービス(Microsoft、Google、Oktaなど)が認証を成功させてセッションクッキーを発行すると、VoidProxyのプロキシサーバーがそれを傍受・複製します。複製されたクッキーは、攻撃者が管理する管理パネル経由で取得され、攻撃者は正規のセッションクッキーを手に入れることで、被害者のアカウントにアクセスできる状態になります。
VoidProxy のインフラ構成
VoidProxyの運用インフラは、使い捨て可能な短命フロントエンドと、より永続的なサーバーレスのバックエンドによって構成されています。
当社の脅威アドバイザリには、ページドメインとCloudflare Workerエンドポイントの命名パターンに関する詳細な分析が含まれており、これらはすべて、PhaaSプラットフォームの利用者(=アクセス権をレンタルする脅威アクター)向けに、自動または半自動でプロビジョニングを行うシステムの存在を強く示唆しています。このシステムは、PhaaS利用者同士を隔離するレイヤーを提供すると同時に、別の形式の難読化手段としても機能しており、これまで研究者がすべての活動を単一の運営主体に結びつけるのを困難にしていたのです。
VoidProxyの運用の中核部分は、sslip[.]io および nip[.]io という動的DNSワイルドカードサービスを介してアクセスされるサーバー上にホストされています。これらのサービスは、ホスト名に埋め込まれたIPアドレスを、それに対応するIPアドレスへ直接解決するように設計されています。
この一時的インフラ上でホストされているのは:
- VoidProxyのAitMプロキシエンジン:実際の中間者攻撃を行い、被害者と正規サービス間の通信を傍受・中継し、セッションクッキーを盗みます。
- 攻撃者向け管理パネル:PhaaSの利用者がキャンペーンの構成、被害者のモニタリング、盗まれたデータの取得などを行うためのWebベースUI
VoidProxyは、PhaaS顧客がキャンペーンを管理・監視できるフル機能の管理パネルを提供しています。
図7. VoidProxyの管理者ログイン画面
ログイン後は、以下のような複数の管理画面にアクセスできます:
- アカウントレベルのダッシュボード(図9)
- アカウント設定ページ(図17)
- キャンペーンの管理ページ
- 各キャンペーンごとのダッシュボード
図9. VoidProxy管理パネルダッシュボード
図17. VoidProxy管理パネル設定
これらのページでは、キットを使ってなりすましが可能なターゲットサービス、盗まれた機密情報の抽出方法(手動でのダウンロード、あるいは Telegram のボットトークンや Webhook URL を通じたリアルタイム通知)、さらにフィッシング活動に統合できる他のサードパーティツールがどのようなものかを確認することができます。
詳細情報
VoidProxy のインフラの詳細な内訳、この機能とアンダーグラウンド市場のベンダーとの関連、最近のアカウント乗っ取りイベントにおけるIoCなどを知るには、Oktaのお客様は security.okta.comにサインインし、完全なアドバイザリを読むことができます。
推奨事項
- Okta FastPass、FIDO2 WebAuthn(パスキー)、スマートカードなど、フィッシング耐性を備えた強力な認証手段にユーザーを登録し、ポリシーでフィッシング耐性を強制してください。
- Oktaの認証ポリシーを使って、カスタマイズ可能な条件に基づき、ユーザーアカウントへのアクセスを制限することができます。管理者は、エンドポイント管理ツールで管理され、エンドポイントセキュリティツールで保護されたデバイスに対してのみ、機密性の高いアプリケーションへのアクセスを許可することを推奨します。一方で、機密性の低いアプリケーションについては、Okta FastPass を用いて登録された、基本的なセキュリティ状態を満たすデバイスからのアクセスを要件としてください。
- 使用頻度の低いネットワークからのリクエストは拒否する、または高い保証レベルを要求するようにしてください。OktaのNetwork Zonesを使用すれば、アクセスは場所、ASN(自律システム番号)、IP、IPタイプ(既知の匿名プロキシの識別など)によって制御可能です。
- Oktaの行動・リスク評価機能を用い、過去に確立されたユーザーのアクティビティパターンから逸脱するアプリケーションアクセスリクエストを特定できます。このコンテキストを使って、ステップアップ認証を要求するか、アクセスを拒否するようにポリシーを構成できます。
- ユーザーに対して、疑わしいメール、フィッシングサイト、攻撃者が使用する一般的なソーシャルエンジニアリング手法の識別方法をトレーニングしてください。また、エンドユーザー通知や不審なアクティビティの報告機能を構成し、ユーザーが問題を簡単に報告できるようにしましょう。
- OktaのIdentity Threat Protection with Okta AIを使用して、不審なインフラとのユーザーインタラクションにリアルタイムで対応する修復フローを自動化しましょう。
- すべての管理者向けアプリケーションに IP セッションバインディングを適用し、盗まれた管理セッションの再利用を防止してください。
- Protected Actionsを有効にし、管理者が機密性の高い操作を実行しようとした際に再認証を強制するようにしてください。