コンテンツにスキップ

Microsoft Defender XDR インテグレーションガイド🔗

以下のガイドでは、Microsoft Defender XDR を XDR と連携する手順を説明します。

注意

  • XDR との Microsoft Defender XDR インテグレーションには、適切な Microsoft ライセンスと有効な Azure サブスクリプションが必要です。詳細については、Microsoft Defender for Endpoint の最小要件を参照してください。
  • process や authentication イベントなどのデバイステレメトリーイベントを受信するには、Microsoft Defender for Endpoint Plan 2 が必要です。これはスタンドアロンライセンスとして、また Microsoft 365 E5/A5/G5 やその他のプランの一部として利用できます。Microsoft Defender for Business プランではアラートデータのみが提供される点に注意してください。詳細については、Microsoft Defender for Endpoint サービスの説明を参照してください。
  • Microsoft Defender XDR インテグレーションは、グローバル Azure クラウドおよび Azure Government で利用できます。中国の Azure(21Vianet が運用)はサポートされていません。

インテグレーションから提供されるデータ🔗

  検出 Auth DNS File Collection HTTP NIDS Netflow Process Process Module File Modification API Call Registry Scriptblock Management Persistence Thread Injection Detection Finding Technique Finding Software Info Patch State Forensic Info Generic
Microsoft Defender       * * *          
* API Call、Registry、および Thread Injection は Windows デバイスでのみ収集されます。

注意

Microsoft Defender Antivirus の検出イベントは antivirus スキーマに正規化されます。

スキャンのライフサイクルや定義の更新など、その他の Microsoft Defender Antivirus イベントは generic スキーマに正規化されます。

インテグレーション方法の決定🔗

Microsoft Defender XDR は、Azure Storage Account または Azure Event Hub のいずれかを介して XDR と連携できます。

Azure Storage Account🔗

Storage Account は従量課金モデルです。Azure サブスクリプションには、Microsoft Defender XDR が Storage Account に書き込む実際のデータ量に基づいて課金されます。スループットが減少した場合は、保存および転送されたデータに対してのみ課金されます。スループットが増加した場合は、処理が自動的にスケールします。

詳細な価格情報については、Azure Blob Storage の価格を参照してください。

重要

Blob Storage の料金に加えて、Storage Account から XDR へデータを転送すると、インターネット送信(Internet Egress)料金が発生します。詳細については、Azure Bandwidth の価格を参照してください。

Azure Event Hub🔗

Event Hubs はプロビジョニングモデルです。想定される Microsoft Defender エージェント数とイベント量に基づいてパーティションとスループットユニットを設定し、そのプロビジョニングされたスループットに対して課金されます。イベント量が減少しても、プロビジョニングされた料金は継続して課金されます。スループットがプロビジョニング量を超えて増加した場合、XDR へのデータ転送は遅延し、Event Hub のスケーリングが困難になることがあります。

詳細な価格情報については、Azure Event Hubs の価格を参照してください。

