震撼首发!!!Syslog2Bot 一款轻量级安全设备告警推送工具
好的,我现在需要帮用户总结这篇文章的内容,控制在100字以内。首先,我得仔细阅读文章,了解它的主要内容。 文章主要介绍了一个名为Syslog2Bot的工具,它用于接收Syslog日志并推送告警信息。文章分为背景与痛点、解决方案、技术栈、快速部署、配置流程、解析方式、筛选策略以及后续规划几个部分。 背景部分提到,企业在安全运营中面临设备告警推送不及时、响应慢和告警噪声严重的问题。解决方案部分详细介绍了Syslog2Bot的功能,包括接收Syslog日志、灵活解析、精准筛选和钉钉推送等。技术栈使用了Go和Vue等技术,并支持跨平台部署。 快速部署部分说明了在Windows和macOS系统上的安装步骤,配置流程则包括添加设备、解析模板、筛选策略和钉钉机器人设置等。解析方式分为Syslog+JSON和分隔符两种,筛选策略支持多种操作符,并有去重功能。 最后,项目地址在GitHub上,并计划增加对更多平台的支持和分析功能。 现在,我需要将这些信息浓缩到100字以内。重点应放在工具名称、功能以及解决的问题上。可能的结构是:工具名称+主要功能+解决的问题+技术特点或优势。 例如:“ Syslog2Bot 是一款跨平台 Syslog 日志接收与告警推送系统,支持多种日志解析方式及钉钉推送,帮助用户实时监控安全设备告警并进行精准筛选与去重,提升企业安全运营效率。” 这样既涵盖了工具名称、功能、解决的问题以及带来的好处,控制在100字以内。 </think> Syslog2Bot 是一款跨平台 Syslog 日志接收与告警推送系统,支持多种日志解析方式及钉钉推送,帮助用户实时监控安全设备告警并进行精准筛选与去重,提升企业安全运营效率。 2026-3-16 08:54:34 Author: www.freebuf.com(查看原文) 阅读量:0 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

1.1 背景与痛点

在政务、企业内网等安全运营环境中,部分安全设备(如防火墙、IDS、WAF、主机安全等)每天产生大量告警信息,但这些设备普遍缺乏实时告警推送能力,导致安全团队面临以下核心问题:

  • 安全设备缺乏告警推送功能:部分安全设备,只提供本地日志存储,无法直接对接即时通讯工具(如钉钉、企业微信),运维人员需要频繁登录设备查看,响应滞后。
  • 重保期间告警响应慢:重大活动保障期间,需要7x24小时盯着设备告警,稍有疏忽就可能漏掉关键告警
  • 外发告警噪声严重:由于外发日志无法进行筛选和去重,相同事件反复推送,导致消息列表过长运营人员检索起来困难。

1.2 解决方案

Syslog2Bot 是一款跨平台的 Syslog 日志接收与告警推送系统,核心功能:

  • Syslog接收:UDP/TCP 5140端口接收日志,兼容标准Syslog协议
  • 灵活解析:支持JSON、分隔符、正则等多种解析方式
  • 精准筛选:多条件组合筛选,支持告警去重
  • 钉钉推送:实时推送告警到钉钉群机器人
  • 本地存储:SQLite数据库存储,支持日志清理策略

1.3 技术栈

  • 后端:Go + Wails v2
  • 前端:Vue 3 + TypeScript + Element Plus
  • 数据库:SQLite (纯 Go 实现)
  • 桌面框架:Wails

2.1 快速部署

Windows系统:

  1. 下载 Syslog2Bot.exe
  2. 双击运行即可,无需安装

macOS系统:

  1. 下载 Syslog2Bot.app
  2. 首次运行:右键 → 打开 → 仍要打开
  3. 如果提示"已损坏,无法打开",执行以下命令:
xattr -cr /Applications/Syslog2Bot.app

2.2 配置流程

  1. 添加设备:进入「设备管理」,添加安全设备信息(名称、IP地址),用于标识日志来源。
  2. 配置解析模板:进入「日志解析」,选择预设模板或手动配置解析参数。系统提供云锁、天眼等预设模板,一键配置即可使用。
  3. 配置筛选策略:进入「筛选策略」,设置告警过滤规则。可以按威胁等级、攻击类型、目标IP等条件筛选,避免告警风暴。
  4. 配置钉钉机器人:
    • 在钉钉群中添加自定义机器人,获取Webhook地址
    • 进入「机器人配置」,添加机器人信息
  5. 创建告警策略:进入「数据推送」,创建告警策略,关联筛选策略、机器人和消息模板。
  6. 启动服务:在「系统状态」页面启动Syslog服务,配置安全设备发送Syslog到本机5140端口。

3.1 Syslog + JSON 解析

适用场景:日志格式为 Syslog头部 + JSON内容

日志示例:

<142>Mar  5 14:41:44 hostname SyslogWriter[123]: {"attackIp":"192.168.1.100","threatType":"暴力破解","level":3,"description":"SSH暴力破解攻击"}

