Microsoft Defender for Endpoint インテグレーションガイド 🔗
重要
本ガイドのv2をご利用ください。本バージョン(v1)は非推奨となっています。
以下のガイドは、Microsoft Defender for Endpoint を Secureworks® Taegis™ XDR と連携する手順を説明します。
重要
DeviceAlertEvents テーブルは、Microsoft 365 Defender から間もなく削除されます。代わりに AlertInfo* および AlertEvidence テーブルが利用されます。Microsoft 365 Defender の Streaming API 設定で、AlertInfo および AlertEvidence テーブルが選択され、DeviceAlertEvents テーブルが未選択であることを必ずご確認ください。
お客様の Azure アカウントで 提供されている XDR 用 Terraform テンプレート を使用して、Defender for Microsoft Endpoint および Azure テナントを構成してください。テンプレートで提供されているデフォルトのリソース値は、最大1,000台のエンドポイントを持つ環境で安全に動作します。1,000台を超える環境や独自の環境をカスタマイズしたい場合は、下記の詳細に従ってテンプレートの追加修正が必要です。
注意
- Microsoft Defender for Endpoint の XDR とのインテグレーションには、適切な Microsoft ライセンスと有効な Azure サブスクリプションが必要です。詳細は Microsoft 365 ドキュメント Microsoft Defender for Endpoint の最小要件 をご参照ください。
- デバイスのテレメトリーイベント(プロセスや認証イベントなど)を受信するには、Microsoft Defender for Endpoint Plan 2、または Microsoft 365 E5 プラン、または Microsoft 365 A5 プランが必要です。Microsoft Defender for Business プランはアラートデータのみを提供します。詳細は Microsoft 365 ドキュメント Microsoft エンドポイントセキュリティプランの比較 をご参照ください。
- 各 Azure Active Directory テナントIDは、1つのXDRインテグレーションでのみ使用できます。既存のXDRインテグレーションがある Azure AD テナントで新たなXDRインテグレーションを構成しようとすると、失敗します。
- AzureインテグレーションはUSおよびEUリージョンでサポートされていますが、他のリージョンではMicrosoftによるサポートがない場合があります。他リージョンでのサービスサポートについてはMicrosoftに直接ご確認ください。
- Azure Active Directory および Microsoft 365 インテグレーションはグローバルAzureクラウドで利用可能です。Azure Government、Azure China 21Vianet、Azure Germany などの他のナショナルクラウドは現在サポートされていません。
インテグレーションから提供されるデータ🔗
| 検出 | Auth | DNS | ファイル収集 | HTTP | NIDS | Netflow | Process | ファイル変更 | API Call | Registry | Scriptblock | Management | Persistence | Thread Injection | 検出結果 | テクニックの検出結果 | Generic | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Microsoft Defender for Endpoint | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓* | ✓* | ✓ | ✓ | ✓ | ✓* | ✓ |
注意
ScriptBlock イベントは Linux および macOS デバイスでのみ収集されます。
Microsoft Defender for Endpoint インテグレーションの構成🔗
注意
必要に応じて、複数の Microsoft Defender for Endpoint インテグレーションを構成できます。
- Terraform テンプレート をダウンロードします。
- アーカイブを解凍し、terraform.tfvars ファイルを Notepad や vim などのテキストエディタで開きます。
- 現在の環境に合わせて以下の値を変更します。詳細は Microsoft Azure ドキュメント Azure ポータルでサブスクリプションとテナントIDを取得する をご参照ください。
- client_name
- azure_tenant_id
- azure_subscription_id
- azure_region
注意
Azure の要件により、client_name には英字、数字、ハイフンのみ使用できます。client_name と azure_region の合計文字数は30文字以内でなければなりません。空白は使用できません。
注意
リソースグループ名はそのままにしておくことを推奨します。
- Azure管理者から Azure リージョンコードを取得できます。Azure リージョンに関連付けられたリージョンコードが不明な場合は、Azure Cloud Shell(bash)で以下のコマンドを実行してください。
az account list-locations --query "sort_by([].{RegionalDisplayName:regionalDisplayName, Name:name}, &RegionalDisplayName)" -o table

