收集 Windows 防火墙日志

支持的平台:

本文档介绍了如何使用 Bindplane 将 Windows 防火墙日志注入到 Google Security Operations。

Windows 防火墙是内置的 Windows 主机防火墙,可生成连接允许/阻止、规则更改和服务事件日志。Bindplane 代理直接从本地文件系统收集防火墙日志文件。

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,且支持 observiq-otel-collector 服务
  • 如果通过代理运行,请确保防火墙端口已根据 Bindplane 代理要求打开
  • 生成防火墙日志的 Windows 主机的管理员访问权限

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

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将文件安全地保存在将要安装 Bindplane 的系统上。

获取 Google SecOps 客户 ID

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 配置文件
  3. 复制并保存组织详细信息部分中的客户 ID

安装 Bindplane 代理

按照以下说明在 Windows 操作系统上安装 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

其他安装资源

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

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

找到配置文件

  • Windows

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

修改配置文件

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

    receivers:
        filelog:
            include:
                - C:\Windows\system32\LogFiles\Firewall\pfirewall.log
            start_at: beginning
    
    exporters:
        chronicle/windows_firewall:
            compression: gzip
            creds_file_path: 'C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: WINDOWS_FIREWALL
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/firewall_to_chronicle:
                receivers:
                    - filelog
                exporters:
                    - chronicle/windows_firewall
    

配置参数

替换以下占位符:

  • 接收器配置

    • filelog:用于从磁盘收集日志文件的接收器类型
    • include:要监控的文件路径列表。默认 Windows 防火墙日志位置:
      • C:\Windows\system32\LogFiles\Firewall\pfirewall.log
    • start_at:设置为 beginning 可读取现有日志,设置为 end 可仅读取新条目
  • 导出器配置

    • windows_firewall:导出器的描述性名称
    • creds_file_path:提取身份验证文件的完整路径:
      • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>:上一步中的客户 ID
    • endpoint:区域端点网址:
      • 美国malachiteingestion-pa.googleapis.com
      • 欧洲europe-malachiteingestion-pa.googleapis.com
      • 亚洲asia-southeast1-malachiteingestion-pa.googleapis.com
      • 如需查看完整列表,请参阅区域级端点
    • WINDOWS_FIREWALL:日志类型,与在 Chronicle 中显示的完全一致
    • ingestion_labels:YAML 格式的可选标签(例如 env: production
  • 流水线配置

    • firewall_to_chronicle:流水线的描述性名称

保存配置文件

  • 修改后,保存文件:
    • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

如需在 Windows 中重启 Bindplane 代理,请执行以下操作:

  1. 请从下列选项中选择一项:

    • 以管理员身份运行命令提示符或 PowerShell:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 服务控制台:
      1. Win+R,输入 services.msc,然后按 Enter 键。
      2. 找到 observIQ OpenTelemetry 收集器
      3. 右键点击并选择重新启动
  2. 验证服务是否正在运行:

    sc query observiq-otel-collector
    
  3. 检查日志是否存在错误:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

配置 Windows 防火墙日志记录

  1. Win+R 打开具有高级安全功能的 Windows Defender 防火墙,输入 wf.msc,然后按 Enter 键。
  2. 在左侧窗格中,右键点击本地计算机上的“高级安全 Windows Defender 防火墙”,然后选择属性
  3. 选择相应的配置文件标签页(网域配置文件专用配置文件公开配置文件)。
  4. 日志记录下,点击自定义
  5. 提供以下配置详细信息:
    • 记录丢弃的数据包:选择
    • 记录成功连接:选择
    • 名称:验证日志文件路径是否为 %systemroot%\system32\LogFiles\Firewall\pfirewall.log(默认)。
    • 大小限制 (KB):设置为至少 4096,以便捕获足够的日志数据。
  6. 点击确定以保存日志记录设置。
  7. 根据需要,针对每个配置文件标签页(网域专用公开)重复执行第 3-6 步。
  8. 验证日志文件是否正在写入 C:\Windows\system32\LogFiles\Firewall\pfirewall.log
  9. 确保 config.yaml 中的 Bindplane 代理 include 路径与防火墙日志文件路径一致。

UDM 映射表

日志字段 UDM 映射 逻辑
tcpflags、tcpsyn、tcpack、tcpwin、icmptype、icmpcode about.labels 如果字段不等于“-”,则合并为键值对
时间戳 metadata.event_timestamp 使用 yyyy-MM-dd HH:mm:ss 格式进行解析
metadata.event_type 设置为“NETWORK_CONNECTION”
方向 network.direction 如果方向为 [“SEND”“FORWARD”],则设置为“OUTBOUND”;如果方向为“RECEIVE”,则设置为“INBOUND”
协议 network.ip_protocol 如果协议为 ["TCP", "UDP", "ICMP"],则直接复制值
大小 network.received_bytes 如果方向为“RECEIVE”且大小不为“-”,则转换为 uinteger
大小 network.sent_bytes 如果方向为 ["SEND", "FORWARD"] 且大小不为“-”,则转换为 uinteger
src_ip principal.ip 直接复制值
src_port principal.port 如果 src_port != "-",则转换为整数
操作 security_result.action 如果 action == "DROP",则设置为“BLOCK”;如果 action == "ALLOW",则设置为“ALLOW”
信息 security_result.summary 如果 info != "-",则直接复制值
dst_ip target.ip 直接复制值
dst_port target.port 如果 dst_port !=“-”,则转换为整数
metadata.product_name 设置为“Windows 防火墙”
metadata.vendor_name 设置为“Microsoft”

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