从 GravityZone 云平台向缺乏HTTPS监听器的SIEM发送事件
本文旨在帮助您在 GravityZone 与不具备HTTPS事件监听功能的SIEM解决方案之间
Bitdefender GravityZone ——该云平台以CEF和JSON消息标准提供安全事件警报,这些警报通过事件推送服务发送。
GravityZone API 采用JSON-RPC 2.0协议规范(详见 此处 )。有关 GravityZone API的详细信息,请参阅 现有文档 .
若您的SIEM系统无HTTP/HTTPS监听功能但支持Syslog服务,需安装 GravityZone 事件推送服务连接器。
该连接器通过POST方法接收来自 GravityZone 事件推送服务的认证加密消息,解析后转发至本地或远程Syslog服务器,最终由Syslog服务器将消息馈送至SIEM系统。
安装步骤如下:
-
检查先决条件
-
若您曾手动安装过 GravityZone 事件推送服务且版本日期早于2025年3月27日,请从系统中移除相关文件。
-
将存储库添加至APT源列表
-
安装DEB软件包
注意
若在安装DEB包时出现
“因公钥不可用导致签名验证失败”错误提示,请下载并安装该软件包文件的数字签名:curl -sS https://download.bitdefender.com/repos/gzrepos.key.asc | apt-key add -
-
通过bash脚本进行配置。
-
启用系统服务。
-
测试连接器。
-
配置 GravityZone 以向SIEM发送消息。
检查先决条件
在继续之前,您需要满足以下先决条件:
-
Linux基础知识
-
GravityZone 云解决方案
-
一个 GravityZone 涵盖事件推送服务API的API密钥
-
Ubuntu 24.04 LTS服务器,配置如下:
-
硬件:
-
1个CPU
-
2 GB内存
-
1 Gbit虚拟网卡
-
80 GB硬盘
-
此配置可支持多达15000个终端的环境。CPU和网络使用量将随终端数量成比例增加。
重要
接收事件推送的SIEM需要为GravityZone事件推送服务器分配一个公共IP地址以转发事件。
-
对于现有Ubuntu 20.04 LTS服务器的集成
您需要全新安装Ubuntu 24.04,而不是就地升级:
-
全新安装Ubuntu 24.04操作系统。
-
按照下文提供的更新安装步骤重新安装事件推送服务连接器。
此方法确保与最新连接器版本的完全兼容性,并有助于防止与过时系统组件或遗留依赖项相关的问题。
安装连接器
-
连接到Ubuntu 24.04服务器。
-
将 Bitdefender 连接器仓库添加至APT。
sudo echo "deb http://download.bitdefender.com/repos/deb-hydra24-evpsc/ bitdefender non-free" >> /etc/apt/sources.list
-
安装DEB包。
sudo apt update sudo apt install gz-evpsc
-
运行配置脚本。
#切换至配置脚本所在路径 cd /opt/bitdefender/gz-evpsc #使用sudo权限运行脚本 sudo ./config.sh <端口> <系统日志端口> <传输协议> <目标地址> <认证> <配置文件名>
参数
说明
<端口>事件推送服务访问HTTPS连接器服务器所用的端口。
<系统日志端口>HTTPS连接器服务器向SIEM发送数据所用的端口。
<传输协议>数据传输使用的协议。
<目标地址>SIEM的IP地址。
<认证>通过API访问SIEM时使用的认证密钥。
该密钥必须不同于 GravityZone 的API认证密钥。
<配置文件名>配置
文件的名称。示例
cd /opt/bitdefender/gz-evpsc sudo ./config.sh 3200 514 Tcp 127.0.0.1 'Basic dGVzdDp0ZXN0' config.json
注意
连接器需要分配一个公共IP地址,以便GravityZone事件推送服务器将事件转发至该地址。
-
(可选)将证书路径添加到
配置文件中。默认情况下,
config.sh脚本会为HTTPS连接器服务器创建自签名证书。为提高安全性,可将从证书颁发机构获取的证书放入以下文件:/opt/bitdefender/gz-evpsc/api/config/server.key /opt/bitdefender/gz-evpsc/api/config/server.crt
-
启用系统服务
systemctl enable gz-evpsc
-
启动系统服务
systemctl start gz-evpsc
获取用于认证的安全证书
GravityZone 云平台仅向支持HTTPS的连接器发送推送事件消息。要使连接器服务通过HTTPS运行,并与 Bitdefender 云建立安全通信,需配置SSL/TLS证书。 默认情况下,
config.sh
脚本会为HTTPS连接器服务器创建自签名证书。您还可以通过以下方式获取该服务的SSL/TLS证书:
从受信任的公共证书颁发机构(CA)获取
-
注意
我们强烈推荐此方法,因为它能使我们的云服务器正确验证连接器URL的身份,避免中间人攻击。
从公司内部PKI获取
-
注意
我们不推荐此方法,因为
Bitdefender 公共云服务无法验证由私有CA签发的证书。
-
创建自签名证书
注意
我们强烈建议不要选择此选项。它不提供任何证书验证方法,且会使通信暴露于中间人攻击风险中。此方法仅应用于测试目的,切勿在生产环境中使用。
后续操作中,您将需要由您所选CA签发的
sslkey.pem
和
ssl.cer
/
ssl.crt
文件。
测试连接器
使用以下HTTPS消息示例测试您刚配置的连接器:
-
事件推送服务请求头
Authorization: Basic xxxxxxxxxxxxxx
-
事件推送服务载荷
{ "cef": "0", "events": [ "CEF:0|Bitdefender|GravityZone|6.4.08|70000|Registration|3|BitdefenderGZModule=registrationdvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2", "CEF:0|Bitdefender|GravityZone|6.4.0-8|35|Product ModulesStatus|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2", "CEF:0|Bitdefender|GravityZone|6.4.0-8|35|Product ModulesStatus|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2" ] } -
使用以下
cURL命令将载荷发送至收集器服务:curl -k -H 'Authorization: Basic xxxxxxxxxxxxxxxxxx' \ -H "Content-Type: application/json" \ -d '{"cef": "0","events": ["CEF:0|Bitdefender|GravityZone|6.4.08|70000|Registration|3|BitdefenderGZModule=registrationdvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2","CEF:0|Bitdefender|GravityZone|6.4.0-8|35|Product ModulesStatus|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2","CEF:0|Bitdefender|GravityZone|6.4.0-8|35|产品模块状态|5|BitdefenderGZModule=模块 dvchost=测试终端asdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2"]}' \ https://您的Web服务器主机名或公网IP:端口/api重要提示
将授权头和URL替换为上述
config.json文件中配置的内容。事件应出现在您定义的syslog服务器及运行的
server.js.
配置 GravityZone 向SIEM发送消息
HTTPS收集器服务已启动并监听消息,您现在可以
配置
控制中心
将事件发送至上述定义的URL:
https://您的Web服务器主机名或公网IP:端口/api
.
事件推送服务API的所有设置均通过
setPushEventSettings
方法配置。有关这些设置的详细信息,请参阅
推送
.
重要提示
-
事件推送服务要求第三方平台上运行的HTTP收集器支持TLS 1.2或更高版本的SSL,以确保事件成功发送。
-
以下IP地址必须加入白名单,以确保GravityZone事件推送服务与SIEM/HTTP收集器之间的端到端通信:
-
34.148.142.174
-
34.126.111.12
-
34.48.74.208
-
35.198.138.109
-
35.246.228.213
-
35.234.118.64
-
34.159.83.241
-
34.159.47.15
-
34.159.150.228
-
34.85.152.87
-
34.85.155.173
-
34.90.162.143
-
34.91.218.129
-
35.204.90.200
-
34.90.110.196
-
34.147.0.186
-
34.129.193.31
-
-
HTTP收集器必须对从上述IP地址接收到的推送事件返回
HTTP 200 OK状态码(若消息接收成功)。任何其他响应或无响应均视为错误。 -
从事件推送接收数据的SIEM和NodeJS连接器需为GravityZone事件推送服务器分配一个公共IP地址用于转发事件。
使用您选择的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://your_web_server_hostname_or_public_IP:port/api"},"serviceType":"cef","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": "2",
"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 (not a virus)",
"file_path": "C:\\eicar0000001.txt",
"hash": "8b3f191819931d1f2cef7289239b5f77c00b079847b9c2636e56854d1e5eff71",
"final_status": "deleted",
"timestamp": "2017-09-08T12:01:36.000Z",
"companyId": "5ac8460f8a799399a78b456c",
"module": "av",
"_testEvent_": true
}
}
该事件应会很快出现在Syslog服务器及
server.js
输出中。
检查日志文件
日志文件位于:
/opt/bitdefender/var/log/gz-evpsc/log.txt