Azureでパスワードなしサインインの失敗を追跡する

2023年3月9日
Dmitriy Beryoza
Senior Security Researcher
Azureでパスワードなしサインインの失敗を追跡する

悪意のあるサインイン試行を追跡するのは容易ではない

最近、Azureパスワードレス認証が設定された環境で、不審な挙動があったため調査しました。調査のきっかけは、複数のユーザーが予期せぬAuthenticatorアプリのプロンプトを表示されたことでした。信用できることに、どのユーザーも策略にはまらず、攻撃者を侵入させることはありませんでした。

MFA疲労として知られるこの種の事象は、大小の組織で日常的に発生し、予想されている。攻撃者はこのソーシャル・エンジニアリングのテクニックを活用し、ユーザーを騙してプッシュ認証のプロンプトを受け入れさせようとする。)

このシナリオは、失敗したパスワードなしのプロンプトに関連するログ記録のため、調査するのが独特に困難であることが判明した。

ロギング機能の制限が調査を複雑にする

悪意のあるサインイン試行を追跡することは、クラウド環境を保護するために非常に重要であり、利用可能なクラウドログを監視することによってのみ可能である。マイクロソフトと他のクラウドプロバイダーはログのスキーマを公開し、記録配信のサービス・レベル・アグリーメント (SLA) を提供しているが、クラウドログを悩ませるいくつかの問題がまだある:

  • レコード・イベントのタイプはよく文書化されていないことが多く、まったく文書化されていないこともある。
  • ログに記録される値やIDの中には、クラウドプロバイダー内部のものもあり、その意味は不明である。
  • 新しいログ記録タイプが追加され、記録タイプが廃止され、記録フォーマットが消費者に通知することなく変更される。

このすべてが、インシデントの監視とレスポンス を複雑にし、クラウド消費者がログ記録の完全性について確信が持てないまま、予告なしの変更に対してキャッチアップをすることになる。

Azureにおけるパスワードなしサインインの失敗を発見し、緩和するための詳細な考察

パスワードレス認証

馴染みのない人のために説明すると、パスワードレス認証は、ユーザーが安全でないパスワードを作成するリスクを軽減するための強固なオプションである。Azureでパスワードレス認証を有効にするには、いくつかの方法がある。調査した環境では、Microsoft Authenticator Appを使用した。

パスワードレス認証に登録するには、エンドユーザーは以下の詳細な設定手順に従う。この方法で登録が完了したら、Azureのサインインプロンプトにユーザー名を入力し、「代わりにアプリを使う」オプションを選択することができる:

ユーザーはAzureのサインインプロンプトにユーザー名を入力し、「代わりにアプリを使う」オプションを選択することができる。


その後、ユーザーはモバイルアプリに入力する番号を与えられ、手続きを完了する:

その後、ユーザーはモバイルアプリに入力する番号を与えられ、手続きを完了する。

番号が一致すれば、ユーザーは認証される。それなりに安全である一方、この方式では、ユーザーはもはや良いパスワードを作ったり覚えたりする必要がないため、使い勝手が大幅に向上する。

調査

過去には、Microsoft Authenticator を第 2 要素として使用したパスワードレス・サインインなど、Azure で MFA を設定するさまざまな方法を監視してきました(つまり、ユーザーが正しいパスワードを入力した後、アプリでプロンプトが表示される場合)。Microsoft Authenticator を第 2 の要素として使用する場合、Authenticator プロンプトが放棄されるか、コードが正しくない場合、ログに次の 2 つのエラーのいずれかが記録されます:

  • 50074 強力な認証が必要です。
  • 500121 強力な認証要求中に認証に失敗しました。

その結果、これらのエラーコードを探すために、検知とハンティングのクエリーが設定された。

しかし、Microsoft Authenticatorアプリが、パスワードレス認証の場合のようにシングルファクターとして設定されている場合、プロンプトが放棄されると、次のようなエラーが表示された。

  • {"errorCode":1003033,"failureReason":"The remote NGC session was denied."}

このエラーコードは斬新で、これまで見たこともなく、インターネットを検索してもその原因に関する情報はほとんどない。エラーメッセージも不可解で、"NGC "が何であるかの説明もない。検索した結果、「PIN Credential Provider」として記録されているGUID D6886603-9D2F-4EB2-B667-1971041FA96Bに対応することがわかりました。

ログの記録を調べると、他にもいくつかの矛盾点が見つかった(下のスクリーンショットを参照):

  • 場所とデバイスの詳細(赤色)は入力されていません。
  • アプリとリソース情報(青字)が欠落している。
  • ユーザー情報(紫色)が制限されています。UserPrincipalNameとUserDisplayNameには、期待される値(ユーザの電子メールアドレスとフルネーム)が入力されていません。代わりに、UserIdの値が3つのフィールドすべてにあります。
ログ記録の矛盾。

異常なエラーコードとログ記録の欠落データにより、このような事象に対するアラートや適切な調査が難しくなっている。

緩和

このインシデントを調査することが困難であったため、私たちは収集した詳細をセキュリティ・コミュニティと共有し、セキュリティ実務者がこの状況を捕捉するためにハンティング・クエリを調整できるようにしたいと考えました。私たちVectra は、このシナリオをカバーするために、すでに製品をアップデートしました。

