收集 ArcSight CEF 日志

解析器版本:34.0

支持的语言:

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

ArcSight(现已成为 OpenText 的一部分)使用通用事件格式 (CEF) 来规范化来自多个来源的安全事件。ArcSight SmartConnector 会收集事件,并通过 syslog 以 CEF 格式将事件转发给下游使用者(包括 SIEM 平台)。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • Bindplane 代理与 ArcSight SmartConnector 主机之间的网络连接
  • 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
  • 访问 OpenText 支持门户,下载 SmartConnector
  • 对 SmartConnector 服务器的管理员访问权限

获取 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
    

    该服务应显示为有效(正在运行)。

其他安装资源

如需了解其他安装选项和问题排查,请参阅 Bindplane 代理安装指南。

配置 Bindplane 代理以注入 syslog 并发送到 Google SecOps

找到配置文件

  • Linux:

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

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

修改配置文件

  • 将 config.yaml 的全部内容替换为以下配置:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/arcsight_cef:
        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: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: ARCSIGHT_CEF
        raw_log_field: body
    
    service:
      pipelines:
        logs/arcsight_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/arcsight_cef
    

配置参数

替换以下占位符:

  • 接收器配置:

    • listen_address:要监听的 IP 地址和端口:
      • 0.0.0.0 在所有接口上监听(推荐)
      • 端口 514 是标准 syslog 端口(在 Linux 上需要 root 权限;对于非 root 用户,请使用 1514)
  • 导出器配置:

    • 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:从 Google SecOps 控制台复制的客户 ID
    • location:将 <LOCATION> 替换为 Google SecOps 实例所在的区域(例如 us、europe 或 asia-southeast1)。导出工具会在此值前面加上 chronicle.googleapis.com。如需查看完整列表,请参阅区域级端点。
    • project:将 <PROJECT_NUMBER> 替换为“IAM 和管理”>“设置”中的项目编号。
    • endpoint:保持设置为 chronicle.googleapis.com。

