本发明涉及网络安全技术领域,具体地说是一种多源网络安全事件的采集与同步方法。
背景技术:
随着网络的快速发展,网络安全问题面临着极大的挑战。信息技术的不断进步,使得攻击手段与攻击时效也在不断提高,大量存在的系统漏洞被发现和利用,网络安全问题变得十分脆弱,网络安全防御更显重要。
很多企业为了应对网络面临的安全威胁,在信息化过程中部署了防火墙、行为管理设备、防病毒软件、入侵检测系统以及其他一些安全基础设施。这些安全基础设施均会在监控或防御的过程中产生一些与安全防护相关的日志数据,这些数据通常能够反映出网络设备的行为,例如一些恶意攻击行为以及网络的安全状况,那么对这些日志数据进行一定处理和分析就能够对网络状况进行更准确的评估和预测,然而,各个安全设备上的安全日志是离散地存储在各个安全设备的机器上,并且由于功能以及生产厂商的不同这些日志数据是异构的,导致不能利用统一的采集方式对不同的数据源进行采集。如何使用统一的采集框架又要应对不同的数据存储系统成了当前难以解决的问题。
经对现有文献的检索发现,浪潮通信信息系统有限公司的赵宏在2016年的发明专利《一种实时监控分析大量日志的系统及方法》中提出三层的日志采集及处理架构,其日志采集模块采用Flume-ng技术,以应对大数据量的安全日志。北京邮电大学的桑柏嵩在《Agent的网络安全日志收集系统设计与实现》中,提出采集代理端通过采用临时文件的方法来暂存事件信息,然后再将事件存储到Redis队列中等。这些文献中提到的安全事件采集方法并没有考虑到各采集代理之间、各采集代理与中央服务器之间的时间不同步问题,造成中央服务器在收到多源事件后会出现事件乱序的情况,在各Agent时间差异较大、网络延迟较大的情况下,严重影响事件分析端的分析结果。
技术实现要素:
本发明所要解决的技术问题是克服上述现有技术存在的不足,提供一种多源网络安全事件的采集与同步方法,其利用时间同步校对、共享优先级队列缓冲区、动态内存增长等技术,在多种安全设备产生的安全事件格式各异的实际工程中,保证事件采集过程的高效、事件的同步。
为实现上述目的,本发明采用如下的技术方案:一种多源网络安全事件的采集与同步方法,其特征在于,首先对各个事件源的时间进行同步,各事件源均以服务端的时间为标准时间,通过发送时间同步数据包来计算网络延迟、事件源与服务端的本地时间差,从而得出实时、准确的时间差值;随后事件采集端根据此时间差值对事件进行同步后通过socket通信存储至ehcache缓存框架中,该ehcache缓存框架中的节点采用远程方法调用RMI机制与ehcache缓存框架中的其他节点进行事件同步;Server端从ehcache缓存框架中实时读取事件信息,并进行处理。
进一步地,本发明包括以下具体步骤:
1)多源网络安全事件采集
采集端采用采集代理方式,负责实时采集各个事件源的网络安全事件;基于不同源事件采集的正则表达式,对其网络安全进行规范化和去冗余预处理操作,网络安全事件具有时间戳、源IP地址、目的IP地址、源端口、目的端口和协议信息;采集端将采集到的事件以socket通信方式存储在ehcache缓存框架中;
2)事件源时间同步校对
在采集事件时,首先对每个事件源的时间进行同步校对,均以服务端的时间为基准;
3)实时数据接收与处理
多个采集端将采集的网络安全事件e1,e2,...,en序列化为key-value形式的Element事件,存储至ehcache分布式缓存框架中,该ehcache分布式缓存框架中的节点采用远程方法调用RMI机制与ehcache分布式缓存框架中的其他节点进行事件同步;
服务端从ehcache分布式缓存框架中实时读取事件信息,并进行处理。
更进一步地,步骤2)中,事件源时间同步校对的具体过程如下:
2.1)采集端在t1时刻向服务端发送一个时钟同步请求包;
2.2)服务端接收到请求之后,立即回复一个时钟同步响应包,内容为服务端此刻的本地时间Ts,
2.3)采用端在t2时刻接收到服务端发送的响应包,
则,采用端与服务端之间的单向网络延迟时间为:
Tdelay=(t2-t1)/2
服务端接收到采集端的同步请求包时,采集端的本地时间为:
Tagent=t1+Tdelay
因此,如果t1+Tdelay<Ts,则表示采集端的时间早于服务端的时间,事件时间应向后推迟Ts-t1-Tdelay时间,此时,采集端向服务端发送采集到的事件时,事件源的产生时间t应变为:
Tsend=t+(Ts-t1-Tdelay),
反之,若t1+Tdelay>Ts,则表示采集端的时间晚于服务端的时间,事件时间应提前t1+Tdelay-Ts时间,此时,采集端向服务端发送采集到的事件时,事件源的产生时间t应变为:
Tsend=t-(t1+Tdelay-Ts)。
更进一步地,步骤2)中,由于不同时刻网络延迟差别较大,事件源时间同步校对需每隔5~10分钟进行一次。
更进一步地,步骤1)中,所述的网络安全事件包括防火墙、入侵检测系统、网络流量和漏洞扫描事件源产生的不同类型的网络安全事件。
本发明具有的有益效果如下:本发明针对目前事件采集过程中的各设备本地时间不同步的问题,采用发送同步数据包、计算网络延迟和本地时间差的方式,实时、准确得出各设备与服务端的时间差值,来对事件源进行同步,具有易于实现、精确同步的优点;本发明针对服务端缓存的效率、同步问题,采用ehcache分布式缓存框架的方式,并在多个ehcache分布式缓存框架节点之间进行同步,不仅提高了效率,而且达到了同步的效果。
附图说明
图1为本发明的结构框图。
具体实施方式
以下结合附图和实施例对本发明的技术方案作进一步详细说明。以下实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。
如本发明方法结构图(图1)所示,本实施例具体实施步骤如下:
1.多源网络安全事件采集
采集端(Agent)采用采集代理方式,负责实时采集各个事件源的网络安全事件,包括:防火墙、入侵检测系统、网络流量、漏洞扫描等事件源产生的不同类型的网络安全事件;基于不同源事件采集的正则表达式,对其网络安全进行规范化、去冗余等预处理操作,网络安全事件具有时间戳、源IP地址、目的IP地址、源端口、目的端口、协议等信息;Agent将采集到的事件以socket通信方式存储在ehcache框架中。
2事件源时间同步校对
采集端(即Agent端)采用代理方式,负责实时采集安全事件,Agent1、Agent2两个采集端分别部署在三台安全设备A1、A2上,在采集事件时,首先需要对两个事件源进行时间同步校对,Agent1、Agent2分别进行以下几步骤:
2.1Agent1、Agent2端分别在50s、500s时刻向Server端发送一个时钟同步请求包;
2.2Server端接收到请求之后,立即回复此刻的本地时间给Agent1、Agent2,分别为:55s、502s;
2.3Agent1、Agent2端分别在58s、505s时刻接收到Server端发送的响应包,
则,Agent1、Agent2端与Server端之间的单向网络延迟时间分别为:
Tdelay1=4s
Tdelay2=2.5s
Server端接收到Agent端的同步请求包时,Agent1、Agent2端的本地时间分别为:
TAgent1=54s
TAgent2=502.5s
从结果可以看出,对于Agent1来说,54s<55s,因此Agent1的时间早于Server端的时间,报警的时间应向后推迟1s,此时,Agent端向Server端发送采集到的事件时,事件源的产生时间t应变为:
Tsend1=t+1s
对于Agent2来说,502.5s>502s,因此Agent2的时间晚于Server端的时间,报警的时间应提前0.5s,此时,Agent端向Server端发送采集到的事件时,事件源的产生时间t应变为:
Tsend2=t-0.5s。
此外,由于不同时刻网络延迟差别较大,因此本同步过程需每隔10分钟重复进行一次。
3.实时数据接收与处理
多个Agent将采集的网络安全事件e1,e2,...,en序列化为key-value形式的Element事件,存储至ehcache分布式缓存框架中,ehcache分布式缓存框架的节点采用远程方法调用RMI机制与ehcache分布式缓存框架中的其他节点进行事件同步;
Server端从ehcache分布式缓存框架中实时读取事件信息,并进行处理。