Terraform テンプレートのダウンロードと変更🔗

  1. 選択したインテグレーション方法に応じて、以下の Terraform テンプレートダウンロードリンクのいずれかをクリックします。

  2. アーカイブを解凍し、terraform.tfvars ファイルを Notepad や vim などのテキストエディターで開きます。

  3. 選択したインテグレーション方法に対応する以下のタブをクリックし、手順に従います。
  1. 現在の環境に合わせて、以下の値を変更します。Microsoft Entra tenant ID と Azure subscription ID の確認方法については、Azure portal でサブスクリプション ID と tenant ID を取得するを参照してください。リージョンとも呼ばれる Azure の場所については、Azure リージョン一覧を参照してください。

    • entra_tenant_id
    • azure_subscription_id
    • azure_location
    • blob_storage_account_name
    • queue_storage_account_name

    必要に応じて他の値を調整することも、そのままにしておくこともできます。

    注意

    Azure の要件により、blob_storage_account_namequeue_storage_account_name には小文字と数字のみを使用でき、長さは 3 ~ 24 文字である必要があります。名前はグローバルで一意でなければなりません。

  2. 新しいものを作成する代わりに、既存の resource group、Blob Storage Account、または Queue Storage Account を使用する場合は、以下の値を true に設定します。

    • use_existing_resource_group (resource_group_name で resource group を指定)
    • use_existing_blob_storage (blob_storage_account_name で Blob Storage Account を指定)
    • use_existing_queue_storage (queue_storage_account_name で Queue Storage Account を指定)
  3. Azure の設定 セクションに進みます。

  1. 現在の環境に合わせて、以下の値を変更します。Microsoft Entra tenant ID と Azure subscription ID の確認方法については、Azure portal でサブスクリプション ID と tenant ID を取得するを参照してください。リージョンとも呼ばれる Azure の場所については、Azure リージョン一覧を参照してください。

    • entra_tenant_id
    • azure_subscription_id
    • azure_location
    • eventhub_namespace

    注意

    Azure の要件により、eventhub_namespace には英数字とハイフンのみを使用でき、長さは 6 ~ 50 文字である必要があります。

  2. 新しいものを作成する代わりに、既存の resource group、Event Hub namespace、または Event Hub を使用する場合は、以下の値を true に設定します。

    • use_existing_resource_group (resource_group_name で resource group を指定)
    • use_existing_eventhub_namespace (eventhub_namespace で Event Hub namespace を指定)
    • use_existing_eventhub (eventhub_name で Event Hub 名を指定)

    注意

    • 既存の Event Hub には、Microsoft Defender のイベントレートに対して十分な容量が必要です。必要な Event Hub 容量を判断するには、以下の手順を参照してください。
    • Azure の要件により、eventhub_name には英数字、ピリオド、ハイフン、アンダースコアのみを使用でき、長さは 1 ~ 256 文字である必要があります。
  3. 1,000 を超えるエンドポイント向けに設定する必要がある場合は、手順 4~7 に従います。それ以外の場合は、変更した terraform.tfvars ファイルを保存し、Azure の設定 に進みます。

  4. イベントレートを確認します。Microsoft Defender XDR portal の Advanced Hunting に移動し、以下のクエリを使用してイベントレートを計算します。

    AlertInfo | where Timestamp > ago(7d) | join AlertEvidence on AlertId | summarize count() by bin(Timestamp, 1m)
    | union (DeviceInfo | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m)
    | union (DeviceNetworkInfo  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp,1m)
    | union (DeviceProcessEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp,  1m)
    | union (DeviceNetworkEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m)
    | union (DeviceFileEvents   | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m)
    | union (DeviceRegistryEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m)
    | union (DeviceLogonEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m)
    | union (DeviceImageLoadEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp,  1m)
    | union (DeviceEvents  | where Timestamp > ago(7d) | summarize count() by bin(Timestamp, 1m) )))))))))
    | summarize EventsPerMinute= sum(count_) by Timestamp | summarize EventsPerMinute= percentile(EventsPerMinute, 99.9)
    

    クエリ結果は Microsoft Defender では次のように表示されます。

    イベントレートの例

    このクエリは、エンドポイントが生成する 1 分あたりのイベント数 を出力します。

  5. 以下の Throughput Units Calculator と、手順 4 で確認したイベントレート(1 分あたりのイベント数)を使用して、必要な Throughput Units(TU)数とパーティション数 を計算します。

    Throughput Units Calculation

    namespace に必要な Throughput UnitsPartitions を計算する式は以下のとおりです。

    (1 分あたりのイベント数 / 60*3/1024)+1 = スループットユニット数 = パーティション数

    必要に応じて、以下のスループットおよびパーティション計算機を使用してください。

    Calculator

    イベント数を入力し、Enter キーを押して計算します: 

    必要な数は   0   Throughput Units と    0   Partitions です。

    重要

    大規模な展開では、Event Hub ごとにより多くのパーティションとより多くの TU が必要です。パーティション数は作成後に変更できないため、エンドポイント数の増加が見込まれる場合はこれを考慮してください。イベントフローの急増に対応できるよう、必要となる最大数の Throughput Units を入力する必要があります。たとえば、2 つの Throughput Units を定義している場合は、潜在的なオンデマンド容量を 2 倍にするために 4 に設定してください。Partitions は自動的には増加しません。

  6. 計算を実行した後、Event Hubs tier を選択し、それに応じて terraform.tfvars ファイルを編集します。

    • 計算された必要 TU 数が 1 ~ 32 の場合は、Standard Event Hubs tier を使用します。
    Field Default Value Note
    eventhub_tier Standard Standard Event Hubs tier を使用します。
    eventhub_throughput_allocated 2 上記の TU calculation に基づいて 1~32 に設定します。
    eventhub_throughput_inflate_cap 4 増加に対応できるよう、この数値は割り当て済み TU より大きくする必要があります。
    eventhub_partition_count 4 上記で計算した パーティション数 に基づいて 1~32 に設定します。
    data_retention_length 1 XDR では 1 日のみ必要です。独自の目的のためにさらに最大 7 日追加できます。
    • 計算された必要 TU 数が 32 を超えるが、エンドポイント数が 50,000 未満の場合は、Premium Event Hubs tier を使用します。
    Field Default Value Note
    eventhub_tier Premium Premium Event Hubs tier を使用します。
    eventhub_processing_units 1 上記の TU calculation に基づいて、1、2、4、8、16 の Processing Units(PU)から選択します。1 PU はおおよそ 5~10 TU に相当します。
    eventhub_partition_count 4 上記で計算した パーティション数 に基づいて 1~100 に設定します。
    data_retention_length 1 XDR では 1 日のみ必要です。独自の目的のためにさらに最大 90 日追加できます。
    • 展開が 50,000 エンドポイントを超える場合は、専用の Event Hubs cluster を使用する必要がある場合があります。
    Field Default Value Note
    eventhub_tier Dedicated Dedicated Event Hubs tier を使用します。
    eventhub_partition_count 4 上記で計算した パーティション数 に基づいて 1~1024 に設定します。
    data_retention_length 1 XDR では 1 日のみ必要です。独自の目的のためにさらに最大 90 日追加できます。

    Important

    新しい Event Hub を作成するのではなく既存の Event Hub を使用している場合は、それが上記で計算した要件を満たしていることを確認してください。既存の Event Hub のパラメーターは Terraform では変更できません。

  7. 変更した terraform.tfvars ファイルを保存し、Azure の設定 セクションに進みます。

