M365Con 2027 – 無料オンラインカンファレンス · 11–22 Jan 2027 · 120 sessions→ m365con.net

ブログ · Mirko Peters

Microsoft Graph Activity Logs で OAuth アプリの悪用を分析する手順

By · · Updated

Entra ID と Microsoft Graph Activity Log を使って、Microsoft 365 を狙う OAuth の脅威を検出します。アクティビティ ログと Graph API による OAuth アプリの脅威検出を学びます。

Automatically translated with AI from the original post. Read the English original

組織のセキュリティを維持し、OAuth アプリの悪用を防ぐうえで、OAuth アプリの利用状況の監視は欠かせません。Microsoft Graph Activity Logs を活用すると、OAuth アプリがどのように動作しているかを把握できます。これらのログを使えば、OAuth アプリの悪用の兆候を検出し、OAuth アプリの活動に関連する脅威を明らかにできます。

  • Microsoft Graph Activity Logs は、次の目的に欠かせません。

    • OAuth アプリの活動を監視すること。

    • OAuth アプリの悪用の兆候を検出すること。

    • 脅威を明らかにするために必要な基礎的な可視性を確保すること。

OAuth アプリの悪用にはリスクが伴うため、コンプライアンス基準を定めることが重要です。セキュリティとコンプライアンスを評価するための明確な基準があれば、エンタープライズでの利用に適したアプリを選定できます。

Microsoft Graph Activity Logs で OAuth アプリの悪用を分析する: 意外な事実 5 選

Microsoft Graph Activity Logs で OAuth アプリの悪用を分析すると、セキュリティ調査担当者は、検出と対応に影響する予想外の機能と制約に気付くことがよくあります。

  1. アクティビティ ログには、アプリ単位のイベントを示す OAuth の client_app_id が含まれます。 Microsoft Graph Activity Logs には、多くのサインイベントや同意イベントに対する client_app_id(アプリケーションの appId)が含まれています。そのため、疑わしいトークンや操作を、ユーザーだけでなく登録済みの OAuth アプリまで直接たどれます。
  2. アプリのアクティビティは 1 か所にまとまっておらず、複数のログの種類を確認する必要があります。 OAuth 関連のイベントは、サインインログ、監査ログ、統合された Microsoft Graph のアクティビティ ログに分かれて記録されます。1 つのフィードだけに頼ると、悪用の調査に関係する同意の付与、トークンの発行、アプリのアクセス許可の変更を見逃すおそれがあります。
  3. 保持とエクスポートの設定をしないと、フォレンジックのタイムラインが制限されます。 一部のアクティビティ ログは、テナントの既定の保持期間が限られています。診断設定で Log Analytics ワークスペースやストレージアカウントにエクスポートしていないと、過去のアプリ悪用の証拠はすぐに失われるおそれがあります。
  4. Graph のログでは、一部の機密フィールドがマスクまたは編集されます。 プライバシー保護のため、個人情報(PII)やトークンの詳細の一部は切り詰められたり、難読化されたりします。攻撃の全体像を再構成するには、複数のログや条件付きアクセスのログを突き合わせる必要があります。
  5. 変更通知とデルタ クエリにより、ほぼリアルタイムの検出が可能ですが、設定が必要です。 Microsoft Graph は、アクティビティ ログ向けの変更通知(Webhook)とデルタ クエリをサポートしています。新たに付与されたアプリのアクセス許可や、異常なアプリの操作を自動で検出できます。ただし、悪用が発生した時点で捉えるには、事前に積極的に設定しておく必要があります。

重要なポイント

  • Microsoft Graph Activity Logs を使って OAuth アプリの活動を監視し、悪用や脅威の兆候を検出します。

  • OAuth アプリを定期的に監査し、アクセス許可が適切であることを確認するとともに、疑わしいアプリは調査します。

  • 厳格なアクセス制御を実装します。たとえば、サードパーティ アプリに対するユーザーの同意を無効にして、セキュリティを強化します。

  • Kusto Query Language (KQL) を利用してログを分析し、OAuth アプリの悪用を示す可能性のある異常なパターンを特定します。

  • 従業員にセキュリティの脅威やフィッシングの手口を教育し、OAuth アプリの悪用のリスクを低減します。

