トークン盗難プレイブック

この記事とそれに付随する デシジョン ツリーでは、セキュリティ アナリストとインシデント レスポンダーが組織内のトークン盗難攻撃を特定して調査するためのガイダンスを提供します。 組織がセキュリティ体制を強化するにつれて、脅威アクターはより高度な手法を使用してリソースを侵害します。 トークン盗難攻撃による損害を調査、封じ込め、修復するには、迅速な対応が必要です。

トークン盗難攻撃は、ユーザーが多要素認証を満たしている場合でも、脅威アクターがユーザーに発行されたトークンを侵害して再生したときに発生します。 認証要件が満たされているため、脅威アクターには、盗まれたトークンを使用して組織のリソースへのアクセスが許可されます。

詳細情報:

前提条件

  • ユーザーとサービス プリンシパルの Microsoft Entra ID (旧称 Azure AD) へのサインイン監査 ログへのアクセス
  • 次のいずれかの Microsoft Entra ロールが割り当てられたアカウント:
    • セキュリティ管理者
    • グローバル管理者
    • Security Reader
    • グローバル閲覧者
    • セキュリティ オペレーター

推奨事項

必須ではありませんが、以下のことをお勧めします。

  • 高度なハンティング機能を有効にし、過去 7 日間のイベント データにアクセスする
  • 統合アクセス ログにアクセスして追加のシグナルを確認する
  • Microsoft Entra ID P2 および E5 ライセンスの Microsoft Entra ID プレミアム リスク検出により、より詳細な調査トリガーと指示が可能になります
  • 追加の信号にアクセスするには、フェデレーションではなく、パスワード ハッシュ同期 (PHS) を備えたマネージド認証構成を使用します。

要件

SIEM を構成する

Microsoft Sentinel などのセキュリティ保護可能なリソース (SIEM) ツールでは、ログの可視性が一元化されています。 次の目的でリスク イベントを取り込むよう SIEM を構成します。

  • サインイン ログと監査ログ
  • Microsoft Sentinel の統合 (プレビュー) では、Microsoft Defender for Cloud Apps を Microsoft Sentinel (スケーラブルなクラウドネイティブ SIEM および SOAR) と統合して、アラートと検出データの一元的な監視を可能にする方法について説明します。
  • オフィスへのサインイン ログと監査ログ
  • 関連するアラートを構成する

詳細情報:

すぐに使える脅威の検出」のガイダンスに従って、脅威の検出と対応のための Microsoft Sentinel (またはサードパーティ SIEM) ルールを構成します。

詳細情報:

  • Microsoft Entra ID Protection アラートを設定します。 「リスク データをエクスポートする方法」では、Microsoft Entra ID 内の診断設定を変更して、RiskyUsers、UserRiskEvents、RiskyServicePrincipals、およびServicePrincipalRiskEvents のデータを Log Analytics ワークスペースに送信すること、データをストレージ アカウントにアーカイブすること、データをイベント ハブにストリーミングすること、またはデータをパートナー ソリューションに送信することにより、データの保存期間を長くすることができる方法を説明します。

SIEM を Microsoft Defender for Cloud Apps と統合する

Microsoft Defender for Cloud Apps と Microsoft Sentinel は既定で接続されています。 Microsoft Sentinel を使用しない場合は、SIEM を Microsoft Defender for Cloud Apps に接続します。これは、Microsoft Sentinel、ArcSight by Open Text、汎用共通イベント形式 (CEF) をサポートします。

詳細情報:

SIEM を Microsoft Graph API と統合する

SIEM を Microsoft Graph Security API に接続します。

  • サポートされている統合オプション - アプリケーションを接続して分析情報を導き出すコードを記述します。 Microsoft Graph Security API の概要 では、主要な機能について説明し、コード サンプルを提供します。
  • ネイティブ統合とコネクタ - Microsoft パートナーが構築
  • コネクタ - SIEM ソリューション、セキュリティ オーケストレーション自動応答 (SOAR)、インシデント追跡とサービス管理 (ITSM)、レポートなどの API 用

調査

トリガー、調査チェックリストなどのガイダンスについては、次のセクションを参照してください。 トークン盗難ワークフローのデシジョン ツリーを使用して、調査と意思決定を支援します。

調査のトリガー

すべての組織には、一般的なシナリオと非典型的なシナリオがあります。 トリガーまたは通常とは異なるアクティビティを特定するには、次の調査チェックリストを使用します。

  • ID
  • サインイン ログ
  • 監査ログ
  • Office アプリ
  • 影響を受けるユーザーに関連付けられているデバイス

