收集 Dell EMC Data Domain 日志

解析器版本: 2.0

支持的平台:

本文档介绍了如何使用 Bindplane 将 Dell EMC Data Domain 日志注入到 Google Security Operations。Logstash 解析器代码首先使用基于日志消息格式的 grok 模式从原始 DELL_EMC_DATA_DOMAIN 日志中提取关键字段。然后,它将提取的字段映射到统一数据模型 (UDM) 架构中的相应字段,并使用事件类型和安全结果等其他上下文丰富数据。

准备工作

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

  • Google SecOps 实例
  • Windows 2016 或更高版本,或者具有 systemd 的 Linux 主机
  • 如果通过代理运行,则防火墙 端口 处于打开状态
  • 对 Dell EMC Data Domain 的特权访问权限

获取 Bindplane 代理的 Google SecOps 凭据

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

  • 新部署:使用 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 收集器目录中的 ingestion-auth.json(在 Linux 上为 /opt/observiq-otel-collector/ingestion-auth.json,在 Windows 上为 C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或者更新 creds_file_path 在 config.yaml 中以与您保存该文件的路径匹配。
  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
    

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
    

其他安装资源

如需了解其他安装选项,请参阅安装指南。

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:
    • 找到 config.yaml 文件。通常,该文件位于 Linux 上的 /opt/observiq-otel-collector/ 目录或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nano、vi 或记事本)打开该文件。
  2. 按如下方式修改 config.yaml 文件:

    receivers:
        udplog:
            # Replace the port and IP address as required
            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
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: chronicle.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'DELL_EMC_DATA_DOMAIN'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 根据基础架构的需要替换端口和 IP 地址。

  4. 将 <LOCATION> 替换为 Google SecOps 实例的区域(例如 us、europe 或 asia-southeast1)。导出器会使用此值为 chronicle.googleapis.com 添加前缀。

  5. 将 <PROJECT_NUMBER> 替换为 IAM 和管理 > 设置 中的项目编号。

  6. 将 <customer_id> 替换为实际客户 ID。

  7. 将 /path/to/ingestion-authentication-file.json 更新为在 获取 Bindplane 代理的 Google SecOps 凭据 部分中保存服务帐号密钥文件(方法 1)的路径。

旧版注入 API 导出器

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

    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'DELL_EMC_DATA_DOMAIN'
                raw_log_field: body
    

重启 Bindplane 代理以应用更改

  • 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  • 如需在 Windows 中重启 Bindplane 代理,您可以使用服务 控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

为 Dell EMC Data Domain 配置 Syslog

  1. 使用 CLI 登录 Dell EMC Data Domain 。
  2. 显示当前配置:

    log host show
    
  3. 启用向其他系统发送日志消息的功能:

    log host enable
    
  4. 使用以下命令将 Bindplane 代理 IP 添加到 syslog,将 <bindplane-ip> 替换为实际 Bindplane 代理 IP 地址。

    log host add <bindplane-ip>
    
  5. 使用以下命令将 Bindplane 代理端口添加到 syslog,将 <bindplane-port> 替换为实际 Bindplane 代理端口号。

    log server-port set <bindplane-port>
    

受支持的 Dell EMC Data Domain 示例日志

  • Syslog + KV

    <174>ddsh: {epoch=1649171401;id='AUDIT-DDSH-00001';desc='DDSH CLI command';level=3;user='dummy_user';role='se';app='ddsh';host='dd-host-1';detail='cmd=cifs show detailed-stats';}
    
  • SYSLOG

    <38>sshd[13244]: Accepted publickey for dd-admin from 192.0.2.1 port 57656 ssh2: RSA SHA256:+BWDxlMYuJgfC0LhzacEAUpFHlAZlNOYXAKKJ4SAipQ
    
    • JSON
    {
    "Timestamp": "2024-09-05T13:25:14Z",
    "EventName": "Participant left session",
    "EventType": "Session",
    "Username": "user_9999",
    "EventDetails": [
      {
        "OldValue": "",
        "NewValue": "1352719861",
        "PolicyEnforcementNewValue": null,
        "PolicyEnforcementOldValue": null,
        "PropertyName": "ID of affected participant",
        "PropertyCategory": "AffectedParticipant"
      },
      {
        "OldValue": "",
        "NewValue": "User Name 1",
        "PolicyEnforcementNewValue": null,
        "PolicyEnforcementOldValue": null,
        "PropertyName": "Name of affected participant",
        "PropertyCategory": "AffectedParticipant"
      }
    ],
    "Computer": "HOST-PC-400",
    "EventId": 35139395
    }
    
  • Syslog + XML

    <21>1 2024-08-01T12:31:40.791267+02:00 VEEM-HOST-01 Veeam_ONE_Server 7172 - [origin enterpriseId="31023"] Operation:"SendEmail" Email has been sent Data:<data><recipient>recipient@example.com</recipient><subject>VM resetting Information for Virtual Machine &quot;VM_RESTORED_2024&quot;</subject></data>
    

