从 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服务器,进而将消息传输至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
-
2GB内存
-
1Gbit虚拟网卡
-
80GB硬盘
-
该配置可支持最多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签名的证书。
-
创建自签名证书
注意
我们强烈反对此选项。它不提供任何证书验证方法,且会使通信暴露于中间人攻击风险中。此方法仅应用于测试目的,切勿在生产环境中使用。
后续操作中,您将需要
sslkey.pem
以及
ssl.cer
/
ssl.crt
文件,这些文件应由您选择的CA签署。
测试连接器
使用以下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|Product ModulesStatus|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdadBitdefenderGZComputerFQDN=test.example.com dvc=192.168.1.2"]}' \ https://your_web_server_hostname_or_public_IP:port/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测试文件(非病毒)",
"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
输出中。
检查日志文件
日志文件路径:
/opt/bitdefender/var/log/gz-evpsc/log.txt