跳至主内容

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

安装步骤如下:

  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

      • 2 GB内存

      • 1 Gbit虚拟网卡

      • 80 GB硬盘

    此配置可支持多达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证书: 从受信任的公共证书颁发机构(CA)获取

  1. 注意

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

    从公司内部PKI获取

  2. 注意

    我们不推荐此方法,因为

    Bitdefender 公共云服务无法验证由私有CA签发的证书。

  3. 创建自签名证书

    注意

    我们强烈建议不要选择此选项。它不提供任何证书验证方法,且会使通信暴露于中间人攻击风险中。此方法仅应用于测试目的,切勿在生产环境中使用。

后续操作中,您将需要由您所选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