具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目标而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种监控平台实时数据处理方法。图1是根据本发明实施例的监控平台实时数据处理方法流程图。
本发明在数据监控平台下对数据流进行实时监控,加强了对未知类型数据流进行监控的能力。在该架构中对日志、数据流镜像进行采集、存储、计算、和显示。采用数据挖掘聚类分析的方法,监控平台中存在的未知非正常情况。首先对数据流进行聚类,经过统计后得出该类的统计特性,记录进入学习库后生成分类标签,当产生新的数据流时,对网络数据流进行分类,若不满足分类条件,对数据流进行重新聚类,作为下次处理的依据。通过统计的方法对网络中的数据量进行分析、统计,从而发现网络中潜在的安全事件。
针对大规模网络非正常数据流实时监控的要求,系统从数据采集、存储、计算和结果显示结合如下分布式监控平台,包括采集单元、存储单元、计算处理单元和显示单元。其中计算处理单元中应用Samza云平台,实时处理数据流并显示网络运行状况,监控和预警安全事件。
数据采集单元将分散在网络中各个节点和服务器的日志信息、原始数据流信息、数据包镜像信息进行采集,并且保证采集的数据具有内容可靠性、数据集可扩展性,控制节点可管理性。将系统中分散节点产生的日志信息、数据量信息通过数据采集节点传送到分布式文件存储系统中,并对原始数据进行初步处理,产生适合计算处理单元运算的输入数据,最终存储到分布式文件存储系统中。
数据采集单元将分散在网络中的路由节点、防火墙节点、服务器节点等能够产生日志和数据镜像的节点作为数据代理,通过架设多个数据采集节点,然后由主控节点协调工作,将数据推送到分布式文件存储系统中,以便计算处理单元对输入数据进行处理。
存储单元包含数据缓存、数据集中存储、数据持久化模块。数据缓存模块将一部分采集数据直接交付计算处理单元进行数据处理,而不存储在分布式文件存储系统上。所述数据缓存包含消息队列,对数据向计算处理单元进行交付,该模块适用于实时的流处理计算,同时也兼容分布式文件存储系统的存储计算,从而减少了I/O次数,提升了平台计算的效率。
数据集中存储模块应用分布式文件存储系统对采集到的日志和数据流进行存储,对日志采集系统所采集的数据提取出计算处理单元所需要的数据格式。对于存储的数据采用两种数据存储方式:一种是关系数据库,方便计算处理单元采用结构化查询的方式获取数据。另一种是键值对存储方式,适合分布式计算框架的编程模型。
计算处理单元所计算出的结果分为两部分,一部分用于显示,需要存储到关系数据库中,一方面作为网络数据流的历史数据,另一方面用于显示单元的数据源。而另一部分作为处理文件的输入数据集,即对安全数据进行初步统计分析后,再为数据挖掘分析提供输入数据。
计算处理单元包括离线处理、定时处理、实时处理模块。离线处理模块是监控平台利用分布式计算框架的编程模型;采用聚类分析、分类计算、关联规则等数据挖掘的算法对网络中的日志进行离线分析。对攻击行为进行分析还原。例如将入侵监控日志作为关联规则的数据源,对每一条独立的入侵监控数据通过地址溯源,经过报警关联判断,报警决策树生成,对整个攻击流程进行关联分析,还原攻击者对目标机器攻击的整个场景。定时处理模块采用Samza编程模型,实现对网络中存在的攻击进行预警监控。将数据从分布式文件存储系统中读取出来后,在集群中进行数据交换,并且数据交换均发生在内存中,大大缩短了集群在I/O上所耗费的时间。将数据量原始数据上传后进行数据切分,将原始数据切分成数据集,经过流式计算后在集群中传递数据集。最后生成网络数据量统计信息。实时处理模块对于数据量统计信息,包括网络瞬时流量、带宽消耗、关键节点服务器状态,根据属性和规则进行过滤,将日志文件、数据量文件进行初步筛选产生数据流,并将筛选后的结果进行进一步处理。该模块利用分布式计算框架编程模型,对采集到分布式文件存储系统上的文件进行统计分析计算。
Samza集群对于数据量采集到的数据进行统计分析,建立统计分析数据集。云计算集群对网络数据包进行属性提取,数据预处理后对数据进行聚类,将非正常数据流类别从网络数据流中分离出来。
显示单元应用Json传递数据格式至前台界面,向用户提供两种数据接口。其一是安全访问API,向用户以应用单元数据的方式提供数据计算结果,使用套接字数据接口。其二是面向应用的API,针对特定的日志格式,将用户希望监控的数据接入到采集单元,用云监控平台进行安全监控分析。经过客户端和服务器端握手后,可以长时间从服务器端主动向客户端推送数据信息,缩短了数据传输时间,提高了数据传输效率。在显示单元采用从集群主动推送消息的方式来传送数据。
原始数据经过Samza统计处理,对网络非正常状况进行判断,从而在网络历史数据流中判断和筛选出非正常数据流。经过统计之后的网络数据流统计数据进入计算处理单元,对数据进行离线处理计算,通过聚类算法,判断网络中存在的已未知非正常预测。
在数据流采集模块中,实现了数据量和网络数据包相结合的跨单元监控平台数据流的方法。获取数据量描述元组和数据流大小信息。针对数据流,采用一台主机接受数据流,然后对采集的数据流进行解析,将解析后的内容上传到分布式文件存储系统后,再通过Samza集群计算网络数据流统计数据。针对网络原始数据流,对数据包进行捕获,然后将数据流报头信息剥离,将结果存储在分布式文件存储系统上。
本发明对网络数据量监控流程如下。
步骤1:将数据流从服务器经过初步过滤和计算上传到分布式文件存储系统中,以便集群进行计算。
步骤2:通过Samza计算统计数据流。同时对网络原始数据包进行聚类分析。
步骤3:将计算结果写入关系数据库,并将聚类结果存储进入学习库,作为下次分类的依据。
步骤4:将监控结果存入数据库,分别用于阈值分析、非正常监控和数据显示。
数据流中包括源地址、目标地址、源端口、目标端口、协议类型、字节数。这些数据流需要经过统计处理,才能被应用于大规模数据统计。
在Samza平台上将原始数据流经过计算统计后形成网络数据流属性信息,出口报文表示从监控平台中向外部网络发送的数据包,入口报文表示从外部网络向内部网络发送的数据包。对于直接能够应用条件过滤对数据流进行过滤的非正常数据流,在进入计算处理单元之前,即上传到分布式文件存储系统之前对数据进行过滤判断。
在数据流监控中,通过聚类算法构建数据流类型集合,对存在于学习库中的集合进行分类划分,从而发现网络中存在的攻击。
针对网络原始数据流,将部分报头信息正则化并存储后,形成聚类分析的输入数据向量。以源服务器ip和目标端口为关键字,选取流量属性作为聚类分析的输入属性。其中在进入聚类分析之前,所述正则化如下:
au=(a-amin)/(amax-amin)
其中au为正则化结果,a为每个原始数据,amax-amin分别为原始报头数据的最大值和最小值。
聚类过程中,根据已选定好的属性,输入数据,对目标数据流进行聚类,将正常的数据流和非正常的数据流进行区分,具体如下:
步骤l:输入属性数据集
步骤2:邻近聚类,对每个x,若|x-mj|<|x-mi|,其中i=1,2,3...c且i≠j,c为聚类数量,则x∈tj
步骤3:计算聚类中心mj=∑x∈tx j=1,2,3...c
步骤4:计算每个类的平均间距δj=∑x∈t|x-mj|
步骤5:计算总体的平均间距δ=∑j=1…cNjδj,其中Nj为第j个类的元素数量;
步骤6;计算各个聚类中心之间的距离:
δij=||mi-mj||
步骤7:把小于预设参数ec的所有距离δij升序排列
步骤8:判断该类是否合并过,若没有被合并过,则对这些类依次合并,即计算合并中心
在预处理阶段,将网络原始数据流截获并提取包头信息存储到分布式文件存储系统中,再通过映射和规约操作,以源服务器IP和服务器目标端口为关键字进行网络数据流属性统计。截获预定时间内的网络数据包头,并对该时间内的包头信息个数进行汇总。
在不满足改进贝叶斯分类网络的情况下,即存在数据归属于各个类的概率相近,则判断产生的非正常数据流的新类型。将该类型的数据流重新输入聚类过程后,将新产生的类型存储在学习库,作为下次分类的依据。
将聚类算法应用在云平台中,需要考虑将原始数据流中的报头信息先上传到分布式文件存储系统中,再利用计算处理单元中的Samza定时处理,以源服务器IP为键,以网络数据流属性信息为值,对数据报文进行统计分析。最后将统计结果重新存储到分布式文件存储系统的关系数据库中,作为聚类分析的输入数据。当进行聚类时,计算处理单元进行离线处理,执行聚类过程。
综上所述,本发明提出了一种监控平台实时数据处理方法,适应面向不同数据集和响应要求的安全事件监控需求,很好地解决实时性和监控效率之间的平衡问题。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。