これらのユーザー アクティビティが有効と確認された場合、侵害はありません。 有効であることが確認できない場合は、侵害を想定し、軽減措置に進みます。 Microsoft Sentinel portal または SIEM でイベントの種類を検索して調査することで、トークンの盗難の試行を検出します。

詳細情報:

トークン盗難攻撃を示す可能性がある次のイベントのアラートを受け取っていることを確認します。

Microsoft Entra ID 保護機能には、次のトリガーがあります。

  • 異常なトークン (オフライン検出) - 検出された非典型的なトークン特性、または未知の場所から使用されるトークン。 この動作を検出するアルゴリズムは、Microsoft 365 プロパティを持つ Microsoft Entra ID からのデータを使用します。 この検出は、攻撃者がトークンを再生しているかどうかを示します。

  • 見慣れないサインイン プロパティ - サインイン履歴と比較すると、サインインは異常です。 このイベントは、ユーザーのサインイン プロパティが慣れていない場合に発生します。

  • 見慣れないサインイン - 非対話型サインインが発生します。 特に疑わしいデバイスで検出された場合は、見慣れないサインインに関する調査を増やします。 非対話型サインインの検出には、すぐに注意を払うことをお勧めします。

  • プライマリ更新トークン (PRT) へのアクセスの試行 - Windows 10 および 11 では、Microsoft Defender for Endpoint は PRT および関連する成果物への疑わしいアクセスを検出します。 検出は、リソースの条件付きアクセスを制御する Microsoft Entra リスク スコアに送られます。 この検出は量が少なく、頻度が低くなります。

  • Microsoft Defender XDR 検出 – Microsoft Entra ID Protection と Microsoft Defender XDR を統合して、検出を 1 つのポータルに表示します。

    • 既定では、セキュリティ オペレーション センター (SOC) の最も関連性の高いアラートが有効になっています。 すべての Microsoft Entra IP リスク検出の場合、または統合を無効にするには、Microsoft Defender XDR アラート サービス設定を変更します。

    Screenshot of the Show high impact alerts only option.

  • 疑わしい URL – ユーザーがフィッシングメール リンクをクリックした可能性があります。 疑わしいメールは、敵対者の中間 (AiTM) フィッシング キットであり、攻撃の開始である可能性があります。

    Screenshot of a list of suspicious activity.

  • その他の疑わしい動作 - Defender for Microsoft 365 の高度なハンター アラート証拠とアラート テーブルには、トークンの盗難を示すアクションが表示されます。 ログを確認して、次の内容を確認します。

    • 1 人のユーザーによる大量のファイルのダウンロード
    • ユーザーによる異常なファイルのダウンロード
    • アカウントへの多要素認証またはパスワードのない認証情報の追加
    • 追加または編集されたメールボックス転送ルール

調査の開始

開始する前に: 前提条件を満たして有効にします。 さらに、このハンドブックは、Microsoft の顧客および調査チームが Microsoft 365 E5 または Microsoft Entra ID P2 ライセンス スイートを利用できない、または構成していない可能性があることを想定しています。 そのため、提供されている自動化ガイダンスに注意してください。

この調査では、次の場合にトークン盗難の可能性を示していると想定しています。

  • ユーザー レポート
  • Microsoft Entra サインイン ログの例
  • Microsoft Entra ID 保護の検出

調査チェックリスト

一般的なシナリオに関する知識を得て、次の異常または異常なアクティビティを特定します。

  • ID
  • サインイン ログ - 予期しない場所またはデバイス
  • 監査ログ - 新しく登録されたデバイス、追加の多要素認証オプション、または資格情報の変更。
  • Office アプリ - トリガーが発生した後の変更
  • デバイス - 影響を受けるユーザーに関連付けられています。 インシデント トリガー以降のアラートを評価します。

侵害またはトークン盗難の証拠: ユーザーの確認

侵害された可能性のあるユーザー アカウントを特定したら、疑わしいアクティビティを確認します。 このプロセスは、組織ごとに異なります。

詳細情報:

ユーザーやデバイスの調査

アカウントまたは複数のユーザー アカウントが侵害されたと思われる場合は、ユーザー セッションとマシン デバイスの 2 つのコンテキストで調査アクティビティを区別します。

ユーザー調査チェックリスト

