アプリケーションのための Microsoft Entra セキュリティ オペレーション ガイド
アプリケーションは、セキュリティ侵害の攻撃対象となるため、監視する必要があります。 ユーザー アカウントほど頻繁に狙われるわけではありませんが、侵害される可能性があります。 アプリケーションは人間の介入なしで実行されることが多いため、攻撃を検出することがより難しい場合があります。
この記事では、アプリケーション イベントの監視とアラートに関するガイダンスを提供します。 次のことを確実に行えるように定期的に更新されます。
悪意のあるアプリケーションがデータに不正にアクセスできないようにする
アプリケーションが不正なアクターによって侵害されないようにする
新しいアプリケーションのビルドと構成をより安全に行うことができるように分析情報を収集する
Microsoft Entra ID でのアプリケーションの動作に習熟していない場合は、Microsoft Entra ID のアプリとサービス プリンシパルに関するページを参照してください。
Note
Microsoft Entra のセキュリティ オペレーションの概要をまだ確認されていない場合は、今すぐご確認ください。
注意点
アプリケーション ログでセキュリティ インシデントを監視する場合、以下の一覧を確認すると、通常のアクティビティと悪意のあるアクティビティを区別できます。 次のイベントは、セキュリティ上の問題を示している可能性があります。 それぞれをこの記事で説明します。
通常ビジネスのプロセスとスケジュールの外で発生した変更すべて
アプリケーション資格情報の変更
アプリケーションのアクセス許可
Microsoft Entra ID または Azure のロールベースのアクセス制御 (RBAC) のロールに割り当てられたサービス プリンシパル
高い特権を持つアクセス許可が付与されたアプリケーション
Azure Key Vault の変更
アプリケーションに同意を付与するエンド ユーザー
リスクのレベルに基づいてエンド ユーザーの同意を停止した
アプリケーション構成の変更
ユニバーサル リソース識別子 (URI) の変更または非標準
アプリケーション所有者に対する変更
ログアウト URL が変更された
確認先
調査と監視に使用するログ ファイルは次のとおりです。
Azure portal から、Microsoft Entra 監査ログを表示したり、コンマ区切り値 (CSV) または JavaScript Object Notation (JSON) ファイルとしてダウンロードしたりできます。 Azure portal には、以下のような監視とアラートの自動化を強化できる他のツールと Microsoft Entra ログを統合する方法がいくつかあります:
Microsoft Sentinel - セキュリティ情報イベント管理 (SIEM) 機能によって、エンタープライズ レベルでインテリジェントにセキュリティを分析できます。
Sigma ルール - Sigma は、自動化された管理ツールがログ ファイルの解析に使用できるルールとテンプレートを記述するための、進化するオープン標準です。 推奨される検索条件に Sigma テンプレートがある場合は、Sigma リポジトリへのリンクを追加しました。 Sigma テンプレートは、Microsoft によって記述、テスト、管理されません。 その代わり、リポジトリとテンプレートは、世界中の IT セキュリティ コミュニティによって作成および収集されます。
Azure Monitor – さまざまな条件に基づいて監視とアラートを自動化します。 ブックを作成または使用して、異なるソースのデータを結合できます。
SIEM と統合した Azure Event Hubs - Microsoft Event Hubs ログは、Azure Event Hubs 統合を介して Splunk、ArcSight、QRadar、Sumo Logic などの他の SIEM と統合できます。
Microsoft Defender for Cloud Apps - アプリの検出と管理、アプリとリソース全体のガバナンス、クラウド アプリのコンプライアンスの確認を行います。
Identity Protection プレビューを使用してワークロード ID をセキュリティで保護する - サインイン動作とオフラインでの侵害の兆候からワークロード ID のリスクを検出します。
監視およびアラートの対象となるのは、条件付きアクセス ポリシーの影響がほとんどです。 条件付きアクセスに関する分析情報とレポート ブックを使用して、1 つまたは複数の条件付きアクセス ポリシーがサインインに及ぼしている影響と、デバイスの状態などのポリシーの結果を確認できます。 ブックを使用して概要を表示し、一定期間の影響を特定します。 このブックを使用して、特定のユーザーのサインインを調査できます。
この記事の後半に、監視とアラートが推奨される対象を示します。 脅威の種類ごとに分類されています。 事前構築済みソリューションがある場合は、リンクを示すか、表の後にサンプルを提供しています。 それ以外の場合は、前述のツールを使用してアラートを作成できます。
アプリケーション資格情報
多くのアプリケーションでは、Microsoft Entra ID での認証に資格情報が使用されます。 予想されるプロセスの外部で追加された他の資格情報がある場合は、それらの資格情報を使用する悪意のあるアクターの可能性があります。 クライアント シークレットを使用するのではなく、信頼できる機関によって発行された X509 証明書またはマネージド ID を使用することをお勧めします。 しかしながら、クライアント シークレットを使用する必要がある場合は、適切な検疫プラクティスに従ってアプリケーションを安全に保ってください。 アプリケーションとサービス プリンシパルの更新は、監査ログに 2 つのエントリとして記録されます。
アプリケーションを監視して、資格情報の有効期限が長いものを特定します。
長い期間の資格情報は、短い期間に置き換えます。 資格情報がコード リポジトリにコミットされず、安全に格納されるようにします。
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
既存のアプリケーションに資格情報を追加した | 高 | Microsoft Entra 監査ログ | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: アプリケーションの更新 - 証明書およびシークレット管理 および アクティビティ: サービス プリンシパルの更新/アプリケーションの更新 |
資格情報が次の場合にアラートを生成します。通常の営業時間またはワークフロー外に追加された場合、環境内で使用されていない種類の場合、またはサービス プリンシパルをサポートする非 SAML フローに追加された場合。 Microsoft Sentinel テンプレート Sigma ルール |
資格情報の有効期間がポリシーで許可されているよりも長い。 | Medium | Microsoft Graph | アプリケーション キー資格情報の状態と終了日 および アプリケーション パスワードの資格情報 |
MS Graph API を使用して、資格情報の開始および終了日を検索し、許可された有効期間よりも長いものを判断できます。 この表の後の PowerShell スクリプトを参照してください。 |
次の事前構築済みの監視とアラートを利用できます。
Microsoft Sentinel – 新しいアプリまたはサービス プリンシパルの資格情報が追加されたときにアラートを生成する
Azure Monitor – Solorigate リスクの評価に役立つ Microsoft Entra ブック - Microsoft Tech Community
Defender for Cloud Apps – Defender for Cloud Apps 異常検出アラートの調査ガイド
PowerShell - 資格情報の有効期間を検索するサンプルの PowerShell スクリプト。
アプリケーションのアクセス許可
管理者アカウントと同様に、アプリケーションには特権ロールを割り当てることができます。 アプリには、ユーザー管理者などの Microsoft Entra ロール、または課金閲覧者などの Azure RBAC ロール割り当てることができます。 ユーザーが存在しなくても、バックグラウンド サービスとして実行できるため、アプリケーションに特権を持つロールまたはアクセス許可が付与されたときは注意深く監視します。
ロールに割り当てられたサービス プリンシパル
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
Azure RBAC ロールまたは Microsoft Entra ロールに割り当てられたアプリ | 高から中 | Microsoft Entra 監査ログ | 種類: サービス プリンシパル アクティビティ: "メンバーをロールに追加する" または "適格なメンバーをロールに追加する" または "スコープを持つメンバーをロールに追加する"。 |
高い特権ロールの場合、リスクは高くなります。 低い特権ロールの場合、リスクは中です。 通常の変更管理または構成手順の外部で、アプリケーションが Azure ロールまたは Microsoft Entra ロールに割り当てられたときは常にアラートを生成します。 Microsoft Sentinel テンプレート Sigma ルール |
高い特権を持つアクセス許可が付与されたアプリケーション
アプリケーションは、最小特権の原則に従う必要があります。 アプリケーションのアクセス許可を調査して、それらが必要であることを確認します。 アプリケーションを識別し、特権アクセス許可を強調表示するのに役立つアプリ同意付与レポートを作成できます。
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
アプリに " .All" のアクセス許可 (Directory.ReadWrite.All) や広範囲のアクセス許可 (Mail. ) など、高い特権を持つアクセス許可が付与される | 高 | Microsoft Entra 監査ログ | "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、 このとき ターゲットで、機密データを含む API を識別する (Microsoft Graph など) および AppRole.Value で、高い特権を持つアプリケーションのアクセス許可 (アプリ ロール) を識別する。 |
" .All" (Directory.ReadWrite.All) や広範囲のアクセス許可 (Mail. ) など、幅広いアクセス許可が付与されたアプリ Microsoft Sentinel テンプレート Sigma ルール |
管理者が、アプリケーションのアクセス許可 (アプリ ロール) または高い特権を持つ委任されたアクセス許可を付与する | 高 | Microsoft 365 ポータル | "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、 このとき ターゲットで、機密データを含む API を識別する (Microsoft Graph など) "委任されたアクセス許可の付与を追加する"、 このとき ターゲットで、機密データを含む API を識別する (Microsoft Graph など) および DelegatedPermissionGrant.Scope に、高い特権のアクセス許可が含まれる。 |
管理者がアプリケーションに同意したときに通知します。 特に、通常のアクティビティや変更手順以外の同意を探します。 Microsoft Sentinel テンプレート Microsoft Sentinel テンプレート Microsoft Sentinel テンプレート Sigma ルール |
アプリケーションに、Microsoft Graph、Exchange、SharePoint、または Microsoft Entra ID に対するアクセス許可が付与される。 | 高 | Microsoft Entra 監査ログ | "委任されたアクセス許可の付与を追加する" または "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、 このとき ターゲットで、機密データを含む API を識別する (Microsoft Graph、Exchange Online など) |
前の行と同様にアラートを生成します。 Microsoft Sentinel テンプレート Sigma ルール |
他の API に対するアプリケーションのアクセス許可 (アプリ ロール) が付与される | 中 | Microsoft Entra 監査ログ | "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、 このとき ターゲットで、他の API を識別する。 |
前の行と同様にアラートを生成します。 Sigma ルール |
すべてのユーザーの代理として、高い特権を持つ委任されたアクセス許可が付与される | 高 | Microsoft Entra 監査ログ | "委任されたアクセス許可付与を追加する"。このとき、ターゲットで、機密データを含む API を識別する (Microsoft Graph など)、 DelegatedPermissionGrant.Scope に、高い特権のアクセス許可が含まれる、 および DelegatedPermissionGrant.ConsentType が "AllPrincipals" である。 |
前の行と同様にアラートを生成します。 Microsoft Sentinel テンプレート Microsoft Sentinel テンプレート Microsoft Sentinel テンプレート Sigma ルール |
アプリのアクセス許可の監視の詳細については、「チュートリアル: 危険な OAuth アプリを調査して修復する」を参照してください。
Azure Key Vault
Azure Key Vault を使用して、テナントのシークレットを格納します。 Key Vault の構成とアクティビティの変更には注意することをお勧めします。
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
Key Vault にいつ、だれが、どのようにアクセスするか | Medium | Azure Key Vault のログ | リソースの種類: Key Vault | 調査項目: 通常のプロセスと時間外のKey Vault へのアクセス、Key Vault ACL への変更。 Microsoft Sentinel テンプレート Sigma ルール |
Azure Key Vault を設定したら、ログ記録を有効にします。 Key Vaults にいつ、どのようにアクセスされたかを表示し、Key Vault でアラートを構成して、正常性に影響があった場合に、割り当てられたユーザーまたは配布リストにメール、通話、テキスト、またはイベント グリッド通知を介して通知します。 さらに、Key Vault 分析情報を使用して監視を設定すると、Key Vault 要求、パフォーマンス、エラー、待機時間のスナップショットが提供されます。 Log Analytics には、Azure Key Vault 用のサンプル クエリもいくつか用意されており、Key Vault を選択した後に [監視] で [ログ] を選択してアクセスできます。
エンドユーザーの同意
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
アプリケーションに対するエンドユーザーの同意 | 低 | Microsoft Entra 監査ログ | アクティビティ: アプリケーションへの同意/ConsentContext.IsAdminConsent = false | 調査項目: ハイ プロファイルまたは高い特権を持つアカウント、リスクの高いアクセス許可を要求するアプリ、疑わしい名前 (汎用的、スペルミスがあるものなど) を持つアプリ。 Microsoft Sentinel テンプレート Sigma ルール |
アプリケーションに同意する行為は、悪意のあるものではありません。 ではありますが、疑わしいアプリケーションを探して、新しいエンドユーザーの同意付与を調査してください。 ユーザーの同意操作を制限することができます。
同意操作の詳細については、以下のリソースを参照してください。
リスクベースの同意のためにエンド ユーザーが停止した
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
リスクベースの同意のためにエンドユーザーの同意が停止した | 中 | Microsoft Entra 監査ログ | Core ディレクトリ/ApplicationManagement/アプリケーションへの同意 エラー状態の理由 = Microsoft.online.Security.userConsent BlockedForRiskyAppsExceptions |
リスクが原因で同意が停止されたときは常に監視および分析します。 調査項目: ハイ プロファイルまたは高い特権を持つアカウント、リスクの高いアクセス許可を要求するアプリ、または疑わしい名前 (汎用的、スペルミスがあるものなど) を持つアプリ。 Microsoft Sentinel テンプレート Sigma ルール |
アプリケーションの認証フロー
OAuth 2.0 プロトコルには、いくつかのフローがあります。 アプリケーションに推奨されるフローは、作成されているアプリケーションの種類によって異なります。 場合によっては、アプリケーションでフローを選択できます。 この場合、一部の認証フローが他に優先して推奨されます。 具体的には、リソース所有者パスワード資格情報 (ROPC) の使用は避けてください。これによってユーザーが現在のパスワード資格情報をアプリケーションに公開する必要があるためです。 その後、アプリケーションはこの資格情報を使用して、ID プロバイダーに対してユーザーを認証します。 ほとんどのアプリケーションでは、認証コード フローが推奨されているため、このフロー、または Proof Key for Code Exchange (PKCE) と共にこのフローを使用する必要があります。
ROPC が推奨される唯一のシナリオは、アプリケーションの自動テストです。 詳細については、「自動統合テストの実行」を参照してください。
デバイス コード フローは、入力制約付きデバイス用の別の OAuth 2.0 プロトコル フローであり、すべての環境で使用されるわけではありません。 環境にデバイス コード フローが存在していて、入力制約付きデバイスのシナリオで使用されていない場合。 アプリケーションが正しく構成されていないか、何らかの悪意が存在する可能性がある場合は、追加の調査が必要です。 デバイス コード フローは、条件付きアクセスでブロックまたは許可することもできます。 詳細については、「条件付きアクセスの認証フロー」を参照してください。
次の情報を使用してアプリケーション認証を監視します。
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
ROPC 認証フローを使用しているアプリケーション | 中 | Microsoft Entra サインイン ログ | 状態 = 成功 認証プロトコル - ROPC |
資格情報をキャッシュまたは保存できるため、このアプリケーションには高いレベルの信頼が置かれています。 可能であれば、より安全な認証フローに移行します。 仮に使うなら、これは、アプリケーションの自動テストでのみ使う必要があります。 詳細については、「Microsoft ID プラットフォームと OAuth 2.0 リソース所有者のパスワード資格情報」を参照してください Sigma ルール |
デバイス コード フローを使用しているアプリケーション | 低から中 | Microsoft Entra サインイン ログ | 状態 = 成功 認証プロトコル - デバイス コード |
デバイス コード フローは、すべての環境にあるとは限らない、入力制約付きデバイスに使用されます。 成功したデバイス コード フローが、その必要性がなく存在している場合は、正当性があるか調査します。 詳細については、「Microsoft ID プラットフォームと OAuth 2.0 デバイス許可付与フロー」を参照してください Sigma ルール |
アプリケーション構成の変更
アプリケーション構成の変更を監視します。 具体的には、構成の Uniform Resource Identifier (URI)、所有権、ログアウト URL の変更です。
宙ぶらりんの URI とリダイレクト URI の変更
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
ダングリング URI | 高 | Microsoft Entra ID ログとアプリケーションの登録 | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: アプリケーションの更新 成功 – プロパティ名 AppAddress |
たとえば、存在しなくなったドメイン名や明示的に所有していないドメイン名を指す、宙ぶらりんの URI を探します。 Microsoft Sentinel テンプレート Sigma ルール |
リダイレクト URI 構成の変更 | 高 | Microsoft Entra ログ | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: アプリケーションの更新 成功 – プロパティ名 AppAddress |
HTTPS* を使用していない URI、URL の末尾またはドメインにワイルドカードを含む URI、アプリケーションに固有ではない URI、ご自分が制御していないドメインを指す URI を探します。 Microsoft Sentinel テンプレート Sigma ルール |
これらの変更が検出されたときはアラートを生成します。
AppID URI が追加、変更、または削除された
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
AppID URI の変更 | 高 | Microsoft Entra ログ | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: 更新 Application アクティビティ: サービス プリンシパルの更新 |
URI の追加、変更、削除など、AppID URI の変更を探します。 Microsoft Sentinel テンプレート Sigma ルール |
これらの変更が、承認済みの変更管理手順の外部で検出されたときはアラートを生成します。
新しい所有者
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
アプリケーション所有者に対する変更 | 中 | Microsoft Entra ログ | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: アプリケーションへの所有者の追加 |
通常の変更管理アクティビティの外部で、アプリケーション所有者として追加されているユーザーのインスタンスを探します。 Microsoft Sentinel テンプレート Sigma ルール |
ログアウト URL が変更または削除された
[What to monitor] (監視対象) | リスク レベル | Where | フィルターまたはサブフィルター | メモ |
---|---|---|---|---|
ログアウト URL の変更 | 低 | Microsoft Entra ログ | Service-Core ディレクトリ、Category-ApplicationManagement アクティビティ: アプリケーションの更新 および アクティビティ: サービス プリンシパルの更新 |
サインアウト URL に対する変更を探します。 空のエントリまたは存在しない場所へのエントリがあると、ユーザーによるセッションの終了が停止されます。 Microsoft Sentinel テンプレート Sigma ルール |
リソース
GitHub Microsoft Entra ツールキット - https://github.com/microsoft/AzureADToolkit
Azure Key Vault の概要とセキュリティ ガイダンス - Azure Key Vault セキュリティの概要
Solorigate リスクの情報とツール - Solorigate リスクへのアクセスに役立つ Microsoft Entra ブック
OAuth 攻撃検出ガイダンス - OAuth アプリへの資格情報の異常な追加
SIEM に対する Microsoft Entra 監視構成情報 - Azure Monitor とパートナー ツールの統合
次のステップ
Microsoft Entra のセキュリティ オペレーションの概要