收集 uberAgent 記錄

支援的服務:

本文說明如何使用 Bindplane 代理程式,將 uberAgent 記錄擷取至 Google Security Operations。

uberAgent 是適用於 Windows 和 macOS 的端點安全性分析和使用者體驗監控平台。這項服務會收集遙測資料,包括受監控端點上的程序事件、登入事件、網路連線和應用程式使用情形。

事前準備

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

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • Bindplane 代理程式與 uberAgent 端點之間的網路連線
  • 如果是在 Proxy 後方執行,請確認防火牆通訊埠已按照 Bindplane 代理程式規定開啟
  • 具備 uberAgent 管理控制台或安裝 uberAgent 的端點的特殊權限

取得 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」>「Service Accounts」。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 「服務帳戶名稱」:輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「Service account description」(服務帳戶說明):輸入說明 (例如 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 與管理」>「設定」,然後複製「專案編號」。設定匯出工具時會用到。

方法 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
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務應顯示為「RUNNING」。

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
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務應顯示為「active (running)」。

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。

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

找出設定檔

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

編輯設定檔

  • 將 config.yaml 的全部內容替換為下列設定:

    receivers:
      filelog:
        include:
          - 'C:\uberAgent\logs\*.log'
          - 'C:\uberAgent\logs\*.csv'
        start_at: beginning
        poll_interval: 5s
    
    exporters:
      chronicle/uberagent:
        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
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: UBERAGENT
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/uberagent_to_chronicle:
          receivers:
            - filelog
          exporters:
            - chronicle/uberagent
    

設定參數

替換下列預留位置:

  • 接收器設定:

    • include:uberAgent 記錄檔的路徑:
      • Windows (本機):C:\uberAgent\logs\*.log 和 C:\uberAgent\logs\*.csv
      • Windows (檔案共用):\\SERVER\Share\uberagent-logs\*.log
      • 根據 uberAgent 檔案輸出設定調整路徑
    • start_at:設為 beginning 可讀取現有記錄,設為 end 則只會讀取新項目
    • poll_interval:檢查新記錄資料的頻率 (預設:5s)
  • 匯出工具設定:

    • uberagent::匯出工具的說明名稱
    • creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1):
      • Linux:/opt/observiq-otel-collector/ingestion-auth.json
      • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>:上一步取得的客戶 ID
    • location:將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會在這個值前面加上 chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。
    • project:依序前往「IAM 與管理」>「設定」,將 <PROJECT_NUMBER> 替換為專案編號。
    • endpoint:維持設為 chronicle.googleapis.com。
    • UBERAGENT:記錄類型,與 Chronicle 中顯示的完全相同
    • ingestion_labels:YAML 格式的選用標籤 (例如 env: production)
  • 管道設定:

    • uberagent_to_chronicle::管道的說明名稱

舊版 Ingestion API 匯出工具

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

    exporters:
      chronicle/uberagent:
        compression: gzip
        creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: UBERAGENT
        raw_log_field: body
        ingestion_labels:
          env: production
    

儲存設定檔

  • 編輯完畢後,請儲存檔案:
    • Linux:依序按下 Ctrl+O、Enter 和 Ctrl+X 鍵
    • Windows:依序點選「檔案」>「儲存」

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

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

    sudo systemctl restart observiq-otel-collector
    
    1. 確認服務正在執行:

      sudo systemctl status observiq-otel-collector
      
    2. 查看記錄檔,找出錯誤:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如要在 Windows 重新啟動 Bindplane 代理程式,請選擇下列任一選項:

    • 以管理員身分執行命令提示字元或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服務控制台:

      1. 按下 Win+R,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出「observIQ OpenTelemetry Collector」。
      3. 按一下滑鼠右鍵,然後選取「重新啟動」。
      4. 確認服務正在執行:

        sc query observiq-otel-collector
        
      5. 查看記錄檔,找出錯誤:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

設定 uberAgent 檔案輸出

uberAgent 支援多個輸出後端。如要將資料匯出為檔案,供 Bindplane 代理程式收集,請按照下列步驟操作:

  1. 在端點上或透過群組原則開啟 uberAgent 設定檔 (uberAgent.conf)。
  2. 設定檔案輸出接收器:

    [Receiver]
    Name = FileOutput
    Type = File
    Path = C:\uberAgent\logs\
    
  3. 設定要匯出的指標和來源類型:

    • 程序:程序啟動/停止事件、資源用量。
    • 登入:使用者登入/登出事件。
    • 網路:網路連線事件。
    • 應用程式:應用程式用量和錯誤。
  4. 儲存設定並重新啟動 uberAgent 服務。

  5. 確認記錄檔是否在設定的輸出目錄中建立。

  6. 確認 Bindplane 代理程式具備記錄目錄和檔案的讀取的權限。

