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 バケットを作成する

  1. Google Cloud コンソールに移動します。
  2. プロジェクトを選択するか、新しいプロジェクトを作成します。
  3. ナビゲーション メニューで、[Cloud Storage] > [バケット] に移動します。
  4. [バケットを作成] をクリックします。
  5. 次の構成情報を提供してください。

    設定 値
    バケットに名前を付ける グローバルに一意の名前(elastic-defend-logs など)を入力します。
    ロケーション タイプ ニーズに応じて選択します(リージョン、デュアルリージョン、マルチリージョン)。
    ロケーション ロケーションを選択します(例: us-central1)。
    ストレージ クラス Standard(頻繁にアクセスされるログに推奨)
    アクセス制御 均一(推奨)
    保護ツール 省略可: オブジェクトのバージョニングまたは保持ポリシーを有効にする
  6. [作成] をクリックします。

Elastic Defend の認証情報を収集する

Cloud Run 関数が Elastic Defend イベントを取得できるようにするには、logs-endpoint データ ストリームに対する読み取り権限を持つ API キーを作成する必要があります。

Kibana を使用して API キーを作成する

  1. Kibana にログインします。
  2. ナビゲーション メニューまたはグローバル検索フィールドで、[Stack Management] > [API キー] に移動します。
  3. [API キーを作成] をクリックします。
  4. [名前] フィールドに「Google SecOps Cloud Storage Integration」と入力します。
  5. [有効期限] フィールドで、必要に応じて有効期限を設定します。デフォルトでは、API キーに有効期限はありません。
  6. [セキュリティ権限を管理する] をクリックします。
  7. [Indices] セクションで、[Add index privilege] をクリックします。
  8. インデックス権限を構成します。
    • インデックス: 「logs-endpoint.*」と入力します。
    • 権限: [読み取り] を選択します。
  9. [クラスタ権限] セクションは空のままにします(クラスタ権限は必要ありません)。
  10. [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 キーを作成することもできます。

  1. Kibana にログインします。
  2. [Management] > [Dev Tools] に移動します。
  3. コンソールで次のコマンドを実行します。

    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"
      }
    }
    
  4. レスポンスには、API キーの認証情報が含まれます。

    {
      "id": "VuaCfGcBCdbkQm-e5aOx",
      "name": "Google SecOps Cloud Storage Integration",
      "api_key": "ui2lp2axTNmsyakw9tvNnw",
      "encoded": "VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw=="
    }
    
  5. エンコードされた値をコピーして保存します。これは、認証に使用する base64 エンコードされた API キーです。

サービス アカウントの作成

Cloud Run functions の関数専用のサービス アカウントを作成します。

  1. Google Cloud コンソールで、[IAM と管理] > [サービス アカウント] に移動します。
  2. [サービス アカウントを作成] をクリックします。
  3. 次の構成情報を指定します。
    • サービス アカウント名: 「elastic-defend-collector」と入力します。
    • サービス アカウントの説明: 「Service account for Elastic Defend log collection to GCS」と入力します。
  4. [作成して続行] をクリックします。
  5. [このサービス アカウントにプロジェクトへのアクセスを許可する] セクションで、次のロールを追加します。
    1. [ロールを選択] をクリックし、[Storage オブジェクト管理者](roles/storage.objectAdmin)を選択します。
    2. [別のロールを追加] をクリックし、[Cloud Run 起動元](roles/run.invoker)を選択します。
  6. [続行] をクリックします。
  7. [完了] をクリックします。

Pub/Sub トピックの作成

Cloud Scheduler から Cloud Run functions の関数をトリガーする Pub/Sub トピックを作成します。

  1. Google Cloud コンソールで、[Pub/Sub] > [トピック] に移動します。
  2. [トピックを作成] をクリックします。
  3. 次の構成情報を指定します。
    • トピック ID: 「elastic-defend-trigger」と入力します。
    • デフォルトのサブスクリプションを追加する: オンにしたままにします。
  4. [作成] をクリックします。

Cloud Run 関数を作成

Elasticsearch からイベントを取得して GCS に書き込む Cloud Run functions の関数を作成する。

