收集 uberAgent 日志

支持范围:

本文档介绍了如何使用 Bindplane 代理将 uberAgent 日志注入到 Google Security Operations。

uberAgent 是一个适用于 Windows 和 macOS 的端点安全分析和用户体验监控平台。它会收集受监控端点上的遥测数据,包括进程事件、登录事件、网络连接和应用使用情况。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者安装了 systemd 的 Linux 主机
  • Bindplane 代理与 uberAgent 端点之间的网络连接
  • 如果在代理后面运行,请确保按照 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 和管理 > 服务账号。
  3. 点击创建服务账号。
  4. 提供以下配置详细信息:
    • 服务账号名称:输入账号的名称(例如 bindplane-ingest)。
    • 服务账号说明:输入说明(例如 Bindplane agent log ingestion)。
  5. 点击创建并继续。
  6. 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
  7. 点击继续,然后点击完成。
  8. 点击您创建的服务账号,然后前往密钥标签页。
  9. 依次点击添加密钥 > 创建新密钥。
  10. 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
  11. 将密钥文件另存为 Bindplane 收集器目录(Linux 上的 /opt/observiq-otel-collector/ingestion-auth.json 或 Windows 上的 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的 ingestion-auth.json,或更新 config.yaml 中的 creds_file_path 以匹配您保存它的路径。
  12. 前往 IAM 和管理 > 设置,然后复制项目编号。您在配置导出器时需要用到该名称。

方法 2:下载数据注入身份验证文件(旧版)

  1. 登录 Google SecOps 控制台。
  2. 依次前往设置 > 数据管理 > 收集代理。如果您使用的是仅限 SIEM 的平台,请依次前往设置 > 收集代理。
  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
    

    该服务应显示为正在运行。

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:将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置中的项目编号。
    • endpoint:保持设置为 chronicle.googleapis.com。
    • UBERAGENT:日志类型,与 Chronicle 中显示的完全一致
    • ingestion_labels:YAML 格式的可选标签(例如 env: production)
  • 流水线配置:

    • uberagent_to_chronicle:流水线的描述性名称

旧版提取 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 收集器。
      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. 配置要导出的指标和 sourcetype:

    • 进程:进程启动/停止事件、资源使用情况。
    • 登录:用户登录/退出登录事件。
    • 网络:网络连接事件。
    • 应用:应用使用情况和错误。
  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、主机 principal.asset.hostname SessionClientDomain 中的值(如果不为空),否则为主机
prin_ip、SessionClientIp、system_ip principal.asset.ip prin_ip 的值(如果不为空),否则为 SessionClientIp,否则为 system_ip
SessionClientDomain、主机 principal.hostname SessionClientDomain 中的值(如果不为空),否则为主机
prin_ip、SessionClientIp、system_ip principal.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 专业人士的解答。