收集 ExtraHop RevealX 記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 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 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
- 複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。
Windows 安裝
- 以系統管理員身分開啟「命令提示字元」或「PowerShell」。
執行下列指令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
如需其他安裝選項,請參閱安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
- 存取設定檔:
- 找出
config.yaml
檔案。通常位於 Linux 的/etc/bindplane-agent/
目錄,或 Windows 的安裝目錄。 - 使用文字編輯器 (例如
nano
、vi
或記事本) 開啟檔案。
- 找出
按照下列方式編輯
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
重新啟動 Bindplane 代理程式,以套用變更
如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart bindplane-agent
如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,或輸入下列指令:
net stop BindPlaneAgent && net start BindPlaneAgent
設定 ExtraHop Syslog
- 使用
https://<extrahop-hostname-or-IP-address>/admin
登入 ExtraHop Administration。 - 依序前往「狀態與診斷」>「稽核記錄」。
- 按一下「設定 Syslog 設定」。
- 提供下列設定詳細資料:
- 目的地:輸入 Bindplane 代理程式 IP 位址。
- 通訊協定:根據 Bindplane 設定選取 UDP 或 TCP。
- 「Port」(通訊埠):輸入 Bindplane 代理程式通訊埠編號。
- 按一下「測試設定」。
- 按一下 [儲存]。
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_subtype 、security_result.summary 、principal.ip |
系統會剖析 details 欄位。與「facility」鍵相關聯的值會對應至 principal.resource.resource_subtype 。與「details」鍵相關聯的值會對應至 security_result.summary 。與「src_ip」鍵相關聯的值會對應至 principal.ip 。 |
dst |
target.ip 或target.mac |
原始記錄中的 dst 值會對應至 target.ip (如果是 IP 位址) 或 target.mac (如果是 MAC 位址)。 |
dst_ip |
target.ip |
原始記錄中的 dst_ip 值會對應至 target.ip 。 |
eh_event |
metadata.event_type 、network.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_type 、principal.hostname 、principal.asset.hostname 、security_result.summary |
jsonPayload.description 欄位會剖析為 JSON。「operation」欄位會對應至 metadata.product_event_type 。「event」欄位 (移除「稽核記錄」後) 會對應至 principal.hostname 和 principal.asset.hostname 。「詳細資料」欄位會對應至 security_result.summary 。 |
jsonPayload.event |
metadata.product_event_type 、principal.hostname 、principal.asset.hostname |
原始記錄中的 jsonPayload.event 值 (移除「稽核記錄」後) 會對應至 metadata.product_event_type 、principal.hostname 和 principal.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.severity 、security_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.severity 、security_result.severity_details 、event.idm.is_alert 、event.idm.is_significant |
severity 的值會對應至 security_result.severity_details 。這項資訊也用於判斷 security_result.severity 、event.idm.is_alert 和 event.idm.is_significant 的值。 |
src |
principal.ip 或principal.mac |
原始記錄中的 src 值會對應至 principal.ip (如果是 IP 位址) 或 principal.mac (如果是 MAC 位址)。 |
src_ip |
principal.ip 或principal.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 ,或根據 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_event 、product_event_type 、has_principal 和 dst 。預設值為 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.cs1Label 、jsonPayload.cn1Label 、jsonPayload.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 專業人員尋求答案。