関数を作成する

  1. Google Cloud コンソールで、[Cloud Run functions] に移動します。
  2. [関数を作成] をクリックします。
  3. 次の構成情報を提供してください。

    設定 値
    環境 第 2 世代
    関数名 elastic-defend-to-gcs
    リージョン GCS バケットと同じリージョンを選択します。
    トリガーのタイプ Cloud Pub/Sub
    Cloud Pub/Sub トピック elastic-defend-trigger を選択
    メモリ割り当て 512 MiB(データ量が多い場合は増やす)
    タイムアウト 540 秒
    ランタイム サービス アカウント elastic-defend-collector を選択
  4. [次へ] をクリックします。

環境変数を追加する

  • [ランタイム、ビルド、接続、セキュリティの設定] セクションに次の環境変数を追加します。

    変数 値
    GCS_BUCKET GCS バケットの名前(例: elastic-defend-logs)
    GCS_PREFIX ログファイルの接頭辞(例: elastic-defend)
    STATE_KEY 状態ファイルの名前(例: state.json)
    ES_HOST Elasticsearch 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)

関数のコードを追加する

  1. [ランタイム] として [Python 3.11] を選択します。
  2. [エントリ ポイント] を main に設定します。
  3. [ソースコード] セクションで [インライン エディタ] を選択します。
  4. 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"
    
  5. requirements.txt の内容を次のように置き換えます。

    functions-framework==3.*
    google-cloud-storage==2.*
    requests==2.*
    
  6. [デプロイ] をクリックします。

  7. デプロイが正常に完了するまで待ちます。

Cloud Scheduler ジョブの作成

Cloud Scheduler ジョブを作成して、Cloud Run functions の関数を定期的なスケジュールでトリガーする。

  1. Google Cloud コンソールで、[Cloud Scheduler] に移動します。
  2. [ジョブを作成] をクリックします。
  3. 次の構成情報を提供してください。

    設定 値
    名前 elastic-defend-scheduler
    リージョン Cloud Run functions の関数と同じリージョンを選択します。
    周波数 */5 * * * *(5 分ごと)
    タイムゾーン タイムゾーンを選択します(例: UTC)。
  4. [続行] をクリックします。

  5. [実行を構成する] セクションで、次の操作を行います。

    • ターゲット タイプ: [Pub/Sub] を選択します。
    • Cloud Pub/Sub トピック: elastic-defend-trigger を選択します。
    • メッセージ本文: 「{"run": true}」と入力します。
  6. [作成] をクリックします。

Google SecOps サービス アカウントを取得してフィードを構成する

Google SecOps は、一意のサービス アカウントを使用して GCS バケットからデータを読み取ります。このサービス アカウントにバケットへのアクセス権を付与する必要があります。

サービス アカウントのメールアドレスを取得する

  1. [設定] > [データ管理] > [フィード] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. [単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Elastic Defend Events)。
  5. [Source type] として [Google Cloud Storage V2] を選択します。
  6. [ログタイプ] として [Elastic Defend] を選択します。
  7. [サービス アカウントを取得する] をクリックします。一意のサービス アカウントのメールアドレスが表示されます。例:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. このメールアドレスをコピーして、次のステップで使用します。

フィードを構成する

  1. [次へ] をクリックします。
  2. 次の入力パラメータの値を指定します。

    • ストレージ バケットの URL: 接頭辞パスを含む GCS バケット URI を入力します。

      gs://elastic-defend-logs/elastic-defend/
      

      elastic-defend-logs は、GCS バケット名に置き換えます。

    • Source deletion option: 必要に応じて削除オプションを選択します。

      • なし: 転送後にファイルを削除しません(テストに推奨)。
      • 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
      • 転送されたファイルと空のディレクトリを削除する: 転送が成功した後にファイルと空のディレクトリを削除します。

    • ファイルの最長存続期間: 過去数日間に変更されたファイルを含めます(デフォルトは 180 日)。

    • Asset namespace: アセットの名前空間。

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  3. [次へ] をクリックします。

  4. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

Google SecOps サービス アカウントに IAM 権限を付与する

Google SecOps サービス アカウントには、GCS バケットに対する Storage オブジェクト閲覧者のロールが必要です。

  1. [Cloud Storage] > [バケット] に移動します。
  2. バケット名(elastic-defend-logs など)をクリックします。
  3. [権限] タブに移動します。
  4. [アクセス権を付与] をクリックします。
  5. 次の構成情報を指定します。
    • プリンシパルを追加: Google SecOps サービス アカウントのメールアドレスを貼り付けます。
    • ロールを割り当てる: [Storage オブジェクト閲覧者] を選択します。
  6. [保存] をクリックします。

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 のプロフェッショナルから回答を得ることができます。