MFAを回避せず、ユーザーが通常どおりログインできる裏でパスワードを盗む攻撃をVaronisの研究者が発見

グローバル管理者(Global Administrator)または認証ポリシー管理者(Authentication Policy Administrator)の権限を持つ攻撃者は、Entraに不正な外部認証方式(EAM:External Authentication Method)を登録できます。

するとEntraは、この方式が割り当てられたユーザーに対して、攻撃者が管理するサービスをMFAプロバイダーとして扱います。プロバイダーに必要なのは、アプリケーション登録、サービスプリンシパル、そして外部から到達可能なHTTPSアドレスだけです。

ユーザーはまず、Microsoftの正規のサインインページでパスワードを入力します。MFAが始まると、Entraはブラウザーを不正なプロバイダーへリダイレクトします。

このプロバイダーは第2要素を求める代わりに、Microsoftのパスワード入力ページを精巧に模倣した画面を表示します。ユーザーがここでもう一度パスワードを入力すると、攻撃者のサーバーがそれを平文で記録します。

その後プロバイダーは、認証チェックに成功したと主張する署名付きトークンをEntraに送信します。Entraはこのトークンを検証し、サインインを完了させます。

Varonisのテスト用テナントでは、ユーザーはエラーなくアプリケーションにアクセスできました。その一方で、研究者のサーバーはパスワード、タイムスタンプ、送信元IPアドレスを受け取っていました。

Varonisは、小規模なOpenID Connectサーバーを使って概念実証(PoC)を構築しました。ディスカバリードキュメントでEntraにプロバイダーの場所を伝え、公開鍵によってEntraが返却トークンを検証できるようにしています。

この攻撃が成立するのは、有効なトークンがあっても、プロバイダーがユーザーに本物のMFAチャレンジを提示したことの証明にはならないためです。研究者のサーバーは、パスワードを収集しただけで、ハードウェアキーによる確認に成功したと主張しました。

この攻撃手法「TrustSink」は、Dirk-jan Mollema氏の先行研究を土台にしています。同氏は、不正なEAMプロバイダーが署名付きトークンを返すことでMFAチェックを回避できると示しました。V

aronisは同じ信頼境界を別の目的に利用し、正常に完了するサインインの最中に認証情報を収集しました。

この罠は、パスワードをリセットしても残ります。不正なプロバイダーが登録されたままであれば、ユーザーが次にサインインした際に、新しいパスワードも盗み取られる恐れがあります。

そのため防御側は、影響を受けたユーザーの認証情報をリセットする前に、不正なEAMを無効化し、グループへの割り当てを削除する必要があります。

Varonisは、認証方法ポリシー(Authentication Methods Policy)の変更、特に想定外の外部プロバイダー登録を監視するよう推奨しています。関連するアプリケーション登録、サービスプリンシパル、同意付与(consent grant)の確認も必要です。

サインインログでは、見慣れないプロバイダーの発行者(issuer)と、ハードウェアキーによる確認を示すクレームの組み合わせが、有力な手がかりになります。アプリケーション、サービスプリンシパル、権限付与に関するイベントが短時間に集中している場合も手がかりになり得ますが、攻撃者はツールを変更する可能性があります。

プロバイダーと関連する痕跡を削除した後、セキュリティチームはそのプロバイダー経由でサインインしたユーザーを全員特定し、パスワードをリセットしたうえで、その後のアカウント活動を確認する必要があります。

認証ポリシーを変更できる管理者ロールへの常時アクセスを制限すれば、1つの特権アカウントの侵害が、長期にわたるパスワード窃取の罠につながるリスクを減らせます。

ANY.RUNを導入している1万6,000以上のSOCチームに加わり、脅威調査を効率化して手作業を減らしましょう。チームで試してみる

翻訳元: https://cyberpress.org/rogue-mfa-steals-passwords/

本記事は cyberpress.org の記事を翻訳・要約したものです。