ExtraHop RevealX のログを収集する

以下でサポートされています。

このドキュメントでは、Bindplane を使用して ExtraHop RevealX ログを Google Security Operations に取り込む方法について説明します。パーサーは、JSON 形式と Syslog 形式のログからフィールドを抽出します。Grok パターンと条件ロジックを使用してさまざまなログ形式を処理し、抽出されたフィールドを UDM にマッピングし、重大度やカテゴリなどのセキュリティ関連情報でデータを拡充します。パーサーは、DNS リバインディング、Kerberos 認証エラー、RDP 接続などの特定の ExtraHop イベントタイプも処理し、それぞれに専用の解析ロジックを適用します。

始める前に

次の前提条件を満たしていることを確認してください。

  • Google SecOps インスタンス
  • Windows 2016 以降、または systemd を使用する Linux ホスト
  • プロキシの背後で実行している場合は、ファイアウォール ポートが開いていることを確認する
  • ExtraHop Reveal X への特権アクセス

Google SecOps の取り込み認証ファイルを取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [コレクション エージェント] に移動します。
  3. Ingestion Authentication File をダウンロードします。Bindplane をインストールするシステムにファイルを安全に保存します。

Google SecOps のお客様 ID を取得する

  1. Google SecOps コンソールにログインします。
  2. [SIEM 設定] > [プロファイル] に移動します。
  3. [組織の詳細情報] セクションから [お客様 ID] をコピーして保存します。

Bindplane エージェントをインストールする

次の手順に沿って、Windows または Linux オペレーティング システムに Bindplane エージェントをインストールします。

Windows のインストール

  1. 管理者として コマンド プロンプトまたは PowerShell を開きます。
  2. 次のコマンドを実行します。

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux のインストール

  1. root 権限または sudo 権限でターミナルを開きます。
  2. 次のコマンドを実行します。

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

その他のインストール リソース

その他のインストール オプションについては、インストール ガイドをご覧ください。

Syslog を取り込んで Google SecOps に送信するように Bindplane エージェントを構成する

  1. 構成ファイルにアクセスします。
    • config.yaml ファイルを見つけます。通常、Linux では /etc/bindplane-agent/ ディレクトリに、Windows ではインストール ディレクトリにあります。
    • テキスト エディタ(nanovi、メモ帳など)を使用してファイルを開きます。
  2. config.yaml ファイルを次のように編集します。

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'EXTRAHOP'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 自社のインフラストラクチャでの必要性に応じて、ポートと IP アドレスを置き換えます。
    • <customer_id> は、実際の顧客 ID に置き換えます。
    • /path/to/ingestion-authentication-file.json の値を、Google SecOps の取り込み認証ファイルを取得するで認証ファイルを保存したパスに更新します。

Bindplane エージェントを再起動して変更を適用する

  • Linux で Bindplane エージェントを再起動するには、次のコマンドを実行します。

    sudo systemctl restart bindplane-agent
    
  • Windows で Bindplane エージェントを再起動するには、Services コンソールを使用するか、次のコマンドを入力します。

    net stop BindPlaneAgent && net start BindPlaneAgent
    