OAuth アプリの悪用の概要

一般的な攻撃ベクター

攻撃者は多くの場合、OAuth アプリへの同意を悪用して、機密データへの不正アクセスを試みます。さまざまな手口で、セキュリティ対策の回避も図ります。たとえば、フィッシングキャンペーンが広く見られるようになっています。攻撃者はユーザーを誘導し、正規の Microsoft の確認ページにデバイス コードを入力させます。この手口により、攻撃者は被害者のアカウントに紐づくアクセス トークンを取得できます。こうした攻撃は、多要素認証を含む従来のセキュリティ制御を回避するおそれがあります。

さらに、多くのサードパーティ製アプリケーションは、OAuth トークンを使用して SaaS プラットフォームに接続しています。これらのトークンは、積極的に管理しない限り、アクセス権を無期限に維持する場合があります。使用されなくなったアプリケーションを通じて、組織が意図せず機密データへのアクセスを許可してしまう可能性があり、これは重大なリスクとなります。セキュリティ研究者は、OAuth 攻撃は検出が特に困難であると指摘しています。攻撃の痕跡はほとんど残らず、パスワードをリセットした後も持続する可能性があります。

長期的なアクセスリスク

持続的な OAuth アプリアクセスに関連する長期的なリスクは深刻です。クラウドファーストの環境では、ID が新たな境界線になっています。攻撃者は、サーバーやパスワードを侵害することなく、企業システムへの持続的なアクセスを得ることができます。現代の ID システムに内在する信頼関係を悪用するのです。

OAuth アプリの悪用による影響は深刻になりかねません。文書化されている主なリスクは以下のとおりです。

  • 内部フィッシング: 信頼されたアカウントから送信されたメールにより、より多くの被害者が誘い込まれます。

  • 機密データの窃取: 機密ファイル、契約書、知的財産が外部に流出する可能性があります。

  • 持続的なアクセス: 資格情報がリセットされても、トークンは有効なままの場合があります。

  • 評判の毀損: 侵害が公になると、顧客やパートナーの信頼を失います。

組織は引き続き警戒を怠らないことが重要です。OAuth アプリへの同意を定期的に確認し、不審なアクティビティを監視する必要があります。そうすることで、OAuth アプリの悪用に伴うリスクを軽減し、機密データを保護できます。

セキュリティのための Microsoft Graph アクティビティ ログ

セキュリティのための Microsoft Graph アクティビティ ログ 画像のソース: unsplash

OAuth アプリの動作を監視するには、Microsoft Graph アクティビティ ログへのアクセスが不可欠です。ログを効果的に取得するには、次の手順に従ってください。

  1. Azure portal の診断設定でログをストリームするか、Azure Resource Manager API を使用します。

  2. アクティビティ ログを Azure Monitor のログと統合します。

  3. Azure Resource Manager API を使用して診断設定を構成します。

  4. Azure Log Analytics ワークスペース、Azure Storage、Azure Event Hubs などの保存先を設定します。

  5. ログを Log Analytics ワークスペースに送信している場合は、Kusto Query Language (KQL) を使用してログを照会します。

ログにアクセスしたら、OAuth アプリの不審な動作を示す可能性のある主要なエントリに注目します。監視すべきログ エントリの例は以下のとおりです。

不審な動作

説明

データアクセスに対する権限昇格

Sites.Read.All や Files.ReadWrite.All などの広範なアクセス許可を、適切な文書化なしに取得しているアプリは、データ窃取を目的とした不正なアプリである可能性を示しています。

大量ダウンロードのアクティビティ

