收集 Fortinet FortiEDR 日志

支持的平台:

本文档介绍了如何使用 Google Cloud Storage V2 或 Bindplane 代理将 Fortinet FortiEDR 日志注入到 Google Security Operations。

Fortinet FortiEDR 是一种端点检测和响应解决方案,可为整个组织中的端点提供实时保护、自动化突发事件响应和威胁情报。

收集方法差异

本指南提供了两种收集方法:

  • 选项 1:通过 Bindplane 代理发送 Syslog:FortiEDR 将 syslog 消息发送到 Bindplane 代理,后者将日志转发到 Google SecOps。建议用于以最少的基础设施实现实时日志提取。
  • 选项 2:通过 Cloud Functions 将 Syslog 传输到 GCS:FortiEDR 将 Syslog 消息发送到 Cloud Function,后者将日志写入 GCS 以供 Google SecOps 提取。建议用于集中式日志存储和批处理。

选择最符合您的基础设施和要求的方法。

方法 1:使用 Bindplane 代理收集 Fortinet FortiEDR 日志

准备工作

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

  • Google SecOps 实例
  • Windows Server 2016 或更高版本,或者带有 systemd 的 Linux 主机
  • Bindplane 代理与 Fortinet FortiEDR Central Manager 之间的网络连接
  • 如果在代理后面运行,请确保防火墙端口根据 Bindplane 代理要求处于开放状态
  • 对 Fortinet FortiEDR 管理控制台的特权访问权限
  • FortiEDR 5.0 版或更高版本

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

  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
    

该服务应显示为有效(正在运行)

其他安装资源

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

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

找到配置文件

Linux

sudo nano /etc/bindplane-agent/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/fortiedr:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: FORTINET_FORTIEDR
        raw_log_field: body
        ingestion_labels:
            env: production

service:
    pipelines:
        logs/fortiedr_to_chronicle:
            receivers:
                - tcplog
            exporters:
                - chronicle/fortiedr

配置参数

替换以下占位符:

接收器配置

  • listen_address:要监听的 IP 地址和端口。使用 0.0.0.0:514 在端口 514 上监听所有接口。

导出器配置

  • creds_file_path:提取身份验证文件的完整路径:
    • Linux/etc/bindplane-agent/ingestion-auth.json
    • 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
  • ingestion_labels:YAML 格式的可选标签。

保存配置文件

修改后,保存文件:

  • Linux:依次按 Ctrl+OEnterCtrl+X
  • Windows:依次点击文件 > 保存

重启 Bindplane 代理以应用更改

  • Linux

    sudo systemctl restart observiq-otel-collector
    
    1. 验证服务是否正在运行:

      sudo systemctl status observiq-otel-collector
      
    2. 检查日志是否存在错误:

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows

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

    • 以管理员身份使用命令提示符或 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"
        

配置 Fortinet FortiEDR syslog 转发

配置 syslog 目标位置

  1. 登录 FortiEDR Central Manager 控制台。
  2. 依次前往管理 > 导出设置 > Syslog
  3. 点击定义新的 Syslog 按钮。
  4. Syslog Name 字段中,输入一个描述性名称(例如 Chronicle-Integration)。
  5. 主机字段中,输入 Bindplane 代理主机 IP 地址。
  6. 端口字段中,输入 514
  7. 协议下拉菜单中,选择 TCP
  8. 格式下拉菜单中,选择分号(默认格式,字段以分号分隔)。
  9. 点击测试按钮以测试与 Bindplane 代理的连接。
  10. 验证测试是否成功。
  11. 点击保存按钮以保存 syslog 目标。

按事件类型启用 syslog 通知

  1. Syslog 页面中,选择您刚刚创建的 syslog 目标行。
  2. 在右侧的通知窗格中,使用滑块按事件类型启用或停用目的地:
    • 系统事件:启用后可发送 FortiEDR 系统健康状况事件。
    • 安全事件:启用后可发送安全事件汇总信息。
    • 审核轨迹:启用后可发送审核日志事件。
  3. 对于每种已启用的事件类型,请点击相应事件类型右侧的按钮。
  4. 选中您要包含在 syslog 消息中的字段对应的复选框。
  5. 点击保存

配置 playbook 通知

