Elastic Defend のログを収集する
パーサーのバージョン: 5.0
このドキュメントでは、Cloud Run 関数で Google Cloud Storage V2 を使用して、Elastic Defend ログを Google Security Operations に取り込む方法について説明します。
Elastic Defend は、Elastic Security 内のエンドポイント検出対応(EDR)ソリューションです。Windows、macOS、Linux オペレーティング システムを詳細に可視化し、予防、検出、対応の機能を提供します。プロセスの実行、ファイル アクティビティ、ネットワーク接続、レジストリの変更、ライブラリの読み込みをモニタリングして、エンドポイント レベルで脅威を検出して防止します。データは Elasticsearch に保存され、Elasticsearch Search API を使用して取得できます。
始める前に
次の前提条件を満たしていることを確認してください。
- Google SecOps インスタンス
- 次の API が有効になっている Google Cloud プロジェクト。
- Cloud Storage
- Cloud Run functions
- Cloud Scheduler
- Pub/Sub
- IAM
- Elastic Defend がデプロイされている Elasticsearch クラスタへのアクセス
- Elasticsearch で API キーを作成する権限(
manage_security、manage_api_key、またはmanage_own_api_keyクラスタ権限) - Cloud Run functions から Elasticsearch クラスタへのネットワーク接続
Google Cloud Storage バケットを作成する
- Google Cloud コンソールに移動します。
- プロジェクトを選択するか、新しいプロジェクトを作成します。
- ナビゲーション メニューで、[Cloud Storage] > [バケット] に移動します。
- [バケットを作成] をクリックします。
次の構成情報を提供してください。
設定 値 バケットに名前を付ける グローバルに一意の名前( elastic-defend-logsなど)を入力します。ロケーション タイプ ニーズに応じて選択します(リージョン、デュアルリージョン、マルチリージョン)。 ロケーション ロケーションを選択します(例: us-central1)。ストレージ クラス Standard(頻繁にアクセスされるログに推奨) アクセス制御 均一(推奨) 保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする [作成] をクリックします。
Elastic Defend の認証情報を収集する
Cloud Run 関数が Elastic Defend イベントを取得できるようにするには、logs-endpoint データ ストリームに対する読み取り権限を持つ API キーを作成する必要があります。
Kibana を使用して API キーを作成する
- Kibana にログインします。
- ナビゲーション メニューまたはグローバル検索フィールドで、[Stack Management] > [API キー] に移動します。
- [API キーを作成] をクリックします。
- [名前] フィールドに「
Google SecOps Cloud Storage Integration」と入力します。 - [有効期限] フィールドで、必要に応じて有効期限を設定します。デフォルトでは、API キーに有効期限はありません。
- [セキュリティ権限を管理する] をクリックします。
- [Indices] セクションで、[Add index privilege] をクリックします。
- インデックス権限を構成します。
- インデックス: 「
logs-endpoint.*」と入力します。 - 権限: [読み取り] を選択します。
- インデックス: 「
- [クラスタ権限] セクションは空のままにします(クラスタ権限は必要ありません)。
- [API キーを作成] をクリックします。
API 認証情報を記録する
API キーを作成すると、認証情報を表示するダイアログが表示されます。
エンコード済み: Base64 でエンコードされた API キー(例:
VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==)また、Elasticsearch エンドポイント URL を記録する必要があります。
Elastic Cloud の場合: エンドポイントは、Cloud コンソールのデプロイの [Elasticsearch] セクションに表示されます(例:
https://my-deployment.es.us-central1.gcp.cloud.es.io:443)。セルフマネージド Elasticsearch の場合: Elasticsearch クラスタのホスト名または IP アドレスとポートを使用します(例:
https://elasticsearch.example.com:9200)。
デベロッパー ツールを使用して API キーを作成する(別の方法)
または、Kibana Dev Tools を使用して API キーを作成することもできます。
- Kibana にログインします。
- [Management] > [Dev Tools] に移動します。
コンソールで次のコマンドを実行します。
POST /_security/api_key { "name": "Google SecOps Cloud Storage Integration", "role_descriptors": { "chronicle_reader": { "indices": [ { "names": ["logs-endpoint.*"], "privileges": ["read"] } ] } }, "metadata": { "application": "google-chronicle-gcs", "environment": "production" } }レスポンスには、API キーの認証情報が含まれます。
{ "id": "VuaCfGcBCdbkQm-e5aOx", "name": "Google SecOps Cloud Storage Integration", "api_key": "ui2lp2axTNmsyakw9tvNnw", "encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==" }エンコードされた値をコピーして保存します。これは、認証に使用する base64 エンコードされた API キーです。
サービス アカウントの作成
Cloud Run functions の関数専用のサービス アカウントを作成します。
- Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- 次の構成情報を指定します。
- サービス アカウント名: 「
elastic-defend-collector」と入力します。 - サービス アカウントの説明: 「
Service account for Elastic Defend log collection to GCS」と入力します。
- サービス アカウント名: 「
- [作成して続行] をクリックします。
- [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、次のロールを追加します。
- [ロールを選択] をクリックし、[Storage オブジェクト管理者](
roles/storage.objectAdmin)を選択します。 - [別のロールを追加] をクリックし、[Cloud Run 起動元](
roles/run.invoker)を選択します。
- [ロールを選択] をクリックし、[Storage オブジェクト管理者](
- [続行] をクリックします。
- [完了] をクリックします。
Pub/Sub トピックの作成
Cloud Scheduler から Cloud Run functions の関数をトリガーする Pub/Sub トピックを作成します。
- Google Cloud コンソールで、[Pub/Sub] > [トピック] に移動します。
- [トピックを作成] をクリックします。
- 次の構成情報を指定します。
- トピック ID: 「
elastic-defend-trigger」と入力します。 - デフォルトのサブスクリプションを追加する: オンにしたままにします。
- トピック ID: 「
- [作成] をクリックします。
Cloud Run 関数を作成
Elasticsearch からイベントを取得して GCS に書き込む Cloud Run functions の関数を作成する。
関数を作成する
- Google Cloud コンソールで、[Cloud Run functions] に移動します。
- [関数を作成] をクリックします。
次の構成情報を提供してください。
設定 値 環境 第 2 世代 関数名 elastic-defend-to-gcsリージョン GCS バケットと同じリージョンを選択します。 トリガーのタイプ Cloud Pub/Sub Cloud Pub/Sub トピック elastic-defend-triggerを選択メモリ割り当て 512 MiB(データ量が多い場合は増やす) タイムアウト 540 秒 ランタイム サービス アカウント elastic-defend-collectorを選択[次へ] をクリックします。
環境変数を追加する
[ランタイム、ビルド、接続、セキュリティの設定] セクションに次の環境変数を追加します。
変数 値 GCS_BUCKETGCS バケットの名前(例: elastic-defend-logs)GCS_PREFIXログファイルの接頭辞(例: elastic-defend)STATE_KEY状態ファイルの名前(例: state.json)ES_HOSTElasticsearch URL(例: https://my-deployment.es.us-central1.gcp.cloud.es.io:443)ES_API_KEY認証情報の作成ステップで取得したエンコードされた API キー MAX_RECORDS実行あたりのレコードの最大数(例: 100000)PAGE_SIZE検索リクエストあたりのレコード数(例: 1000)LOOKBACK_HOURS最初の実行で振り返る時間(例: 24)
関数のコードを追加する
- [ランタイム] として [Python 3.11] を選択します。
- [エントリ ポイント] を
mainに設定します。 - [ソースコード] セクションで [インライン エディタ] を選択します。
main.pyの内容を次のコードに置き換えます。import os import json import datetime import base64 import requests from google.cloud import storage GCS_BUCKET = os.environ["GCS_BUCKET"] GCS_PREFIX = os.environ.get("GCS_PREFIX", "elastic-defend") STATE_KEY = os.environ.get("STATE_KEY", "state.json") ES_HOST = os.environ["ES_HOST"] ES_API_KEY = os.environ["ES_API_KEY"] MAX_RECORDS = int(os.environ.get("MAX_RECORDS", "100000")) PAGE_SIZE = int(os.environ.get("PAGE_SIZE", "1000")) LOOKBACK_HOURS = int(os.environ.get("LOOKBACK_HOURS", "24")) INDEX_PATTERN = "logs-endpoint.*" SEARCH_PATH = f"/{INDEX_PATTERN}/_search" def _gcs_client(): return storage.Client() def _load_state(bucket): blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}") if blob.exists(): return json.loads(blob.download_as_text()) return {} def _save_state(bucket, state): blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}") blob.upload_from_string( json.dumps(state), content_type="application/json", ) def _build_query(gte_ts, sort_after=None): body = { "size": PAGE_SIZE, "query": { "range": { "@timestamp": { "gte": gte_ts, "format": "strict_date_optional_time", } } }, "sort": [ {"@timestamp": {"order": "asc"}}, {"_shard_doc": "asc"}, ], } if sort_after: body["search_after"] = sort_after return body def _search(session, body): url = f"{ES_HOST.rstrip('/')}{SEARCH_PATH}" resp = session.post( url, json=body, headers={ "Authorization": f"ApiKey {ES_API_KEY}", "Content-Type": "application/json", }, timeout=120, ) resp.raise_for_status() return resp.json() def _write_ndjson(bucket, records, ts_label): if not records: return now = datetime.datetime.utcnow().strftime("%Y%m%dT%H%M%SZ") blob_name = f"{GCS_PREFIX}/{ts_label}/{now}.ndjson" blob = bucket.blob(blob_name) ndjson = "\n".join(json.dumps(r, separators=(",", ":")) for r in records) blob.upload_from_string(ndjson, content_type="application/x-ndjson") print(f"Wrote {len(records)} records to gs://{GCS_BUCKET}/{blob_name}") def main(event, context): """Cloud Run function entry point triggered by Pub/Sub.""" client = _gcs_client() bucket = client.bucket(GCS_BUCKET) state = _load_state(bucket) sort_after = state.get("sort_after") if state.get("last_timestamp"): gte_ts = state["last_timestamp"] else: gte_ts = ( datetime.datetime.utcnow() - datetime.timedelta(hours=LOOKBACK_HOURS) ).strftime("%Y-%m-%dT%H:%M:%S.%fZ") session = requests.Session() total = 0 batch = [] last_ts = gte_ts ts_label = datetime.datetime.utcnow().strftime("%Y/%m/%d/%H") while total < MAX_RECORDS: body = _build_query(gte_ts, sort_after) result = _search(session, body) hits = result.get("hits", {}).get("hits", []) if not hits: break for hit in hits: doc = hit.get("_source", {}) doc["_id"] = hit.get("_id") doc["_index"] = hit.get("_index") batch.append(doc) hit_ts = doc.get("@timestamp", last_ts) if hit_ts > last_ts: last_ts = hit_ts sort_after = hits[-1].get("sort") total += len(hits) if len(batch) >= PAGE_SIZE: _write_ndjson(bucket, batch, ts_label) batch = [] if len(hits) < PAGE_SIZE: break if batch: _write_ndjson(bucket, batch, ts_label) new_state = { "last_timestamp": last_ts, "sort_after": sort_after, } _save_state(bucket, new_state) print(f"Done. Fetched {total} records. State: {json.dumps(new_state)}") return f"OK: {total} records"requirements.txtの内容を次のように置き換えます。functions-framework==3.* google-cloud-storage==2.* requests==2.*[デプロイ] をクリックします。
デプロイが正常に完了するまで待ちます。
Cloud Scheduler ジョブの作成
Cloud Scheduler ジョブを作成して、Cloud Run functions の関数を定期的なスケジュールでトリガーする。
- Google Cloud コンソールで、[Cloud Scheduler] に移動します。
- [ジョブを作成] をクリックします。
次の構成情報を提供してください。
設定 値 名前 elastic-defend-schedulerリージョン Cloud Run functions の関数と同じリージョンを選択します。 周波数 */5 * * * *(5 分ごと)タイムゾーン タイムゾーンを選択します(例: UTC)。[続行] をクリックします。
[実行を構成する] セクションで、次の操作を行います。
- ターゲット タイプ: [Pub/Sub] を選択します。
- Cloud Pub/Sub トピック:
elastic-defend-triggerを選択します。 - メッセージ本文: 「
{"run": true}」と入力します。
[作成] をクリックします。
Google SecOps サービス アカウントを取得してフィードを構成する
Google SecOps は、一意のサービス アカウントを使用して GCS バケットからデータを読み取ります。このサービス アカウントにバケットへのアクセス権を付与する必要があります。
サービス アカウントのメールアドレスを取得する
- [設定] > [データ管理] > [フィード] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- [単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例:
Elastic Defend Events)。 - [Source type] として [Google Cloud Storage V2] を選択します。
- [ログタイプ] として [Elastic Defend] を選択します。
[サービス アカウントを取得する] をクリックします。一意のサービス アカウントのメールアドレスが表示されます。例:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.comこのメールアドレスをコピーして、次のステップで使用します。
フィードを構成する
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
ストレージ バケットの URL: 接頭辞パスを含む GCS バケット URI を入力します。
gs://elastic-defend-logs/elastic-defend/elastic-defend-logsは、GCS バケット名に置き換えます。Source deletion option: 必要に応じて削除オプションを選択します。
- なし: 転送後にファイルを削除しません(テストに推奨)。
- 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
転送されたファイルと空のディレクトリを削除する: 転送が成功した後にファイルと空のディレクトリを削除します。
ファイルの最長存続期間: 過去数日間に変更されたファイルを含めます(デフォルトは 180 日)。
Asset namespace: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
Google SecOps サービス アカウントに IAM 権限を付与する
Google SecOps サービス アカウントには、GCS バケットに対する Storage オブジェクト閲覧者のロールが必要です。
- [Cloud Storage] > [バケット] に移動します。
- バケット名(
elastic-defend-logsなど)をクリックします。 - [権限] タブに移動します。
- [アクセス権を付与] をクリックします。
- 次の構成情報を指定します。
- プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
- ロールを割り当てる: [Storage オブジェクト閲覧者] を選択します。
[保存] をクリックします。
UDM マッピング テーブル
| ログフィールド | UDM マッピング | ロジック |
|---|---|---|
| _source.agent.id, _source.agent.type, _source.agent.version, _source.host.architecture, _source.event.agent_id_status, _source.event.id, _source.user.id, _source.group.id, _source.data_stream.type, _source.agent.build.original | additional.fields | リストされたフィールドの値を含むラベル オブジェクトと統合 |
| _source.process.Ext.session_info.logon_type | extensions.auth.auth_details | 値が直接コピーされる |
| _source.host.os.full | hardware.cpu_platform | 値が直接コピーされる |
| _source.host.id | hardware.serial_number | 値が直接コピーされる |
| _source.rule.description | metadata.description | 値が直接コピーされる |
| _source.@timestamp | metadata.event_timestamp | ISO8601、yyyy-MM-ddTHH:mm:ss.SSSSSSSSSZ、yyyy-MM-ddTHH:mm:ss.SSSSSSZ、yyyy-MM-ddTHH:mm:ss.SSSZ、yyyy-MM-ddTHH:mm:ssZ 形式の日付フィルタを使用して変換されます。 |
| metadata.event_type | index、event.action、has* 条件に基づいて設定 | |
| metadata.log_type | 「ELASTIC_DEFEND」に設定 | |
| metadata.product_event_type | _index ~ events.file の場合は「File Events」、events.library の場合は「Library Events」、events.network の場合は「Network Events」、events.process の場合は「Process Events」、events.registry の場合は「Registry Events」、events.security の場合は「セキュリティ イベント」、events.api の場合は「API Events」、.alert の場合は「アラート」に設定します。 | |
| _id | metadata.product_log_id | ["", " ", "null", "なし"] にない場合は _id の値 |
| _source.ecs.version | metadata.product_version | 値が直接コピーされる |
| _source.network.type | network.application_protocol_version | 値が直接コピーされる |
| _source.network.transport | network.ip_protocol | (?i)tcp に一致する場合は「TCP」、(?i)udp の場合は「UDP」、(?i)icmp の場合は「ICMP」、それ以外の場合は「UNKNOWN_IP_PROTOCOL」に設定します。 |
| _source.destination.as.organization.name | network.organization_name | 値が直接コピーされる |
| _source.Endpoint.policy.applied.artifacts.global.identifiers | observer.file.names | _source.Endpoint.policy.applied.artifacts.global.identifiers から統合 |
| _source.Endpoint.policy.applied.artifacts.global.version, _source.Endpoint.policy.applied.artifacts.global.snapshot | observer.resource.attribute.labels | リストされたフィールドの値を含むラベル オブジェクトと統合 |
| _source.Endpoint.policy.applied.artifacts.user.version | observer.user.attribute.labels | _source.Endpoint.policy.applied.artifacts.user.version の値を含むラベル オブジェクトと統合 |
| _source.host.os.full | principal.asset.hardware.cpu_platform | 値が直接コピーされる |
| _source.host.id | principal.asset.hardware.serial_number | 値が直接コピーされる |
| _source.host.name | principal.asset.hostname | 値が直接コピーされる |
| _source.host.ip | principal.asset.ip | _source.host.ip から統合 |
| _source.host.os.type | principal.asset.platform_software.platform | (?i)windows に一致する場合は「WINDOWS」に設定。(?i)linux の場合は「LINUX」、(?i)mac の場合は「MAC」、(?i)ios の場合は「IOS」、それ以外の場合は「UNKNOWN_PLATFORM」に設定。 |
| _source.host.os.kernel | principal.asset.platform_software.platform_patch_level | 値が直接コピーされる |
| _source.event.created | principal.domain.creation_time | ISO8601、yyyy-MM-ddTHH:mm:ss.SSSSSSSSSZ、yyyy-MM-ddTHH:mm:ss.SSSSSSZ、yyyy-MM-ddTHH:mm:ss.SSSZ、yyyy-MM-ddTHH:mm:ssZ 形式の日付フィルタを使用して変換されます。 |
| _source.user.domain | principal.domain.name | 値が直接コピーされる |
| _source.process.thread.capabilities.effective | principal.file.capabilities_tags | _source.process.thread.capabilities.effective から統合 |
| _source.process.executable | principal.file.full_path | 値が直接コピーされる |
| _source.process.hash.md5 | principal.file.md5 | 値が直接コピーされる |
| _source.file.name | principal.file.names | _source.file.name から統合 |
| _source.process.hash.sha1 | principal.file.sha1 | 値が直接コピーされる |
| _source.process.hash.sha256 | principal.file.sha256 | 値が直接コピーされる |
| _source.host.hostname | principal.hostname | 値が直接コピーされる |
| _source.host.ip | principal.ip | _source.host.ip から統合 |
| _source.host.mac | principal.mac | - を : に置き換えた後、_source.host.mac からマージ |
| _source.host.os.Ext.variant | principal.platform_version | 値が直接コピーされる |
| _source.source.port | principal.port | 文字列に変換してから整数に変換 |
| _source.process.command_line, _source.process.name | principal.process.command_line | 空でない場合は _source.process.command_line の値、それ以外の場合は _source.process.name の値 |
| _source.process.thread.capabilities.permitted | principal.process.file.capabilities_tags | _source.process.thread.capabilities.permitted から統合 |
| _source.process.executable | principal.process.file.full_path | 値が直接コピーされる |
| _source.process.hash.md5 | principal.process.file.md5 | 値が直接コピーされる |
| _source.process.hash.sha1 | principal.process.file.sha1 | 値が直接コピーされる |
| _source.process.hash.sha256 | principal.process.file.sha256 | 値が直接コピーされる |
| _source.process.parent.executable | principal.process.parent_process.file.full_path | 値が直接コピーされる |
| _source.process.pid | principal.process.pid | 文字列に変換してからコピー |
| _source.process.Ext.api.name | principal.resource.attribute.labels | _source.process.Ext.api.name の値を含むラベル オブジェクトと統合 |
| _source.event.code | principal.resource.product_object_id | 値が直接コピーされる |
| _source.group.name | principal.user.group_identifiers | _source.group.name から統合 |
| _source.user.name | principal.user.userid | 値が直接コピーされる |
| _source.user.id | principal.user.windows_sid | 正規表現 ^S-\\d-(\\\\d+-){1,14}\\\\d+$ と一致する場合は、_source.user.id の値 |
| _source.file.Ext.malware_signature.primary.signature.hash.sha256 | security_result.about.file.sha256 | 値が直接コピーされる |
| _source.event.outcome | security_result.action | _source.event.outcome の値を大文字に変換し、[SUCCESS, ALLOW] の場合は ALLOW、[FAILURE, DENY, SKIPPED, RATE_LIMIT] の場合は BLOCK、UNKNOWN の場合は UNKNOWN_ACTION に設定します。 |
| _source.event.action | security_result.action_details | 値が直接コピーされる |
| _source.destination.geo.region_iso_code | security_result.associations | _source.destination.geo.region_iso_code の名前を含むオブジェクトと統合 |
| _source.kibana.alert.rule.parameters.threat.tactic.id, _source.kibana.alert.rule.parameters.threat.tactic.name | security_result.attack_details.tactics | リストされたフィールドの ID と名前を含むオブジェクトと統合 |
| _source.kibana.alert.rule.parameters.threat.technique.id, _source.kibana.alert.rule.parameters.threat.technique.name, _source.kibana.alert.rule.parameters.threat.technique.subtechnique.id, _source.kibana.alert.rule.parameters.threat.technique.subtechnique.name | security_result.attack_details.techniques | リストされたフィールドの id、name、subtechnique_id、subtechnique_name を含むオブジェクトと統合 |
| _source.event.category | security_result.category_details | _source.event.category から統合 |
| _source.kibana.alert.rule.description | security_result.description | 値が直接コピーされる |
| _source.event.kind, _source.file.Ext.malware_signature.all_names, _source.file.Ext.malware_signature.identifier, _source.event.risk_score, _source.threat.tactic.reference, _source.threat.technique.reference, _source.threat.technique.subtechnique.reference | security_result.detection_fields | リストされたフィールドの値を含むラベル オブジェクトと統合 |
| _source.rule.id、_source.kibana.alert.rule.rule_id | security_result.rule_id | 空でない場合は _source.rule.id の値。それ以外の場合は _source.kibana.alert.rule.rule_id の値。 |
| _source.rule.name、_source.kibana.alert.rule.name | security_result.rule_name | 空でない場合は _source.rule.name の値、それ以外の場合は _source.kibana.alert.rule.name の値 |
| _source.rule.ruleset | security_result.rule_set | 値が直接コピーされる |
| security_result.severity | 「LOW」に設定します。_index が .alert と一致する場合は「HIGH」に設定します。_source.kibana.alert.rule.parameters.severity が (?i)LOW と一致する場合は「LOW」に設定します。 | |
| _source.message | security_result.summary | 値が直接コピーされる |
| _source.file.Ext.malware_signature.primary.signature.id | security_result.threat_id | 値が直接コピーされる |
| _source.file.Ext.malware_signature.primary.signature.name | security_result.threat_name | 値が直接コピーされる |
| _source.source.address, _source.source.ip | src.asset.ip | _source.source.address と _source.source.ip から統合 |
| _source.source.address, _source.source.ip | src_ip | _source.source.address と _source.source.ip から統合 |
| _source.host.name | target.asset.hostname | 値が直接コピーされる |
| _source.destination.address, _source.destination.ip | target.asset.ip | _source.destination.address と _source.destination.ip から統合 |
| _source.file.path, _source.dll.path, _source.process.executable, _source.Target.process.executable | target.file.full_path | events.file の場合は _source.file.path の値、events.library の場合は _source.dll.path の値、events.process または events.api の場合は _source.process.executable の値、events.api の場合は _source.Target.process.executable の値 |
| _source.dll.hash.md5, _source.process.hash.md5 | target.file.md5 | events.library の場合は _source.dll.hash.md5 の値、.alert の場合は _source.process.hash .md5 の値 |
| _source.dll.name, _source.process.name | target.file.names | events.library の場合は _source.dll.name、.alert の場合は _source.process .name からマージ |
| _source.dll.hash.sha1, _source.process.hash.sha1 | target.file.sha1 | events.library の場合は _source.dll.hash.sha1 の値、.alert の場合は _source.process.hash .sha1 の値 |
| _source.dll.hash.sha256, _source.process.hash.sha256 | target.file.sha256 | events.library の場合は _source.dll.hash.sha256 の値、.alert の場合は _source.process.hash .sha256 の値 |
| _source.host.name | target.hostname | 値が直接コピーされる |
| _source.destination.address, _source.destination.ip | target.ip | _source.destination.address と _source.destination.ip から統合 |
| _source.destination.geo.city_name | target.location.city | 値が直接コピーされる |
| _source.destination.geo.country_name | target.location.country_or_region | 値が直接コピーされる |
| _source.destination.geo.continent_name | target.location.name | 値が直接コピーされる |
| _source.destination.geo.location.lat | target.location.region_coordinates.latitude | 文字列に変換してから浮動小数点数に変換 |
| _source.destination.geo.location.lon | target.location.region_coordinates.longitude | 文字列に変換してから浮動小数点数に変換 |
| _source.destination.geo.region_name | target.location.state | 値が直接コピーされる |
| _source.data_stream.namespace | target.namespace | 値が直接コピーされる |
| _source.destination.port | target.port | 文字列に変換してから整数に変換 |
| _source.process.command_line | target.process.command_line | 値が直接コピーされる |
| _source.process.executable | target.process.file.full_path | 値が直接コピーされる |
| _source.process.hash.md5 | target.process.file.md5 | 値が直接コピーされる |
| _source.process.hash.sha1 | target.process.file.sha1 | 値が直接コピーされる |
| _source.process.hash.sha256 | target.process.file.sha256 | 値が直接コピーされる |
| _source.process.name | target.process.file.names | _source.process.name から統合 |
| _source.registry.key | target.registry.registry_key | 値が直接コピーされる |
| _source.registry.path | target.registry.registry_value_data | 値が直接コピーされる |
| _source.registry.value | target.registry.registry_value_name | 値が直接コピーされる |
| _source.data_stream.dataset | target.resource.name | 値が直接コピーされる |
| _source.process.entity_id | target.user.userid | 値が直接コピーされる |
| metadata.product_name | 「Elastic Defend」に設定します。 | |
| metadata.vendor_name | 「Elastic」に設定します。 | |
_source.host.hostname |
event.idm.read_only_udm.intermediary.hostname |
変更履歴からマッピング |
_source.process.pid |
event.idm.read_only_udm.principal.process.pid |
変更履歴からマッピング |
_source.process.command_line |
event.idm.read_only_udm.principal.process.command_line |
変更履歴からマッピング |
_source.process.name |
event.idm.read_only_udm.principal.process.file.names |
変更履歴からマッピング |
_source.process.parent.executable |
event.idm.read_only_udm.principal.process.parent_process.file.full_path |
変更履歴からマッピング |
_source.process.Ext.token.integrity_level_name |
event.idm.read_only_udm.principal.resource.attribute.labels |
変更履歴からマッピング |
_source.process.Ext.code_signature |
event.idm.read_only_udm.principal.resource.attribute.labels |
変更履歴からマッピング |
_source.process.Ext.ancestry |
event.idm.read_only_udm.principal.resource.attribute.labels |
変更履歴からマッピング |
_source.process.Ext.protection |
event.idm.read_only_udm.principal.resource.attribute.labels |
変更履歴からマッピング |
_source.process.Ext.authentication_id |
event.idm.read_only_udm.principal.resource.attribute.labels |
変更履歴からマッピング |
_source.winlog.event_data.PrivilegeList |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
Privilege List |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
_source.event.ingested |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
Ingested |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
_source.event.provider |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
Provider |
event.idm.read_only_udm.additional.fields |
変更履歴からマッピング |
_source.user.name |
event.idm.read_only_udm.principal.user.userid |
変更履歴からマッピング |
_source.event.action |
event.idm.read_only_udm.security_result.action_details |
変更履歴からマッピング |
_source.host.domain |
event.idm.read_only_udm.principal.administrative_domain |
変更履歴からマッピング |
_source.event.sequence |
event.idm.read_only_udm.security_result.detection_fields |
変更履歴からマッピング |
_source.kibana.alert.rule.description |
event.idm.read_only_udm.security_result.description |
変更履歴からマッピング |
_source.kibana.alert.rule.rule_id |
event.idm.read_only_udm.security_result.rule_id |
変更履歴からマッピング |
_source.kibana.alert.rule.name |
event.idm.read_only_udm.security_result.rule_name |
変更履歴からマッピング |
_source.kibana.alert.rule.parameters.severity |
event.idm.read_only_udm.security_result.severity |
変更履歴からマッピング |
_source.kibana.alert.rule.parameters.threat.tactic.id |
event.idm.read_only_udm.security_result.attack_details.tactics |
変更履歴からマッピング |
変更ログ
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。