UDM 映射表

日志字段 UDM 映射 逻辑
应用 read_only_udm.target.application 值取自第一个 grok 解析器提取的“app”字段。
cmd read_only_udm.target.process.command_line 值取自第一个 grok 解析器提取的“cmd”字段,如果“cmd”字段为空,则取自“detail”字段。
desc read_only_udm.metadata.description 值取自第一个 grok 解析器提取的“desc”字段。
epoch read_only_udm.metadata.event_timestamp.seconds 值取自“epoch”字段,并使用“date”过滤器转换为时间戳。
host read_only_udm.principal.hostname 值取自第一个 grok 解析器提取的“host”字段。
id read_only_udm.metadata.product_event_type 值取自第一个 grok 解析器提取的“id”字段。
pid read_only_udm.target.process.pid 值取自第一个 grok 解析器提取的“pid”字段。
reason read_only_udm.security_result.description 值取自第一个 grok 解析器提取的“reason”字段。
role read_only_udm.principal.user.attribute.roles.name 值取自第一个 grok 解析器提取的“role”字段。
session_id read_only_udm.network.session_id 值取自第一个 grok 解析器提取的“session_id”字段。
src_ip read_only_udm.principal.ip 值取自第二个 grok 解析器提取的“src_ip”字段。
src_port read_only_udm.principal.port 值取自第二个 grok 解析器提取的“src_port”字段,并转换为整数。
timestamp.nanos read_only_udm.metadata.event_timestamp.nanos 值取自原始日志的“timestamp.nanos”字段。
timestamp.seconds read_only_udm.metadata.event_timestamp.seconds 值取自原始日志的“timestamp.seconds”字段。
user read_only_udm.target.user.userid 值取自第一个或第二个 grok 解析器提取的“user”字段。
read_only_udm.extensions.auth.mechanism 如果“desc”字段与用户登录或退出事件相关的特定模式匹配,则该值设置为“USERNAME_PASSWORD”。
read_only_udm.metadata.event_type 该值由一系列基于其他字段(主要是“desc”“src_ip”和“host”)值的条件语句确定。
read_only_udm.metadata.log_type 硬编码为“DELL_EMC_DATA_DOMAIN”。
read_only_udm.metadata.product_name 硬编码为“DELL_EMC_DATA_DOMAIN”。
read_only_udm.metadata.vendor_name 硬编码为“DELL”。
read_only_udm.network.http.method 值取自 KV 过滤器提取的“method”字段。
read_only_udm.network.http.response_code 值取自 KV 过滤器提取的“response_code”字段,并转换为整数。
read_only_udm.network.ip_protocol 值使用对照表和“parse_ip_protocol.include”配置从“protocol_number_src”字段派生而来。
read_only_udm.security_result.severity 如果“message”字段包含字符串“NOTICE”,则该值设置为“MEDIUM”。
read_only_udm.target.file.sha256 值取自第二个 grok 解析器提取的“sha256”字段,转换为小写,并验证为十六进制字符串。
read_only_udm.target.process.file.full_path 值取自“path”或“file”字段,具体取决于哪个字段不为空。
read_only_udm.target.url 值取自 KV 过滤器提取的“uri”字段。
host event.idm.read_only_udm.principal.ip 从变更日志映射
host event.idm.read_only_udm.principal.asset.ip 从变更日志映射
inter_host event.idm.read_only_udm.intermediary.hostname 从变更日志映射
msg event.idm.read_only_udm.security_result.description 从变更日志映射

更新日志

查看此解析器的更新日志

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