系统仅针对分配给 Playbook 政策且启用了发送 Syslog 通知选项的设备上发生的安全性事件发送 Syslog 消息。

  1. 前往安全设置 > Playbook
  2. 选择适用于您要监控的设备的 playbook 政策(例如默认 playbook)。
  3. 通知部分中,找到 Syslog 行。
  4. 选中要发送的事件分类对应的复选框,以启用发送 Syslog 通知选项:
    • 恶意:归类为恶意的安全事件。
    • 可疑:被归类为可疑的安全性事件。
    • PUP:可能不需要的程序。
    • 无定论:分类结果为“无定论”的事件。
    • 可能安全:归类为“可能安全”的事件(可选)。
  5. 点击保存

方法 2:使用 GCS 收集 Fortinet FortiEDR 日志

准备工作

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

  • Google SecOps 实例
  • 已启用 Cloud Storage API 的 GCP 项目
  • 创建和管理 GCS 存储分区的权限
  • 管理 GCS 存储分区的 IAM 政策的权限
  • 创建 Cloud Run 服务、Pub/Sub 主题和 Cloud Scheduler 作业的权限
  • 对 Fortinet FortiEDR 管理控制台的特权访问权限
  • FortiEDR 5.0 版或更高版本

创建 Google Cloud Storage 存储分区

  1. 转到 Google Cloud Console
  2. 选择您的项目或创建新项目。
  3. 在导航菜单中,依次前往 Cloud Storage > 存储分区
  4. 点击创建存储分区
  5. 提供以下配置详细信息:

    设置
    为存储分区命名 输入一个全局唯一的名称(例如 fortiedr-logs
    位置类型 根据您的需求进行选择(区域级、双区域级、多区域级)
    位置 选择相应位置(例如 us-central1
    存储类别 标准(建议用于经常访问的日志)
    访问权限控制 统一(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建

为 Cloud Run 函数创建服务账号

Cloud Run 函数需要一个服务账号,该账号具有向 GCS 存储分区写入内容以及被 Pub/Sub 调用的权限。

创建服务账号

  1. GCP 控制台中,依次前往 IAM 和管理 > 服务账号
  2. 点击创建服务账号
  3. 提供以下配置详细信息:
    • 服务账号名称:输入 fortiedr-syslog-collector-sa
    • 服务账号说明:输入 Service account for Cloud Run function to collect FortiEDR syslog logs
  4. 点击创建并继续
  5. 向此服务账号授予对项目的访问权限部分中,添加以下角色:
    1. 点击选择角色
    2. 搜索并选择 Storage Object Admin
    3. 点击 + 添加其他角色
    4. 搜索并选择 Cloud Run Invoker
    5. 点击 + 添加其他角色
    6. 搜索并选择 Cloud Functions Invoker
  6. 点击继续
  7. 点击完成

必须拥有这些角色,才能:

  • Storage Object Admin:将日志写入 GCS 存储分区并管理状态文件
  • Cloud Run Invoker:允许 Pub/Sub 调用函数
  • Cloud Functions Invoker:允许调用函数

授予对 GCS 存储分区的 IAM 权限

向服务账号授予对 GCS 存储分区的写入权限:

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储分区名称。
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:输入服务账号电子邮件地址(例如 fortiedr-syslog-collector-sa@PROJECT_ID.iam.gserviceaccount.com)。
    • 分配角色:选择 Storage Object Admin
  6. 点击保存

创建发布/订阅主题

创建一个 Pub/Sub 主题,供 Cloud Scheduler 发布消息,并供 Cloud Run 函数订阅。

  1. GCP 控制台中,前往 Pub/Sub > 主题
  2. 点击创建主题
  3. 提供以下配置详细信息:
    • 主题 ID:输入 fortiedr-syslog-trigger
    • 将其他设置保留为默认值。
  4. 点击创建

创建 Cloud Run 函数以接收 syslog

Cloud Run 函数将通过 HTTP 接收来自 FortiEDR 的 syslog 消息,并将其写入 GCS。

  1. GCP 控制台中,前往 Cloud Run
  2. 点击创建服务
  3. 选择函数(使用内嵌编辑器创建函数)。
  4. 配置部分中,提供以下配置详细信息:

    设置
    Service 名称 fortiedr-syslog-collector
    区域 选择与您的 GCS 存储分区匹配的区域(例如 us-central1
    运行时 选择 Python 3.12 或更高版本
  5. 触发器(可选)部分中:

    1. 点击 + 添加触发器
    2. 选择 HTTPS
    3. 身份验证中,选择允许未通过身份验证的调用
    4. 点击保存
  6. 滚动到容器、网络、安全性并展开该部分。

  7. 前往安全标签页:

    • 服务账号:选择服务账号 (fortiedr-syslog-collector-sa)。
  8. 前往容器标签页:

    1. 点击变量和密钥
    2. 为每个环境变量点击 + 添加变量

      变量名称 示例值 说明
      GCS_BUCKET fortiedr-logs GCS 存储分区名称
      GCS_PREFIX fortiedr-syslog 日志文件的前缀
  9. 变量和 Secret 部分中,滚动到请求

    • 请求超时:输入 60 秒。
  10. 前往设置标签页:

    • 资源部分中:
      • 内存:选择 256 MiB 或更高。
      • CPU:选择 1
  11. 修订版本扩缩部分中:

    • 实例数下限:输入 0
    • 实例数上限:输入 10(或根据预期负载进行调整)。
  12. 点击创建

  13. 等待服务创建完成(1-2 分钟)。

  14. 创建服务后,系统会自动打开内嵌代码编辑器

添加函数代码

  1. 入口点字段中输入 main
  2. 在内嵌代码编辑器中,创建两个文件:

    • 第一个文件:main.py:
    import functions_framework
    from google.cloud import storage
    import json
    import os
    from datetime import datetime, timezone
    from flask import Request
    
    # Initialize Storage client
    storage_client = storage.Client()
    
    # Environment variables
    GCS_BUCKET = os.environ.get('GCS_BUCKET')
    GCS_PREFIX = os.environ.get('GCS_PREFIX', 'fortiedr-syslog')
    
    @functions_framework.http
    def main(request: Request):
        """
        Cloud Run function to receive syslog messages from FortiEDR and write to GCS.
    
        Args:
            request: Flask Request object containing syslog message
        """
    
        if not GCS_BUCKET:
            print('Error: Missing GCS_BUCKET environment variable')
            return ('Missing GCS_BUCKET environment variable', 500)
    
        try:
            # Get request body
            request_data = request.get_data(as_text=True)
    
            if not request_data:
                print('Warning: Empty request body')
                return ('Empty request body', 400)
    
            # Parse syslog messages (one per line)
            lines = request_data.strip().split('\n')
    
            if not lines:
                print('Warning: No syslog messages found')
                return ('No syslog messages found', 400)
    
            # Get GCS bucket
            bucket = storage_client.bucket(GCS_BUCKET)
    
            # Write to GCS as NDJSON
            now = datetime.now(timezone.utc)
            timestamp = now.strftime('%Y%m%d_%H%M%S_%f')
            object_key = f"{GCS_PREFIX}/logs_{timestamp}.ndjson"
            blob = bucket.blob(object_key)
    
            # Convert each line to JSON object with raw syslog message
            records = []
            for line in lines:
                if line.strip():
                    records.append({'raw': line.strip(), 'timestamp': now.isoformat()})
    
            ndjson = '\n'.join([json.dumps(record, ensure_ascii=False) for record in records]) + '\n'
            blob.upload_from_string(ndjson, content_type='application/x-ndjson')
    
            print(f"Wrote {len(records)} records to gs://{GCS_BUCKET}/{object_key}")
    
            return (f"Successfully processed {len(records)} records", 200)
    
        except Exception as e:
            print(f'Error processing syslog: {str(e)}')
            return (f'Error processing syslog: {str(e)}', 500)
    
    • 第二个文件:requirements.txt:
    functions-framework==3.*
    google-cloud-storage==2.*
    flask==3.*
    
  3. 点击部署以保存并部署该函数。

  4. 等待部署完成(2-3 分钟)。

  5. 部署完成后,前往触发器标签页,然后复制触发器网址(例如 https://fortiedr-syslog-collector-abc123-uc.a.run.app)。

将 Fortinet FortiEDR syslog 转发配置为 Cloud Function

配置 syslog 目标位置

  1. 登录 FortiEDR Central Manager 控制台。
  2. 依次前往管理 > 导出设置 > Syslog
  3. 点击定义新的 Syslog 按钮。
  4. Syslog Name 字段中,输入一个描述性名称(例如 Chronicle-GCS-Integration)。
  5. 主机字段中,输入 Cloud Function 触发器网址的主机名(例如 fortiedr-syslog-collector-abc123-uc.a.run.app)。
  6. 端口字段中,输入 443
  7. 协议下拉菜单中,选择 TCP
  8. 格式下拉菜单中,选择分号(默认格式,字段以分号分隔)。
  9. 点击测试按钮,测试与 Cloud Function 的连接。
  10. 验证测试是否成功。
  11. 点击保存按钮以保存 syslog 目标。

按事件类型启用 syslog 通知

  1. Syslog 页面中,选择您刚刚创建的 syslog 目标行。
  2. 在右侧的通知窗格中,使用滑块按事件类型启用或停用目的地:
    • 系统事件:启用后可发送 FortiEDR 系统健康状况事件。
    • 安全事件:启用后可发送安全事件汇总信息。
    • 审核轨迹:启用后可发送审核日志事件。
  3. 对于每种已启用的事件类型,请点击相应事件类型右侧的按钮。
  4. 选中您要包含在 syslog 消息中的字段对应的复选框。
  5. 点击保存

配置 playbook 通知

系统仅针对分配给 Playbook 政策且启用了发送 Syslog 通知选项的设备上发生的安全性事件发送 Syslog 消息。

  1. 前往安全设置 > Playbook
  2. 选择适用于您要监控的设备的 playbook 政策(例如默认 playbook)。
  3. 通知部分中,找到 Syslog 行。
  4. 选中要发送的事件分类对应的复选框,以启用发送 Syslog 通知选项:
    • 恶意:归类为恶意的安全事件。
    • 可疑:被归类为可疑的安全性事件。
    • PUP:可能不需要的程序。
    • 无定论:分类结果为“无定论”的事件。
    • 可能安全:归类为“可能安全”的事件(可选)。
  5. 点击保存

测试集成

  1. FortiEDR Central Manager 控制台中,依次前往 Administration > Export Settings > Syslog
  2. 选择 syslog 目标行。
  3. 点击测试按钮以发送测试消息。
  4. 在 GCP Console 中,前往 Cloud Run > 服务
  5. 点击函数名称 (fortiedr-syslog-collector)。
  6. 点击日志标签页。
  7. 验证函数是否已成功执行。查找:

    Wrote X records to gs://fortiedr-logs/fortiedr-syslog/logs_YYYYMMDD_HHMMSS_MMMMMM.ndjson
    Successfully processed X records
    
  8. 前往 Cloud Storage > 存储分区

  9. 点击您的存储分区名称。

  10. 前往前缀文件夹 (fortiedr-syslog/)。

  11. 验证是否已创建具有当前时间戳的新 .ndjson 文件。

如果您在日志中看到错误,请执行以下操作:

  • 请求正文为空:FortiEDR 未向 Cloud Function 发送数据
  • 缺少 GCS_BUCKET 环境变量:检查是否已设置环境变量
  • 权限遭拒:验证服务账号是否对存储桶具有 Storage Object Admin 角色

检索 Google SecOps 服务账号

Google SecOps 使用唯一的服务账号从您的 GCS 存储分区中读取数据。您必须授予此服务账号对您的存储分区的访问权限。

在 Google SecOps 中配置 Feed 以注入 Fortinet FortiEDR 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 FortiEDR Syslog Logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Fortinet FortiEDR 作为日志类型

  7. 点击获取服务账号

  8. 系统会显示一个唯一的服务账号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. 复制此电子邮件地址。您将在下一步骤中用到它。

  10. 点击下一步

  11. 为以下输入参数指定值:

    • 存储分区网址:输入带有前缀路径的 GCS 存储分区 URI:

      gs://fortiedr-logs/fortiedr-syslog/
      

      • fortiedr-logs:您的 GCS 存储分区名称。
      • fortiedr-syslog:存储日志的可选前缀/文件夹路径(留空表示根目录)。
    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:永不删除转移后的任何文件(建议用于测试)。
      • 删除已转移的文件:在成功转移后删除文件。
      • 删除已转移的文件和空目录:在成功转移后删除文件和空目录。
    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。

    • 资产命名空间资产命名空间

    • 注入标签:要应用于此 Feed 中事件的标签。

  12. 点击下一步

  13. 最终确定界面中查看新的 Feed 配置,然后点击提交

向 Google SecOps 服务账号授予 IAM 权限

Google SecOps 服务账号需要对您的 GCS 存储分区具有 Storage Object Viewer 角色。

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储分区名称。
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址。
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
国家/地区 target.location.country_or_region 如果值不是 N/A 或空值,则直接复制
srccountry principal.location.country_or_region 如果不是“保留”或“空”,则直接复制值
dstcountry target.location.country_or_region 如果值不为空,则直接复制
srcip principal.ip 直接复制值
dstip target.ip 如果不是 N/A,则直接复制值
目的地 target.ip 如果有效,则提取为目标 IP
dst target.ip 如果有效,则从目的地提取为 IP
srcmac principal.mac 直接复制值
dstosname target.platform 如果匹配 LINUX,则设置为 LINUX;如果匹配 WINDOWS,则设置为 WINDOWS;如果匹配 MAC,则设置为 MAC
srcport principal.port 转换为整数
dstport target.port 转换为整数
spt principal.port 转换为整数
dpt target.port 转换为整数
sessionid network.session_id 直接复制值
sentbyte network.sent_bytes 转换为无符号整数
rcvdbyte network.received_bytes 转换为无符号整数
时长 network.session_duration.seconds 转换为整数
操作 security_result.summary 直接复制值
level security_result.severity_details 设置为“level: %{level}”
policyid security_result.rule_id 直接复制值
policyname security_result.rule_name 直接复制值
policytype security_result.rule_type 直接复制值
服务 target.application 直接复制值
intermediary_ip target.ip 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
中介 中介 直接复制值
devname target.hostname 直接复制值
server_host target.hostname 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
server_host intermediary.hostname 如果不是 Audit 或 loginStatus,则直接将值复制为标签
deviceInformation target.resource.name, target.resource.resource_type 提取了 device_name 并将 resource_type 设置为 DEVICE
component_name additional.fields 设置为键为“组件名称”的标签
process_name principal.application 直接复制值
流程路径 target.file.full_path 直接复制值
asset_os target.platform 如果匹配 .Windows.,则设置为 WINDOWS;如果匹配,则为 LINUX。Linux
os_version target.platform_version 从 asset_os 中提取
asset_os principal.platform 如果匹配 .Windows.,则设置为 WINDOWS;如果匹配,则为 LINUX。Linux
os_version principal.platform_version 从 asset_os 中提取
usr_name userId 直接复制值
用户 userId 如果不是 WG 或 ADDC,则直接复制值
id userId 直接复制值
userId target.user.userid 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
userId principal.user.userid 如果不是 Audit 或 loginStatus,则直接复制值
userDisplayName target.user.user_display_name 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
userDisplayName principal.user.user_display_name 如果不是 Audit 或 loginStatus,则直接复制值
userPrincipalName principal.user.userid 直接复制值
说明 metadata.description 如果值不为空,则直接复制
详细信息 metadata.description 如果值不为空,则直接复制
mfaResult metadata.description 如果值不为空,则直接复制
data7 metadata.description 如果值不为空,则直接复制
message_type metadata.description 如果 description_details 为空,则直接复制值
src_ip、srcip principal.ip 如果 src_ip 不为空,则为 src_ip 中的值;否则为 src;否则为 Source;否则为 ipAddress
src_ip principal.ip 如果有效,则从 src_ip 中提取为 IP
mac_address principal.mac 作为数组处理,转换为小写,如果 MAC 有效则合并
event_id target.process.pid 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
event_id metadata.product_log_id 如果不是 Audit 或 loginStatus,则直接复制值
event_type metadata.event_type 直接复制值
严重程度 security_result.severity 如果为“低”或空,则设置为“信息”;如果为“中”,则设置为“中”;如果为“高”,则设置为“高”;如果为“极高”,则设置为“极高”
操作 security_result.action 如果匹配 (?i)Allow,则设置为 ALLOW;如果匹配 (?i)Block,则设置为 BLOCK;否则为 action_details
security_action security_result.action 直接复制值
规则 规则 直接复制值
规则 security_result.rule_name 直接复制值
分类 security_result.summary 直接复制值
首次出现时间 security_result.detection_fields 设置为键为“首次看到”的标签
上次出现时间 security_result.detection_fields 设置为键为“上次查看时间”的标签
组织 target.administrative_domain 如果 message_type 为 Audit 或 loginStatus 不为空,则直接复制值
组织 additional.fields 如果不是 Audit 或 loginStatus,则设置为键为“Organization”的标签
security_result security_result 从 sec_result 合并
metadata.vendor_name 设置为“FORTINET”
metadata.product_name 设置为“FORTINET_FORTIEDR”

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