「認証アプリがハッキングされる?」多要素認証を過信しないための「フィッシング耐性」向上策

多要素認証(MFA)の導入は、セキュリティ対策として非常に有効です。
実際、
Microsoft の調査では MFA を有効にすることで 99.9%以上のアカウント侵害の試みを防止できる と報告されています。

しかしここに、大きな落とし穴があります。

MFA の普及が進むにつれて、攻撃者は MFA を突破する新たな手口を開発しました。
それが「AiTM(Adversary-in-the-Middle)フィッシング攻撃」です。
スマートフォンの認証アプリで生成した 6 桁のコードも、この攻撃の前では無力化されてしまう可能性があります。

本記事では、AiTM 攻撃の仕組みを解説し、本当に強固な「フィッシング耐性のある認証」とは何かを紹介します。

参考:Entra ID 初学者向けシリーズ 第 3 弾 – Microsoft Authenticator アプリ入門

AiTM 攻撃とは何か?— MFA コードを”リアルタイム”で盗む手口

通常の MFA が突破されるメカニズム

AiTM(中間者)攻撃の流れは以下の通りです。

[被害者] → [偽のログイン画面 (攻撃者のプロキシサーバー)] → [本物のサービス]

  1. 攻撃者は、本物そっくりの偽ログインサイトを用意する
  2. フィッシングメールなどで被害者をその偽サイトに誘導する
  3. 被害者が ID・パスワードを入力すると、攻撃者のプロキシがリアルタイムで本物のサービスに転送する
  4. 本物のサービスが MFA を要求すると、偽サイトが同様に MFA 入力画面を表示する
  5. 被害者が認証アプリの 6 桁コードを入力すると、攻撃者がそれを即座に本物のサービスへ転送して認証を完了させる
  6. 攻撃者は認証済みのセッショントークン(Cookie)を入手し、以後はパスワードも MFA も不要で被害者のアカウントにアクセスできる

ポイントは、攻撃者は認証情報を「保存」するのではなく「中継」しているという点です。
TOTP(時間ベースのワンタイムパスワード)は有効期限が 30 秒程度しかありませんが、リアルタイムの中継であれば十分間に合います。

参考:Adversary-in-the-Middle フィッシング攻撃への対策

AiTM 攻撃耐性と MFA の種類

以下は、認証方式と AiTM 攻撃耐性です。

認証方式AiTM への耐性理由
SMS ワンタイムパスワード❌ 脆弱コードをリアルタイムで中継可能
認証アプリの TOTP(6 桁コード)❌ 脆弱コードをリアルタイムで中継可能
プッシュ通知(承認ボタン)△ 限定的Number Matching などの追加情報によりユーザーが不審に気付きやすい
FIDO2 / パスキー✅ 耐性ありオリジン(ドメイン)にバインドされた暗号認証
証明書ベース認証(CBA)✅ 耐性あり公開鍵証明書による暗号認証
Windows Hello for Business✅ 耐性ありデバイスにバインドされた暗号認証

被害事例:「0ktapus」

2022年、「0ktapus」と呼ばれる大規模 AiTM フィッシングキャンペーンが複数の著名企業を標的にしました。
偽の SMS でフィッシングサイトに誘導し、ID・パスワードと MFA コードをリアルタイムで盗み取る手口が使われました。

この事件では、採用していた MFA の種類によって被害の明暗が分かれました。

物理的な FIDO2 セキュリティキーをすべての従業員に義務付けていた組織では、攻撃が成功しなかった一方、従来型 MFA のみを使用していた組織では認証が突破されました。

Microsoft もこの種の攻撃を継続的に観測・分析しております。

本当に強固な認証とは — 「フィッシング耐性のある MFA」

Microsoft Entra ID では、認証方式をフィッシング耐性の有無で明確に区別しています。

参考:Adversary-in-the-Middle フィッシング攻撃への対策

なぜ FIDO2 / パスキーはフィッシングに強いのか?

FIDO2 / パスキーが AiTM 攻撃を防げる理由は、認証がオリジン(ドメイン名)に暗号的にバインドされているからです。

通常の TOTP コードは「どのサイトへのログインか」に関係なく使える汎用的な数値です。
しかし FIDO2 認証では、秘密鍵を使った署名に接続先のドメイン情報が含まれます

  • 本物のサイト login.microsoftonline.com で認証 → ✅ 正しいオリジン、認証成功
  • 偽サイト login.attacker.com 経由で中継 → ❌ オリジンが一致しない、認証拒否

攻撃者が認証プロセスをプロキシしようとしても、偽サイトのドメインが本物のサービスに登録されたドメインと一致しないため、認証が失敗します
攻撃者が入手できるのは無効な署名だけです。