Azure の設定🔗

  1. Azure Cloud Bash Shell を開き、Manage files および Upload ツールバーのアクションボタンを使用して、編集済みの terraform.tfvars ファイルを含む提供されたすべての Terraform ファイルを Azure にアップロードします。

    Terraform のアップロード

  2. Azure Cloud Bash shell から、以下のコマンドを実行します。この処理が完了するまで数分かかります。

    terraform init
    terraform plan -out taegis-defender.tfplan -var-file="terraform.tfvars"
    terraform apply taegis-defender.tfplan
    

    Note

    terraform apply コマンドを実行するユーザーには、以下の権限が必要です。

    1. Microsoft Entra ID で App Registrations と Service Principals を作成する権限。これらの権限は、組み込みの Microsoft Entra ロール Application Administrator などに含まれています。
    2. Azure RBAC で Role Assignments を作成する権限。この権限は、OwnerUser Access Administrator などの特権 Azure RBAC ロールに含まれています。
  3. コマンドの出力を記録します。残りの設定で必要になります。

Microsoft Defender の設定🔗

  1. System → Settings → Microsoft Defender XDR → Streaming API に移動して、Microsoft Defender Data Export を設定します。

    注意

    この操作には Global Administrator または Security Administrator ロールが必要であり、Data Export を作成するアカウントは Event Hub または Storage Account のサブスクリプションにアクセスできる必要があります。

  2. + Add を選択し、以下のようにエクスポート設定を構成します。選択したインテグレーション方法に対応する以下のタブをクリックします。

    • Name: Sophos-XDR-Integration-Export
    • Forward events to Azure Storage: チェックあり
    • Storage account Resource ID: Terraform の出力にある blob_storage_resource_id の値をコピーして貼り付けます。

    Storage Account Resource ID の例: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/xx-xxx-x-xx-xxxxxxxx/providers/Microsoft.Storage/storageAccounts/mycompanydefenderlogs

    • Name: Sophos-XDR-Integration-Export
    • Forward events to Event Hub: チェックあり
    • Event Hub Resource Id: Terraform の出力にある eventhub_namespace_resource_id の値をコピーして貼り付けます。

    Namespace Resource ID の例: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/xx-xxx-x-xx-xxxxxxxx/providers/Microsoft.EventHub/namespaces/MyCompanyDefenderLogs

    • Event Hub name: Terraform の出力にある eventhub_name の値をコピーして貼り付けます。例: taegis-defender-eventhub
  3. Alerts & Behaviors 配下の AlertInfoAlertEvidence、および Devices カテゴリー全体を Event Types として選択します。

    Defender イベントタイプの選択

  4. Submit(または Save)を選択します。

