收集 Sophos DHCP 記錄

支援:

本文說明如何使用 Bindplane,將 Sophos DHCP 記錄檔擷取至 Google Security Operations。

剖析器會使用 grok 和/或 kv,從 Sophos DHCP syslog 格式的記錄中擷取欄位。並將這些值對應至 Unified Data Model (UDM),以及設定事件來源和類型的預設中繼資料值。

事前準備

請確認您符合下列必要條件:

  • Google SecOps 執行個體。
  • 搭載 systemd 的 Windows 2016 以上版本或 Linux 主機。
  • 網路連線:如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟。
  • Sophos Firewall/UTM 管理員 UI 的特殊權限。

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
  3. 按一下「建立服務帳戶」。
  4. 請提供下列設定詳細資料:
    • 「Service account name」(服務帳戶名稱):輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「服務帳戶說明」:輸入說明 (例如 Bindplane agent log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
  11. 將金鑰檔案儲存為 Bindplane 收集器目錄中的 ingestion-auth.json (Linux 上的 /opt/observiq-otel-collector/ingestion-auth.json 或 Windows 上的 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新 config.yaml 中的 creds_file_path,使其與儲存路徑相符。
  12. 依序前往「IAM & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。設定匯出工具時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM Settings」 > 「Collection Agents」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 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
    

其他安裝資源

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

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

  1. 存取設定檔:

    • 找出 config.yaml 檔案。通常位於 Linux 的 /opt/observiq-otel-collector 目錄,或 Windows 的安裝目錄。
    • 使用文字編輯器 (例如 nano、vi 或記事本) 開啟檔案。
  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:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        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: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'SOPHOS_DHCP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
  • 請根據基礎架構需求,替換通訊埠和 IP 位址。
  • 將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會以這個值做為 chronicle.googleapis.com 的前置字元。
  • 將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。
  • 將 <customer_id> 替換為實際的客戶 ID。
  • 將 /path/to/ingestion-authentication-file.json 更新為服務帳戶金鑰檔案 (選項 1) 在步驟 1 中儲存的檔案路徑。

舊版 Ingestion API 匯出工具

  • 如果您使用方式 2 的擷取驗證檔案,請將 exporters 區塊替換成下列內容。將 creds_file_path 設為擷取驗證檔案的路徑。如果執行個體位於美國境外,請將 malachiteingestion-pa.googleapis.com 替換為區域端點 (例如 europe-malachiteingestion-pa.googleapis.com)。

    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: 'SOPHOS_DHCP'
        raw_log_field: body
        ingestion_labels:
    

重新啟動 Bindplane 代理程式,套用變更

  1. 如要在 Linux 重新啟動 Bindplane 代理程式,請執行下列指令:

    /opt/observiq-otel-collector/config.yaml
    
  2. 如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,也可以輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

在 Sophos DHCP 上設定 Syslog 轉送

  1. 以管理員權限登入 Sophos Firewall/UTM 管理員使用者介面。
  2. 前往系統記錄設定:
    • Sophos Firewall:依序點選「系統服務」>「記錄設定」。
    • Sophos UTM:依序點選「記錄和報告」>「記錄設定」>「遠端系統記錄伺服器」。
  3. 按一下「Syslog servers」下方的「Add」,然後提供下列詳細資料:
    • Name:描述性名稱 (例如 GoogleSecOps-BindPlane)。
    • IP 位址/網域:Bindplane 代理程式主機的 IP 位址。
    • Port:Bindplane 代理程式通訊埠 (例如 514)。
    • Facility:DAEMON。
    • 嚴重性等級:資訊 (請依內部政策調整)。
    • 格式:裝置標準格式 (key=value),與 SYSLOG + KV 保持一致。
  4. 按一下「儲存/套用」,開始轉送 DHCP 相關記錄。

UDM 對應表

記錄欄位 UDM 對應 邏輯
msg metadata.description 直接對應
sub metadata.description 直接對應
log_date metadata.event_timestamp 剖析為 yyyy:MM:dd-HH:mm:ss
log_date_inner metadata.event_timestamp 已剖析為 MMM dd HH:mm:ss
event_type metadata.event_type 直接對應
msg metadata.event_type 對應:call=new → GENERIC_EVENT
process_type metadata.event_type 對應:"confd","ulogd" → GENERIC_EVENT、dhcpd → GENERIC_EVENT、dhcpd → `NETWORK_D...
id metadata.product_event_type 直接對應
process_type metadata.product_event_type 直接對應
msg metadata.product_name 對應:call=new → SOPHOS_DHCP
process_type metadata.product_name 對應:"confd","ulogd" → SOPHOS_DHCP
msg metadata.vendor_name 對應:call=new → SOPHOS
process_type metadata.vendor_name 已對應:"confd","ulogd" → SOPHOS
process_type network.application_protocol 對應:dhcpd → DHCP
src_mac network.dhcp.chaddr 直接對應
src_ip network.dhcp.ciaddr 直接對應
src_host network.dhcp.client_hostname 直接對應
dhcp_type network.dhcp.opcode 對應:DHCPREQUEST → BOOTREQUEST、DHCPACK → BOOTREPLY、DHCPOFFER → BOOTREPLY、`...
process_type network.dhcp.opcode 對應:dhcpd → BOOTREQUEST,dhcpd → BOOTREPLY
dhcp_type network.dhcp.type 對應:DHCPREQUEST → REQUEST、DHCPACK → ACK、DHCPOFFER → OFFER、DHCPNAK → NAK
process_type network.dhcp.type 對應:dhcpd → REQUEST、dhcpd → ACK、dhcpd → OFFER、dhcpd → NAK
src_ip network.dhcp.yiaddr 直接對應
ip_protocol_out network.ip_protocol 直接對應
src_host observer.hostname 直接對應
dhcp_type observer.ip 已對應:DHCPREQUEST → src_ip
process_type observer.ip 對應:dhcpd → src_ip
src_ip observer.ip 已合併
client principal.hostname 直接對應
src_host principal.hostname 直接對應
dhcp_type principal.ip 已對應:DHCPREQUEST → src_ip、DHCPNAK → src_ip
ip principal.ip 已合併
msg principal.ip 對應:call=new → srcip
oldattr_address principal.ip 已合併
process_type principal.ip 已對應:"confd","ulogd" → srcip、"confd","ulogd" → oldattr_address、`"confd","ulogd"...
src_ip principal.ip 已合併
srcip principal.ip 已合併
dhcp_type principal.mac 已對應:DHCPREQUEST → src_mac、DHCPNAK → src_mac
process_type principal.mac 對應:"confd","ulogd" → srcmac、dhcpd → src_mac
src_mac principal.mac 已合併
srcmac principal.mac 已合併
srcport principal.port 直接對應
pid principal.process.pid 直接對應
objname principal.resource.name 直接對應
user principal.user.userid 直接對應
msg security_result 已對應:call=new → sec_result
process_type security_result 對應:"confd","ulogd" → sec_result,"confd","ulogd" → security_result
sec_result security_result 已合併
initf_label security_result.about.labels 已合併
outitf_label security_result.about.labels 已合併
process_type security_result.about.labels 對應:"confd","ulogd" → initf_label、"confd","ulogd" → outitf_label、`"confd","ulo...
sid_label security_result.about.labels 已合併
tcpflags_label security_result.about.labels 已合併
action security_result.action_details 直接對應
action security_result.category 已對應:portscan → category
category security_result.category 已合併
process_type security_result.category 對應:"confd","ulogd" → category
info security_result.description 直接對應
name security_result.description 直接對應
fwrule security_result.rule_id 直接對應
process_type security_result.severity 已對應:"confd","ulogd" → INFORMATIONAL、"confd","ulogd" → MEDIUM
severity security_result.severity 對應:"info","debug" → INFORMATIONAL,warn → MEDIUM
call security_result.summary 直接對應
attr_address target.ip 已合併
dstip target.ip 已合併
ip target.ip 已合併
process_type target.ip 已對應:"confd","ulogd" → dstip、"confd","ulogd" → attr_address、"confd","ulogd" →...
dstmac target.mac 已合併
process_type target.mac 已對應:"confd","ulogd" → dstmac
dstport target.port 直接對應
不適用 metadata.event_type 常數:GENERIC_EVENT
不適用 metadata.product_name 常數:SOPHOS_DHCP
不適用 metadata.vendor_name 常數:SOPHOS
不適用 network.application_protocol 常數:DHCP
不適用 network.dhcp.opcode 常數:BOOTREQUEST
不適用 network.dhcp.type 常數:REQUEST
不適用 security_result.severity 常數:INFORMATIONAL

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