UDM 對應表

記錄欄位 UDM 對應 邏輯
SessionRpLatencyMs2, SessionHRes, SessionVRes, SessionColorDepth, SessionClientPlatform, SessionClientVersion, SessionClientOsLanguage, SessionPublishedName, SessionPublishedAppsCtx, SessionAppStateCtx, SessionEncryptionCtx, SessionClientTypeCtx, SessionBrokerDnsVmw, SessionBrokerUrlVmw, SessionBrokerTunneledVmw, SessionBrokerTunnelUrlVmw, SessionBrokerRemoteIpVmw, SessionBrokerUserVmw, SessionBrokerDomainVmw, SessionClientTimezoneVmw, SessionClientIdVmw, SessionTypeVmw, SessionBrokerType, SessionFgAppId, SessionFgAppVersion, SessionFgProcessName, SessionFgProcessId, SessionFgBrowserType, SessionFgBrowserActiveTabHost, SessionFgWindowTitle, SessionClientHwIdCtx2, SessionRoundTripTimeMs, SessionFps, SessionTransportProtocols, SessionProcessCount, SessionIOMB, SessionCPUTimeMs, SessionConnectionState, SessionUser, SessionIOCount, SessionNetKBPS, SessionWorkingSetMB, SessionCPUUsagePercent, SessionIOPS, SessionClientName, SessionIOLatencyMs, PowerSupportsS3, IsBatteryPresent, PowerSupportsS1, PowerSupportsS2, PowerSupportsS5, CPUMaxMhz, BaseboardSerial, CtxMachineCatalogName, AdDomainDns, HwHypervisorVendor, OsBuild, HwBiosVersion, PowerSupportsS4, HwIsVirtualMachine, IsUpsPresent, PowerSupportsConnectedStandby, OsInstallDate, Sourcetype, uberagent_index_name, data_stream.namespace, data_stream.dataset, data_stream.type, data_stream.subset, CPUCoresLogical, AdOu, AdDomainNetBios, logstash_pipeline, AdSite, CtxFarmName, CPUSockets, OsSpName, OsName, OsType, OsUpdateBuildRevision, ComputerNameCanonical, ComputerNameDn, CtxDeliveryGroupName, tags, user_agent.original additional.fields 從列出的欄位合併為鍵/值組合
metadata.event_type 如果 has_principal 為 true 且 has_target 為 false,則設為 STATUS_UPDATE;如果兩者皆為 true,則設為 NETWORK_CONNECTION;否則設為 GENERIC_EVENT
SessionGUID metadata.product_log_id 直接複製值
user_agent.original network.http.parsed_user_agent 轉換為剖析的使用者代理程式
user_agent.original network.http.user_agent 直接複製值
SessionTransportProtocols network.ip_protocol 如果符合 (?i)udp,則設為 UDP;如果符合 (?i)tcp,則設為 TCP
SessionID network.session_id 直接複製值
SessionClientUserDomain principal.administrative_domain 直接複製值
CPUCoresPhysical、RAMSizeGB、CPUName、HwManufacturer、OsArchitecture、BIOSSerial、HwModel principal.asset.hardware 已合併至硬體物件
SessionClientDomain, host principal.asset.hostname SessionClientDomain 的值 (如果不是空白),否則為主機
prin_ip、SessionClientIp、system_ip principal.asset.ip 如果 prin_ip 不為空白,則為 prin_ip 的值,否則為 SessionClientIp,否則為 system_ip
SessionClientDomain, host principal.hostname SessionClientDomain 的值 (如果不是空白),否則為主機
prin_ip、SessionClientIp、system_ip principal.ip 如果 prin_ip 不為空白,則為 prin_ip 的值,否則為 SessionClientIp,否則為 system_ip
SessionClientMac principal.mac SessionClientMac 的值,以「:」取代「-」,並轉換為小寫
SessionClientPlatform principal.platform 如果符合 (?i)windows,則設為 WINDOWS
SessionClientVersion principal.platform_version 如果符合 (?i)windows,則設為值
SessionUser、SessionClientUser principal.user.user_display_name SessionUser 的值 (如果不是空白),否則為 SessionClientUser
SessionBrokerRemoteIpVmw target.ip 直接複製值
SessionBrokerUserVmw target.user.user_display_name 直接複製值
SessionClientIdVmw target.user.userid 直接複製值
metadata.product_name 設為「UBERAGENT」
metadata.vendor_name 設為「UBERAGENT」

變更記錄

查看這個剖析器的變更記錄

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