短時間に数百ものファイルにアクセスしているアカウントは、データの持ち出しの可能性を示す強い兆候です。

匿名または外部共有リンク

これらのリンクの作成は、攻撃者がファイルアクセス設定を悪用してデータを持ち出すための手口となる場合があります。

ダウンロードと削除のパターン

ユーザーが機密ファイルをダウンロードした直後に削除する場合、データ窃取後に痕跡を隠そうとしている可能性があります。

リアルタイム アラートは、OAuth アプリの悪用インシデントの検出と対応において重要な役割を果たします。不審な動作を可視化し、自動応答によってリスクを軽減できます。たとえば、Drift の OAuth トークンは有効期間が延長されていたため、Salesforce の顧客はアプリの接続状況を把握しづらい状態になりました。侵害されたトークンは MFA と SSO を回避する可能性があり、大量の API プルのような異常を検出するためのリアルタイム アラートの必要性が浮き彫りになります。

効果的なリアルタイム アラートを構成するために、次のベスト プラクティスを検討してください:

  • Microsoft Graph Activity Logs で、特権の高いアクセス許可の割り当てや通常と異なるサインインなど、不審なアクティビティに対するアラートを設定します。

  • Microsoft Defender for Cloud Apps (MCAS) を使用してセッション制御を監視および適用し、リスクのある OAuth アプリのサインインに対するアラートを生成します。

  • Microsoft 365 の統合監査ログで 'Add application' や 'Consent to application' などの主要なイベントを検索し、潜在的な OAuth アプリの悪用を特定します。

  • 異常なサインインに関するアラートを監査ログと突き合わせ、悪意のある OAuth アプリのアクティビティを検出します。

これらの戦略を実装することで、組織のセキュリティ態勢を強化し、OAuth アプリの悪用からより適切に保護できます。

OAuth アプリの悪用を検出する方法

Detection Methods for OAuth App Abuse 画像出典: pexels

KQL クエリ

Kusto Query Language (KQL) は、Microsoft Graph Activity Logs を分析するための強力なツールです。KQL を使用すると、OAuth アプリの悪用を示す可能性のあるパターンや異常を特定できます。KQL を活用する効果的な方法をいくつか紹介します:

  • Entra アプリケーションを定期的に監査して過度なアクセス許可を特定します。これにより、リスクをもたらす可能性のあるアプリケーションを見つけやすくなります。

  • Microsoft Graph API への予期しないアクセスを監視します。このようなアクセスは侵害を示している可能性があるため、迅速に対応できます。

  • 承認済みアプリケーションの安全なリストを作成します。このリストにより継続的な監視が容易になり、新たな高権限アプリケーションを検出できます。

KQL を使い始めるために、不審なサインイン アクティビティを確認する次のクエリ例を検討してください:

AuditLogs
| where ActivityType == "SignIn"
| where Result == "Failure"
| summarize Count = count() by UserPrincipalName, bin(TimeGenerated, 1h)
| order by Count desc

このクエリは、サインインに失敗したユーザーを特定し、不正アクセスの可能性を調査できるようにします。

PowerShell による自動化

PowerShell による自動化は、OAuth アプリの悪用の検出を大幅に効率化できます。PowerShell スクリプトを活用すると、OAuth アプリケーションとそのアクティビティの監視を自動化できます。主なツールとその機能は次のとおりです:

ツール

機能

GraphRunner

Microsoft Graph API の操作を自動化し、さまざまな方法でトークンを取得できます。また、アラートを発生させずに、侵害されたユーザーになりすますことができます。

AutoGraph

API 操作用のメニュー形式のインターフェイスを提供し、ユーザーの列挙を自動化して、さまざまなソースからのデータ抽出を容易にします。

PowerShell を使用すると、Entra アプリケーションで過度なアクセス許可がないか定期的に確認するスクリプトを作成することもできます。この先回りのアプローチにより、安全な環境を維持しやすくなります。

