收集 Forcepoint DLP 日志

解析器版本:10.0

支持:

本文档介绍了如何使用 Bindplane 将 Forcepoint DLP 日志注入 Google Security Operations。

Forcepoint DLP(数据泄露防护)是一款数据保护解决方案,可在企业环境中识别、监控和保护敏感数据。它使用内容感知政策和机器学习技术,检测并防止通过电子邮件、网络、端点和云应用进行未经授权的数据传输。解析器从 Forcepoint DLP CEF 格式的日志中提取字段。然后,它会将这些值映射到统一数据模型 (UDM)。它还会为事件来源和类型设置默认元数据值。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
  • 对 Forcepoint Security Manager Web 控制台的特权访问权限

获取 Bindplane 代理的 Google SecOps 凭据

如需向 Google SecOps 验证 Bindplane 代理的身份,请选择以下方法之一:

  • 新部署:使用 Chronicle API(选项 1)。
  • 旧版部署:继续使用提取身份验证文件(方法 2),直到提取 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
    

该服务应显示为 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 代理以注入 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:
      tcplog:
        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
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'FORCEPOINT_DLP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - tcplog
          exporters:
            - chronicle/chronicle_w_labels
    

配置参数

  • 替换以下占位符:

    • 接收器配置:

      • tcplog:对于 UDP syslog,请使用 udplog;对于 TCP syslog,请使用 tcplog
      • 0.0.0.0:要监听的 IP 地址(0.0.0.0 表示监听所有接口)
      • 514:要监听的端口号(标准 syslog 端口)
    • 导出器配置:

      • creds_file_path:服务账号 JSON 密钥文件的完整路径(选项 1):
        • Linux:/opt/observiq-otel-collector/ingestion-auth.json
        • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID:“获取客户 ID”部分中的客户 ID
      • location:将 <LOCATION> 替换为 Google SecOps 实例的区域(例如 us、europe 或 asia-southeast1)。导出器会使用此值作为 chronicle.googleapis.com 的前缀。如需查看完整列表,请参阅区域级端点。
      • project:将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置中的项目编号。
      • endpoint:保持设置为 chronicle.googleapis.com。
      • log_type:日志类型,与 Chronicle (FORCEPOINT_DLP) 中显示的完全一致

旧版提取 API

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

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'FORCEPOINT_DLP'
        raw_log_field: body
        ingestion_labels:
    

保存配置文件

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

配置 Forcepoint DLP syslog 转发

  1. 登录 Forcepoint Security Manager Web 控制台。
  2. 前往设置 > 常规 > SIEM 集成。
  3. 选择启用 SIEM 集成。
  4. 提供以下配置详细信息:
    • Syslog 服务器 IP 地址:输入 Bindplane 代理主机的 IP 地址。
    • 端口:输入 514。
    • 协议:选择 TCP。
    • 格式:选择 CEF(通用事件格式)。
    • TLS Enabled(已启用 TLS):取消选中(除非使用 TLS)。
  5. 在突发事件数据部分,选择要纳入到 syslog 消息中的数据:
    • 采取的措施
    • 严重级别
    • 政策名称
    • 来源信息
    • 目标信息
    • 内容详情
  6. 点击确定以保存。
  7. 依次前往主菜单 > 政策管理 > 数据泄露防护政策。
  8. 对于应转发事件的每项政策,请验证是否已启用 Syslog 通知:
    1. 选择相应政策。
    2. 前往行动计划标签页。
    3. 验证操作方案是否包含发送到 SIEM。
  9. 点击部署以应用政策更改。
  10. 通过检查 Bindplane 代理日志,验证是否正在发送 syslog 消息。

UDM 映射表

