FortiSIEM
集成 GravityZone 云端与FortiSIEM集成
FortiSIEM可通过HTTP(S) POST接收、解析并存储JSON格式事件。作为 Bitdefender 合作伙伴,您可将 GravityZone 与FortiSIEM集成,通过使用 GravityZone API和FortiSIEM节点。借助该服务,您可以将数据从 GravityZone 控制中心 直接发送至云端或本地环境。
注意
此配置采用FortiSIEM提供的默认解析器。如需手动创建不同解析器,请参阅 知识库文章 .
前提条件
-
需持有激活的FortiSIEM许可证,并包含支持第三方集成的必要模块。
-
需具备FortiSIEM控制台的管理员权限,以配置数据源并设置集成。
-
需安装配置带有FortiSIEM采集器代理的代理程序,用于接收GravityZone数据。
该代理将促进两系统间的数据采集与集成。
-
需在环境中部署并运行FortiSIEM实例。
该实例用于配置和管理与GravityZone的集成,并处理分析传入数据。
集成步骤
在 GravityZone 控制中心启用事件推送API
-
登录 GravityZone 控制中心 .
-
进入 我的账户 .
-
在 API密钥 部分,点击 添加 .
-
勾选 事件推送服务API 复选框并点击 保存 。新密钥将显示在 API密钥 表中。
-
复制该密钥并妥善保存。
-
点击 保存 以应用更改。
在FortiSIEM中配置节点并获取集成所需信息
-
登录您的FortiSIEM管理机。
-
配置FortiSIEM节点:
-
确定接收事件的FortiSIEM节点。
提示
在FortiSIEM环境中,节点可以是系统的任何组件(如采集器、管理机或工作节点)。采集器负责从不同来源收集和处理数据。本集成方案通常使用采集器节点。
-
与采集器建立SSH连接后执行以下命令:
htpasswd -b /etc/httpd/accounts/passwds <用户> <密码>
变量
说明
用户具有FortiSIEM控制台访问权限的用户名。
密码上述用户的密码。
若密码包含特殊字符,建议用单引号包裹密码。
示例
htpasswd -b /etc/httpd/accounts/passwds JSmith1 'Password123!'
此命令设置所需的身份验证,当API请求发送至所选节点时将自动启用。
-
对用户名和密码进行编码,以便后续在配置API推送事件及消息接收机器的服务URL时使用:
-
组合用户名和密码:用冒号(
:)连接用户名和密码。例如,JSmith1:Password123!. -
将组合后的字符串转换为Base64格式。
示例结果
SlNtaXRoMTpQYXNzd29yZDEyMyE=
-
-
构建向FortiSIEM发送消息所需的URL:
https://<FSM节点名称>/rawupload?vendor=<供应商>&model=<型号>&reptIp=<报告IP>&reptName=<报告主机>
提示
该端点将由 GravityZone 用于向FortiSIEM发送数据。这是一个采用JSON格式的POST HTTP方法,除支持文本外,还可压缩为
tar,tgz,gz及zip格式。参数
说明
必填
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
输出中。