アプリケーション向けの Azure Active Directory セキュリティ運用ガイド

アプリケーションは、セキュリティ侵害の攻撃対象となるため、監視する必要があります。 ユーザー アカウントほど頻繁に狙われるわけではありませんが、侵害される可能性があります。 アプリケーションは人間の介入なしで実行されることが多いため、攻撃を検出することがより難しい場合があります。

この記事では、アプリケーション イベントの監視とアラートに関するガイダンスを提供します。 次のことを確実に行えるように定期的に更新されます。

  • 悪意のあるアプリケーションがデータに不正にアクセスできないようにする

  • アプリケーションが不正なアクターによって侵害されないようにする

  • 新しいアプリケーションのビルドと構成をより安全に行うことができるように分析情報を収集する

Azure Active Directory (Azure AD) でのアプリケーションの動作に慣れていない場合は、Azure AD のアプリとサービス プリンシパルに関する記事をご覧ください。

注意

Azure Active Directory セキュリティ運用の概要をまだ確認されていない場合は、今すぐご確認ください。

注意点

アプリケーション ログでセキュリティ インシデントを監視する場合、以下の一覧を確認すると、通常のアクティビティと悪意のあるアクティビティを区別できます。 次のイベントは、セキュリティ上の問題を示している可能性があります。 それぞれをこの記事で説明します。

  • 通常ビジネスのプロセスとスケジュールの外で発生した変更すべて

  • アプリケーション資格情報の変更

  • アプリケーションのアクセス許可

    • Azure AD または Azure ロールベースのアクセス制御 (RBAC) のロールに割り当てられたサービス プリンシパル

    • 高い特権を持つアクセス許可が付与されたアプリケーション

    • Azure Key Vault の変更

    • アプリケーションに同意を付与するエンド ユーザー

    • リスクのレベルに基づいてエンド ユーザーの同意を停止した

  • アプリケーション構成の変更

    • ユニバーサル リソース識別子 (URI) の変更または非標準

    • アプリケーション所有者に対する変更

    • ログアウト URL が変更された

確認先

調査と監視に使用するログ ファイルは次のとおりです。

Azure AD 監査ログは、Azure portal で確認し、コンマ区切り値 (CSV) ファイルまたは JavaScript Object Notation (JSON) ファイルとしてダウンロードできます。 Azure portal には、監視とアラートの自動化を強化できる他のツールと Azure AD ログを統合する方法がいくつかあります。

  • Microsoft Sentinel - セキュリティ情報イベント管理 (SIEM) 機能によって、エンタープライズ レベルでインテリジェントにセキュリティを分析できます。

  • Sigma ルール - Sigma は、自動化された管理ツールがログ ファイルの解析に使用できるルールとテンプレートを記述するための、進化するオープン標準です。 推奨される検索条件に Sigma テンプレートがある場合は、Sigma リポジトリへのリンクを追加しました。 Sigma テンプレートは、Microsoft によって記述、テスト、管理されません。 その代わり、リポジトリとテンプレートは、世界中の IT セキュリティ コミュニティによって作成および収集されます。

  • Azure Monitor – さまざまな条件に基づいて監視とアラートを自動化します。 ブックを作成または使用して、異なるソースのデータを結合できます。

  • Azure Event Hubs と SIEM の統合- Azure Event Hubs 統合を介して、Splunk、ArcSight、QRadar、Sumo Logic などの他の SIEM と Azure AD ログを統合できます

  • Microsoft Defender for Cloud Apps - アプリの検出と管理、アプリとリソース全体のガバナンス、クラウド アプリのコンプライアンスの確認を行います。

  • Identity Protection プレビューを使用してワークロード ID をセキュリティで保護する - サインイン動作とオフラインでの侵害の兆候からワークロード ID のリスクを検出します。

監視およびアラートの対象となるのは、条件付きアクセス ポリシーの影響がほとんどです。 条件付きアクセスに関する分析情報とレポート ブックを使用して、1 つまたは複数の条件付きアクセス ポリシーがサインインに及ぼしている影響と、デバイスの状態などのポリシーの結果を確認できます。 ブックを使用して概要を表示し、一定期間の影響を特定します。 このブックを使用して、特定のユーザーのサインインを調査できます。

この記事の後半に、監視とアラートが推奨される対象を示します。 脅威の種類ごとに分類されています。 事前構築済みソリューションがある場合は、リンクを示すか、表の後にサンプルを提供しています。 それ以外の場合は、前述のツールを使用してアラートを作成できます。

