收集 ExtraHop RevealX 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 ExtraHop RevealX 記錄擷取至 Google Security Operations。剖析器會從 JSON 和 Syslog 格式的記錄中擷取欄位。它會使用 grok 模式和條件邏輯處理不同記錄格式,將擷取的欄位對應至 UDM,並以嚴重程度和類別等安全性相關資訊擴充資料。剖析器也會處理特定的 ExtraHop 事件類型,例如 DNS 重新繫結、Kerberos 驗證錯誤和 RDP 連線,並為每個事件套用專門的剖析邏輯。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • Windows 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟
  • ExtraHop Reveal X 的特殊存取權

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 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. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

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

其他安裝資源

如需其他安裝選項,請參閱安裝指南

設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps

  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 代理程式,可以使用「服務」控制台,或輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

設定 ExtraHop Syslog

  1. 使用 https://<extrahop-hostname-or-IP-address>/admin 登入 ExtraHop Administration
  2. 依序前往「狀態與診斷」>「稽核記錄」
  3. 按一下「設定 Syslog 設定」
  4. 提供下列設定詳細資料:
    • 目的地:輸入 Bindplane 代理程式 IP 位址。
    • 通訊協定:根據 Bindplane 設定選取 UDPTCP
    • 「Port」(通訊埠):輸入 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 值會做為 security_result.rule_labels 元素的值,且鍵為「偵測 ID」。
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.iptarget.mac 原始記錄中的 dst 值會對應至 target.ip (如果是 IP 位址) 或 target.mac (如果是 MAC 位址)。
dst_ip target.ip 原始記錄中的 dst_ip 值會對應至 target.ip
eh_event metadata.event_typenetwork.application_protocol 如果 eh_event 為「dns」,metadata.event_type 會設為 NETWORK_DNS,而 network.application_protocol 會設為 DNS。如果 eh_event 為「RDP」,則 metadata.event_type 會設為 NETWORK_CONNECTION,而 network.application_protocol 會設為 RDP
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」欄位 (移除「稽核記錄」後) 會對應至 principal.hostnameprincipal.asset.hostname。「詳細資料」欄位會對應至 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.severity 會設為 MEDIUM,而 security_result.severity_details 會設為 priority 的值。
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 值會做為 target.resource.attribute.labels 元素的值,且鍵為「專案 ID」。
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.ipprincipal.mac 原始記錄中的 src 值會對應至 principal.ip (如果是 IP 位址) 或 principal.mac (如果是 MAC 位址)。
src_ip principal.ipprincipal.mac 原始記錄中的 src_ip 值會對應至 principal.ip (如果是 IP 位址) 或 principal.mac (如果是 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,或根據 severitypriority 的值設定。
(不適用) 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 將規則標籤設為「偵測 ID」,衍生自 cn1
(不適用) security_result.detection_fields[].key 將偵測欄位設為「riskscore」,衍生自 cn2
(不適用) 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 是「不安全的 LDAP 驗證」或「Kerberos 用戶端驗證錯誤」,請設為 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 專業人員尋求答案。