- 1,000台を超えるエンドポイントの構成が必要な場合は、手順7~10に進んでください。それ以外の場合は 手順11 にスキップしてください。
-
1,000台を超えるエンドポイントに対応するために提供されている Terraform テンプレートを使用する場合、必要なスループットユニット(TU)とパーティション数を計算し、Terraform テンプレート内のいくつかの項目を修正する必要があります。
-
イベントスループットを算出します。Microsoft Defender ポータルの Advanced Hunting にアクセスし、下記のクエリを使用してイベントスループットを計算します。Advanced Hunting クエリのタイムアウトは10分です。クエリがタイムアウトした場合は、クエリをテキストエディタに貼り付け、
7dを6dに置換して検索ウィンドウを短縮してください。必要に応じてさらに短縮してください。
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 PerMinute= sum(count_) by Timestamp | summarize percentile(PerMinute, 99.9)
注意
旧 Microsoft Defender for Endpoint ポータルを使用している場合は、Advanced Hunting にアクセスし、代わりに以下のクエリを使用してください。
DeviceAlertEvents | where Timestamp > ago(7d) | 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 PerMinute= sum(count_) by Timestamp | summarize percentile(PerMinute, 99.9)
Microsoft Defender Security Center でのクエリ結果例:

このクエリは、エンドポイントが生成する Events per Minute の数を出力します。
- Event Hub に必要な Throughput Units とパーティション数を算出します。
Throughput Units 計算機🔗
必要な Throughput Units および パーティション数 を計算する式は以下の通りです。
(Events per minute / 60*3/1024)+1 = スループットユニット数 = パーティション数
または、以下の式を使って必要な Throughput Units を算出できます。
計算機
イベント数を入力し、Enter キーを押して計算してください:
必要な 0 スループットユニット および 0 パーティション です。
注意
大規模な導入では、より多くのパーティションと Event Hub ごとに多くの TU が必要です。エンドポイント数の増加が見込まれる場合は、パーティション数は作成後に変更できないため、これを考慮してください。イベントフローの急増に対応できるよう、必要な最大スループットユニット数を入力してください。例えば、2つのスループットユニットを定義している場合は、4に設定してオンデマンドで2倍の容量を確保できます。パーティションは自動で増加しません。
- 計算結果に基づき、Event Hubs のティアを選択し、terraform.tfvars ファイルを編集します。
必要な TU 数が 1~32 の場合は、Standard Event Hubs ティアを使用してください。
| フィールド | デフォルト値 | 備考 |
|---|---|---|
| require_dedicated_cluster | false | 専用クラスターは使用しない |
| eventhub_tier | Standard | Standard Event Hubs ティアを使用 |
| eventhub_throughput_allocated | 2 | 手順9 のTU計算に基づき1~32を許可 |
| eventhub_throughput_inflate_cap | 4 | 拡張のため、割り当てたTUより大きい値を設定 |
| eventhub_partition_count | 4 | 手順9 で算出したパーティション数に基づき1~32を許可 |
| data_retention_length | 1 | XDR では1日分のみ必要 - 必要に応じて最大7日まで追加 |
必要な TU 数が 32 を超え、かつエンドポイントが 50,000 台未満の場合は、Premium Event Hubs ティアを使用してください。
| フィールド | デフォルト値 | 備考 |
|---|---|---|
| require_dedicated_cluster | false | 専用クラスターは使用しない |
| eventhub_tier | Premium | Premium Event Hubs ティアを使用 |
| eventhub_processing_units | 8 | 手順9 のTU計算に基づき1, 2, 4, 8, 16 PUから選択。1 PUは約5~10 TUに相当。 |
| eventhub_partition_count | 100 | 手順9 で算出したパーティション数に基づき1~100を許可 |
| data_retention_length | 1 | XDR では1日分のみ必要 - 必要に応じて最大90日まで追加 |
導入規模が 50,000 台を超える場合は、専用 Event Hubs クラスターの利用が必要となる場合があります。
| フィールド | デフォルト値 | 備考 |
|---|---|---|
| require_dedicated_cluster | true | 非常に大規模な導入(50,000台以上)では専用クラスターが必要 |
| eventhub_partition_count | 1024 | 手順9 で算出したパーティション数に基づき1~1024を許可 |
| data_retention_length | 1 | XDR では1日分のみ必要 - 必要に応じて最大90日まで追加 |
- 修正した terraform.tfvars ファイルを保存します。
- 編集済み terraform.tfvars ファイルを含むすべての Terraform ファイルを、manage file share および Upload/Download files ツールバーアクションボタンを使って Azure にアップロードします。

