跳至主内容

FortiSIEM

集成 GravityZone 云端与FortiSIEM集成

FortiSIEM可通过HTTP(S) POST接收、解析并存储JSON格式事件。作为 Bitdefender 合作伙伴,您可将 GravityZone 与FortiSIEM集成,通过使用 GravityZone API和FortiSIEM节点。借助该服务,您可以将数据从 GravityZone 控制中心 直接发送至云端或本地环境。

注意

此配置采用FortiSIEM提供的默认解析器。如需手动创建不同解析器,请参阅 知识库文章 .

前提条件

  • 需持有激活的FortiSIEM许可证,并包含支持第三方集成的必要模块。

  • 需具备FortiSIEM控制台的管理员权限,以配置数据源并设置集成。

  • 需安装配置带有FortiSIEM采集器代理的代理程序,用于接收GravityZone数据。

    该代理将促进两系统间的数据采集与集成。

  • 需在环境中部署并运行FortiSIEM实例。

    该实例用于配置和管理与GravityZone的集成,并处理分析传入数据。

集成步骤

GravityZone 控制中心启用事件推送API

  1. 登录 GravityZone 控制中心 .

  2. 进入 我的账户 .

  3. API密钥 部分,点击 添加 .

  4. 勾选 事件推送服务API 复选框并点击 保存 。新密钥将显示在 API密钥 表中。

    14099_1.png
  5. 复制该密钥并妥善保存。

  6. 点击 保存 以应用更改。

在FortiSIEM中配置节点并获取集成所需信息

  1. 登录您的FortiSIEM管理机。

  2. 配置FortiSIEM节点:

    1. 确定接收事件的FortiSIEM节点。

      提示

      在FortiSIEM环境中,节点可以是系统的任何组件(如采集器、管理机或工作节点)。采集器负责从不同来源收集和处理数据。本集成方案通常使用采集器节点。

    2. 与采集器建立SSH连接后执行以下命令:

      htpasswd -b /etc/httpd/accounts/passwds <用户> <密码>

      变量

      说明

      用户

      具有FortiSIEM控制台访问权限的用户名。

      密码

      上述用户的密码。

      若密码包含特殊字符,建议用单引号包裹密码。

      示例

      htpasswd -b /etc/httpd/accounts/passwds JSmith1 'Password123!'

      此命令设置所需的身份验证,当API请求发送至所选节点时将自动启用。

    3. 对用户名和密码进行编码,以便后续在配置API推送事件及消息接收机器的服务URL时使用:

      1. 组合用户名和密码:用冒号( : )连接用户名和密码。例如, JSmith1:Password123! .

      2. 将组合后的字符串转换为Base64格式。

        示例结果

        SlNtaXRoMTpQYXNzd29yZDEyMyE=
    4. 构建向FortiSIEM发送消息所需的URL:

      https://<FSM节点名称>/rawupload?vendor=<供应商>&model=<型号>&reptIp=<报告IP>&reptName=<报告主机>

      提示

      该端点将由 GravityZone 用于向FortiSIEM发送数据。这是一个采用JSON格式的POST HTTP方法,除支持文本外,还可压缩为 tar , tgz , gzzip 格式。

      参数

      说明

      必填

      FSM节点名称

      用于集成的节点唯一标识符。

      厂商

      接收事件的产品名称。可选值: Bitdefender .

      模型

      用于处理事件的解析器模型。可选值: GravityZone .

      提示

      如需使用自定义解析器,请在此输入其ID。

      报告IP

      报告IP或日志来源。此处指定的值将作为报告设备填充到CMDB中。

      报告主机

      报告设备名称或发送日志的设备主机名。

      分隔符

      使用此参数将单个文件内容拆分为多个事件。若省略,每个事件将生成一个事件文件。

      可选值:[ % , 0 - 9 , a - Z ].

      若值包含其他字符,文件名将以 invalid_event_ 开头且不会被解析器处理。

      特殊URL字符需使用编码字符,例如 %0A 替代 \n ,或 %2C 替代 , .

      注意

      若型号名称含空格(如“Model 24”),必须对URL参数中的空格及其他特殊字符正确编码。

      示例

      https://127.0.0.1/rawupload?vendor=Bitdefender&model=GravityZone&reptIp=104.17.52.22&reptName=cloud.gravityzone.bitdefender.com

      配置API推送事件时,将此URL作为 url 参数值,并指定消息投递的服务URL。