たとえば、次のスクリプトを実行すると、高い権限を持つすべてのアプリケーションを一覧表示できます:

Get-AzureADServicePrincipal | Where-Object { $_.AppRoles -ne $null -and $_.AppRoles.Count -gt 5 }

このコマンドは、5つを超えるアプリ ロールを持つサービス プリンシパルを取得するため、潜在的なリスクを評価できます。

KQLクエリとPowerShellによる自動化を組み合わせることで、検出能力を高めることができます。これらの手法により、OAuthアプリの悪用を特定し、効果的に対応するために必要なツールが手に入ります。

IDベースの脅威に対する緩和策

ユーザーの行動の分析

OAuthアプリに関連するリスクを効果的に緩和するには、異常を検出するためにユーザーの行動を分析する必要があります。ユーザー行動分析(UBA)ツールは、OAuthアプリの悪用を示す可能性のある通常とは異なるパターンの特定に役立ちます。検討すべき方法は次のとおりです。

方法/プロセス

説明

行動モデルの作成

UBAツールは、サインインの場所やアプリの利用時間に注目しながら、ユーザーのアクティビティに基づいてモデルを作成します。

異常検出

UBAツールは、確立されたモデルと照らし合わせてユーザーの行動を監視し、逸脱を特定します。

AIおよび機械学習の活用

アルゴリズムが時間の経過とともにユーザーの行動を分析し、通常の業務時間外のサインインなど、異常なパターンを検出します。

同僚との比較

UBAツールは、ユーザーの操作を同僚の操作と比較し、権限のないデータへのアクセスなど、不審な行動を特定します。

これらの戦略を実装することで、潜在的な脅威を早期に検出できます。OAuthアプリの定期的な監査も重要な役割を果たします。ユーザーの役割に権限が合っているかどうかを、定期的にアクセス許可を確認してください。過剰なアクセス権を持つ可能性のある不審なアプリは、調査してください。

イベントの相関分析

イベントの相関分析も、IDベースの脅威を検出するための効果的な戦略です。このアプローチでは、さまざまなソースの情報を組み合わせて、悪意のあるアプリの登録やセキュリティ制御の回避を特定できます。イベント相関分析の重要性については、次のような知見があります。

証拠の種類

統計/知見

可視性のギャップ

調査の87%では、対応者が2つ以上の異なるソースの証拠を確認する必要がありました。

環境の複雑さ

セキュリティベースラインが事業部門間で一貫して適用されていなかったため、悪用可能なギャップが生じていました。

ID のドリフト

時間の経過とともに権限が蓄積され、アカウントに必要以上のアクセス権があることがよくあります。

イベントを相関分析することで、包括的なリスク評価を作成できます。このプロセスにより、さまざまなアクティビティの関連性を把握し、OAuthの悪用手法を示す可能性のあるパターンを検出できます。

これらの緩和策の実装には、継続的な取り組みが必要です。正規のOAuthワークフローを悪用する攻撃は検出が難しいなど、課題に直面することもあるでしょう。従来のセキュリティ制御は、同意が与えられた後には十分に機能しないことがよくあります。しかし、積極的なアプローチをとれば、OAuthアプリの悪用リスクを大幅に減らすことができます。

セキュリティ態勢をさらに強化するために、次の効果的な緩和策を検討してください。

  1. 監査: OAuthアプリを定期的に監査し、アクセス許可が適切であることを確認するとともに、不審なアプリを調査してください。

  2. ユーザーの同意の制限: サードパーティアプリに対するユーザーの同意を無効にし、すべての承認要求に管理者の承認を必須にします。

  3. ロールベースのアクセス制御(RBAC): RBACを導入して、ユーザー権限を必要最小限に制限します。

  4. ユーザートレーニング: セキュリティの脅威やフィッシングの手口について従業員に理解してもらうため、定期的なトレーニングを実施します。

