收集 Varonis 日志

支持的语言:

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

Varonis 是一个数据安全和分析平台,可针对文件访问事件、权限更改、身份验证活动和 DatAlert 安全提醒生成 CEF 和 LEEF 格式的系统日志消息。解析器会从 CEF、LEEF 和键值对格式的日志中提取字段,并将其映射到统一数据模型 (UDM)。

准备工作

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

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

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

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

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:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/varonis:
        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: VARONIS
        raw_log_field: body
    
    service:
      pipelines:
        logs/varonis_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/varonis
    

配置参数

替换以下占位符:

  • 接收器配置:

    • 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/varonis:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: VARONIS
        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"
        

在 Varonis 中配置 syslog 导出

  1. 登录 Varonis 网页界面。
  2. 依次前往工具 > DatAlert > 选择 DatAlert。
  3. 选择配置。
  4. 提供以下配置详细信息:
    • Syslog 消息 IP 地址:输入 Bindplane 代理 IP 地址。
    • 端口:输入 Bindplane 代理端口号(例如,对于 UDP,输入 514)。
    • 设施名称:选择设施。
  5. 点击应用。

在 Varonis 中配置 syslog 格式

  1. 依次前往 Tools(工具)> DatAlert > Alert Templates(提醒模板)。
  2. 点击修改提醒模板,然后选择外部系统默认模板。
  3. 在应用于提醒方法中,从列表中选择 Syslog 消息。
  4. 从菜单中依次选择规则 > 提醒方法。
  5. 选择 Syslog 消息。
  6. 点击确定。

UDM 映射表

日志字段 UDM 映射 逻辑
act security_result.summary CEF 消息中 act 字段的值。
cn1 security_result.rule_id CEF 消息中 cn1 字段的值。
cs1 network.email.to CEF 消息中 cs1 字段的值,具体来说是电子邮件收件人。
cs2 security_result.rule_name CEF 消息中 cs2 字段的值。
device_version metadata.product_version CEF 消息中 device_version 字段的值。
dhost principal.hostname CEF 消息中 dhost 字段的值,表示主主机名。如果 file_server 存在且不是“DirectoryServices”,则会覆盖此值。
duser target.user.userid CEF 消息中 duser 字段的值。进行 gsub 转换以移除反斜杠,并拆分为 target.user.userid 和 target.administrative_domain。
dvchost target.hostname CEF 消息中 dvchost 字段的值。
filePath target.file.full_path CEF 消息中 filePath 字段的值。
rt metadata.event_timestamp CEF 消息中 rt 字段的值,解析为时间戳。
severity security_result.severity CEF 消息或 LEEF 消息中 severity 字段的值。转换为大写。根据数值或关键字映射到 UDM 严重级别值(LOW、INFORMATIONAL、MEDIUM、HIGH、CRITICAL)。
Acting Object target.user.user_display_name 键值对数据中 Acting Object 字段的值。按“\”拆分以提取显示名称。
Acting Object SAM Account Name target.user.userid 键值对数据中 Acting Object SAM Account Name 字段的值。
Device hostname target.hostname 键值对数据中 Device hostname 字段的值。
Device IP address target.ip 键值对数据中 Device IP address 字段的值。
Event Time metadata.event_timestamp 键值对数据中 Event Time 字段的值,解析为时间戳。
Event Type target.application,metadata.event_type 键值对数据中 Event Type 字段的值。用于派生 metadata.event_type(FILE_OPEN、USER_CHANGE_PERMISSIONS、USER_CHANGE_PASSWORD、USER_UNCATEGORIZED)。
File Server/Domain principal.hostname 键值对数据中 File Server/Domain 字段的值。如果不是“DirectoryServices”,则会覆盖从 dhost 派生的 principal.hostname。
Path target.file.full_path 键值对数据中 Path 字段的值。
Rule Description metadata.description 键值对数据中 Rule Description 字段的值。
Rule ID security_result.rule_id 键值对数据中 Rule ID 字段的值。
Rule Name security_result.rule_name 键值对数据中 Rule Name 字段的值。
intermediary_host intermediary.hostname 由 grok 提取的值,表示中间主机名。
log_type metadata.log_type 硬编码为 VARONIS。
metadata.event_type metadata.event_type 根据 evt_typ、act 和 filepath 的值派生。如果 event_type 为 GENERIC_EVENT 且 principal_hostname 存在,则默认为 STATUS_UPDATE。
metadata.product_name metadata.product_name 硬编码为 VARONIS,但可以被 LEEF 消息中的 product_name 字段覆盖。
metadata.vendor_name metadata.vendor_name 硬编码为 VARONIS,但可被来自 LEEF 消息的 vendor 字段覆盖。
prin_host principal.hostname 由 grok 提取的值,表示主账号主机名。
product_name metadata.product_name 来自 LEEF 消息的值。
security_result.action security_result.action 派生自 result 或 Event Status 字段。如果结果为 Success,则设置为“ALLOW”,否则设置为 BLOCK。
timestamp timestamp,metadata.event_timestamp 系统会根据可用性从各种字段(datetime1、event_time、start_datetime、datetime2)派生出事件时间戳。如果没有任何其他时间戳字段可用,则原始日志中的 create_time 会用作后备,并同时映射到 timestamp 和 metadata.event_timestamp。
vendor metadata.vendor_name 来自 LEEF 消息的值。
fname event.idm.read_only_udm.target.file.names 从更新日志映射
msg event.idm.read_only_udm.security_result.description 从更新日志映射
cs7 event.idm.read_only_udm.security_result.url_back_to_product 从更新日志映射
usrName principal.user.userid 从更新日志映射
Event_Type metadata.product_event_type 从更新日志映射
domain prinicipal.administrative_domain 从更新日志映射
proto", "cat", "Event_Additional_Data", "Event_Status", "Email_Attachment_Name", "Email_Date", "Account_of_Changed_Permissions", "Permissions_Changes", "Permissions_before_Change", and "Permissions_after_Change additional.fields 从更新日志映射
Affected_Object_Path taregt.file.full_path 从更新日志映射
Affected_Object security_result.detection_fields 从更新日志映射
src principal.ip 从更新日志映射
Alert_ID security_result.rule_id 从更新日志映射
Email_Recipients network.email.to 从更新日志映射
Email_Item", "Mailbox_Access_by_Owner", "Threshold_Value", "Threshold_First_Timestamp", "Event_by_MailboxOwner", and "Email_Sender additional.fields 从更新日志映射
Email_Sender network.email.from 从更新日志映射
accountName target.user.userid 从更新日志映射
Device_Name taregt.hostname 从更新日志映射
Event_Type_ID metadata.product_log_id 从更新日志映射
Event_File_Server_Domain target.administrative_domain 从更新日志映射
Alert_Page_URL taregt.url 从更新日志映射
devTime metadata.event_timestamp 从更新日志映射

更新日志

查看此解析器的更新日志

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