コンテンツにスキップ

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 インテグレーションを構成できます。

  1. Terraform テンプレート をダウンロードします。
  2. アーカイブを解凍し、terraform.tfvars ファイルを Notepad や vim などのテキストエディタで開きます。
  3. 現在の環境に合わせて以下の値を変更します。詳細は Microsoft Azure ドキュメント Azure ポータルでサブスクリプションとテナントIDを取得する をご参照ください。
  • client_name
  • azure_tenant_id
  • azure_subscription_id
  • azure_region

注意

Azure の要件により、client_name には英字、数字、ハイフンのみ使用できます。client_nameazure_region の合計文字数は30文字以内でなければなりません。空白は使用できません。

注意

リソースグループ名はそのままにしておくことを推奨します。

  1. Azure管理者から Azure リージョンコードを取得できます。Azure リージョンに関連付けられたリージョンコードが不明な場合は、Azure Cloud Shell(bash)で以下のコマンドを実行してください。

az account list-locations --query "sort_by([].{RegionalDisplayName:regionalDisplayName, Name:name}, &RegionalDisplayName)" -o table
5. Terraform vars ファイル terraform.tfvars を該当するリージョンコードで修正し、ファイルを保存します。

Terraform Region

  1. 1,000台を超えるエンドポイントの構成が必要な場合は、手順7~10に進んでください。それ以外の場合は 手順11 にスキップしてください。
  2. 1,000台を超えるエンドポイントに対応するために提供されている Terraform テンプレートを使用する場合、必要なスループットユニット(TU)とパーティション数を計算し、Terraform テンプレート内のいくつかの項目を修正する必要があります。

  3. イベントスループットを算出します。Microsoft Defender ポータルの Advanced Hunting にアクセスし、下記のクエリを使用してイベントスループットを計算します。Advanced Hunting クエリのタイムアウトは10分です。クエリがタイムアウトした場合は、クエリをテキストエディタに貼り付け、7d6d に置換して検索ウィンドウを短縮してください。必要に応じてさらに短縮してください。

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 でのクエリ結果例:

TU Example

このクエリは、エンドポイントが生成する Events per Minute の数を出力します。

  1. 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倍の容量を確保できます。パーティションは自動で増加しません。

  1. 計算結果に基づき、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日まで追加
  1. 修正した terraform.tfvars ファイルを保存します。
  2. 編集済み terraform.tfvars ファイルを含むすべての Terraform ファイルを、manage file share および Upload/Download files ツールバーアクションボタンを使って Azure にアップロードします。

Terraform Upload

  1. 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 ロールが必要です。

  1. コマンドの出力結果を安全に記録してください。以降の構成で必要となります。
  2. azure_consent_url に表示されたURLにアクセスし、認証後、表示される権限を承認します。
  3. 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 サブスクリプションへのアクセス権が必要です。

  1. + 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

  1. Event Hub Name: Terraform の出力結果にある event_hub_name の値をコピー&ペーストします。例:SCWX-TDR-EventHub
  2. Event Types で、Alerts および Devices カテゴリにチェックを入れます。

注意

Microsoft 365 Defender Portal を使用している場合、Devices カテゴリ内の DeviceAlertEvents が表示されている場合はチェックを外してください。DeviceAlertEvents テーブルは AlertInfo および AlertEvidence テーブルに置き換えられており、使用しないでください。

注意

旧 Microsoft Defender for Endpoint ポータルを使用している場合は、すべてのイベントタイプにチェックを入れてください。

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

XDR で ATP Defender をセットアップ🔗

上記手順で得られた terraform の出力値を使い、XDR でインテグレーションを完了します。

  1. Taegis Menu から Integrations → Cloud APIs を選択します。Cloud API インテグレーションページが表示されます。
  2. Cloud API インテグレーションテーブル右上の Add an Integration を選択します。Cloud API インテグレーションダイアログが表示されます。
  3. Optimized タブから Microsoft Defender for Endpoint カードを選択します。Set up Microsoft Defender for Endpoint ダイアログが表示されます。

Microsoft Defender for Endpoint

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

Cloud API Integration Status

Azure Active Directory アプリケーションとシークレットの再作成🔗

何らかの理由で、XDR のインテグレーションで使用する Azure Active Directory アプリケーションとシークレットを再生成する必要がある場合は、以下の手順に従ってください。

既存の Azure Active Directory アプリケーションのクリーンアップ🔗

  1. Azure ポータルで Azure Active Directory に移動し、左側の Manage グループから App registrations を選択します。
  2. 右側のペインで All applications を選択し、検索ボックスに SCWX-TDR-MDATP-APP と入力します(Start typing a name or Application ID to filter these results と表示されます)。検索結果に1つ以上のアプリケーション/クライアントが表示された場合は、そのうちの1つを選択します。表示されない場合は次のセクションに進んでください。
  3. アプリケーション内で Delete を選択します。Delete app registration ペインが表示されます。I understand the implications of deleting this app registration にチェックを入れ、Delete を選択して Azure AD アプリケーションを削除します。
  4. このセクションの手順2で複数のアプリケーションが表示された場合は、手順3を繰り返してすべて削除してください。

Terraform テンプレートを使った Azure Active Directory アプリケーションの再作成🔗

  1. 2つ目の Terraform テンプレートセット をダウンロードします。
  2. アーカイブを解凍し、terraform.tfvars ファイルを Notepad や Vim などのテキストエディタで開きます。
  3. azure_tenant_id の値を現在の環境に合わせて変更し、ファイルを保存します。
  4. Upload を選択する前に Add directory を選択し、repopulate_application という新しいフォルダを作成して、これらの新しい terraform テンプレートファイルを前回とは異なるフォルダにアップロードします。
  5. 作成した repopulate_application フォルダを選択し、Upload を選択して application.tfconfiguration.tfoutput.tfterraform.tfvars をすべて repopulate_application フォルダにアップロードします。
  6. Azure Cloud Bash シェルから、以下のコマンドを実行します。

cd clouddrive/repopulate_application && terraform init && terraform plan -out ScwxAppTest.tfplan && terraform apply ScwxAppTest.tfplan && terraform output
この処理は前回より短時間で完了します。

  1. コマンドの出力結果を安全に記録してください。以降の構成で必要となります。
  2. azure_consent_url に表示されたURLにアクセスし、認証後、表示される権限を承認します。
  3. 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 キーです。
  4. 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 を置き換えるには:

  1. 新しい Event Hub を作成しますが、古い Event Hub はまだ削除しないでください。

    • 上記手順6 を参照し、必要なスループット、パーティション数、Event Hub ティア(Standard、Premium、Dedicated)を計算します。
    • Terraform アーカイブを新しいディレクトリに解凍し、Terraform パラメータの更新手順に従ってください。
    • terraform.tfvars ファイルをテキストエディタで開き、新しい Event Hub 名前空間を生成するために client_name を少し変更してください。terraform.tfvarsreplacement_eventhubtrue に設定します。
    • Terraform を計画・適用して Event Hub を作成します。
  2. Microsoft Defender ポータルで Streaming API 設定を変更します。

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

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

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

Microsoft Defender for Endpoint インテグレーションを削除するには:

  1. XDR でインテグレーションを削除します。
  2. Microsoft Defender で Streaming API 設定を削除します(Settings → Microsoft 365 Defender → Streaming API)。
  3. 以下の Azure リソース(Terraform で作成したもの)を削除します:
  • SCWX-TDR-MDATP-APP という App Registration
  • SCWX-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'

MacOS/Linux🔗

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