アプリケーション資格情報

多くのアプリケーションでは、Azure AD での認証に資格情報が使用されます。 予想されるプロセスの外部で追加された他の資格情報がある場合は、それらの資格情報を使用する悪意のあるアクターの可能性があります。 クライアント シークレットを使用するのではなく、信頼できる機関によって発行された X509 証明書またはマネージド ID を使用することをお勧めします。 しかしながら、クライアント シークレットを使用する必要がある場合は、適切な検疫プラクティスに従ってアプリケーションを安全に保ってください。 アプリケーションとサービス プリンシパルの更新は、監査ログに 2 つのエントリとして記録されます。

  • アプリケーションを監視して、資格情報の有効期限が長いものを特定します。

  • 長い期間の資格情報は、短い期間に置き換えます。 資格情報がコード リポジトリにコミットされず、安全に格納されるようにします。

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
既存のアプリケーションに資格情報を追加した Azure AD 監査ログ Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: アプリケーションの更新 - 証明書およびシークレット管理
および
アクティビティ: サービス プリンシパルの更新/アプリケーションの更新
資格情報が次の場合にアラートを生成します。通常の営業時間またはワークフロー外に追加された場合、環境内で使用されていない種類の場合、またはサービス プリンシパルをサポートする非 SAML フローに追加された場合。
Microsoft Sentinel テンプレート

Sigma ルール
資格情報の有効期間がポリシーで許可されているよりも長い。 Medium Microsoft Graph アプリケーション キー資格情報の状態と終了日
および
アプリケーション パスワードの資格情報
MS Graph API を使用して、資格情報の開始および終了日を検索し、許可された有効期間よりも長いものを判断できます。 この表の後の PowerShell スクリプトを参照してください。

次の事前構築済みの監視とアラートを利用できます。

アプリケーションのアクセス許可

管理者アカウントと同様に、アプリケーションには特権ロールを割り当てることができます。 アプリには、グローバル管理者などの Azure AD ロール、またはサブスクリプション所有者などの Azure RBAC ロールを割り当てることができます。 ユーザーが存在しなくても、バックグラウンド サービスとして実行できるため、アプリケーションに高い特権を持つロールまたはアクセス許可が付与されたときは注意深く監視します。

ロールに割り当てられたサービス プリンシパル

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
Azure RBAC ロールまたは Azure AD ロールに割り当てられたアプリ 高から中 Azure AD 監査ログ 種類: サービス プリンシパル
アクティビティ: "メンバーをロールに追加する" または "適格なメンバーをロールに追加する"
または
"スコープを持つメンバーをロールに追加する"。
グローバル管理者などの高い特権を持つロールの場合、リスクは高です。 低い特権ロールの場合、リスクは中です。 通常の変更管理または構成手順の外部で、アプリケーションが Azure ロールまたは Azure AD ロールに割り当てられたときは常にアラートを生成します。
Microsoft Sentinel テンプレート

Sigma ルール

高い特権を持つアクセス許可が付与されたアプリケーション

アプリケーションは、最小特権の原則に従う必要があります。 アプリケーションのアクセス許可を調査して、それらが必要であることを確認します。 アプリケーションを識別し、特権アクセス許可を強調表示するのに役立つアプリ同意付与レポートを作成できます。

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
アプリに " .All" のアクセス許可 (Directory.ReadWrite.All) や広範囲のアクセス許可 (Mail. ) など、高い特権を持つアクセス許可が付与される Azure AD 監査ログ "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、
このとき
ターゲットで、機密データを含む 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、または Azure AD に対するアクセス許可が付与される。 Azure AD 監査ログ "委任されたアクセス許可の付与を追加する"
または
"サービス プリンシパルへのアプリ ロールの割り当てを追加する"、
このとき
ターゲットで、機密データを含む API を識別する (Microsoft Graph、Exchange Online など)
前の行と同様にアラートを生成します。
Microsoft Sentinel テンプレート

Sigma ルール
他の API に対するアプリケーションのアクセス許可 (アプリ ロール) が付与される Medium Azure AD 監査ログ "サービス プリンシパルへのアプリ ロールの割り当てを追加する"、
このとき
ターゲットで、他の API を識別する。
前の行と同様にアラートを生成します。
Sigma ルール
すべてのユーザーの代理として、高い特権を持つ委任されたアクセス許可が付与される Azure AD 監査ログ "委任されたアクセス許可付与を追加する"。このとき、ターゲットで、機密データを含む 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 フィルターまたはサブフィルター メモ
アプリケーションに対するエンドユーザーの同意 Azure AD 監査ログ アクティビティ: アプリケーションへの同意/ConsentContext.IsAdminConsent = false 調査項目: ハイ プロファイルまたは高い特権を持つアカウント、リスクの高いアクセス許可を要求するアプリ、疑わしい名前 (汎用的、スペルミスがあるものなど) を持つアプリ。
Microsoft Sentinel テンプレート