- Azure Cloud Bash シェルから、以下のコマンドを実行します。
cd clouddrive && terraform init && terraform plan -out ScwxAppTest.tfplan && terraform apply ScwxAppTest.tfplan && terraform output
注意
terraform apply コマンドの実行には、Global Administrator または Application Administrator の Azure AD ロールが必要です。
- コマンドの出力結果を安全に記録してください。以降の構成で必要となります。
azure_consent_urlに表示されたURLにアクセスし、認証後、表示される権限を承認します。- Settings → Microsoft 365 Defender → Streaming API に移動し、Security Center Data Export を構成します。
注意
旧 Microsoft Defender for Endpoint ポータルを使用している場合は、Partners & APIs → Data export settings に移動してください。
注意
この操作には Global Administrator または Security Administrator ロールが必要です。また、Data Export を作成するアカウントは Event Hub サブスクリプションへのアクセス権が必要です。
- + Add を選択し、以下のようにエクスポート設定を構成します。
- Name:
SCWX-XDR-Integration-Export - Forward events to Azure Event Hub: チェックを入れる
- Event Hub Resource Id: Terraform の出力結果にある
event_hub_namespace_resource_idの値をコピー&ペースト
Namespace Resource ID の例:/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx/resourceGroups/xx-xxx-x-xx-xxxxxxxx/providers/Microsoft.EventHub/namespaces/SCWX-XDR-Namespace-CustomerName
- Event Hub Name: Terraform の出力結果にある
event_hub_nameの値をコピー&ペーストします。例:SCWX-TDR-EventHub - Event Types で、Alerts および Devices カテゴリにチェックを入れます。
注意
Microsoft 365 Defender Portal を使用している場合、Devices カテゴリ内の DeviceAlertEvents が表示されている場合はチェックを外してください。DeviceAlertEvents テーブルは AlertInfo および AlertEvidence テーブルに置き換えられており、使用しないでください。
注意
旧 Microsoft Defender for Endpoint ポータルを使用している場合は、すべてのイベントタイプにチェックを入れてください。
- Submit(または Save)を選択します。
XDR で ATP Defender をセットアップ🔗
上記手順で得られた terraform の出力値を使い、XDR でインテグレーションを完了します。
- Taegis Menu から Integrations → Cloud APIs を選択します。Cloud API インテグレーションページが表示されます。
- Cloud API インテグレーションテーブル右上の Add an Integration を選択します。Cloud API インテグレーションダイアログが表示されます。
- Optimized タブから Microsoft Defender for Endpoint カードを選択します。Set up Microsoft Defender for Endpoint ダイアログが表示されます。

- 上記 Microsoft Defender for Endpoint インテグレーションの構成 で取得した Terraform の出力値を入力します。
- フォーム入力が完了したら Done を選択します。
- XDR の Cloud APIs ページでインテグレーションが正常に動作しているか確認できます。正常なインテグレーションは緑色の 連携可能 ステータスで表示されます。

