Authentication

セキュリティ研究者らは、特権アクセス権を持つハッカーが、正当なログイン試行の際にユーザーのパスワードを盗み出す不正な外部MFAプロバイダーを登録できるようにする攻撃手法を開発した。

Varonis Threat Labs が「TrustSink」と名付けたこの手法は、この外部認証モデルを採用しているプロバイダーであればどれでも機能しますが、研究者らは Microsoft Entra を使用してこの攻撃を実証しました。

Microsoft Entraは外部MFAプロバイダーをサポートしており、これにより組織はサードパーティの認証サービスを利用して多要素認証の要件を満たすことができます。

Microsoftによると、ユーザーがパスワードなどの第1要素でサインインすると、Entraは必要な第2要素を完了させるために、ユーザーを外部MFAプロバイダーにリダイレクトすることができます。

プロバイダーが、第2要素が完了したことを示す有効な署名付きトークンを返すと、EntraはMFA要件が満たされたものとみなします。

Varonisの調査によると、特権の高いEntraアカウントをすでに乗っ取っている攻撃者は、不正な外部認証方法(EAM)をこれらの外部MFAプロバイダーの1つとして登録し、それを使って正当な認証フローに、本物そっくりのMicrosoftパスワード入力プロンプトを挿入することができることが判明しました。

この偽のプロンプトは、悪意のあるプロバイダーが有効な署名付きトークンをEntraに返す前に、ユーザーのパスワードを平文でキャプチャし、エラーを表示することなくログインを完了させてしまいます。

「当社のテストテナントでは、すべてのサインインが正常に完了した一方で、当社のサーバーにはタイムスタンプと送信元IPアドレス付きのパスワードが受信されていました」とVaronisは説明しています。

「キャプチャされたパスワードをリセットしても、不正なプロバイダーは削除されませんでした。それは認証フローに残ったままとなり、ユーザーの次回のサインイン時に、新しいパスワードもキャプチャされました。」

TrustSinkは初期アクセス攻撃ではなく、攻撃者がすでに高権限のEntraアカウントを制御している必要がある点に留意することが重要です。

外部MFAプロバイダーの悪用

TrustSinkは、Microsoftが設定済みの外部MFAプロバイダーに対して抱く信頼を悪用します。

Varonisは、Entraからは正当な外部MFAプロバイダーとして認識されるが、ユーザーにはMicrosoftのパスワードページのコピーを表示する悪意のあるプロバイダーを作成しました。

The TrustSink attack
TrustSink攻撃

概念実証(PoC)攻撃では、当初、ログインは通常通り進行し、ユーザーは Microsoft の正規サイト login.microsoftonline.com でメールアドレスとパスワードを入力します。

MFA がトリガーされると、Entra は 2 段階目の認証手順のために、ブラウザを攻撃者の外部 MFA プロバイダーにリダイレクトします。

この悪意のあるプロバイダーは、正当な第2要素の認証要求を表示する代わりに、Microsoftのパスワード入力画面のコピーを表示します。

External MFA provider showing a Microsoft login prompt
Microsoft のログインプロンプトを表示する外部 MFA プロバイダー
出典:Varonis

被害者が、Microsoft が認証プロセスの一環としてパスワードを要求していると信じて再度パスワードを入力すると、その認証情報は攻撃者が制御するサーバーに送信されます。

その後、この不正なプロバイダーは、MFA プロンプトが完了したことを示す署名付きトークンを生成し、それを Entra に返します。これにより、ユーザーは当初アクセスを試みたアプリケーションに引き続きアクセスできるようになります。

被害者から見れば、サインインは正常に完了したように見えます。

Varonis によると、この攻撃が説得力を持つのは、ユーザーがすでに別の認証ステップを予期しているタイミングで、偽のパスワード入力プロンプトが表示されるためである。

研究者らによると、このページはマイクロソフトの正規のログインページと同じフォント、レイアウト、ボタンデザインを採用しており、被害者がマイクロソフトのドメイン上で実際のパスワードを入力した直後に表示されるという。

Varonisによると、「TrustSink」は、セキュリティ研究者のDirk-Jan Mollema氏がx33fcon 2025で「Bringing Your Own Identity in Entra ID」と題した講演で発表した先行研究を基に構築されている。

Mollema氏は、不正に登録された外部MFAプロバイダーが、実際に期待される認証チェックを実行することなく、認証が成功したことを主張する署名付きJWTを返すことで、MFA要件を満たすことができることを実証した。

TrustSinkは、この同じ攻撃手法を悪用して認証情報を盗み出します。

Varonisによると、悪意のある外部認証方法を登録するには、「認証方法ポリシー」を変更し、アプリケーション、サービスプリンシパル、および同意グラントを作成する必要があるという。

これらの操作にはグローバル管理者または認証ポリシー管理者のアカウントが必要であるため、TrustSinkはシステムが侵害された後に実行される手法となります。

しかし、一度インストールされると、この不正なプロバイダーは、その後のログインにおいても標的となったユーザーの認証パスに残り続ける可能性があります。

不正な MFA プロバイダーはテナントの「認証方法ポリシー」に登録されたままとなるため、ユーザーがパスワードを変更したとしても、次回のログイン試行時にそのパスワードが再び取得されてしまいます。

そのため、Varonis は、影響を受けた認証情報を更新する前に、悪意のあるプロバイダーを削除するよう管理者に警告しています。

Varonis は、影響を受けるユーザーのパスワードをリセットする前に、不審な外部 MFA プロバイダーおよびそれに関連するアプリケーション、キー、リダイレクト URI を削除することを推奨しています。

また、組織は「認証方法ポリシー」の変更を監視し、グローバル管理者および認証ポリシー管理者の権限を制限するとともに、FIDO2 や Windows Hello for Business などのフィッシング攻撃に強い認証方法を使用する必要があります。