跳至主内容

FortiSIEM

集成 GravityZone 与FortiSIEM的云端集成

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

注意

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

要求

  • 需持有FortiSIEM有效许可证及支持第三方集成的必要模块。

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

  • 已安装配置带有FortiSIEM收集器代理的客户端,用于接收来自GravityZone的数据。

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

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

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

集成步骤

GravityZone 控制中心

  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节点名称

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

      vendor

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

      model

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

      提示

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

      reptIp

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

      reptHost

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

      separator

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

      可能取值:[ % , 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

      将此URL作为 url 参数值,用于配置API推送事件及消息投递目标服务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测试文件(非病毒)",
    "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 输出中。