ExtraHop Syslog を構成する

  1. https://<extrahop-hostname-or-IP-address>/admin を使用して ExtraHop Administration にログインします。
  2. [Status and Diagnostics] > [Audit Log] に移動します。
  3. [Configure Syslog Settings] をクリックします。
  4. 次の構成の詳細を入力します。
    • 宛先: Bindplane エージェントの IP アドレスを入力します。
    • プロトコル: Bindplane の構成に応じて、[UDP] または [TCP] を選択します。
    • ポート: Bindplane エージェントのポート番号を入力します。
    • [テスト設定] をクリックします。
  5. [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
alert_name security_result.summary 未加工ログの alert_name の値は security_result.summary にマッピングされます。
answers[].data network.dns.answers[].data 未加工ログの answers 配列の各要素の data の値は、network.dns.answers 配列の対応する要素の data フィールドにマッピングされます。
answers[].name network.dns.answers[].name 未加工ログの answers 配列の各要素の name の値は、network.dns.answers 配列の対応する要素の name フィールドにマッピングされます。
answers[].ttl network.dns.answers[].ttl 未加工ログの answers 配列の各要素の ttl の値は、network.dns.answers 配列の対応する要素の ttl フィールドにマッピングされます。
answers[].typeNum network.dns.answers[].type 未加工ログの answers 配列の各要素の typeNum の値は、network.dns.answers 配列の対応する要素の type フィールドにマッピングされます。
client_ip principal.ip 未加工ログの client_ip の値は principal.ip にマッピングされます。
cn1 security_result.rule_labels[].value 未加工ログの cn1 の値は、キー「Detection ID」を持つ security_result.rule_labels 要素の値として使用されます。
cn2 security_result.detection_fields[].value 未加工ログの cn2 の値は、キー「riskscore」を持つ security_result.detection_fields 要素の値として使用されます。
cs1 security_result.rule_name 未加工ログの cs1 の値は security_result.rule_name にマッピングされます。
cs2 security_result.category_details[] 未加工ログの cs2 の値が、security_result.category_details 配列の要素として追加されます。
description metadata.description 未加工ログの description の値は、一部の処理(改行文字とバックスラッシュの削除)の後に metadata.description にマッピングされます。場合によっては、未加工ログの他のフィールドがこのフィールドに影響したり、このフィールドを上書きしたりすることがあります。
details principal.resource.resource_subtypesecurity_result.summaryprincipal.ip details フィールドが解析されます。「facility」キーに関連付けられた値は principal.resource.resource_subtype にマッピングされます。「details」キーに関連付けられた値は security_result.summary にマッピングされます。「src_ip」キーに関連付けられた値は principal.ip にマッピングされます。
dst target.ip または target.mac 未加工ログの dst の値は、IP アドレスの場合は target.ip に、MAC アドレスの場合は target.mac にマッピングされます。
dst_ip target.ip 未加工ログの dst_ip の値は target.ip にマッピングされます。
eh_event metadata.event_typenetwork.application_protocol eh_event が「dns」の場合、metadata.event_typeNETWORK_DNS に設定され、network.application_protocolDNS に設定されます。eh_event が「RDP」の場合、metadata.event_typeNETWORK_CONNECTION に設定され、network.application_protocolRDP に設定されます。
event_id metadata.product_event_type 未加工ログの event_id の値は metadata.product_event_type にマッピングされます。
facility principal.resource.resource_subtype 未加工ログの facility の値は principal.resource.resource_subtype にマッピングされます。
ipaddr principal.ip 未加工ログの ipaddr の値は principal.ip にマッピングされます。
jsonPayload.description metadata.product_event_typeprincipal.hostnameprincipal.asset.hostnamesecurity_result.summary jsonPayload.description フィールドは JSON として解析されます。「operation」フィールドは metadata.product_event_type にマッピングされます。「event」フィールド(「 Audit Log」を削除した後)は principal.hostnameprincipal.asset.hostname にマッピングされます。「details」フィールドは security_result.summary にマッピングされます。
jsonPayload.event metadata.product_event_typeprincipal.hostnameprincipal.asset.hostname 未加工ログの jsonPayload.event の値(「監査ログ」を削除した後)は、metadata.product_event_typeprincipal.hostnameprincipal.asset.hostname にマッピングされます。
jsonPayload.id metadata.product_log_id 未加工ログの jsonPayload.id の値は metadata.product_log_id にマッピングされます。
macaddr principal.mac 未加工ログの macaddr の値は principal.mac にマッピングされます。
name metadata.description 未加工ログの name の値は metadata.description にマッピングされます。
object_id target.resource.product_object_id 未加工ログの object_id の値は target.resource.product_object_id にマッピングされます。
object_name target.resource.name 未加工ログの object_name の値は target.resource.name にマッピングされます。
object_type target.resource.resource_type 未加工ログの object_type の値(大文字に変換)は target.resource.resource_type にマッピングされます。
operation metadata.product_event_type 未加工ログの operation の値は metadata.product_event_type にマッピングされます。
priority security_result.severitysecurity_result.severity_details priority が「notice」の場合、security_result.severityMEDIUM に設定され、security_result.severity_detailspriority の値に設定されます。
product_event_type metadata.product_event_type 未加工ログの product_event_type の値は metadata.product_event_type にマッピングされます。また、この値に基づいて metadata.event_type などのフィールドを決定するためにも使用されます。
qname network.dns.questions[].name 未加工ログの qname の値は、network.dns.questions 要素の name フィールドにマッピングされます。
qname_or_host intermediary.hostname 未加工ログの qname_or_host の値は intermediary.hostname にマッピングされます。
qtype network.dns.questions[].type 未加工ログの qtype の値は、network.dns.questions 要素の type フィールドにマッピングされ、DNS レコードタイプに従って文字列表現が数値に変換されます。
resource.labels.project_id target.resource.attribute.labels[].value 未加工ログの resource.labels.project_id の値は、キー「Project id」を持つ target.resource.attribute.labels 要素の値として使用されます。
resource.type target.resource.resource_subtype 未加工ログの resource.type の値は target.resource.resource_subtype にマッピングされます。
rdp_record.clientBuild metadata.product_version 未加工ログの rdp_record.clientBuild の値は metadata.product_version にマッピングされます。
rdp_record.clientBytes network.sent_bytes 未加工ログの rdp_record.clientBytes の値は network.sent_bytes にマッピングされます。
rdp_record.clientName principal.hostname 未加工ログの rdp_record.clientName の値は principal.hostname にマッピングされます。
rdp_record.clientPort principal.port 未加工ログの rdp_record.clientPort の値は principal.port にマッピングされます。
rdp_record.cookie principal.user.userid 未加工ログの rdp_record.cookie の値(「mstshash=」を削除した後)は、principal.user.userid にマッピングされます。
rdp_record.proto network.ip_protocol 未加工ログの rdp_record.proto の値は network.ip_protocol にマッピングされ、「TCP」は「TCP」に、「UDP」は「UDP」に変換されます。
rdp_record.selectedProtocol security_result.description 未加工ログの rdp_record.selectedProtocol の値は security_result.description にマッピングされます。
rdp_record.serverBytes network.received_bytes 未加工ログの rdp_record.serverBytes の値は network.received_bytes にマッピングされます。
rdp_record.serverPort target.port 未加工ログの rdp_record.serverPort の値は target.port にマッピングされます。
rt metadata.event_timestamp 未加工ログの rt の値はタイムスタンプとして解析され、metadata.event_timestamp にマッピングされます。
severity security_result.severitysecurity_result.severity_detailsevent.idm.is_alertevent.idm.is_significant severity の値は security_result.severity_details にマッピングされます。また、security_result.severityevent.idm.is_alertevent.idm.is_significant の値を決定するためにも使用されます。
src principal.ip または principal.mac 未加工ログの src の値は、IP アドレスの場合は principal.ip に、MAC アドレスの場合は principal.mac にマッピングされます。
src_ip principal.ip または principal.mac 未加工ログの src_ip の値は、IP アドレスの場合は principal.ip に、MAC アドレスの場合は principal.mac にマッピングされます。
summary security_result.summary 未加工ログの summary の値は security_result.summary にマッピングされます。
ts metadata.event_timestamp 未加工ログの ts の値はタイムスタンプとして解析され、metadata.event_timestamp にマッピングされます。
user principal.user.userid 未加工ログの user の値は principal.user.userid にマッピングされます。
(なし) metadata.log_type 常に「EXTRAHOP」に設定されます。
(なし) metadata.vendor_name 常に「EXTRAHOP」に設定されます。
(なし) metadata.product_name 常に「EXTRAHOP」に設定されます。
(なし) security_result.severity デフォルトでは CRITICAL に設定されます。severity または priority の値に基づいて設定することもできます。
(なし) event.idm.is_alert security_result.severity が「HIGH」または「CRITICAL」の場合は true に設定されます。
(なし) event.idm.is_significant security_result.severity が「HIGH」または「CRITICAL」の場合は true に設定されます。
(なし) metadata.event_type eh_eventproduct_event_typehas_principaldst などの他のフィールドの値に基づいて決定されます。デフォルトは GENERIC_EVENT です。
(なし) network.application_protocol eh_event が「dns」の場合、または message に「DNS Rebinding」が含まれている場合は、DNS に設定されます。eh_event が「RDP」の場合、RDP に設定します。
(なし) security_result.rule_labels[].key cn1 から派生したルールラベルの場合は「検出 ID」に設定します。
(なし) security_result.detection_fields[].key cn2 から派生した検出フィールドの場合は「riskscore」に設定します。
(なし) principal.user.attribute.roles[].type user_name が存在する場合は SERVICE_ACCOUNT に設定します。
(なし) extensions.auth.type product_event_type が「Kerberos Client Auth Errors」の場合は、SSO に設定されます。
(なし) extensions.auth.mechanism product_event_type が「Unsafe LDAP Authentication」または「Kerberos Client Auth Errors」の場合は、USERNAME_PASSWORD に設定します。
(なし) security_result.category product_event_type が「DNS Internal Reverse Lookup Scan」または「Inbound Suspicious Connections」を含む場合、NETWORK_SUSPICIOUS に設定されます。product_event_type が「Request to External Database Server」の場合は、NETWORK_MALICIOUS に設定します。
(なし) network.http.response_code product_event_type から抽出された status_code が「HTTP Server %{INT:status_code} %{GREEDYDATA}」パターンに一致する場合に設定されます。
jsonPayload.cs1 security_result.detection_fields[].value 未加工ログの jsonPayload.cs1 の値が、security_result.detection_fields 要素の値として使用されます。
jsonPayload.cn1 security_result.detection_fields[].value 未加工ログの jsonPayload.cn1 の値が、security_result.detection_fields 要素の値として使用されます。
jsonPayload.cn2 security_result.detection_fields[].value 未加工ログの jsonPayload.cn2 の値が、security_result.detection_fields 要素の値として使用されます。
jsonPayload.cs1LabeljsonPayload.cn1LabeljsonPayload.cn2Label security_result.detection_fields[].key 生ログのこれらのフィールドは、security_result.detection_fields の対応する要素のキーとして使用されます。
jsonPayload.src principal.ip 未加工ログの jsonPayload.src の値は principal.ip にマッピングされます。
jsonPayload.dst target.ip 未加工ログの jsonPayload.dst の値は target.ip にマッピングされます。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。