配置 GravityZone 向FortiSIEM发送消息

配置 控制中心 将事件发送至该URL: https://your_web_server_hostname_or_public_IP:port/api .

事件推送服务API的所有设置均通过 setPushEventSettings 方法进行配置。有关这些设置的详细信息,请参阅 推送 .

使用您选择的API密钥,配置API推送事件及消息投递的目标服务URL:

$ curl --tlsv1.2 -sS -k -X POST \
https://CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/push \
-H 'authorization: Basic API_KEY_BASE64_ENCODED_WITH_COLON_APPENDED' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{"id":"1","jsonrpc":"2.0","method":"setPushEventSettings","params":{"serviceSettings":{"requireValidSslCertificate":false,"authorization":"Basic xxxxxxxxxx","url":"https://<FSMNodeName>/rawupload?vendor=<vendor>&model=<model>&reptIp=<reptIp>&reptName=<reptHost>"},"serviceType":"JSON","status":1,"subscribeToEventTypes":{"adcloudgz":true,"antiexploit":true,"aph":true,"av":true,"avc":true,"dp":true,"endpoint-moved-in":true,"endpoint-moved-out":true,"exchange-malware":true,"exchange-user-credentials":true,"fw":true,"hd":true,"hwid-change":true,"install":true,"modules":true,"network-monitor":true,"network-sandboxing":true,"new-incident":true,"ransomware-mitigation":true,"registration":true,"supa-update-status":true,"sva":true,"sva-load":true,"task-status":true,"troubleshooting-activity":true,"uc":true,"uninstall":true}}}'

重要提示

当使用由公共CA签名的有效服务证书时,建议设置 "requireValidSslCertificate":true 以强制验证证书。若使用自签名证书或内部CA签名的证书,请设置 "requireValidSslCertificate":false .

重要提示

请确保将 "authorization":"Basic xxxxxxxxxx" "url":" https://your_web_server_hostname_or_public_IP:port/api" 替换为服务器对应的正确值(如 config.json 文件所定义),并将 CONTROL_CENTER_APIs_ACCESS_URL API_KEY_BASE64_ENCODED_WITH_COLON_APPENDED 替换为您的 GravityZone 实例对应的正确值。

配置完成后,请等待约10分钟使设置生效,然后通过 getPushEventSettings .

$ curl --tlsv1.2 -sS -k -X POST \
https://CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/push \
-H 'authorization: Basic API_KEY_BASE64_ENCODED' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{"id":"3","jsonrpc":"2.0","method":"getPushEventSettings","params":{}}'

返回结果应如下所示:

{
  "id": "3",
  "jsonrpc": "2.0",
  "result": {
    "serviceSettings": {
      "authorization": "********",
      "requireValidSslCertificate": false,
      "url": "https://your_web_server_hostname_or_public_IP:port/api"
    },
    "serviceType": "cef",
    "status": 1,
    "subscribeToCompanies": null,
    "subscribeToEventTypes": {
      "adcloud": false,
      "antiexploit": true,
      "aph": true,
      "av": true,
      ……….
      "uninstall": true
    }
  }
}

要发送测试事件,可调用 sendTestPushEvent API方法。

$ curl --tlsv1.2 -sS -k -X POST \
https://CONTROL_CENTER_APIs_ACCESS_URL/v1.0/jsonrpc/push \
-H 'authorization: Basic API_KEY_BASE64_ENCODED' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-d '{"id":"4","jsonrpc":"2.0","method":"sendTestPushEvent","params":{"eventType": "av"}}'

返回结果应如下所示:

{
  "id": "4",
  "jsonrpc": "2.0",
  "result": {
    "computer_name": "FC-WIN7-X64-01",
    "computer_fqdn": "fc-win7-x64-01",
    "computer_ip": "10.17.46.196",
    "computer_id": "59a1604e60369e06733f8abb",
    "product_installed": "BEST",
    "malware_type": "file",
    "malware_name": "EICAR-Test-File (非病毒)",
    "file_path": "C:\\eicar0000001.txt",
    "hash": "8b3f191819931d1f2cef7289239b5f77c00b079847b9c2636e56854d1e5eff71",
    "final_status": "已删除",
    "timestamp": "2017-09-08T12:01:36.000Z",
    "companyId": "5ac8460f8a799399a78b456c",
    "module": "av",
    "_testEvent_": true
  }
}

该事件将很快出现在Syslog服务器及 server.js 输出中。