新OAuth攻撃「ConsentFix」がMicrosoft Entra ID認証を迂回し機密情報を窃取

新たなOAuth攻撃「ConsentFix」の脅威

サイバーセキュリティ研究者たちは、Microsoft Entra IDを標的とした新たな攻撃手法を発見しました。PushSecurityによって「ConsentFix」と名付けられたこの手口は、正当なOAuth 2.0認証フローを悪用し、特権アクセストークンを窃取します。これは従来のClickFixソーシャルエンジニアリング手法の進化形であり、攻撃者はファーストパーティのMicrosoftアプリケーションにおける認可コードフローを悪用することで、デバイスコンプライアンスチェックや条件付きアクセスポリシーを回避することが可能になります。

攻撃の手法:OAuth 2.0認可コードフローの悪用

ConsentFix攻撃は、Microsoft Azure CLIのようなネイティブ公開アプリケーションがユーザーを認証する方法を根本的に悪用します。攻撃者は、被害者が悪意のあるウェブサイトにアクセスした際、「Microsoft Azure CLI」クライアントアプリケーションと「Azure Resource Manager」リソースを標的とした正当なMicrosoft EntraログインURIを生成します。これにより、標準のOAuth 2.0認可コードフローが開始されます。

通常のシナリオでは、Entra IDは認証成功後、ユーザーをlocalhostにリダイレクトし、認可コードなどの重要なパラメータを返します。Azure CLIアプリケーションはこのリダイレクトを捕捉し、コードをベアラートークンと交換します。

しかし、ConsentFix攻撃では、localhostでリッスンするアプリケーションが存在しないため、ブラウザエラーが発生します。それでもURIには機密性の高い認可コードが含まれており、攻撃者はユーザーを操作して、ドラッグ&ドロップまたはコピー&ペーストでこのコードを提供させます。セキュリティ研究者のJohn Hammond氏は、手動でのコピー&ペーストを不要にし、純粋なドラッグ&ドロップでの抽出を可能にする改良版を公開しています。

一度コードが取得されると、攻撃者は自身のインフラストラクチャからコードを引き換え、アクセストークン、IDトークン、および潜在的にリフレッシュトークンを取得し、Azure Resource Managerやその他のクラウドリソースへの無制限なアクセスを可能にします。

異常相関による検知メカニズム

この攻撃の成功時には、Entra IDのサインインログに特徴的なアーティファクトが残ります。各攻撃は、被害者の認証を示す初期の対話型サインインと、トークン引き換え時に攻撃者のインフラストラクチャからの非対話型サインインという、2つのイベントを生成します。

認可コードURIとベアラートークンURIが異なるため、潜在的な相関メカニズムが破られる可能性がありますが、SessionIdは両方のイベント間で一貫しています。効果的な検知には、同一のSessionIdApplicationId、およびUserIdを共有し、2番目のイベントが最初のイベントから約10分以内に発生しているイベントをリンクすることが必要です。

正当なAzure CLIの使用では両方のサインインが同じIPアドレスから発生するのに対し、攻撃では被害者と攻撃者のインフラストラクチャ間で地理的な分散が見られます。

影響を受けるアプリケーション

初期報告では、Microsoft Azure CLI(アプリケーションID: 04b07795-8ddb-461a-bbee-02f9e1bf7b46)に焦点が当てられていましたが、この脆弱性はlocalhostへのリダイレクトを受け入れる多数のプリコンセントされたファーストパーティアプリケーションに拡大します。高リスクの標的には以下が含まれます。

  • Microsoft Azure PowerShell
  • Visual Studio
  • Visual Studio Code
  • MS Teams PowerShell Cmdlets

EntraScopes.comのセキュリティ研究者たちは、公開解決可能性を欠く開発およびテストURLを含む、影響を受けるアプリケーションの全範囲をカタログ化しています。

組織向けの緩和策

組織は、導入の複雑さと緩和効果のバランスを取りながら、さまざまな防御オプションを検討する必要があります。最も容易なアプローチは、影響を受けるサービスプリンシパルに対して明示的なユーザー割り当てを要求することです。これにより攻撃の対象を制限できますが、正当なCLIユーザーの包括的な特定が必要になります。

条件付きアクセスポリシーは、CLIツールへのアクセスを完全にブロックすることができますが、これにはレポート専用モードでの綿密なベースライン分析が必要です。

最も堅牢な防御策は、Windowsプラットフォーム上のWeb Account Manager(WAM)ブローカーを介したプルーフ・オブ・ポゼッションを要求するMicrosoft Entra IDの「トークン保護」機能を活用することです。これを適用すると、ブラウザはコード引き換えに必要なセキュアチャネルを確立できなくなり、ConsentFix攻撃を完全に無効化します。ただし、その範囲は特定のMicrosoft 365リソースに限定されており、Azure管理シナリオでは公式サポートがまだ保留されています。

より広範な保護のためには、コンプライアントなネットワークチェックを備えたGlobal Secure Accessにより、盗まれたリフレッシュトークンを使用したその後のトークン発行をブロックできますが、これは初期のコード引き換えを防ぐものではありません。デバイス管理の「鶏と卵」の問題には、Intuneやその他の管理サービスに対する慎重な除外ポリシーが必要です。

レッドチームがこれらの手法を迅速に武器化し、脅威アクターがフィッシングキャンペーンに適合させる中、防御側は直ちに異常なSessionId相関のサインインパターンを監査し、CLIアプリケーションのユーザー割り当て制御を実装し、トークン保護の準備状況を評価する必要があります。


元記事: https://gbhackers.com/new-oauth-attack/