无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
-
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 <端口> <系统日志端口> <传输协议> <目标地址> <认证方式> <配置文件名>
参数
描述
<PORT>事件推送服务用于访问HTTPS连接器服务器的端口。
<SYSLOGPORT>HTTPS连接器服务器向SIEM发送数据所使用的端口。
<TRANSPORT>数据传输所使用的协议。
<TARGET>SIEM的IP地址。
<AUTH>通过API访问SIEM时用于身份验证的密钥。
该密钥必须不同于 GravityZone API认证密钥。
<CONFIG_FILENAME>配置
文件的名称。示例
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-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