XDR で Microsoft Defender XDR インテグレーションを設定する🔗

前の手順で取得した Terraform の出力を使用して、XDR でインテグレーションを作成します。

  1. Taegis Menu から Integrations > Cloud APIs を選択します。
  2. Cloud API Integrations ページで、テーブルの上にある Add an Integration をクリックします。
  3. Optimized タブで、Microsoft Defender XDR カードをクリックします。Microsoft Defender XDR ダイアログが表示されます。

    Microsoft Defender XDR インテグレーションタイプ

  4. 選択したインテグレーション方法(Event Hub または Storage Account)を選択し、Next をクリックします。

  5. Terraform テンプレートのダウンロードと変更 セクションで取得した Terraform 出力の値を入力します。選択したインテグレーション方法に対応する以下のタブをクリックします。

    以下のようにフォームに入力します。

    • Integration Name を入力します。これは任意の文字列です。
    • Microsoft Entra ID フィールドに entra_tenant_id の Terraform 出力を入力します。
    • Queue Storage URL フィールドに queue_storage_url の Terraform 出力を入力します。
    • Blob Storage URL フィールドに blob_storage_url の Terraform 出力を入力します。
    • Authentication Type として Microsoft Entra ID を選択し、Application Client ID フィールドに entra_client_id を入力します。

    Microsoft Defender XDR Storage Account

    以下のようにフォームに入力します。

    • Integration Name を入力します。これは任意の文字列です。
    • Microsoft Entra ID フィールドに entra_tenant_id の Terraform 出力を入力します。
    • Event Hub Namespace Hostname フィールドに eventhub_namespace_hostname の Terraform 出力を入力します。
    • Event Hub Name フィールドに eventhub_name の Terraform 出力を入力します。
    • Authentication Type として Microsoft Entra ID を選択し、Application Client ID フィールドに entra_client_id を入力します。

    Microsoft Defender XDR Event Hub

  6. フォームの入力が完了したら、Done をクリックします。

Microsoft Entra ID で Federated Credential を設定する🔗

セットアッププロセスの最後の手順は、Microsoft Entra ID でインテグレーション用の Federated Credential を設定することです。これにより、client secret や certificate を保存せずにインテグレーションが認証できるようになります。この credential は、Microsoft Entra ID でインテグレーションを表す App Registration を設定します。また、Amazon Cognito などの外部 ID プロバイダーによってインテグレーションの workload identity に発行された OIDC トークンに対する信頼を確立します。

