ThreatDown EDR のログを収集する
このドキュメントでは、Webhook を使用してログを Google Security Operations にプッシュするように ThreatDown EDR(Nebula と OneView)を構成する方法について説明します。
Malwarebytes を搭載した ThreatDown EDR は、脅威の検出、疑わしいアクティビティのモニタリング、エンドポイント保護などのエンドポイントの検出と対応の機能を提供します。Nebula プラットフォームはシングルテナント環境に対応し、OneView は MSP 向けのマルチテナント管理コンソールです。どちらのプラットフォームも、MALWAREBYTES_EDR ログタイプを使用して検出データと疑わしいアクティビティ データを統合データモデル(UDM)イベントとしてエクスポートする、Google Security Operations とのネイティブ統合をサポートしています。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- ThreatDown EDR(Nebula または OneView)は、ログ配信用の Webhook をサポートしています。
- Google Cloud コンソールへのアクセス(API キーの作成用)
- Nebula の場合: Nebula コンソールでの特権管理者権限と、エンドポイントの検出と対応のアクティブなサブスクリプションを持つアクティブな Nebula アカウント
- OneView の場合: OneView コンソールでのグローバル管理者アクセス権と、エンドポイントの検出と対応のアクティブなサブスクリプションを持つサイト
- Google Cloud Platform API キーを生成するための Google Cloud プロジェクトに対する管理者権限
- Google Chronicle SIEM に対する管理者権限
Google SecOps で Webhook フィードを作成する
フィードを作成する
- [SIEM 設定] > [フィード] に移動します。
- [新しいフィードを追加] をクリックします。
- 次のページで、[単一フィードを構成する] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Malwarebytes)。 - [Source type] として [Webhook] を選択します。
- [ログタイプ] として [Malwarebytes EDR] を選択します。
- [次へ] をクリックします。
- 次の入力パラメータの値を指定します。
- 分割区切り文字 (省略可): 空のままにします。ThreatDown からの各 Webhook リクエストには、構造化されたイベントデータが含まれています。
- Asset namespace: アセットの名前空間
- 取り込みラベル: このフィードのイベントに適用されるラベル
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
フィード エンドポイント URL を取得する
- フィードの [詳細] タブに移動します。
- [エンドポイント情報] セクションで、フィード エンドポイント URL をコピーします。
URL の形式は次のとおりです。
https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreateまたは
https://<REGION>-malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate次の手順で使用するため、この URL を保存します。
秘密鍵を生成して保存する
フィードを作成したら、認証用の秘密鍵を生成する必要があります。
- フィードの [秘密鍵] タブに移動します。
- [シークレット キーを生成する] をクリックします。
- ダイアログに秘密鍵が表示されます。
秘密鍵をコピーして安全に保存 します。
重要: 秘密鍵は一度しか表示されず、後で取得することはできません。紛失した場合は、新しい秘密鍵を生成する必要があります。
[完了] をクリックします。
Google Cloud API キーを作成する
ThreatDown と Google SecOps の統合には、Google Cloud Platform(GCP)API キーが必要です。
API キーを作成する
- [Google Cloud コンソール認証情報] ページに移動します。
- プロジェクト(Chronicle インスタンスに関連付けられているプロジェクト)を選択します。
- [認証情報を作成] > [API キー] をクリックします。
- API キーが作成され、ダイアログに表示されます。
- API キーをコピーして安全に保管します。
- ポップアップで [API キーを編集] をクリックします。
API キーを制限する
- [API キー] 設定ページで、次の操作を行います。
- 名前: わかりやすい名前を入力します(例:
Chronicle Webhook API Key)
- 名前: わかりやすい名前を入力します(例:
- [キーを制限] を選択します。
プルダウン メニューで [Chronicle API] を選択します。
[保存] をクリックします。
ThreatDown EDR Webhook を構成する
ThreatDown は、Nebula コンソールと OneView コンソールの [Integrate] ページで、Google Chronicle SIEM とのネイティブ統合を提供します。プラットフォームに一致する以下のセクションを選択してください。
オプション A: Nebula を構成する
- 特権管理者認証情報を使用して、cloud.malwarebytes.com のThreatDown Nebula コンソールにログインします。
- 左側のナビゲーション メニューの [Integrate] ページに移動します。
- [Google Chronicle SIEM] を見つけて [Configure] をクリックします。
- 次の構成情報を提供してください。
- [Webhook URL]: Google SecOps フィードの詳細ページの [エンドポイント情報] フィールドからコピーした URL を貼り付けます。
- [Webhook Secret]: Google SecOps フィードの [秘密鍵] タブから生成された秘密鍵を貼り付けます。
- GCP API Key: Google Cloud から取得した API キーを貼り付けます。
- [保存] をクリックします。
保存すると、Nebula は検出ログと疑わしいアクティビティ ログを Google SecOps に直接エクスポートします。
オプション B: OneView を構成する
- グローバル管理者認証情報を使用して、cloud.malwarebytes.com のThreatDown OneView コンソールにログインします。
- 左側のナビゲーション メニューの [Integrate] ページに移動します。
- [Google Chronicle SIEM] を見つけて [Configure] をクリックします。
- [Enable Setup] をオンに切り替えます。
- 次の構成情報を提供してください。
- [Webhook URL]: Google SecOps フィードの詳細ページの [エンドポイント情報] フィールドからコピーした URL を貼り付けます。
- [Webhook Secret]: Google SecOps フィードの [秘密鍵] タブから生成された秘密鍵を貼り付けます。
- GCP API Key: Google Cloud から取得した API キーを貼り付けます。
- サイトの選択: データの取り込み元となるサイトを選択します。
- [保存] をクリックします。
保存すると、OneView は選択したサイトの検出ログと疑わしいアクティビティ ログを Google SecOps に直接エクスポートします。
ログの取り込みを確認する
統合を構成したら、ThreatDown EDR ログが Google SecOps に取り込まれていることを確認します。
- Google SecOps で、[Investigation] > [SIEM Search] に移動します。
次の UDM 検索クエリを入力します。
metadata.vendor_name = "Malwarebytes" and metadata.log_type = "MALWAREBYTES_EDR"目的の期間を選択します。
[検索を実行] をクリックします。
[Events] タブをクリックします。ThreatDown EDR から取り込まれたデータは、統合データモデル(UDM)を使用して表示されます。
Webhook の制限とおすすめの方法
リクエストに関する上限
| 上限 | 値 |
|---|---|
| リクエストの最大サイズ | 4 MB |
| 最大 QPS(秒間クエリ数) | 15,000 |
| リクエストのタイムアウト | 30 秒 |
| 再試行の動作 | 指数バックオフによる自動 |
さらにサポートが必要な場合
- Nebula と Google Chronicle SIEM の統合を有効にする - support.threatdown.com
- OneView と Google Chronicle SIEM の統合を有効にする - support.threatdown.com
- Nebula と Google Chronicle SIEM の統合の要件 - support.threatdown.com
- OneView と Google Chronicle SIEM の統合の要件 - support.threatdown.com
- ThreatDown Nebula と OneView と Google Chronicle SIEM に関するブログ投稿 - threatdown.com
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| payload.payload.sa_details.data.list.0.details.0.detected_by.0.description | metadata.description | 値が直接コピーされる |
| has_principal | metadata.event_type | 最初は「GENERIC_EVENT」に設定され、has_principal と has_target_file の場合は「SCAN_FILE」、has_principal の場合は「STATUS_UPDATE」、has_user の場合は「USER_UNCATEGORIZED」、それ以外の場合は「GENERIC_EVENT」に設定される |
| has_user | metadata.event_type | |
| has_target_file | metadata.event_type | |
| type | metadata.product_event_type | 値が直接コピーされる |
| id | metadata.product_log_id | 値が直接コピーされる |
| machine.id | principal.asset.asset_id | 「MACHINE:」と machine.id を連結 |
| machine.name | principal.asset.hostname | 値が直接コピーされる |
| payload.payload.group_name | principal.group.group_display_name | 値が直接コピーされる |
| account.default_group_id | principal.group.product_object_id | 値が直接コピーされる |
| machine.name | principal.hostname | 値が直接コピーされる |
| account.id | principal.user.product_object_id | 値が直接コピーされる |
| account.name | principal.user.user_display_name | 値が直接コピーされる |
| account.owner_user_id | principal.user.userid | 値が直接コピーされる |
| payload.payload.category | security_result.category_details | 値が直接コピーされる |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.name | security_result.detection_fields | 各セットをキー付きラベルとして設定し、結合する |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.description | security_result.detection_fields | |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.hyperlink | security_result.detection_fields | |
| payload.payload.sa_details.data.mitre_attack_mapping.hosts file change.0.tactic.tag | security_result.detection_fields | |
| payload.payload.policy_id | security_result.detection_fields | |
| payload.payload.policy_name | security_result.detection_fields | |
| payload.id | security_result.detection_fields | |
| payload.payload.sa_details.data.list.0.details.0.detected_by.0.tag | security_result.summary | 値が直接コピーされる |
| payload.payload.threat_name | security_result.threat_name | 値が直接コピーされる |
| payload.payload.sa_details.data.list.0.user | target.administrative_domain | Grok パターンを使用してドメインを取得 |
| payload.payload.path | target.file.full_path | 値が直接コピーされる |
| payload.payload.sa_process_graph.data.children.0.children.0.node_info.process_path | target.process.file.full_path | 値が直接コピーされる |
| payload.payload.sa_process_graph.data.children.0.node_info.process_path | target.process.parent_process.file.full_path | 値が直接コピーされる |
| payload.payload.sa_process_graph.data.children.0.node_info.process_id | target.process.parent_process.pid | 値が直接コピーされる |
| payload.payload.sa_process_graph.data.children.0.children.0.node_info.process_id | target.process.pid | 値が直接コピーされる |
| payload.payload.sa_details.data.list.0.user | target.user.userid | Grok パターンを使用して tar_user を取得 |
| metadata.product_name | metadata.product_name | 「Malwarebytes EDR」に設定 |
| metadata.vendor_name | metadata.vendor_name | 「Malwarebytes」に設定 |
さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。