一种可容错的分布式安全事件数据传输协议的实现方法
【技术领域】
[0001 ]本发明涉及信息安全领域,具体海量安全事件分布式处理和数据传输。
【背景技术】
[0002] 互联网+的理念已经深入人心,各个行业信息网络中部署的应用系统和各种设备 的数量急剧增加,对复杂环境下IT操作的有效、及时审计分析极为迫切。安全审计的数据基 础是防病毒系统、防火墙、入侵检测系统、漏洞扫描系统、UTM、运行主机、交换机、路由器、数 据库系统、中间件等日志事件、状态事件和网络数据包信息。在目前的网络环境中,各种设 备的安全事件已经成为海量数据,syslog作为主要的日志类型,被各种操作系统,网络设备 和安全设备广泛支持,成为日志的重要标准,对于其他类型的日志,也可以转换为syslog日 志格式,便于统一分析。
[0003] 借助大数据安全分析技术,人们能够更好地解决天量安全要素信息的采集、存储 的问题,借助基于大数据分析技术的机器学习和数据挖据算法,能够更加智能地洞悉信息 与网络安全的态势,更加主动、弹性地应对新型复杂的威胁和未知多变的风险。
[0004] 攻击者的攻击行为隐藏在海量的安全事件中,通过包捕获,也能拿到天量的包含 攻击流量的数据。所有这些天量数据汇聚起来就是安全大数据。通过对这些安全大数据进 行实时分析和历史分析,建立行为轮廓,并进行行为建模和数据挖掘,就能帮助安全分析师 识别出攻击者及其攻击行为和过程,并提取攻击特征,反馈给安全防御设施进行阻断。
[0005] 网络安全的主要思想是积极防御、积极对抗。这种思想的终极目标是不求阻止任 何攻击,而是尽可能地延缓攻击,拖延攻击者的时间,以便为找到对策争取时间。网络攻防 很多时候就是一场夺取时间的战斗,谁得到的时间越多,谁就越有可能掌握对抗的主动权, 而掌握主动就意味着更有可能获取对抗的胜利意味着更有可能获取对抗的胜利。
[0006] 在这种思想的指导下,对安全审计的核心数一一安全事件的处理和传输必须高效 并容错。目前业界的主流技术仍以双机热备作为主要的容错方案,这种方案扩展性差,难以 使用大数据时代的要求。
【发明内容】
[0007] 本发明的目的是为了克服现有技术的缺点,提出一种可容错的分布式安全事件数 据传输协议的实现方法。本发明采用分布式集群方式处理安全事件,采用定期选举机制确 定集群中的事物节点,并建立消息事物映射表,保证消息数据的事务性;集群中各个节点采 用消息队列机制,保证安全事件处理的并行与可扩展;从而实现了可容错的安全事件传输 机制。
[0008] 本发明的目的是通过以下技术方案实现的:
[0009] -种可容错的分布式安全事件数据传输协议的实现方法,包括如下步骤:
[0010] A、对于全网的安全事件采用事件处理分布式集群的方式进行:所述分布式集群的 每一个节点称为Performer,每一个Performer节点都是计算性能相当的、独立的实体服务 器或虚拟机,每一个Performer节点都建立消息队列ML(Message List),该消息队列ML是一 个先入先出数组;
[0011 ] B、所述事件处理分布式集群会定期选举事物节点称为Transactional,所述事物 节点Transcational负责进行集群的容错处理,事物节点Transactional除了具备一般 Performer节点的功能外,还会构建事物消息映射表TMM(Transactional Message Map),该 映射表实时备份每个Perf ormer节点中未处理的消息;如果某个Performer节点出现故障, 事物节点Transcational会将Performer节点未处理的消息分发给其他Performer节点; [0012] C、事物节点Transactional选举的评分因素包括:CPU利用率、内存利用率和消息 队列ML中未处理消息个数,当事物节点Transactional出现故障时,所述集群会立即选择新 的事物节点;事物节点选举的评分算法是:
[0013] 首先计算除当前事物节点Transactional外的各个Perf ormer节点的选举指数:
[0015] 其中,._j表示序号为i的Perf ormer节点的选举指数,C表示该Perf ormer节点的 CPU利用率,M表示该Perf ormer节点的内存利用率,N表示该Perf ormer节点未处理的消息个 数,L表示消息队列ML的总长度。
[0016] 其次,从选举指数最低的perf ormer节点确定为新的事物节点Transactional^T:
[0017] T=min(EIi)
[0018] D、一个Perf ormer节点可以并行处理多个Perf ormer节点的安全事件传输请求,每 次采集一个安全事件,构建该安全事件的消息信息M e s s a g e,该消息信息包括MID和 EventEntity字段,分别代表:
[0019] .MID:消息信息的唯一序号;
[0020] · EventEntity:安全事件的实体
[0021 ] 将该Message写入消息队列ML,同时写入事物节点Transactional的事物消息映射 表TMM中;
[0022] E、Perf ormer节点在处理一个消息信息时,从其消息队列ML拿出一个消息信息 Message进行处理,处理完毕后通知事物节点Transactional,如果事物节点在线,则事物节 点事物消息映射表TMM删除该消息信息,如果事物节点故障,则重新选举事物节点。
[0023] 优选的,在步骤B中,事物节点的事物消息映射表TMM(Transactional Message Map),其数据结构如下:TMM采用多层哈希映射表数据结构HashMap嵌套的方式实现,
[0024] HashMap<k_ip,Hashmap<k_message,v_event>>
[0025] 其中,
[0026] k_ip是集群中某个Perf ormer的IP地址;
[0027] k_me s sage是消息信息Me s sage的唯一序号MID;
[0028] v_e vent是该消息的事件数据。
[0029]优选的,在步骤B中,消息信息Message的唯一序号MID的实现算法为:
[0030] MID = ip_performer+event_ssid [0031 ]其中,
[0032] ip_perf ormer是安全事件传输发起者Perf ormer的IP地址;
[0033] event_ssid是事件数据的唯一序号。
[0034] 优选的,在步骤D中,事件处理集群会定期选举事物节点Transactional,该选举周 期为1天,选举时间点为3:00,一般认为这个时间点是安全事件最不活跃的时间。
[0035]优选的,在步骤E中,本发明处理的安全事件内容信息包含但不限于:事件名称、事 件摘要、事件分类、采集类型、等级、网络协议、网络应用协议。
【具体实施方式】
[0036] 本发明提供一种可容错的分布式安全事件数据传输协议的实现方法,包括如下步 骤:
[0037] A、对于全网的安全事件采用事件处理分布式集群的方式进行:所述分布式集群的 每一个节点称为Performer,每一个Performer节点都是计算性能相当的、独立的实体服务 器或虚拟机,每一个Performer节点都建立消息队列ML(Message List),该消息队列ML是一 个先入先出数组;
[0038] B、所述事件处理集群会定期选举事物节点称为Transactional,所述事物节点 Transcational负责进行集群的容错处理,事物节点Transactional除了具备一般 Performer节点的功能外,还会构建事物消息映射表TMM(Transactional Message Map),该 映射表实时备份每个Perf ormer节点中未处理的消息;如果某个Performer节点出现故障, 事物节点Transcational会将该Performer节点未处理的消息分发给其他Performer节点; [0039] C、事物节点Transac t i onal选举的评分因素包括:CPU利用率、内存利用率和消息 队列ML中未处理消息个数,当事物节点Transactio