ユーザーの動作を持つログを調査します。 次の場合、疑わしいユーザー アクティビティがあります。

  • Microsoft Entra ID 保護または同様の機能では、アラートによってトークンの盗難が提案されます
  • ユーザーに追加された認証情報またはデバイス
    • 取り消す ID の一覧を記録する
  • 影響を受けるユーザーが疑わしいメールを受信する
    • フィッシング詐欺や悪意のあるメールの場合は、Microsoft Defender XDR を使用して、影響を受ける他のユーザーを調査して特定します
    • Microsoft 365 で配信された悪意のあるメールを調査する」では、疑わしいメールのメッセージを検索して調査する方法について説明します。
  • フィッシング調査は、組織内のフィッシング攻撃を特定して調査するためのガイダンスを提供します。
  • 影響を受ける特権アカウント
    • 侵害後に行われた特権アカウントの変更を確認する
  • 受信トレイ ルールの作成
    • 疑わしいメールボックス ルールを記録する
    • セキュリティ侵害を受けたユーザー
    • ドキュメントの IP アドレスとユーザー アカウント
    • 侵害された可能性のあるその他のアカウントを特定する
    • 疑わしい IP アドレスまたはユーザー エージェント文字列から追加の認証を識別する

フィッシング詐欺または悪意のあるメール

フィッシングやその他の悪意のある電子メールの兆候がある場合は、Microsoft 365 で配信された悪意のあるメールを調査して、疑わしいメール メッセージを見つけて調査する方法について説明します。

攻撃者の IP アドレスまたはユーザー エージェント文字列認証

次のクエリは、Sentinel のテーブルを参照します。 永続性の兆候 (多要素認証登録、デバイス登録、メールボックス転送規則、受信トレイ ルール) を探します。

Microsoft Entra セキュリティ運用ガイドのルールについて説明します。

AADUserRiskEvents
| where RiskEventType contains "unfamiliar" or RiskEventType contains "anomalous"
| where IpAddress == "x"

または、サインイン ログを使用して、同じ IP アドレスを持つユーザーを取得します。

SigninLogs
| where IPAddress == "x"

特権ユーザーの場合は、時間枠内の変更を確認します。

AuditLogs
| where TimeGenerated between (datetime(2023-03-01) .. datetime(2023-03-15))
| where InitiatedBy == "x"

特権アカウントの認証方法の変更

特権管理者ロールが割り当てられているユーザーのセキュリティ情報の変更を検索するには、次のクエリを使用します。

Query
  let queryperiod = 14d;
  let queryfrequency = 2h;
  let security_info_actions = dynamic(["User registered security info", "User changed default security info", "User deleted security info", "Admin updated security info", "User reviewed security info", "Admin deleted security info", "Admin registered security info"]);
  let VIPUsers = (
      IdentityInfo
      | where TimeGenerated > ago(queryperiod)
      | mv-expand AssignedRoles
      | where AssignedRoles matches regex 'Admin'
      | summarize by tolower(AccountUPN));
  Audit logs
  | where TimeGenerated > ago(queryfrequency)
  | where Category =~ "UserManagement"
  | where ActivityDisplayName in (security_info_actions)
  | extend Initiator = tostring(InitiatedBy.user.userPrincipalName)
  | extend IP = tostring(InitiatedBy.user.ipAddress)
  | extend Target = 
tolower(tostring(TargetResources[0].userPrincipalName))
  | where Target in (VIPUsers)

疑わしい ID と異常

Log Analytics または Sentinel (Microsoft Entra ID でソース化されたログ) を使用して、疑わしい ID と異常を検出します。

SigninLogs
    | where UserId == "x"
    | extend deviceId_ = tostring(DeviceDetail.deviceId)
    | extend displayName_ = tostring(DeviceDetail.displayName)
    | extend city_ = tostring(LocationDetails.city)
    | extend countryOrRegion_ = tostring(LocationDetails.countryOrRegion)
    | summarize min(TimeGenerated), max(TimeGenerated) by IPAddress, ResultDescription, deviceId_, displayName_, city_, countryOrRegion_, AppDisplayName

Note

異常なトークン検出で見られるように、すべての Microsoft Entra アクティビティ生成アラートに SigninLogs に対応するエントリがあるわけではありません。 OfficeActivityAuditLogs などの他のテーブルを表示することをお勧めします。

OfficeActivity
    | where UserId == "x"
    | summarize min(TimeGenerated), max(TimeGenerated) by ClientIP, OfficeWorkload

Microsoft Defender XDR の CloudAppEvents テーブルでのアクティビティ

この方法の使用は、ログの設定によって異なります。

M365D AH
CloudAppEvents
| where AccountId == "x"
| summarize min(Timestamp), max(Timestamp) by IPAddress, CountryCode, City, Application

