收集 ExtraHop DNS 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 ExtraHop DNS 記錄擷取至 Google Security Operations。剖析器會從原始訊息字串中擷取 JSON 格式的記錄,並捨棄事件來處理非 JSON 資料。接著,系統會將擷取的 JSON 中的特定欄位,對應至統一資料模型 (UDM) 結構定義中的對應欄位,轉換資料類型並處理不同的 DNS 回應結構,確保呈現方式一致。

事前準備

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

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

取得 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 檔案: 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_DNS' 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 Open Data Stream (DNS) 設定 Syslog

  1. 使用 https://<extrahop-hostname-or-IP-address>/admin 登入 ExtraHop Administration
  1. 前往「系統設定」> 開啟資料串流
  2. 點選「新增目標」
  3. 在「目標類型」下拉式選單中,選取「系統記錄」
  4. 提供下列設定詳細資料:
    • 名稱:輸入不重複的名稱,以識別目標。
    • 主機:輸入 Bindplane 代理程式 IP 位址。
    • 「Port」(通訊埠):輸入 Bindplane 代理程式通訊埠編號。
    • 通訊協定:根據 Bindplane 設定選取 UDPTCP
    • (選用) 選取「當地時間」,即可傳送含有當地時區時間戳記的系統記錄資訊。
    • 按一下「Test」
  5. 按一下 [儲存]

UDM 對應表

記錄欄位 UDM 對應 邏輯
ans.data network.dns.answers.data 從原始記錄的 answers 陣列中擷取 data 欄位。
ans.name network.dns.answers.name 從原始記錄的 answers 陣列中擷取 name 欄位。
ans.ttl network.dns.answers.ttl 從原始記錄的 answers 陣列中擷取 ttl 欄位。已轉換為 uinteger
ans.typeNum network.dns.answers.type 從原始記錄的 answers 陣列中擷取 typeNum 欄位。已轉換為 uinteger
ans_data network.dns.answers.data 如果沒有 answers 陣列,系統會從原始記錄的 ans_data 欄位擷取。
ans_name network.dns.answers.name 如果沒有 answers 陣列,系統會從原始記錄的 ans_name 欄位擷取。
ans_ttl network.dns.answers.ttl 如果沒有 answers 陣列,系統會從原始記錄的 ans_ttl 欄位擷取這項資訊。已轉換為 uinteger
client_ip principal.ip 從原始記錄的「client_ip」欄位擷取。
dns_type network.dns.response 如果值為「response」,則會對應為「true」,否則不會對應。已轉換為 boolean
dst_ip target.ip 從原始記錄的「dst_ip」欄位擷取。
ip_or_host intermediary.hostname 如果 ip_or_host 不是有效的 IP 位址,則會對應至 intermediary.hostname
ip_or_host intermediary.ip 如果 ip_or_host 是有效的 IP 位址,則會對應至 intermediary.ip
opcode network.dns.opcode 從原始記錄的「opcode」欄位擷取。根據作業碼字串對應至數值 (例如 "QUERY" -> 0)。已轉換為 uinteger
qname network.dns.questions.name 從原始記錄的「qname」欄位擷取。
qtype network.dns.questions.type 從原始記錄的「qtype」欄位擷取。根據記錄類型字串對應至數值 (例如 「A」-> 1)。已轉換為 uinteger
metadata.event_type 設為 NETWORK_DNS
metadata.log_type 設為 EXTRAHOP_DNS
network.application_protocol 設為 DNS

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。