Federated Credentials の詳細については、Microsoft Entra ドキュメントの Workload identity federation concepts を参照してください。

  1. Taegis Menu の Integrations > Cloud APIs に移動し、新しいインテグレーション名のリンクをクリックします。Federated Credential がまだ設定されていないため、インテグレーションで失敗が報告される場合があります。
  2. Details タブをクリックし、以下のインテグレーションパラメーターを記録します。

    • ClientId: Microsoft Entra ID でインテグレーションを表す App Registration の ID。
    • FederatedIdentityIssuer: XDR が使用する Amazon Cognito IdP の URL。
    • FederatedIdentityAudience: XDR がインテグレーションに関連付けられた workload identities を登録するために使用する Amazon Cognito Identity Pool の ID。
    • FederatedIdentitySubject: インテグレーションに関連付けられた workload identity。

    Microsoft Defender XDR インテグレーションパラメーター

  3. Azure Portal で、前の手順の ClientId パラメーターを上部の検索ボックスにコピーします。インテグレーションに関連付けられた App Registration と Service Principal を表す 2 つの Microsoft Entra ID 検索結果が表示されます。Application エントリーを選択します。

    Microsoft Defender XDR Application 検索

  4. App Registration ページで Manage を選択し、次に Certificates & secrets を選択して、Federated credentials タブをクリックします。

  5. + Add credential を選択し、以下のように Federated Credential を設定します。

    • Federated credential scenario ドロップダウンメニューで Other issuer を選択します。
    • Issuer フィールドに FederatedIdentityIssuer パラメーターを入力します。
    • Type フィールドで Explicit subject identifier を選択します。
    • Value フィールドに FederatedIdentitySubject パラメーターを入力します。
    • Federated Credential の Name を入力します。これは任意の文字列です。
    • Audience フィールドの下にある Edit をクリックし、既存の値を FederatedIdentityAudience パラメーターに置き換えます。
    • フォームの下部にある Add を選択します。

    Microsoft Defender XDR Federated Credential

Federated Credential の設定後、数分でインテグレーションが動作を開始するはずです。

インテグレーションのメンテナンス🔗

Event Hub のスケーリング🔗

Azure PortalIncoming BytesOutgoing Bytes、および Throttled Requests メトリクスに対してアラートを設定することで、Event Hub Namespace のパフォーマンスを監視できます。

以下のいずれかが発生した場合、Event Hub Namespace のスループットは容量に達しており、TU 数を増やす必要があります。

  • Incoming Bytes メトリクスが (Number_of_TUs * 1 MB/s) に達する
  • Outgoing Bytes メトリクスが (Number_of_TUs * 2 MB/s) に達する
  • Throttled Requests メトリクスがゼロ以外である

ただし、Event Hub のスループットが TU ベースの容量より低い「上限」に達しており、Taegis Support から Event Hub のプロビジョニング不足を指摘された場合は、Event Hub を置き換える必要があります。

詳細については、Microsoft Azure ドキュメントの Scaling with Event Hubs を参照してください。

Premium または Dedicated Event Hub のスケーリング🔗

以下は動的に変更できます。

  • Premium Event Hub の Processing Units(PU)
  • Dedicated Event Hub cluster の Capacity Units(CU)(サポートリクエストが必要)
  • Event Hub のパーティション数

Standard Event Hub のスケーリング🔗

Event Hub のスループットを増やす最初の手順は、Throughput Units の数を更新してみることです。Azure Portal の Event Hubs Namespace ページにある Settings → Scale タブで Throughput Units を管理できます。同じ Scale 設定ページで Auto-Inflate の値を設定して、使用状況に応じて Event Hub が Throughput Units 数を自動的にスケールアップできるようにすることもできます。

それでも {{ no such element: super_collections.SuperDict object['shortshortProdXDR'] }} が Event Hub から、メッセージが生成される速度と同じ速さでデータを読み取れない場合は、Event Hub 自体を置き換える必要があります。