Azure Active Directory アプリケーションとシークレットの再作成🔗
何らかの理由で、XDR のインテグレーションで使用する Azure Active Directory アプリケーションとシークレットを再生成する必要がある場合は、以下の手順に従ってください。
既存の Azure Active Directory アプリケーションのクリーンアップ🔗
- Azure ポータルで Azure Active Directory に移動し、左側の Manage グループから App registrations を選択します。
- 右側のペインで All applications を選択し、検索ボックスに
SCWX-TDR-MDATP-APPと入力します(Start typing a name or Application ID to filter these results と表示されます)。検索結果に1つ以上のアプリケーション/クライアントが表示された場合は、そのうちの1つを選択します。表示されない場合は次のセクションに進んでください。 - アプリケーション内で Delete を選択します。Delete app registration ペインが表示されます。I understand the implications of deleting this app registration にチェックを入れ、Delete を選択して Azure AD アプリケーションを削除します。
- このセクションの手順2で複数のアプリケーションが表示された場合は、手順3を繰り返してすべて削除してください。
Terraform テンプレートを使った Azure Active Directory アプリケーションの再作成🔗
- 2つ目の Terraform テンプレートセット をダウンロードします。
- アーカイブを解凍し、terraform.tfvars ファイルを Notepad や Vim などのテキストエディタで開きます。
- azure_tenant_id の値を現在の環境に合わせて変更し、ファイルを保存します。
- Upload を選択する前に Add directory を選択し、repopulate_application という新しいフォルダを作成して、これらの新しい terraform テンプレートファイルを前回とは異なるフォルダにアップロードします。
- 作成した repopulate_application フォルダを選択し、Upload を選択して application.tf、configuration.tf、output.tf、terraform.tfvars をすべて repopulate_application フォルダにアップロードします。
- Azure Cloud Bash シェルから、以下のコマンドを実行します。
cd clouddrive/repopulate_application && terraform init && terraform plan -out ScwxAppTest.tfplan && terraform apply ScwxAppTest.tfplan && terraform output
- コマンドの出力結果を安全に記録してください。以降の構成で必要となります。
azure_consent_urlに表示されたURLにアクセスし、認証後、表示される権限を承認します。-
Event Hub の情報を安全に記録してください。XDR で再入力が必要です。
- Azure ポータルで Event Hubs に移動し、Defender インテグレーションで使用している名前空間(
SCWX-TDR-Namespace-で始まるはず)を確認します。名前空間を選択します。 - 左ペインで Event Hubs を選択します。
- アクティブな Event Hub の名前を確認し、選択します。
- 左ペインで Consumer groups を選択します。
- デフォルト以外の Consumer Group 名を確認します。
- 左ペインで Shared access policies を選択します。
- Shared Access Policy 名を確認し、選択します。
- 右ペインで Primary key をコピーします。これが Shared Access Policy キーです。
- Azure ポータルで Event Hubs に移動し、Defender インテグレーションで使用している名前空間(
-
XDR の Defender インテグレーションに戻り、収集した情報を使ってインテグレーションを削除し、再作成してください。
Event Hub のスケーリング🔗
Incoming Bytes および Outgoing Bytes メトリクスにアラートを設定することで、Event Hub のパフォーマンスを監視できます。
Incoming Bytes メトリクスが (Number_of_TUs * 1 MB/s)、または Outgoing Bytes メトリクスが (Number_of_TUs * 2 MB/s) に達した場合、Event Hub のスループットが上限に達しているため、TU数を増やす必要があります。
ただし、Event Hub のスループットが TU ベースの上限に達していないにもかかわらず、XDR サポートから Event Hub のリソース不足と指摘された場合は、Event Hub の置き換えが必要です。
Event Hubs のスケーリングに関する追加情報 もご参照ください。
Premium または Dedicated Event Hub のスケーリング🔗
以下を動的に変更できます:
- Premium Event Hub の Processing Units (PU)
- Dedicated Event Hub クラスターの Capacity Units (CU)(サポートリクエストが必要)
- Event Hub のパーティション数
Standard Event Hub のスケーリング🔗
Event Hub のスループットを増やす最初のステップは、Throughput Units の数を増やすことです。これは Azure Portal の Event Hubs Namespace ページの Scale タブから管理できます。同じ Scale 設定で Auto-Inflate 値を設定し、Event Hub が使用状況に応じて自動的に Throughput Units をスケールアップできるようにすることも可能です。
Event Hub の置き換え🔗
XDR が Event Hub からデータを十分な速度で読み取れない場合は、Event Hub 自体を置き換える必要があります。
Event Hub を置き換えるには:
-
新しい Event Hub を作成しますが、古い Event Hub はまだ削除しないでください。
- 上記手順6 を参照し、必要なスループット、パーティション数、Event Hub ティア(Standard、Premium、Dedicated)を計算します。
- Terraform アーカイブを新しいディレクトリに解凍し、Terraform パラメータの更新手順に従ってください。
- terraform.tfvars ファイルをテキストエディタで開き、新しい Event Hub 名前空間を生成するために client_name を少し変更してください。terraform.tfvars で replacement_eventhub を true に設定します。
- Terraform を計画・適用して Event Hub を作成します。
-
Microsoft Defender ポータルで Streaming API 設定を変更します。
- 新しい設定を追加し、Event Hub Namespace Resource ID と新しい Event Hub 名を指定します。
- 古い設定を削除します。
-
Azure Portal で、古い Event Hub の Outgoing Bytes および Outgoing Message メトリクスがゼロになったことを確認します。これには時間がかかる場合があります。古い Event Hub の残データを破棄しても問題ない場合は、この手順を省略できます。
- XDR で、新しい Event Hub のパラメータを Microsoft Defender for Endpoint インテグレーションに入力します。
- Azure Portal で古い Event Hub および Event Hub Namespace を削除します。
Microsoft Defender for Endpoint インテグレーションの削除🔗
Microsoft Defender for Endpoint インテグレーションを削除するには:
- XDR でインテグレーションを削除します。
- Microsoft Defender で Streaming API 設定を削除します(Settings → Microsoft 365 Defender → Streaming API)。
- 以下の Azure リソース(Terraform で作成したもの)を削除します:
SCWX-TDR-MDATP-APPという App RegistrationSCWX-TDR-Namespaceで始まる Event Hub Namespace
参考資料🔗
テストイベント🔗
Windows🔗
新たにオンボードしたデバイスで以下の PowerShell スクリプトを実行し、Defender for Endpoint サービスへの正常なレポートを確認します。コマンドプロンプトウィンドウは実行後自動的に閉じます。成功すると、約10分後にオンボード済みデバイスのポータルに新しい検知が表示されます。
-
フォルダを作成:
'C:\test-WDATP-test' -
デバイスで管理者権限のコマンドプロンプトを開き、以下のスクリプトを実行:
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'