CloudAppEvents は、Microsoft Defender for Cloud Apps でカバーされるさまざまなクラウド アプリおよびサービスのアクティビティに関する情報を含む高度なハンティング スキーマを記述します。

AuditLogs、AzureActivity、AzureDevOpsAuditing、CloudAppEvents の悪意のあるアクション

攻撃者がアクセスした内容 (ID ドキュメント、コード、リポジトリなど) を確認します。次の SharePoint の例に示すように、機密情報またはハードコーディングされた資格情報の項目を確認します。

OfficeActivity
    | where OfficeWorkload contains "SharePoint" (or other)
    | where ClientIP == "bad IP"
    | project TimeGenerated, Operation, OfficeObjectId

デバイス調査チェックリスト

デバイスの動作を記録するログを調査します。 次の場合、疑わしいデバイス アクティビティがあります。

  • Microsoft Defender ポータル:
    • デバイスにはトークン盗難関連のアラートがあります。 デバイス ID を検索する: AlertId| で AlertInfo に参加します。ここで、DeviceId は x です
    • プライマリ更新トークン (PRT) へのアクセス試行
    • ユーザーが疑わしいアプリ、拡張機能をインストールしたか、最近疑わしい Web サイトを参照しました。 Microsoft Defender for Endpoints アラートで疑わしいプロセスまたはファイルを検索します。 アラートには、既知の新たな脅威からのインプラント プロセス、プロセス名、プロセスの動作、起動されたサービス、スケジュールされたタスク アクティビティなど、疑わしいものがあります。 可能な C2 コミュニティの場合は、考えられるコマンドと制御のアクティビティを使用します。
    • Microsoft Defender for Endpoint アラートの調査」では、ネットワークに影響を与えているアラートを調査し、その意味を理解し、解決する方法について説明します。
  • 高度な検出機能:
    • デバイスには、疑わしいプロセスからの発信ネットワーク接続があります。 トリガー ウィンドウで通常とは異なる送信アクティビティを探します。
    • 疑わしいアクティビティを実行したローカル アカウント

詳細情報:

ネットワークからデバイスを分離する

デバイスを封じ込める Microsoft Defender for Endpoint のデバイスで対応アクションを実行する方法は、デバイスを分離するか調査パッケージを収集することで、検出された攻撃に迅速に対応する方法について説明します。

攻撃者がアクセスしたデータ

データ損失は、データの破壊または漏えいです。 攻撃者がアクセスした内容とデータの機密性を検出します。 SharePoint、OneNote、Azure DevOps を調査します。 認証情報を交換します。

データ損失の手順

企業データへの攻撃者のアクセスに関するディザスター リカバリー計画のガイダンスを使用します。 データ損失を防ぎ、ディザスター リカバリー計画を改善または作成するには、次のガイダンスを使用します。

その他の影響を受けるユーザーまたはデバイス: 環境全体

環境全体の侵害のクエリ インジケーター。 たとえば、影響を受けるデバイスが増えます。 影響を受けるユーザーとデバイスの検出を確実に行うために反復処理します。

包含状態

もう 1 人のユーザー、デバイス、アプリケーション、またはワークロード ID が悪意のある、または侵害されていることを特定したら、攻撃者を封じ込めるアクションを実行する必要があります。 侵害された場合は、アプリケーションの資格情報をすぐにロールしたり、削除したりすることはできません。

場合によっては、攻撃に直ちに対応するよりも、攻撃者の詳細を収集することが重要です。 次のガイダンスの順序を検討することをお勧めします。 この例では、包含または軽減策が、情報収集よりも優先されます。

重要

ユーザーまたはデバイス アカウントを無効にした場合のセキュリティとビジネス上の影響を特定します。 大きすぎる場合は、回復ステージに移行することを検討してください。

