收集 Darktrace 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 代理程式,將 Darktrace 記錄檔擷取至 Google Security Operations。這個剖析器會先從系統記錄訊息中擷取通用欄位,然後使用條件邏輯處理 CEF 和 JSON 格式的 Darktrace 記錄。這項功能會將擷取的欄位對應至整合式資料模型 (UDM) 結構定義,並透過安全性環境資訊充實資料,以及將事件分類標準化,以利後續分析。

事前準備

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

  • Google SecOps 執行個體
  • Windows 2016 以上版本或 Linux 主機 (含 systemd)
  • 如果透過 Proxy 執行,防火牆通訊埠已開啟
  • Darktrace 的特殊存取權

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」
  3. 複製並儲存「機構詳細資料」專區中的客戶 ID

安裝 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:
        tcplog:
            # Replace the port and IP address as required
            listen_address: `0.0.0.0:10282`
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/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
            ingestion_labels:
                log_type: DARKTRACE
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 視基礎架構需求,替換通訊埠和 IP 位址。

  4. <customer_id> 替換為實際的客戶 ID。

  5. /path/to/ingestion-authentication-file.json 更新為「取得 Google SecOps 擷取驗證檔案」一節中驗證檔案的儲存路徑。

重新啟動 Bindlane 代理程式,即可套用變更

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

    sudo systemctl restart bindplane-agent
    
  • 如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,或輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

在 Darktrace 上設定 Syslog

  1. 登入 Darktrace 網頁版 UI。
  2. 依序前往「管理」>「系統設定」
  3. 按一下「驗證快訊設定」
  4. 提供下列設定詳細資料:
    • CEF Syslog 快訊:選取「True」
    • CEF Syslog 伺服器:輸入 Bindplane IP 位址。
    • CEF Syslog 伺服器通訊埠:輸入 Bindplane 通訊埠號碼 (例如 10282)。
    • CEF Syslog TCP Alert:選取「True」
  5. 按一下 [儲存]

UDM 對應表

