基于容器化流分析的高PPSDDoS攻击检测与告警系统及方法与流程
本发明涉及网络安全,尤其涉及基于容器化流分析的高pps ddos攻击检测与告警系统及方法。
背景技术:
1、随着数据中心网络带宽的不断提升,针对公网ip地址的大流量ddos攻击日益频繁,其中高pps(每秒数据包数)攻击由于其数据包小、数量多的特点,极易造成网络出口拥塞和服务器瘫痪。目前,主流的网络流量监控与ddos攻击检测系统主要基于netflow、sflow等流协议采集数据,结合日志分析工具进行告警,但普遍存在以下技术缺陷:
2、系统部署复杂,采集、存储、告警、通知各环节需要大量胶水代码进行衔接,缺乏一体化部署方案,运维成本高;
3、传统流数据处理方式数据量巨大,运维人员需手动登录多个系统查询分析,攻击响应延迟高,从攻击发生到定位目标往往需要数十分钟甚至数小时;
4、告警规则僵化,采用固定阈值无法区分正常业务突增与真实攻击,且缺乏有效的白名单排除机制,容易产生大量误报,引发告警风暴;
5、告警信息粗放,仅能提示存在流量异常,无法提供攻击来源、攻击目标、协议类型、流量大小、影响范围等详细上下文信息,运维人员无法快速制定处置策略。
6、现有技术中,虽然有基于elk栈(elasticsearch、logstash、kibana)结合elastiflow进行流量分析的方案,但这些方案大多停留在数据可视化层面,未针对高ppsddos攻击的特点进行深度优化,也未实现自动化的详情补全和精准告警,无法满足大型数据中心网络出口的实时检测需求。
技术实现思路
1、发明目的:本发明的目的在于提供基于容器化流分析的高pps ddos攻击检测与告警系统及方法;能够解决现有技术中ddos攻击检测部署复杂、响应延迟高、误报率高、告警信息不完整的问题。
2、技术方案:为解决上述技术问题,根据本发明的一个方面,更具体的说是基于容器化流分析的高pps ddos攻击检测与告警系统,包括:流量采集与处理组件、数据存储与可视化组件、告警引擎组件,以及告警执行模块和双重白名单过滤模块:
3、所述流量采集与处理组件通过docker compose容器化编排,采用elastiflowlogstash容器,开启6343/udp端口接收网络设备发送的sflow流数据,将流数据解码映射为标准的elasticsearch文档结构,并通过环境变量将jvm堆内存设置为4g;
4、所述数据存储与可视化组件包括elasticsearch容器和kibana容器,elasticsearch容器开启安全认证并挂载宿主机数据卷实现数据持久化存储,kibana容器提供可视化查询界面;
5、所述告警引擎组件采用elastalert2容器,挂载自定义规则目录和脚本目录,核心规则采用metric_aggregation类型,用于对5分钟时间窗口内的目的ip进行网络数据包总数的聚合计算,并在累计数据包数超过阈值时触发告警;
6、所述告警执行模块为python告警脚本,在elastalert2触发告警后被调用,接收目的ip和聚合数据包总数两个关键变量,向elasticsearch进行二次查询以补全攻击上下文信息,并生成详细告警邮件发送至邮箱服务器;
7、所述双重白名单过滤模块分别部署在告警引擎组件和告警执行模块中,告警引擎组件在elasticsearch查询层面通过must_not语句排除白名单ip,告警执行模块在脚本入口处再次校验白名单ip,阻断误报邮件的发。
8、更进一步,所述elastalert2的核心规则配置包括:
9、索引匹配规则:匹配elastiflow-*索引;
10、聚合窗口配置:buffer_time.minutes设置为5,即5分钟;
11、聚合键配置:destination.ip即目的ip;
12、聚合指标配置:network.packets的sum值,即总包数;
13、阈值配置:max_threshold设置为80000000,即8000万包/5分钟;
14、过滤白名单:在elasticsearch查询层面通过must_not排除特定目的ip;
15、重告警抑制配置:realert.minutes设置为1,即1分钟内不重复告警。
16、更进一步,所述python告警脚本补全的攻击上下文信息包括:源ip地址列表、源端口范围、目的端口、协议类型、累计字节数、平均mbps带宽、地理位置信息、as号、采集设备信息。
17、更进一步,所述python告警脚本自动将5分钟累计字节数换算为平均mbps带宽,换算公式为:平均mbps=(累计字节数×8)/(5×60×1000000)。
18、更进一步,所述系统通过dockercompose实现一键部署,运维人员仅需修改elasticsearch安全密码、邮箱smtp配置和白名单ip列表即可完成上线。
19、根据本发明的另一方面,提供基于容器化流分析的高pps ddos攻击检测与告警方法,该方法基于以上所述的基于容器化流分析的高pps ddos攻击检测与告警系统实现,包括以下步骤:
20、s1、容器化部署:通过docker compose编排启动elastiflow logstash、elasticsearch、kibana、elastalert2四个容器,并完成基础配置;
21、s2、流量采集与传输:网络设备以指定采样率生成sflow流数据并发送至elastiflow logstash容器的6343/udp端口,logstash将流数据解码为标准elasticsearch文档后写入elasticsearch;
22、s3、数据存储与可视化:elasticsearch对接收的流数据进行分布式存储,kibana提供可视化界面供运维人员查询分析;
23、s4、聚合告警检测:elastalert2按照预设的5分钟聚合窗口,对每个目的ip的网络数据包总数进行聚合计算,当某一目的ip的5分钟累计数据包数超过8000万阈值时,触发告警并调用python告警脚本;
24、s5、双重白名单过滤:首先由elastalert2在查询阶段排除白名单ip,再由python告警脚本在执行阶段再次校验白名单ip,若命中白名单则终止流程;
25、s6、攻击详情补全:python告警脚本向elasticsearch查询该目的ip在5分钟窗口内的所有流记录,提取并整理攻击上下文信息;
26、s7、告警通知:python告警脚本生成包含完整攻击信息的告警邮件,通过邮箱服务器发送给运维人员
27、更进一步,所述步骤s1中,基础配置包括:设置elasticsearch安全认证密码、配置elastalert2的自定义规则目录和脚本目录、配置python告警脚本的smtp邮箱参数和白名单ip列表。
28、更进一步,所述步骤s2中,网络设备sflow采样率为1:100000。
29、更进一步,所述步骤s6中,攻击上下文信息包括:源ip地址列表、源端口范围、目的端口、协议类型、累计字节数、平均mbps带宽、地理位置信息、as号、采集设备信息。
30、更进一步,所述步骤s6中,还包括流量趋势自动换算步骤:python告警脚本根据累计字节数自动计算平均mbps带宽,换算公式为:平均mbps=(累计字节数×8)/(5×60×1000000)。
31、有益效果:
32、采用"轻量级告警触发+重量级详情补全"解耦架构:elastalert2仅执行高性能的目的ip数据包聚合与阈值判断(计算下推至elasticsearch分布式引擎),python脚本仅在告警触发时执行二次查询,确保5分钟内完成从流量异常到邮件通知的全链路流程。告警信息"诊断报告化":自动补全源ip列表、端口范围、协议类型、带宽、地理位置、as号、采集设备等9类核心上下文信息,运维人员无需跨系统手动查询流量图、抓包分析,大幅缩短平均故障定位时间。1分钟重告警抑制机制:避免同一ip的重复告警轰炸,确保运维人员聚焦真实攻击事件。
33、规则层白名单:在elasticsearch查询阶段通过must_not语句直接排除白名单ip,减少无效聚合计算,从源头过滤已知业务流量。脚本层白名单:在邮件发送前进行二次校验,阻断规则层漏判的误报(如临时新增的业务ip)。结合5分钟合理聚合窗口:有效过滤瞬时流量突发(如秒级业务峰值),避免因短时间数据包波动触发误报。
34、通过docker compose统一编排四大核心组件(elastiflow logstash、elasticsearch、kibana、elastalert2),实现开箱即用。无需手动安装java、python等依赖环境,无需编写复杂的logstash管道脚本和es查询语句。仅需修改3项核心配置即可上线:elasticsearch安全密码、邮箱smtp参数、白名单ip列表。有效缩短部署时间,且支持快速迁移和横向扩展。
35、elastiflow logstash通过4gjvm堆内存配置,保障每秒数十万条sflow流数据的稳定处理。聚合计算完全下推至elasticsearch分布式引擎,告警引擎和脚本仅占用少量cpu和内存资源。8核16g标准服务器即可支撑100gbps以上数据中心出口的流量检测需求,硬件成本较传统专用检测设备降低。数据持久化存储:elasticsearch挂载宿主机数据卷,支持历史流量数据的长期保存和回溯查询。
36、告警规则通过yaml文件配置:无需修改代码即可快速调整聚合窗口、阈值、重告警间隔,支持新增netflow、ipfix等其他流协议的检测规则。python告警脚本模块化设计:可轻松扩展微信、钉钉、企业微信、短信等多种通知渠道。kibana可视化界面支持自定义仪表盘:可根据运维需求新增流量趋势图、攻击类型统计、地域分布等可视化组件。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com