Wazuh連線外部的API
阿新 • • 發佈:2020-11-25
7、Wazuh連線外部的API
該整合服務允許Wazuh連線到外部的API和報警工具
7.1、整合元件配置
要開始定製整合, 必須在管理器中修改ossec.conf檔案(包括塊整合元件)。可以使用以下引數:
name:執行整合的指令碼的名稱。對於像本文討論的那樣的定製整合,名稱必須以“ custom-”開頭。
hook_url:由軟體API提供的URL,用於連線到API本身。它的使用是可選的,因為它可以包含在指令碼中。
api_key:使我們能夠使用它的API的金鑰。出於相同的原因,hook_url的使用也是可選的,因此它的使用也是可選的。
level:設定級別過濾器,以使指令碼不會接收低於特定級別的警報。
rule_id:設定警報識別符號的過濾器。
group:設定警報組過濾器。
event_location:設定警報源過濾器。
alert_format:指示指令碼以JSON格式接收警報(推薦)。預設情況下,指令碼將以full_log格式接收警報。
<integration>
<name>custom-integration</name>
<hook_url>WEBHOOK</hook_url>
<level>10</level>
<group>multiple_drops|authentication_failures</group>
<alert_format>json</alert_format>
</integration>
例如:
<ossec_config> <integration> <name>custom-opapi-send-weixin</name> <level>12</level> <alert_format>json</alert_format> </integration>
7.2、建立整合指令碼
整合指令碼的第一行必須指示其直譯器,否則Wazuh將不知道如何讀取和執行指令碼。
#!/usr/bin/env python
該指令碼必須檢查其引數,因為它將接收來自它們的配置選項。第一個引數包括包含警報的檔案的位置。第二個引數包含api_key,第三個引數包含hook_url選項。如果上述均未指示,則引數將被接收為空。
alert_file = sys.argv[1]
api_key = sys.argv[2]
hook_url = sys.argv[3]
下一步是讀取第一個引數中指示的檔案的內容,並從警報中提取與整合相關的欄位。如果在alert_format選項中使用了JSON,則該資訊必須作為JSON物件載入。
alert_level = alert_json['rule']['level']
description = alert_json['rule']['description']
我們建議您在開始開發整合之前檢查檔案/logs/alerts/alerts.json,以便找到要解釋的警報的格式。
例如:
cd /var/ossec/integrations && ls
custom-opapi-send-weixin
custom-opapi-send-weixin.py
cat custom-opapi-send-weixin.py
#!/usr/bin/env python3
import sys
import json
import requests
# Read configuration parameters
alert_file = open(sys.argv[1])
hook_url="http://opapi.qq.com/weixin/gaojing/"
# Read the alert file
alert_json = json.loads(alert_file.read())
alert_file.close()
# Extract issue fields
remark = alert_json['agent']['ip']
description = alert_json['rule']['description']
full_log = alert_json['full_log']
msg_data={
"sendto":"ID",
"status":"PROBLEM",
"title":"%s" %description,
"remark":"%s" %remark,
"content":"%s" %full_log,
}
headers = {'Content-Type': 'application/json', 'Authorization': 'Token b1e6e7b5'}
requests.post(url=hook_url, headers=headers, data=json.dumps(msg_data))
sys.exit(0)
7.3、修改指令碼屬性
chmod 750 /var/ossec/integrations/custom-opapi-send-weixin*
chown root:ossec /var/ossec/integrations/custom-opapi-send-weixin*
7.4、重啟wazuh-manager服務
service wazuh-manager restart