配置方法:

  • 解析类型:Syslog + JSON
  • 头部正则:<(?P<priority>\d+)>(?P<timestamp>\w+\s+\d+\s+[\d:]+)
  • 字段映射:自动提取JSON中的字段

解析结果:

{"priority": "142","timestamp": "Mar  5 14:41:44","attackIp": "192.168.1.100","threatType": "暴力破解","level": 3,"description": "SSH暴力破解攻击"}

值转换功能:可以将数字代码转换为可读文本

{"level": {"1": "低危","2": "中危","3": "高危","4": "危急" }}

3.2 分隔符解析(智能分隔符)

适用场景:日志使用特殊分隔符,且同一设备有多种告警类型

日志示例:

<142>Mar  5 16:28:31 hostname SyslogWriter[123]: webids_alert|!serial001|!rule_123|!SQL注入攻击|!...

配置方法:

  • 解析类型:智能分隔符
  • 分隔符:\|!
  • 类型字段位置:0(第一个字段标识告警类型)
  • 跳过头部:开启(跳过Syslog头部)

解析逻辑说明: 天眼设备的Syslog日志包含多种告警类型(webids_alert、ips_alert、ioc_alert、webshell_alert),每种类型的字段排列顺序不同。智能分隔符解析通过以下逻辑处理:

  1. 识别告警类型:根据类型字段位置(默认第0个字段)识别当前日志属于哪种告警类型
  2. 选择子模板:根据告警类型自动选择对应的子模板配置,每个子模板定义了关键字段的位置索引
  3. 字段映射处理:
    • 原始字段按分隔符切分后,根据子模板中定义的位置索引提取对应值
    • 将提取的值存入统一的标准化字段名(alertName、attackIP、victimIP、alertTime、severity、attackResult)

子模板配置示例:

{"webids_alert": {"alertNameField": 3,"attackIPField": 6,"victimIPField": 8,"alertTimeField": 4,"severityField": 10,"attackResultField": 26 },"ips_alert": {"alertNameField": 3,"attackIPField": 6,"victimIPField": 8,"alertTimeField": 4,"severityField": 10,"attackResultField": 24 },"ioc_alert": {"alertNameField": 18,"attackIPField": 6,"victimIPField": 8,"alertTimeField": 10,"severityField": 12,"attackResultField": -1 }}

处理流程示意:

原始日志: webids_alert|!field_1|!field_2|!SQL注入|!field_4|!...|!192.168.1.100|!...              
↓识别类型: webids_alert              
↓选择子模板: webids_alert配置              
↓字段提取映射:  
 field_3 → alertName  = "SQL注入"  
 field_6 → attackIP   = "192.168.1.100"  
 field_8 → victimIP   = "目标IP"  
 field_4 → alertTime  = "告警时间"  
 field_10 → severity   = "威胁等级"              
↓输出标准化字段供筛选和推送使用

支持的告警类型:

  • webids_alert:网页漏洞利用告警
  • ips_alert:入侵防御告警
  • ioc_alert:威胁情报告警
  • webshell_alert:Webshell告警

3.3 筛选策略详解

为什么需要筛选策略? 安全设备每天可能产生成千上万条日志,如果全部推送会造成告警疲劳。筛选策略可以精准过滤,只推送需要关注的告警。

支持的操作符:

  • ==:等于
  • !=:不等于
  • contains:包含
  • in:在列表中
  • regex:正则匹配
  • = < <=:数值比较

实战配置示例: 场景1:只推送高危及以上告警

字段:level操作符:in值:高危,危急

场景2:过滤内网IP攻击

字段:attackIp操作符:regex值:^(?!10\.|172\.(1[6-9]|2[0-9]|3[01])\.|192\.168\.).*

场景3:多条件组合

条件1:level in "高危,危急"条件2:attackResult == "成功"逻辑:AND

告警去重功能: 同一攻击在短时间内可能产生大量重复告警,开启去重后,在指定时间窗口内相同告警只推送一次。 配置项:

  • 去重开关:是否启用去重
  • 去重窗口:去重时间范围(秒)
  • 去重依据:设备ID + 策略ID + 攻击IP + 威胁类型 + 事件描述

告警推送效果

钉钉消息示例:

 安全告警告警时间:2024-03-15 10:30:00设备名称:云锁-生产服务器威胁类型:SSH暴力破解攻击者IP:203.0.113.50威胁等级:高危攻击结果:失败描述:检测到SSH暴力破解攻击,已自动拦截

项目地址

GitHub:https://github.com/Jach1n/Syslog2Bot

问题反馈

使用过程中遇到问题,欢迎提交 Issue:

  • 功能建议
  • Bug反馈
  • 设备适配需求

后续规划

  • 多平台告警支持(企业微信、飞书、邮件)
  • 日志统计分析
  • 告警聚合功能
  • 支持更多安全设备

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/es/473956.html
如有侵权请联系:admin#unsafe.sh