Wazuh连接外部的API

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
posted @ 2020-11-25 17:32  石Stone头  阅读(444)  评论(0编辑  收藏  举报