日志字段 UDM 映射 逻辑
act security_result.description 如果 actionPerformed 为空,则将 act 的值分配给 security_result.description。
actionID metadata.product_log_id actionID 的值会分配给 metadata.product_log_id。
actionPerformed security_result.description actionPerformed 的值会分配给 security_result.description。
管理员 principal.user.userid administrator 的值会分配给 principal.user.userid。
analyzedBy additional.fields.key 字符串“analyzedBy”会分配给 additional.fields.key。
analyzedBy additional.fields.value.string_value analyzedBy 的值会分配给 additional.fields.value.string_value。
猫 security_result.category_details cat 的值会合并到 security_result.category_details 字段中,作为一个列表。
destinationHosts target.hostname destinationHosts 的值会分配给 target.hostname。
destinationHosts target.asset.hostname destinationHosts 的值会分配给 target.asset.hostname。
详细信息 security_result.description 如果 actionPerformed 和 act 均为空,则将 details 的值分配给 security_result.description。
duser target.user.userid duser 的值用于填充 target.user.userid。如果以“; ”分隔的多个值与电子邮件正则表达式匹配,则会被拆分并分配为单独的电子邮件地址,否则会被视为用户 ID。
eventId metadata.product_log_id 如果 actionID 为空,则将 eventId 的值分配给 metadata.product_log_id。
fname target.file.full_path fname 的值会分配给 target.file.full_path。
logTime metadata.event_timestamp 系统会解析 logTime 的值,并使用该值填充 metadata.event_timestamp。
loginName principal.user.user_display_name loginName 的值会分配给 principal.user.user_display_name。
msg metadata.description msg 的值已分配给 metadata.description。
productVersion additional.fields.key 字符串“productVersion”已分配给 additional.fields.key。
productVersion additional.fields.value.string_value productVersion 的值会分配给 additional.fields.value.string_value。
角色 principal.user.attribute.roles.name 角色的值会分配给 principal.user.attribute.roles.name。
severityType security_result.severity severityType 的值会映射到 security_result.severity。“high”映射到“HIGH”,“med”映射到“MEDIUM”,“low”映射到“LOW”(不区分大小写)。
sourceHost principal.hostname sourceHost 的值会分配给 principal.hostname。
sourceHost principal.asset.hostname sourceHost 的值会分配给 principal.asset.hostname。
sourceIp principal.ip sourceIp 的值会添加到 principal.ip 字段中。
sourceIp principal.asset.ip sourceIp 的值会添加到 principal.asset.ip 字段中。
sourceServiceName principal.application sourceServiceName 的值会分配给 principal.application。
suser principal.user.userid 如果 administrator 为空,则 suser 的值会分配给 principal.user.userid。
时间戳 metadata.event_timestamp 时间戳的值用于填充 metadata.event_timestamp。
主题 security_result.rule_name topic 的值在移除英文逗号后会分配给 security_result.rule_name。硬编码为“FORCEPOINT_DLP”。硬编码为“Forcepoint”。从 CEF 消息中提取。可以是“Forcepoint DLP”或“Forcepoint DLP Audit”。从 CEF 消息中提取。device_event_class_id 和 event_name 的串联,格式为“[device_event_class_id] - event_name”。初始化为“GENERIC_EVENT”。如果 is_principal_user_present 为“true”,则更改为“USER_UNCATEGORIZED”。
destinationDnsDomain event.idm.read_only_udm.target.hostname和event.idm.read_only_udm.target.asset.hostname之间 从更新日志映射
inter_host intermediary.hostname 从更新日志映射
violationTriggers.VZ CPNI" and "violationTriggers.Controlled Unclassified Information: Portion Marking additional.fields 从更新日志映射
act security_result.action_details 从更新日志映射
caseDescription metadata.description 从更新日志映射
eventIDs metadata.product_event_type 从更新日志映射
sourceServiceName network.application_protocol 从更新日志映射
productVersion metadata.product_version 从更新日志映射
riskScore additional.fields 从更新日志映射
productVersion" and "analyzedBy additional.fields 从更新日志映射
timeStamp metadata.event_timestamp 从更新日志映射

更新日志

查看相应解析器的更新日志

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