Sigma ルール

アプリケーションに同意する行為は、悪意のあるものではありません。 ではありますが、疑わしいアプリケーションを探して、新しいエンドユーザーの同意付与を調査してください。 ユーザーの同意操作を制限することができます。

同意操作の詳細については、以下のリソースを参照してください。

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
リスクベースの同意のためにエンドユーザーの同意が停止した Medium Azure AD 監査ログ 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 認証フローを使用しているアプリケーション Medium Azure AD サインイン ログ 状態 = 成功

認証プロトコル - ROPC
資格情報をキャッシュまたは保存できるため、このアプリケーションには高いレベルの信頼が置かれています。 可能であれば、より安全な認証フローに移行します。 仮に使うなら、これは、アプリケーションの自動テストでのみ使う必要があります。 詳細については、「Microsoft ID プラットフォームと OAuth 2.0 リソース所有者のパスワード資格情報」を参照してください

Sigma ルール
デバイス コード フローを使用しているアプリケーション 低から中 Azure AD サインイン ログ 状態 = 成功

認証プロトコル - デバイス コード
デバイス コード フローは、すべての環境にあるとは限らない、入力制約付きデバイスに使用されます。 成功したデバイス コード フローが、その必要性がなく存在している場合は、正当性があるか調査します。 詳細については、「Microsoft ID プラットフォームと OAuth 2.0 デバイス許可付与フロー」を参照してください

Sigma ルール

アプリケーション構成の変更

アプリケーション構成の変更を監視します。 具体的には、構成の Uniform Resource Identifier (URI)、所有権、ログアウト URL の変更です。

宙ぶらりんの URI とリダイレクト URI の変更

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
ダングリング URI Azure AD ログとアプリケーションの登録 Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: アプリケーションの更新
成功 – プロパティ名 AppAddress
たとえば、存在しなくなったドメイン名や明示的に所有していないドメイン名を指す、宙ぶらりんの URI を探します。
Microsoft Sentinel テンプレート

Sigma ルール
リダイレクト URI 構成の変更 Azure AD ログ Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: アプリケーションの更新
成功 – プロパティ名 AppAddress
HTTPS* を使用していない URI、URL の末尾またはドメインにワイルドカードを含む URI、アプリケーションに固有ではない URI、ご自分が制御していないドメインを指す URI を探します。
Microsoft Sentinel テンプレート

Sigma ルール

これらの変更が検出されたときはアラートを生成します。

AppID URI が追加、変更、または削除された

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
AppID URI の変更 Azure AD ログ Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: 更新
Application
アクティビティ: サービス プリンシパルの更新
URI の追加、変更、削除など、AppID URI の変更を探します。
Microsoft Sentinel テンプレート

Sigma ルール

これらの変更が、承認済みの変更管理手順の外部で検出されたときはアラートを生成します。

新しい所有者

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
アプリケーション所有者に対する変更 Medium Azure AD ログ Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: アプリケーションへの所有者の追加
通常の変更管理アクティビティの外部で、アプリケーション所有者として追加されているユーザーのインスタンスを探します。
Microsoft Sentinel テンプレート

Sigma ルール

ログアウト URL が変更または削除された

[What to monitor] (監視対象) リスク レベル Where フィルターまたはサブフィルター メモ
ログアウト URL の変更 Azure AD ログ Service-Core ディレクトリ、Category-ApplicationManagement
アクティビティ: アプリケーションの更新
および
アクティビティ: サービス プリンシパルの更新
サインアウト URL に対する変更を探します。 空のエントリまたは存在しない場所へのエントリがあると、ユーザーによるセッションの終了が停止されます。
Microsoft Sentinel テンプレート
Sigma ルール

リソース

次のステップ

Azure AD セキュリティ運用の概要

ユーザー アカウントのためのセキュリティ運用

コンシューマー アカウントのためのセキュリティ運用

特権アカウントのためのセキュリティ運用

Privileged Identity Management のためのセキュリティ運用

デバイスのためのセキュリティ運用

インフラストラクチャのためのセキュリティ運用