跳至主内容

无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系统。

安装连接器步骤如下:

  1. 检查先决条件。

  2. 若您使用的 GravityZone 事件推送服务版本为2025年3月27日前手动配置,请从系统中移除其文件。

  3. 将存储库添加至APT源列表。

  4. 安装DEB软件包。

    注意

    若安装DEB包时出现 因公钥不可用导致签名验证失败 错误,请下载并安装包文件的数字签名:

    curl -sS https://download.bitdefender.com/repos/gzrepos.key.asc | apt-key add -
  5. 通过bash脚本配置。

  6. 启用系统服务。

  7. 测试连接器。

  8. 配置 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而非原地升级:

  1. 将Ubuntu 24.04作为全新操作系统安装。

  2. 按照下文提供的更新安装步骤重新安装事件推送服务连接器。

此方法确保与最新连接器版本的完全兼容性,并有助于防止与过时系统组件或遗留依赖项相关的问题。

安装连接器

  1. 连接到Ubuntu 24.04服务器。

  2. Bitdefender 连接器仓库添加到APT。

    sudo echo "deb http://download.bitdefender.com/repos/deb-hydra24-evpsc/ bitdefender non-free" >> /etc/apt/sources.list
  3. 安装DEB软件包。

    sudo apt update  
    sudo apt install gz-evpsc
  4. 运行配置脚本。

    #切换到配置脚本所在路径
    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事件推送服务器转发事件。

  5. (可选)将证书路径添加到 配置 文件。

    默认情况下, config.sh 脚本会为HTTPS连接器服务器创建自签名证书。为提升安全性,可将从证书颁发机构获取的证书放入以下文件:

    /opt/bitdefender/gz-evpsc/api/config/server.key/opt/bitdefender/gz-evpsc/api/config/server.crt
  6. 启用系统服务

    systemctl enable gz-evpsc
  7. 启动系统服务

    systemctl start gz-evpsc

获取用于身份验证的安全证书

GravityZone 云平台仅向支持HTTPS的连接器发送推送事件消息。要使连接器服务通过HTTPS运行,并与 Bitdefender 云建立安全通信,需为其配置SSL/TLS证书。

默认情况下, config.sh 脚本会为HTTPS连接器服务器创建自签名证书。您还可以通过以下方式获取该服务的SSL/TLS证书:

  1. 从受信任的公共证书颁发机构(CA)获取

    注意

    我们强烈推荐此方法,因为这将使我们的云服务器能正确验证连接器URL的身份,避免中间人攻击。

  2. 从公司内部PKI获取

    注意

    我们不推荐此方法,因为 Bitdefender 公共云服务无法验证由私有CA签名的证书。

  3. 创建自签名证书

    注意

    我们强烈反对此选项。该方法不提供任何证书验证机制,且会使通信暴露于中间人攻击风险中。仅限测试环境使用,切勿用于生产环境。

接下来,您需要 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://your_web_server_hostname_or_public_IP:port/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