ハンティングクエリは、過去30日間に失敗したパスワードなしログインをすべて検索する以下のKustoスニペットのように単純なものでよい:

SigninLogs | where TimeGenerated > ago(30d) | where ResultType == 1003033

NGCに関連する他のエラーコードも参考になるだろう:

収穫:

  • 環境に新しい認証方法を導入する場合、これらの新しいメカニズムとのやり取りから生じるログを評価する。監視とアラートのために考慮する必要があるかもしれない、新しいエラー・コードとログ・レコード・タイプを探す。
  • パスワードなしでのサインイン失敗を監視する組織は、ハンティング・クエリにコード1003033を追加することを検討すべきである。このレコードで利用可能な情報は限られていることに注意してください。UserPrincipalNameや、サインイン・ログ・レコードで通常利用可能なその他の情報を使用することはできません。
  • クラウドプロバイダー (マイクロソフトを含む) への呼びかけ:ログを、多くのアクターが依存している重要なセキュリティ機能として扱ってください。ログの記録を徹底的に文書化し、ログから欠落している情報を補い、変更を加える場合はそれを発表してください。そうすることで、顧客やセキュリティ・ベンダーが、すべての人の安全を守るために戦うことができるようになります。

ピーター・シャウプとレイ・バレロに感謝の意を表したい。

よくあるご質問(FAQ)

MFA疲労とは何か、パスワードレスサインインとの関係は?

MFA疲労とは、攻撃者がユーザーに認証プロンプトを繰り返し送信し、ユーザーがフラストレーションや混乱から認証プロンプトを受け入れることを期待するソーシャル・エンジニアリングのテクニックである。この手法は、Uberを含む最近の攻撃で使用されている。パスワードなしサインインでは、攻撃者はユーザーを騙して認証アプリからのプッシュ通知を受け入れさせようとする可能性がある。

クラウド環境で悪意のあるサインイン試行を追跡することが重要なのはなぜなのか?

悪意のあるサインイン試行を追跡することは、セキュリティの脅威を特定し対応するために不可欠である。クラウドのログを監視することで、組織は検知 不正なアクセス試行を追跡し、環境を保護するための適切な対策を講じることができる。

Microsoft Authenticator を使用したパスワードなしサインインの失敗には、どのようなエラー コードが関連付けられますか?

パスワードレス認証のシングルファクタとして Microsoft Authenticator を使用する場合、「リモートの NGC セッションが拒否されました」を示す 1003033 というエラーコードがよく発生します。このコードは PIN クレデンシャルプロバイダに関連付けられている。

パスワードなしでのサインインに失敗した場合、組織はどのように監視を改善すればよいのだろうか。

組織は、エラー・コード1003033およびその他の関連コードを含むように、ハ ンティング・クエリを更新する必要がある。また、新しい認証メカニズムを導入する際には、新しいエラー・コードとログ・レコード・タイプについてログを評価し、包括的な監視と警告を確実に行う必要がある。

このようなロギングの課題に対応するために、セキュリティ担当者は何をすればいいのだろうか?

セキュリティ担当者は、新しいログ記録タイプやエラーコードに基づいて、定期的に検知やハントクエリを見直し、更新する必要がある。また、発見したことをセキュリティ・コミュニティと共有することは、他のセキュリティ担当者が監視を調整し、全体的なセキュリティを向上させるのに役立ちます。

Azure ADでパスワードなしサインインの失敗をログに記録するには、どのような課題がありますか?

主な課題には、文書化されていない、または文書化が不十分なログ記録タイプ、内部クラウドプロバイダの値やID、ログ記録タイプやフォーマットの予告なしの変更などがある。これらの問題は、パスワードなしサインインの失敗を監視、警告、調査することを困難にしている。

Microsoft Authenticator アプリはパスワードレス認証でどのように機能しますか?

パスワードレス認証では、ユーザーはユーザー名を入力し、「代わりにアプリを使用する」オプションを選択します。その後、Microsoft Authenticator アプリに入力する番号が表示されます。番号が一致すると、ユーザーはパスワードを覚えることなく認証されます。

パスワードなしでのサインインに失敗した場合、どのような問題がありましたか?

異常なエラーコード(1003033)、場所、デバイス情報、ユーザー詳細などのログ記録の詳細が欠落していたため、調査は難航した。このような情報不足のため、警告を発したり、イベントを適切に調査したりすることが困難でした。

パスワードなしでのサインインに失敗した場合、組織はどのように監視を改善すればよいのだろうか。

クラウドプロバイダーは、ログの記録を徹底的に文書化し、欠落している情報を補い、ログの記録や形式に変更があればそれを公表することで、ログを重要なセキュリティ機能として扱うべきである。この透明性は、顧客とセキュリティ・ベンダーが強固なセキュリティ対策を維持するのに役立つ。

なぜパスワードレス認証がセキュリティ向上のための強固なオプションと考えられているのか?

パスワードレス認証は、ユーザがパスワードを作成したり覚えたりする必要性をなくすことで、安全でないパスワードに関連するリスクを軽減します。Microsoft Authenticatorアプリを使用するような方法は、ユーザビリティを向上させながらセキュリティを強化し、攻撃者が従来のパスワードベースの攻撃によってアカウントを侵害することを困難にします。