Event Hub の置き換え🔗

  1. 新しい Event Hub を作成します(まだ古い Event Hub は削除しないでください)。以下の手順に従います。

    1. 必要なスループット、パーティション数、および Event Hub tier(Standard、Premium、Dedicated)を計算するには、上記のドキュメント を参照してください。
    2. Terraform アーカイブを新しいディレクトリーに解凍します。引き続き Terraform パラメーター更新の手順に従います。
    3. terraform.tfvars ファイルを Notepad や vim などのテキストエディターで開きます。新しい Event Hub namespace を作成するには、terraform.tfvars に少し異なる eventhub_namespace を入力する必要があります。新しい Event Hub を古いものと同じ resource group に配置する場合は、resource_group_name に resource group 名を入力し、terraform.tfvarsuse_existing_resource_grouptrue に設定します。
    4. Terraform を plan および apply して Event Hub を作成します。
  2. Microsoft Defender portal で、Streaming API の設定を変更します。以下の手順に従います。

    1. 新しい設定を追加し、Event Hub Namespace Resource ID と新しい Event Hub の名前を指定します。
    2. 古い設定を削除します。
  3. Azure Portal で、古い Event Hub の Outgoing Bytes および Outgoing Messages メトリクスがゼロに低下したことを確認します。これには時間がかかる場合があります。古い Event Hub に残っているデータを破棄しても問題ない場合は、この手順を省略できます。

  4. XDR で、Microsoft Defender XDR インテグレーションに新しい Event Hub のパラメーターを入力します。
  5. Azure Portal で古い Event Hub を削除します。

移行された Microsoft Defender インテグレーションの更新🔗

Microsoft Defender インテグレーションが以前のバージョンから移行されたものである場合、Connection String で認証している可能性があります。認証タイプを Microsoft Entra ID に変更するには、以下の手順に従います。

  1. Terraform テンプレートのダウンロードと変更 セクションの手順に従い、既存の Azure リソースを使用するオプションで進めます。
  2. Azure の設定 セクションの手順に従います。
  3. Taegis Menu の Integrations > Cloud APIs に移動し、更新する Microsoft Defender XDR インテグレーションの 鉛筆アイコンをクリックします。Microsoft Defender XDR ダイアログが表示されます。
  4. Authentication Type として Microsoft Entra ID を選択し、Terraform 出力の entra_client_id 値を Application Client ID フィールドに入力します。Done をクリックします。
  5. Microsoft Entra ID で Federated Credential を設定する セクションの手順に従います。

Microsoft Defender XDR インテグレーションの削除🔗

Microsoft Defender XDR インテグレーションを削除するには、次の手順を実行します。

  1. XDR でインテグレーションを削除します。
  2. Microsoft Defender で Streaming API 設定を削除します(System → Settings → Microsoft Defender XDR → Streaming API)。
  3. インテグレーション用の Azure リソース作成に使用した Terraform テンプレートと state を含むディレクトリーがまだある場合は、terraform destroy を実行してリソースを削除します。リソース削除を確定する前に、plan を慎重に確認してください。Terraform ディレクトリーがない場合は、Storage Account または Event Hub リソースを手動で削除します。

テストイベント🔗

以下のテストイベントを使用して、インテグレーションを検証します。

Windows🔗

新しくオンボードしたデバイスで以下の PowerShell スクリプトを実行し、Defender for Endpoint サービスに正しくレポートされていることを確認します。コマンドプロンプトウィンドウは実行時に自動的に閉じます。成功した場合、約 10 分後にオンボードしたデバイスの新しい検出が portal に表示されます。

  1. フォルダーを作成します: 'C:\test-WDATP-test'
  2. デバイスで管理者権限のあるコマンドラインプロンプトを開き、スクリプトを実行します。

    powershell.exe -NoExit -ExecutionPolicy Bypass -WindowStyle Hidden $ErrorActionPreference = "SilentlyContinue";(New-Object System.Net.WebClient).DownloadFile('http://127.0.0.1/1.exe', 'C:\\test-WDATP-test\\invoice.exe');Start-Process 'C:\\test-WDATP-test\\invoice.exe'
    

macOS/Linux🔗

以下を実行して EICAR テストファイル(マルウェアをシミュレートするために使用される無害な標準化ファイル)をダウンロードし、Microsoft Defender が脅威を検知し、インテグレーション検証用のアラートが生成されることを確認します。

curl -o ~/Downloads/eicar.com.txt https://www.eicar.org/download/eicar.com.txt

参考資料🔗