ユーザーの行動分析とイベントの相関分析に重点を置くことで、OAuthアプリの悪用に関連するIDベースの脅威に対する防御を強化できます。

まとめると、OAuthアプリの悪用を分析すると、多くのアプリに重大な脆弱性があることが明らかになります。最近の調査によると、テストされたアプリの約8%がOAuthの悪用に対して脆弱であることがわかっています。このことから、セキュリティ態勢を強化するために、継続的な監視の必要性が浮き彫りになります。

次の点に重点を置いてください。

  • ユーザーIDおよびサービスプリンシパルの定期的な監査。

  • 同意ポリシーを実装して、不正アクセスをブロックします。

  • 積極的にリスクのあるアプリケーションを探索(ハンティング)します。

こうした先回り型の防御戦略を採用することで、OAuth アプリの悪用に伴うリスクを大幅に低減し、組織を潜在的な脅威から保護できます。

よくある質問

OAuth アプリの悪用とは何ですか?

OAuth アプリの悪用は、攻撃者が OAuth アプリケーションを悪用して機密データへの不正アクセスを得る際に発生します。攻撃者は多くの場合、フィッシングや同意フィッシングなどの手口を使い、ユーザーをだましてアクセス許可を付与させます。

OAuth アプリの悪用はどのように検出できますか?

Microsoft Graph Activity Logs を監視して不審なアクティビティを確認することで、OAuth アプリの悪用を検出できます。通常とは異なるサインイン、大量のダウンロード、予期しないアクセス許可の変更に注目してください。

同意フィッシングにはどのようなリスクがありますか?

同意フィッシングでは、攻撃者がユーザーをだましてアカウントへのアクセスを許可させることができます。その結果、データの窃取、不正アクセス、組織の評判への潜在的な損害につながるおそれがあります。

OAuth アプリはどのくらいの頻度で監査すべきですか?

OAuth アプリは定期的に、理想的には数か月ごとに監査してください。これにより、アクセス許可が適切な状態に保たれているかを確認し、不審なアプリを迅速に特定できます。

OAuth アプリの悪用を防ぐには、どのような対策を取ればよいですか?

OAuth アプリの悪用を防ぐには、厳格なアクセス制御を実装し、サード パーティ アプリに対するユーザーの同意を無効にし、従業員向けにフィッシング対策の教育を定期的に実施してください。

Microsoft Graph の調査: Log Analytics ワークスペースと脅威検出

Microsoft Graph アクティビティ ログを使った OAuth アプリの悪用の分析とは何ですか?

Microsoft Graph アクティビティ ログを使った OAuth アプリの悪用の分析とは、Graph API のアクティビティと Graph API ログを使い、Microsoft 365 環境で OAuth 2.0 認可を悪用するアプリケーションや脅威アクターによる悪意のあるアクティビティを特定することを指します。Graph API の呼び出しや API リクエストのパターンを確認し、Log Analytics ワークスペース内の Entra ID サインイン ログおよび Graph アクティビティ ログ シリーズと突き合わせて、不審な OAuth の動作やリスクのある OAuth アプリを検出します。

Microsoft Graph アクティビティ ログはどのように有効にし、どこに送られますか?

Microsoft Graph アクティビティ ログを有効にするには、Microsoft 365 サービスと Microsoft Graph サービスを構成し、Graph API のアクティビティ情報を Log Analytics ワークスペース(または外部 SIEM)に送信するように設定する必要があります。Microsoft Entra ID の診断設定を使用して、Graph API リクエスト、Entra ID ログ、サインイン イベントを Log Analytics ワークスペース ID に送信します。送信先のワークスペースでは、Graph API ログをクエリし、Kusto を使った脅威検出クエリ(アクティビティ ログと Kusto クエリ)を実行できます。

Graph API の呼び出しのうち、不審な OAuth アクティビティを示す兆候にはどのようなものがありますか?