包含タスク一覧

  1. 侵害の疑いがあるアカウントのパスワード、またはアカウント パスワードが検出された場合は、パスワードを変更します。

  2. ユーザーをブロックします。 Microsoft Entra ID でのユーザー アクセスの取り消しでは、侵害されたアカウント、従業員の退職、その他の内部関係者の脅威を含むシナリオで、ユーザーのすべてのアクセスを取り消す方法について説明します。

  3. Microsoft Entra ID 保護または同様の機能で、関連するアカウントを侵害済みとしてマークします。

  4. 攻撃者の IP アドレスをブロックします。

    ヒント

    攻撃者は正当な仮想プライベート ネットワーク (VPN) を使用でき、IP アドレスを変更する際にリスクが高まる可能性があります。 クラウド認証を使用する場合は、Defender for Cloud Apps または Microsoft Entra ID で IP アドレスをブロックします。 フェデレーションの場合、Active Directory フェデレーション サービス (AD FS) の前のファイアウォール レベルで IP アドレスをブロックします。

  5. MFA を有効にします。 Microsoft Entra 多要素認証の有効化では、サインイン イベント中に追加の形式の識別をユーザーに求める方法について説明します。

  6. ユーザーとサインインのリスクに対して Microsoft Entra ID 保護 を有効にします。 リスク ポリシー: Microsoft Entra ID 保護は、リスクへの対応を自動化し、検出されたリスクをユーザーが自己修復できるようにする Microsoft Entra 条件付きアクセスのリスク ポリシーについて説明します。

  7. 侵害されたデータ (メール、SharePoint、OneDrive、アプリ) を特定します。 Microsoft Defender for Cloud Apps アクティビティ フィルターでは、アクティビティをスキャンし、新しいアクティビティを更新できます。

  8. パスワードの検疫を維持します。 パスワード ガイダンスのホワイト ペーパーには、エンド ユーザーと ID 管理者のパスワード管理に関する推奨事項が記載されています。

  9. 影響を受けるアカウントとデバイスを検出し、攻撃が停止するまで繰り返します。

回復

調査と封じ込め後のガイダンスについては、次のセクションを参照してください。

修復タスク一覧

調査と包含が完了したら、被害を修復します。

  • 影響を受けるユーザー アカウントとデバイス アカウントを無効にする
    • 現在のトークンを取り消す
    • パスワードをリセットする
  • 追加された認証情報やデバイスを無効にする
    • 感染したデバイスを修復する
  • 疑わしいメールのルールを無効にする
  • 侵害された権限アカウントによって行われた変更を元に戻す

追加された認証情報とデバイスを削除する

影響を受けるアカウントを再度有効にする前に、次のガイダンスを使用します。 Microsoft Entra 認証方法 Graph API で追加された資格情報を削除します。

ユーザーのメール認証方法を削除するには、次の Graph 呼び出しを実行します。

DELETE /users/{id | userPrincipalName}/authentication/emailMethods/{id}

または、追加された認証方法の実行を削除します。

DELETE /users/{id | userPrincipalName}/authentication/microsoftAuthenticatorMethods/{microsoftAuthenticatorAuthenticationMethodId}

詳細情報:

特定されたユーザー アカウントによって登録されたデバイスを削除します。 次の Graph API 呼び出しを使用します。

DELETE /devices/{id}
DELETE /devices(deviceId='{deviceId}')

攻撃者がアクセスしたデータには、さらに多くの認証情報が含まれています

Microsoft Purview を有効にした場合は、環境をスキャンします。 侵害されたアカウントで All credentials エンティティ定義を使用します。 次の資格情報のローリング セクションで説明されているように、識別された資格情報をロールします。

詳細情報:

漏洩したシークレットの有効期限が切れ、ローテーションされる

識別されたユーザーまたはデバイスの資格情報に関連付けられているシークレットをローテーションします。

  • クラウド アカウントの Azure portal で、アカウント パスワードをリセットします。
  • ハイブリッド アカウントの場合、「Microsoft Entra ID でのユーザー アクセスの取り消し」の説明に従って、ユーザー パスワードを 2 回リセットします。
  • Microsoft Entra ユーザー アカウントで、デバイスと MFA がユーザー制御下にあるかどうかを確認します。
    • 不明なデバイスを無効または削除する
    • ユーザー アカウントを再び有効にする前に、不明な MFA オプションを削除する
  • コード リポジトリでハードコーディングされた資格情報またはプレーンテキスト資格情報を期限切れにします。
    • 漏洩した資格情報を確認します。 ワークロード ID リスク検出では、アプリケーションとサービス プリンシパルを保護する方法について説明します。
    • 資格情報のスキャンを実行します。 資格情報スキャンでは、プロジェクトを自動的に検査して、プロジェクトのソース コードにシークレットが含まれていないことを確認する方法について説明します。
  • Microsoft 365 ポータルで追加または変更された受信トレイルールを削除します。

環境内の ID をセキュリティで保護する

次の記事では、ID のセキュリティについて詳しく説明します。

トークン盗難の根本原因

場合によっては、根本原因を発見できない場合があります。 根本原因を示すことができる詳細を導き出すために調査を完了することをお勧めします。 回復後、根本原因を特定するためにさらに調査手順を実行できます。

Microsoft 365 で配信された悪意のあるメールを調査する」では、疑わしいメールのメッセージを検索して調査する方法について説明します。

次のステップ

*トークン盗難ワークフローの意思決定ツリー