收集 Sophos DHCP 日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 Sophos 动态主机配置协议 (DHCP) 日志注入到 Google Security Operations。解析器首先将 Sophos DHCP syslog 消息标准化为键值结构,然后将提取的字段映射到统一数据模型 (UDM) 架构。它可处理不同的 DHCP 消息类型(DHCPREQUEST、DHCPACK、DHCPOFFER、DHCPNAK),并提取相关信息,例如 IP 地址、MAC 地址和 DHCP 选项。

准备工作

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

  • Google SecOps 实例。
  • 搭载 systemd 的 Windows 2016 或更高版本或 Linux 主机。
  • 如果通过代理运行,请确保防火墙端口已根据 Bindplane 代理要求打开。
  • 对 Sophos UTM 管理控制台或 Sophos Firewall (SFOS) Web 管理控制台的特权访问权限。

获取 Google SecOps 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件
    • 将文件安全地保存在将要安装 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 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  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:
        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
        log_type: 'SOPHOS_DHCP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 根据基础架构的需要替换端口和 IP 地址。
    • <CUSTOMER_ID> 替换为实际的客户 ID。
    • /path/to/ingestion-authentication-file.json 更新为 获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。

重启 Bindplane 代理以应用更改

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

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

    sc stop observiq-otel-collector && sc start observiq-otel-collector
    

方法 2:在 Sophos 防火墙上配置 Syslog 转发

  1. 登录 Sophos 防火墙 Web 管理控制台
  2. 依次前往配置 > 系统服务 > 日志设置
  3. 点击添加以配置 Syslog 服务器。
  4. 提供以下配置详细信息:
    • 名称:为 Google SecOps 收集器输入一个唯一名称(例如 Google SecOps BindPlane DHCP)。
    • IP 地址/网域:输入 BindPlane IP 地址。
    • 端口:输入 BindPlane 端口号(例如 514)。
    • 设备:选择 DAEMON
    • 严重程度:选择信息
    • 格式:选择设备标准格式
  5. 点击保存
  6. 返回到日志设置页面,然后选择要转发到 syslog 服务器的特定日志类型。
  7. 选择包含 DHCP 事件的相应日志类别。DHCP 日志由 dhcpd 服务生成,属于网络或系统日志的一部分,在启用相应日志类别后会转发。
  8. 点击应用以保存配置。

方法 1:在 Sophos UTM 上配置 Syslog 转发

  1. 登录 Sophos UTM 管理控制台
  2. 依次前往日志记录和报告 > 日志设置 > 远程 Syslog 服务器
  3. 点击切换按钮以启用远程 syslog。“远程 Syslog 设置”区域变为可修改状态。
  4. Syslog 服务器字段中,点击 + 添加 Syslog 服务器
  5. 添加 syslog 服务器对话框中,提供以下配置详细信息:
    • 名称:输入一个描述性名称(例如 Google SecOps BindPlane DHCP)。
    • 服务器:点击“服务器”字段旁边的 +(加号)图标。从网络定义中创建或选择一个具有 BindPlane 代理 IP 地址的主机,然后点击保存
    • 端口:点击端口字段旁边的 +(加号)图标。创建或选择具有相应协议和端口(例如 UDP/514)的服务定义,然后点击保存
  6. 添加 Syslog 服务器对话框中,点击保存
  7. 远程 Syslog 设置部分中,点击应用
  1. 可选:调整远程 Syslog 缓冲区设置(默认值为 1000 行),然后点击应用
  2. Remote Syslog Log Selection 部分,选择 DHCP Server 和所需的日志类别。
  3. 点击应用以保存日志选择设置。

UDM 映射表