単一のアプリケーション ID からの大量の Graph API 呼び出し、繰り返し行われる同意の付与、テナントをまたぐトークンの再利用、見慣れない IP アドレスからの Graph API アクティビティなど、通常とは異なる Graph API リクエストに注目してください。これらを Entra ID サインイン ログ、Microsoft 認証ブローカーのイベント、API 呼び出しのタイミングの異常と照らし合わせることで、Microsoft Graph アクティビティに基づく脅威や、OAuth アプリケーションの悪用の可能性を特定できます。

Log Analytics と Kusto クエリを使って、リスクのある OAuth アプリをどのように調査できますか?

Log Analytics ワークスペースに Graph API ログを集約し、Graph アクティビティ ログ シリーズに対して Kusto クエリを実行します。一般的な手順は次のとおりです。Microsoft Graph API のリクエストと Entra ID ログを取り込み、通常とは異なる Graph API アクティビティを抽出する KQL を作成し、アプリケーション ID やユーザーを軸に分析して、Microsoft 365 サービスのイベントと相関させます。Graph を活用するためのプレイブックには、不審な OAuth トークンや API アクティビティを検出するための KQL の例が含まれています。

OAuth の悪用を検出する上で、Entra ID はどのような役割を果たしますか?

Microsoft Entra ID(旧 Azure AD)は、どのアプリがアクセスを要求したか、どのユーザーが同意したかを示す ID とアクセスのシグナル(Entra ID ログおよび Entra ID サインイン ログ)を提供します。これらのログを Microsoft Graph API や Graph API アクティビティ ログと組み合わせて使うことで、OAuth 2.0 認可イベントと API リクエストを関連付け、侵害された資格情報や悪意のあるアプリケーションを特定できます。さらに、条件付きアクセスを適用したり、アプリケーションのアクセス許可を取り消したりすることもできます。

OAuth アプリの悪用に対する脅威の検出と対応は自動化できますか?

はい。Log Analytics ワークスペースで Graph API のアクティビティログを、自動アラートおよびプレイブックと組み合わせて使うと、Microsoft Graph を利用した脅威を検出できます。KQL でふるまいの異常に対するアラートを発生させ、その後 Microsoft Graph API の呼び出しと Microsoft Graph サービスを使って自動修復(トークンの取り消し、アプリケーション ID のブロック、同意の無効化)を実行します。これにより、悪意のあるアクティビティを封じ込め、Microsoft 365 リソースへのアクセスを減らせます。

疑わしい OAuth アプリや危険な OAuth アプリによるリスクを減らすためのベストプラクティスは何ですか?

ベストプラクティスには次のようなものがあります。アプリケーションには最小特権の原則を徹底する。Graph API の要求と Entra ID のサインインログを監視する。管理者の同意は必要な場合にのみ求める。条件付きアクセスと MFA を使用する。Graph API のログを、Log Analytics ワークスペース ID を指定して Log Analytics ワークスペースに集約する。そして、Graph アクティビティログと Kusto クエリを使った定期的な調査を実施し、Microsoft Graph のアクティビティから脅威を早期に検出する。

Microsoft Teams などの Microsoft 365 サービスを調査にどのように組み込めばよいですか?

Microsoft Teams や他の Microsoft 365 サービスのテレメトリを Graph API のアクティビティログに含め、Graph API の要求と相関させてください。OAuth の悪用シナリオの多くは、メール、ファイル、または Teams のメッセージへのアクセスを伴います。Microsoft Graph API を使ってサービス固有のアクティビティを取得し、それを Log Analytics の Entra ID ログと組み合わせることで、API 要求からリソースアクセスまでの一連の流れを把握でき、Microsoft エコシステム全体にわたる悪意のあるアクティビティを検出できます。

Entities in this article

Microsoft Graph activity logs Change notifications and webhooks PowerShell Audit logs Fabric workspace Microsoft Graph Kusto Query Language (KQL) Log Analytics Phishing Compliance

Related articles

RSS