記錄欄位 UDM 對應 邏輯
darktraceUrl security_result.url_back_to_product 這個值取自 darktraceUrl 欄位。
darktrace_host observer.hostname 如果不是 IP 位址,系統會從 darktrace_host 欄位擷取值。
darktrace_ip observer.ip 這個值取自 darktrace_ip 欄位。
darktrace_user observer.user.userid 這個值取自 darktrace_user 欄位。
說明 security_result.summary、metadata.description 這個值取自 description 欄位。
device.customFields.DT-AUTO.macaddress principal.mac 這個值取自 device.customFields.DT-AUTO.macaddress 欄位。
device.did principal.asset.asset_id 系統會從 device.did 欄位取得值,轉換為字串,並加上 Device ID: 前置字元。
device.firstSeen principal.asset.first_seen_time 這個值取自 device.firstSeen 欄位,轉換為字串,並剖析為以毫秒為單位的 UNIX 時間戳記。
device.hostname principal.hostname、principal.asset.hostname 這個值取自 device.hostname 欄位。
device.ip principal.ip、principal.asset.ip 如果值符合 IP 位址格式,系統會從 device.ip 欄位擷取該值。
device.ips.0.subnet additional.fields.subnet 值取自 device.ips.0.subnet 欄位,並以 subnet 為前置字元。
device.ips.ip principal.ip、principal.asset.ip 系統會從清單中每個 IP 位址的 device.ips.ip 欄位取得值。
device.lastSeen principal.asset.last_discover_time 這個值取自 device.lastSeen 欄位,轉換為字串,並剖析為以毫秒為單位的 UNIX 時間戳記。
device.macaddress principal.mac 這個值取自 device.macaddress 欄位。
device.objecttype principal.asset.type 如果值為 device,UDM 欄位會設為 WORKSTATION
device.sid principal.resource.attribute.labels.sid 這個值取自 device.sid 欄位,並轉換為字串。
device.typelabel principal.resource.attribute.labels.typelabel 這個值取自 device.typelabel 欄位。
device.typename principal.resource.attribute.labels.typename 這個值取自 device.typename 欄位。
dst target.ip、target.asset.ip 這個值取自 dst 欄位。
dpt target.port 這個值取自 dpt 欄位,並轉換為整數。
dvc principal.ip、principal.asset.ip 如果 dvc 的值是 IP 位址,系統會將其新增至 UDM 欄位。
dvchost principal.hostname、principal.asset.hostname 這個值取自 dvchost 欄位。
endpoint target.url 這個值取自 endpoint 欄位。
event_time metadata.event_timestamp 這個值取自 event_time 欄位,並剖析為 ISO8601 時間戳記。
externalId metadata.product_log_id 這個值取自 externalId 欄位。
incidentEventUrl principal.url 這個值取自 incidentEventUrl 欄位。
ip principal.ip、principal.asset.ip 如果值符合 IP 位址格式,系統會從 ip 欄位擷取該值。
issue_msg security_result.summary 這個值取自 issue_msg 欄位。
訊息 security_result.description 這個值取自 message 欄位。
方法 network.http.method 這個值取自 method 欄位。
model.description metadata.description 這個值取自 model.description 欄位。
model.name metadata.product_event_type 這個值取自 model.name 欄位。
model.now.category security_result.severity 如果值為 critical,UDM 欄位會設為 CRITICAL。如果值為 Informational,UDM 欄位會設為 INFORMATIONAL。如果值為 Suspicious,UDM 欄位會設為 HIGH,類別則會設為 NETWORK_SUSPICIOUS
model.now.description metadata.description 這個值取自 model.now.description 欄位。
model.now.message security_result.description 這個值取自 model.now.message 欄位。
model.now.name metadata.product_event_type 這個值取自 model.now.name 欄位。
model.now.pid principal.process.pid 這個值取自 model.now.pid 欄位,並轉換為字串。
model.now.uuid principal.user.userid 這個值取自 model.now.uuid 欄位,事件類型則設為 USER_UNCATEGORIZED
model.pid principal.process.pid 這個值取自 model.pid 欄位,並轉換為字串。
model.then.description principal.resource.attribute.labels.Model Then Description 這個值取自 model.then.description 欄位。
model.then.name principal.resource.attribute.labels.Model Then Name 這個值取自 model.then.name 欄位。
model.then.pid principal.resource.attribute.labels.Model Then Pid 這個值取自 model.then.pid 欄位,並轉換為字串。
model.then.uuid principal.resource.attribute.labels.Model Then UUID 這個值取自 model.then.uuid 欄位。
model.uuid principal.user.userid 這個值取自 model.uuid 欄位,事件類型則設為 USER_UNCATEGORIZED
relatedBreaches.0.modelName security_result.description 這個值取自 relatedBreaches.0.modelName 欄位。
分數 security_result.priority、security_result.priority_details 如果值介於 0.8 和 1 之間,優先順序會設為 HIGH_PRIORITY。如果值介於 0.5 到 0.79 之間,優先順序會設為 MEDIUM_PRIORITY。如果值介於 0 到 0.49 之間,優先順序會設為 LOW_PRIORITY。優先順序詳細資料會設為 Score :,後接轉換為字串的 score 值。
嚴重性 security_result.severity 如果值為 2,UDM 欄位會設為 MEDIUM。如果值大於 2,UDM 欄位會設為 HIGH
shost principal.hostname、principal.asset.hostname 這個值取自 shost 欄位。
smac principal.mac 這個值取自 smac 欄位。
src principal.ip、principal.asset.ip 這個值取自 src 欄位。
狀態 network.http.response_code 這個值取自 status 欄位,並轉換為字串。
摘要 metadata.description 這個值取自 summary 欄位。
時間 這個值取自 time 欄位,轉換為字串,並剖析為以毫秒為單位的 UNIX 時間戳記。
時間戳記 這個值取自 timestamp 欄位,並剖析為 ISO8601 時間戳記或以毫秒為單位的 UNIX 時間戳記。
title security_result.summary 這個值取自 title 欄位。
triggeredComponents.ip intermediary.ip 如果值符合 IP 位址格式,系統會從 triggeredComponents.ip 欄位擷取該值。
triggeredComponents.port intermediary.port 這個值取自 triggeredComponents.port 欄位,並轉換為整數。
使用者名稱 principal.user.userid 這個值取自 username 欄位。
metadata.vendor_name 設為 DARKTRACE
metadata.product_name 設為 DCIP
metadata.log_type 設為 DARKTRACE
network.ip_protocol 如果 issue_msg 不包含 UDP,請設為 TCP。否則請設為 UDP
security_result.action 如果 status401,則設為 BLOCK,否則設為 ALLOW
security_result.severity 設為 INFORMATIONAL
network.application_protocol 如果 method 不為空白,請設為 HTTP
metadata.event_type 如果 method 不為空白,請設為 NETWORK_HTTP。如果 description 包含 logged into \\\\S+ over ssh,請設為 USER_LOGIN。如果 target_ip 不為空白,請設為 NETWORK_CONNECTION。否則請設為 STATUS_UPDATE
extensions.auth.type 如果 description 包含 logged into \\\\S+ over ssh,請設為 MACHINE
security_result.category 如果 issue_msg 包含 Exfiltration,請設為 DATA_EXFILTRATION。如果 issue_msg 包含 Compromise,請設為 NETWORK_MALICIOUS。否則請設為 NETWORK_SUSPICIOUS

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