参考:Entra ID 初学者向けシリーズ 第 3 弾 – Microsoft Authenticator アプリ入門

証明書ベース認証(CBA)とは

証明書ベース認証(Certificate-Based Authentication: CBA)は、スマートカードや端末に格納された X.509 クライアント証明書を使用して認証する方式です。
PKI(公開鍵基盤)による 公開鍵暗号認証を利用するため、パスワードやワンタイムコードのような共有秘密情報が存在せず、中継型のフィッシング攻撃に対して強い耐性を持ちます。

特に、緊急アクセス(Break Glass)アカウントなど、パスキーの運用が難しいケースでも CBA は有力な選択肢です。

参考:Azure ポータル (および Azure CLI 等) の MFA 義務付けに関する更新情報 (2024/6/27)

Microsoft Entra ID で実践する「認証強度」の設定

Microsoft Entra ID の条件付きアクセスでは、「認証強度(Authentication Strengths)」という機能を使って、特定のリソースへのアクセスにフィッシング耐性のある MFA のみを許可するポリシーを設定できます。

組み込みの認証強度レベル

強度レベル対象の認証方式
Multifactor authenticationすべての MFA 方式(TOTP 含む)
Passwordless MFAパスワードレス認証(パスキー、Windows Hello for Business 等)
Phishing-resistant MFAパスキー(FIDO2)、CBA、Windows Hello for Business のみ

管理者は、重要なシステムやデータへのアクセス条件に「Phishing-resistant MFA」を指定することで、たとえ SMS や TOTP のみを登録しているユーザーがいても、そのアクセスを自動的にブロックできます。

参考:条件付きアクセス認証の強度

段階的な移行戦略

すべてのユーザーを即日 FIDO2 に移行するのは現実的ではありません。
以下の優先順位で段階的に取り組むことを推奨します。

ステップ 1:まず「フィッシングに気づける」MFA へ

FIDO2 の導入前でも、Microsoft Authenticator アプリの数値一致(Number Matching)機能を活用することで、AiTM 攻撃を困難にできます。

  • 認証要求元のアプリ名・場所・IP アドレスが画面に表示される
  • ユーザーが「自分がログインしていない」と気づきやすくなる
  • 不審な通知に「No, it’s not me」を押すと Entra ID Protection にリスクシグナルが送られる

ステップ 2:特権アカウントから FIDO2 / CBA を適用

管理者アカウントや重要システムへのアクセス権を持つユーザーから、フィッシング耐性のある認証方式へ移行します。

Microsoft も 2025 年 2 月より Azure Portal へのサインイン時に MFA を義務付けており、緊急アクセスアカウントには FIDO2 または CBA の利用を強く推奨しています。

ステップ 3:一般ユーザーへの Microsoft Authenticator パスキーの展開

Microsoft Authenticator アプリは、iOS および Android でデバイスにバインドされたパスキーをサポートしています。ユーザーが既にアプリを使っていれば、ハードウェアキーを別途購入する必要なく、フィッシング耐性のある認証へ移行できます。

参考:パブリック プレビュー: パスキーのサポートを Microsoft Entra ID に拡張

また、組織が管理者側でセキュリティキーの登録をユーザーに代わって行える FIDO2 プロビジョニング API も提供されており、大規模展開を支援します。

参考:パブリック プレビュー: Microsoft Entra ID FIDO2 のプロビジョニング API

ステップ 4:条件付きアクセスで「Phishing-resistant MFA」を強制

段階的に移行が完了したユーザーから、条件付きアクセスポリシーで「Phishing-resistant MFA」を要求する設定に切り替えます。

これにより、フィッシング耐性のない認証方式は自動的にブロックされます。

まとめ

観点従来の MFA(TOTP/SMS)フィッシング耐性のある MFA(FIDO2/CBA)
パスワード漏洩✅ 防御✅ 防御
AiTM フィッシング❌ 突破可能✅ 高い耐性
セッショントークン盗取❌ 可能△ 完全防御ではないが
攻撃難易度が高い
ユーザーの利便性〇 普及済み◎ パスキーは生体認証で簡単
導入コスト低い中〜高(ハードウェアキーの場合)

MFA の導入は今や最低限の対策です。攻撃者はすでに MFA を前提とした攻撃手法を持っています。
これからは 「MFA を入れているか」ではなく、「どの MFA を使っているか」 が問われる時代です。

FIDO2 / パスキーと証明書ベース認証を中心としたフィッシング耐性のある認証方式への移行を、ぜひ計画的に進めてください。

免責事項:Microsoft 365の機能や仕様は変更される可能性がありますので、実施前には最新の公式ドキュメントをご確認ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人