旧版提取 API 导出工具

  • 如果您使用选项 2 中的数据注入身份验证文件,请将 exporters 代码块替换为以下内容。将 creds_file_path 设置为数据注入身份验证文件的路径,如果您的实例位于美国境外,请将 malachiteingestion-pa.googleapis.com 替换为您的区域端点(例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/arcsight_cef:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ARCSIGHT_CEF
        raw_log_field: body
    

保存配置文件

  • 修改后,保存文件:
    • 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"
        

下载 ArcSight SmartConnector

  1. 登录 OpenText 支持门户。
  2. 找到并下载适用于 Linux 的最新 ArcSight SmartConnector。
  3. 文件名示例:ArcSight-Connector-Linux64-8.4.0.8499.0.bin。

安装 ArcSight SmartConnector

  1. 将 .bin 文件上传到 SmartConnector 服务器:

    scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
    
  2. 使用 SSH 登录 SmartConnector 服务器,然后运行:

    cd /tmp
    chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    ./ArcSight-Connector-Linux64-8.4.0.8499.0.bin
    
  3. 按照互动式安装程序的提示操作:

    • 选择安装目录(例如 /opt/arcsight/connectors/current)。
    • 接受许可。
    • 看到提示后,选择安装连接器。

配置 ArcSight SmartConnector 以将 CEF 发送到 syslog

  1. 在 SmartConnector 主机中,启动目标向导:

    cd /opt/arcsight/connectors/current/bin
    ./arcsight connectors
    
  2. 在向导中,执行以下操作:

    • 选择添加目标。
    • 选择 CEF Syslog。
  3. 提供以下配置详细信息:

    • 主机/IP:输入 Bindplane 代理 IP 地址。
    • 端口:输入 Bindplane 代理端口号(例如 514)。
    • 协议:选择 UDP。
  4. 完成设置并重启连接器:

    ./arcsight agents
    
  5. 运行连接检查(查找:Successfully connected to syslog: X.X.X.X:514):

    tail -f /opt/arcsight/connectors/current/logs/agent.log
    

UDM 映射表

日志字段 UDM 映射 逻辑
act security_result.action_details 直接从 act 字段映射。
agt principal.ip 直接从 agt 字段映射。
agt principal.asset.ip 直接从 agt 字段映射。
应用 network.application_protocol 直接从 app 字段映射。
艺术 metadata.event_timestamp.seconds 直接从 art 字段映射。
cs2 additional.fields.value.string_value 当 cs2Label 为 EventlogCategory 时,直接从 cs2 字段映射。
cs2Label additional.fields.key 当 cs2Label 字段的值为 EventlogCategory 时,直接从该字段映射。
cs3 additional.fields.value.string_value 当 cs3Label 为 Process ID 时,直接从 cs3 字段映射。
cs3Label additional.fields.key 当 cs3Label 字段的值为 Process ID 时,直接从该字段映射。
cs5 additional.fields.value.string_value 当 cs5Label 为 Authentication Package Name 时,直接从 cs5 字段映射。
cs5Label additional.fields.key 当 cs5Label 字段的值为 Authentication Package Name 时,直接从该字段映射。
cs6 additional.fields.value.string_value 当 cs6Label 为 Logon GUID 时,直接从 cs6 字段映射。
cs6Label additional.fields.key 当 cs6Label 字段的值为 Logon GUID 时,直接从该字段映射。
dhost about.hostname 直接从 dhost 字段映射。
dhost target.hostname 直接从 dhost 字段映射。
dntdom about.administrative_domain 直接从 dntdom 字段映射。
dntdom target.administrative_domain 直接从 dntdom 字段映射。
dproc about.process.command_line 直接从 dproc 字段映射。
dproc target.process.command_line 直接从 dproc 字段映射。
dst principal.ip 直接从 dst 字段映射。
dst principal.asset.ip 直接从 dst 字段映射。
dst target.ip 直接从 dst 字段映射。
duid target.user.userid 直接从 duid 字段映射。
duser target.user.user_display_name 直接从 duser 字段映射。
dvc about.ip 直接从 dvc 字段映射。
dvchost about.hostname 直接从 dvchost 字段映射。
eventId additional.fields.value.string_value 直接从 eventId 字段映射。
externalId metadata.product_log_id 直接从 externalId 字段映射。
fname additional.fields.value.string_value 直接从 fname 字段映射。
msg metadata.description 直接从 msg 字段映射。
proto network.ip_protocol 直接从 proto 字段映射。将协议名称转换为其各自的常量(例如,将 tcp 转换为 TCP)。
rt metadata.event_timestamp.seconds 直接从 rt 字段映射。
shost about.hostname 直接从 shost 字段映射。
shost principal.hostname 直接从 shost 字段映射。
src principal.ip 直接从 src 字段映射。
src principal.asset.ip 直接从 src 字段映射。
src target.ip 直接从 src 字段映射。
sproc principal.process.command_line 直接从 sproc 字段映射。
spt principal.port 直接从 spt 字段映射。
spt target.port 直接从 spt 字段映射。
additional.EventRecordID additional.fields.value.string_value 直接从 ad.EventRecordID 字段映射。
additional.ThreadID additional.fields.value.string_value 直接从 ad.ThreadID 字段映射。
additional.Opcode additional.fields.value.string_value 直接从 ad.Opcode 字段映射。
additional.ProcessID additional.fields.value.string_value 直接从 ad.ProcessID 字段映射。
additional.TargetDomainName additional.fields.value.string_value 直接从 ad.TargetDomainName 字段映射。
additional.Version additional.fields.value.string_value 直接从 ad.Version 字段映射。
deviceExternalId about.asset.hardware.serial_number 直接从 deviceExternalId 字段映射。
deviceInboundInterface additional.fields.value.string_value 直接从 deviceInboundInterface 字段映射。
deviceOutboundInterface additional.fields.value.string_value 直接从 deviceOutboundInterface 字段映射。
PanOSConfigVersion security_result.detection_fields.value 直接从 PanOSConfigVersion 字段映射。
PanOSContentVersion security_result.detection_fields.value 直接从 PanOSContentVersion 字段映射。
PanOSDGHierarchyLevel1 security_result.detection_fields.value 直接从 PanOSDGHierarchyLevel1 字段映射。
PanOSDestinationLocation target.location.country_or_region 直接从 PanOSDestinationLocation 字段映射。
PanOSRuleUUID metadata.product_log_id 直接从 PanOSRuleUUID 字段映射。
PanOSThreatCategory security_result.category_details 直接从 PanOSThreatCategory 字段映射。
PanOSThreatID security_result.threat_id 直接从 PanOSThreatID 字段映射。
about.asset.asset_id 通过串联 Palo Alto Networks.、供应商名称 (LF) 和 deviceExternalId 字段生成。
extensions.auth.type 如果 event_name 字段包含 logged on,则设置为 AUTHTYPE_UNSPECIFIED。
metadata.description 如果 description 字段包含 by,后跟 IP 地址,则系统会提取该 IP 地址并将其映射到 principal.ip 和 principal.asset.ip。
metadata.event_type 根据对各种字段(包括 event_name、principal_*、target_* 和 device_event_class_id)的一系列条件检查来确定。该逻辑会根据可用信息确定最合适的事件类型。
metadata.log_type 设置为 ARCSIGHT_CEF。
metadata.product_event_type 通过串联 \[, the device_event_class_id field, \] - 和 name 字段生成。
metadata.product_name 如果 product_name 字段为 LF,则设置为 NGFW。
principal.asset.ip 如果 description 字段包含 by,后跟 IP 地址,则系统会提取该 IP 地址并将其映射到 principal.ip 和 principal.asset.ip。
principal.ip 如果 description 字段包含 by,后跟 IP 地址,则系统会提取该 IP 地址并将其映射到 principal.ip 和 principal.asset.ip。
security_result.action 如果 act 字段为 alert,则设置为 ALLOW;否则设置为 BLOCK。
security_result.severity 如果 sev 字段大于或等于 7,则设置为 HIGH;否则设置为 LOW。
PanOSFileType event.idm.read_only_udm.target.file.mime_type 从更新日志映射
PanOSEmailSubject event.idm.read_only_udm.network.email.subject 从更新日志映射
PanOSNSSAINetworkSliceType event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSURLCounter event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSReportID event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSDGHierarchyLevel2 event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSVirtualSystemName event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSSigFlags event.idm.read_only_udm.additional.fields 从更新日志映射
PanOSPartialHash event.idm.read_only_udm.additional.fields 从更新日志映射
version event.idm.read_only_udm.additional.fields 从更新日志映射
cn3 network.duration.seconds 从更新日志映射
PanOSTenantID additional.fields 从更新日志映射
cn3 additional.fields 从更新日志映射
PanOSCortexDataLakeTenantID additional.fields 从更新日志映射
target_user target.user.userid 从更新日志映射
principal_ip principal.ip 从更新日志映射
PanOSStage", "PanOSConnectionError", and "PanOSEventDetails additional.fields 从更新日志映射
outcome security_result.action_details 从更新日志映射
PanOSDescription metadata.description 从更新日志映射
PanOSSourceUser principal.user.userid 从更新日志映射
app target.application 从更新日志映射
flexString2", "PanOSFileHash", and "filePath additional.fields 从更新日志映射
threat_name security_result.threat_name 从更新日志映射
principal_ip1 principal.ip 从更新日志映射
metadata.event_type NETWORK_CONNECTION 从更新日志映射
deviceOutboundInterface", "deviceInboundInterface additional.fields 从更新日志映射
query additional fields 从更新日志映射

更新日志

查看此解析器的更新日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。