开源主机安全平台企业微信、飞书机器人预警

admin 2024年7月5日14:10:07评论5 views字数 2584阅读8分36秒阅读模式
通过后台获取到热心朋友留言,说开源的主机安全平台要是能和企业微信、钉钉、飞书联动告警就好了,本期分享这个需求的实现,希望能够帮助到感兴趣的朋友。

Wazuh使用企业微信机器人预警

进入Wazuh服务器路径:
vim /var/ossec/etc/ossec.conf<integration>    <name>custom-wechat</name>    <hook_url>WEBHOOK</hook_url>    <level>12</level>    <api_key>APIKEY</api_key> <!-- Replace with your external service API key -->    <alert_format>json</alert_format>  </integration>

只有name属性是必填的,该参数值是自定义脚本文件的文件名

自定义脚本必须要以"custom-"作为文件名的前缀,可以是shell或python脚本文件

自定义脚本必须读取和解析处理命令行参数,其中参数1对应着包含报警消息内容的文件、参数2对应着api_key的值、参数3对应着hook_url的值。

Wazuh服务器:cat /var/ossec/integrations/custom-wechat

#!/usr/bin/env python# -*- coding: utf-8 -*-import requestsimport jsonimport sysimport wechat_work_webhook# 替换为你的企业微信webhook URLwebhook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key="wechat = wechat_work_webhook.connect(webhook_url)# 读取配置参数alert_file = open(sys.argv[1])# 读取告警文件alert_json = json.loads(alert_file.read())alert_file.close()alert_level = alert_json['rule']['level']ruleid = alert_json['rule']['id']description = alert_json['rule']['description']agentid = alert_json['agent']['id']agentname = alert_json['agent']['name']#wechat.markdown(u'<font color="warning">告警</font> n'+"HostName: "+agentname+"n"+"AlertLevel: "+str(alert_level)+"n"+"Description: "+description)wechat.markdown(u'<font color="warning">告警</font> n'+u'主机名: '+agentname+"n"+u"告警级别: "+str(alert_level)+"n"+u"告警内容: "+description)#wechat.text('test',['@all'])

利用python脚本发送告警信息到飞书机器人

#!/usr/local/bin/python3# -*- coding: utf-8 -*-import sysimport reimport requestswebhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxx"# 使用一个变量记录当前的日志段落current_log = ""for line in sys.stdin:    # 将每一行添加到当前的日志段落    current_log += line    # 检查是否到达一个新的日志段落的末尾    if line.strip() == "":        # 解析日志段落        match = re.search(r'Rule: d+ (level (12|13|14|15))', current_log)        if match:            alert_level = match.group(1)            # 发送到飞书机器人            payload = {                "msg_type": "text",                "content": {                    "text": f"New Alert (Level {alert_level}):n{current_log}"                }            }            headers = {"Content-Type": "application/json"}            response = requests.post(webhook_url, json=payload, headers=headers)            # 打印HTTP响应码和响应内容(用于调试)            print(f"HTTP Response Code: {response.status_code}")            print(f"HTTP Response Content: {response.text}")            if response.status_code == 200:                print("Notification sent successfully.")            else:                print(f"Failed to send notification. Status code: {response.status_code}")        # 重置当前的日志段落        current_log = ""

将编写好的脚本执行以下命令,放到后台执行。

nohup tail -n 0 -F /var/ossec/logs/alerts/alerts.log | python3 process_log.py > output.log 2>&1 & disown

开源主机安全平台企业微信、飞书机器人预警

开源主机安全平台企业微信、飞书机器人预警

其实各位朋友关于机器人告警的3点要素您一旦掌握了,只要你的安全工具具备API接口,就可以完成告警推送,比如Nessus、AWVS、蜜罐等各种。甚至是您花钱买的“盒子”都可以完成这个需求。
其中参数1对应着包含报警消息内容的文件、参数2对应着api_key的值、参数3对应着hook_url的值。
剩下的就是需要我们各位网安人,举一反三。留言的朋友希望您看到了,点个赞,也欢迎更多的朋友将公众号推送到有需要的朋友那。大家一起学习,一起进步。

原文始发于微信公众号(三沐数安):开源主机安全平台企业微信、飞书机器人预警

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月5日14:10:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   开源主机安全平台企业微信、飞书机器人预警http://cn-sec.com/archives/2921868.html

发表评论

匿名网友 填写信息