日志字段 UDM 映射 逻辑
操作 event.idm.read_only_udm.security_result.action_details
attr_address event.idm.read_only_udm.target.ip
attr_addresses event.idm.read_only_udm.target.ip
call event.idm.read_only_udm.security_result.summary
客户端 event.idm.read_only_udm.principal.hostname
客户端 event1.idm.read_only_udm.principal.hostname
数据
dstip event.idm.read_only_udm.target.ip
dstmac event.idm.read_only_udm.target.mac
dstport event.idm.read_only_udm.target.port
fwrule event.idm.read_only_udm.security_result.rule_id
id event.idm.read_only_udm.metadata.product_event_type ulogd - 串联
id event1.idm.read_only_udm.metadata.product_event_type ID - 串联
信息 event.idm.read_only_udm.security_result.description
initf event.idm.read_only_udm.security_result.about.labels.value 密钥硬编码为 In Interface
msg event.idm.read_only_udm.metadata.description 当 process_type 不是 confdulogd
name event.idm.read_only_udm.security_result.description
objname event.idm.read_only_udm.principal.resource.name
oldattr_address event.idm.read_only_udm.principal.ip
oldattr_addresses event.idm.read_only_udm.principal.ip
outitf event.idm.read_only_udm.security_result.about.labels.value 密钥硬编码为 Out Interface
pid event.idm.read_only_udm.principal.process.pid
proto event.idm.read_only_udm.network.ip_protocol
和程度上减少 event.idm.read_only_udm.security_result.severity 如果严重程度为 infodebug,则 security_result.severity 为 INFORMATIONAL。如果严重程度为 warn,则 security_result.severity 为 MEDIUM
和程度上减少 event1.idm.read_only_udm.security_result.severity 如果严重程度为 infodebug,则 security_result.severity 为 INFORMATIONAL。如果严重程度为 warn,则 security_result.severity 为 MEDIUM
sid event.idm.read_only_udm.security_result.about.labels.value 密钥硬编码为 sid
src_host event.idm.read_only_udm.principal.hostname 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUESTDHCPACKDHCPOFFER
src_host event.idm.read_only_udm.observer.hostname 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUEST
src_host event.idm.read_only_udm.network.dhcp.client_hostname 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPACKDHCPOFFER
src_ip event.idm.read_only_udm.network.dhcp.ciaddr 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUEST
src_ip event.idm.read_only_udm.network.dhcp.yiaddr 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPACKDHCPOFFERDHCPNAK
src_ip event.idm.read_only_udm.principal.ip 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUESTDHCPACKDHCPOFFERDHCPNAK
src_ip event.idm.read_only_udm.observer.ip 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUESTDHCPACKDHCPOFFER
src_mac event.idm.read_only_udm.network.dhcp.chaddr 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUESTDHCPACKDHCPOFFERDHCPNAK
src_mac event.idm.read_only_udm.principal.mac 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUESTDHCPACKDHCPOFFERDHCPNAK
srcip event.idm.read_only_udm.principal.ip
srcip event1.idm.read_only_udm.principal.ip
srcmac event.idm.read_only_udm.principal.mac
srcport event.idm.read_only_udm.principal.port
sub event.idm.read_only_udm.metadata.description
sub event1.idm.read_only_udm.metadata.description
tcpflags event.idm.read_only_udm.security_result.about.labels.value 密钥硬编码为 TCP Flags
用户 event.idm.read_only_udm.principal.user.userid
用户 event1.idm.read_only_udm.principal.user.userid
event.idm.read_only_udm.metadata.event_type 如果未设置其他 event_type,则为 GENERIC_EVENT。如果 srcip 和 dstip 不为空,则为 NETWORK_CONNECTION。如果名称为 object changed,则为 RESOURCE_WRITTEN。如果 process_type 为 dhcpd,则为 NETWORK_DHCP
event.idm.read_only_udm.metadata.log_type 硬编码为 SOPHOS_DHCP
event.idm.read_only_udm.metadata.product_name 硬编码为 SOPHOS_DHCP
event.idm.read_only_udm.metadata.vendor_name 硬编码为 SOPHOS
event.idm.read_only_udm.network.application_protocol 当 process_type 为 dhcpd 时,硬编码为 DHCP
event.idm.read_only_udm.network.dhcp.opcode 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUEST 时,硬编码为 BOOTREQUEST。当 process_type 为 dhcpd 且 dhcp_type 为 DHCPACKDHCPOFFERDHCPNAK 时,硬编码为 BOOTREPLY
event.idm.read_only_udm.network.dhcp.type 当 process_type 为 dhcpd 且 dhcp_type 为 DHCPREQUEST 时,值为 REQUEST。当 process_type 为 dhcpd 且 dhcp_type 为 DHCPACK 时,值为 ACK。当 process_type 为 dhcpd 且 dhcp_type 为 DHCPOFFER 时,值为 OFFER。当 process_type 为 dhcpd 且 dhcp_type 为 DHCPNAK 时,值为 NAK
event1.idm.read_only_udm.metadata.event_type 硬编码为 GENERIC_EVENT
event1.idm.read_only_udm.metadata.log_type 硬编码为 SOPHOS_DHCP
event1.idm.read_only_udm.metadata.product_name 硬编码为 SOPHOS_DHCP
event1.idm.read_only_udm.metadata.vendor_name 硬编码为 SOPHOS

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