基于DataRush对NetFlow数据的解析

2014-08-14 18:49刘颖
电脑知识与技术 2014年19期

摘要:随着计算机技术和网络技术的发展,网络安全问题,在今天已成为网络世界里最为人关注的问题之一。危害网络安全的因素很多,其中DoS攻击是网民所熟悉的一种。该设计主要是根据DoS攻击原理,通过用Pervasive公司的DataRush技术在KNIME-eclipse的环境下,用java语言开发出相应的节点来对Cisco路由器的NetFlow数据进行解析,由此判断当前的网络状态和检测网络的数据流量。

关键词: DoS攻击;DataRush;NetFlow

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)19-4403-04

Analysis of NetFlow Data Based on DataRush

LIU Ying

(School of Mathematics Computer Science,Panzhihua University, Panzhihua 617000, China)

Abstract:With the development of computer technology and network technology, the network security problem has become one of the most careful issues in the network world. Network security depend on a number of factors, the DoS attack is a familiar one to users. The design is mainly based on the DoS attack principle ,by using Pervasive 's DataRush technology in the KNIME-eclipse environment, using java language to develop the corresponding node to analysis the NetFlow data generate by Cisco router, thus determine the current network status and detection of network data flow.

Key words: Denial Of Service;DataRush;NetFlow

在影响网络安全的因素中,DOS攻击等是最常见的,DOS攻击的最大特点是通过大量的无用的数据流量来时被攻击计算机的网络产生堵塞,无法与外界正常通信。所以检测当前的网络流量是防范DOS攻击的一种比较有效的办法。但当前对网络的数据流量解析的技术解析效率普遍较慢,无法及时的对当前网络数据流量进行分析。DataRush技术对数据的解析效率较其他技术快,所以用它来开发出软件来解析当前网络流量的数据已达到检测当前的网络数据流量是非常可行的。

虽然计算机网络给人们带来了巨大的便利,但互联网是一个面向大众的开放系统,对信息的保密和系统的安全考虑得并不完备,存在着安全隐患,网络的安全形势日趋严峻。本次课题的目的在于根据KNIME的节点的开发原则,开发出一系列节点,对Cisco路由器的NetFlow数据进行解析,在通过KNIME中已有的节点对NetFlow数据进行图形化展示,以便当前网络管理人员能快速的检测当前网络流量和判断网络状态。

1 节点开发中的关键技术

1.1 DataRush技术的介绍[1]

1.1.1 DataRush的概述

DataRush技术是美国Pervasive软件技术公司在2009年推出的。使用多核技术分析和其他业务应用程序处理的数据集。该技术提升了一台服务器或小型服务器集群的性能,并允许对大规模数据集的高通量分析。并行数据流引擎,它是用于电力批处理作业,并运行数据准备工作(例如排序,重复数据删除,汇总,清洁,连接,加载,验证)和机器学习的模糊匹配算法一样的方案。

1.1.2 DataRush的结构

DataRush使用一个数据流架构。该体系结构实现了程序执行数据流队列互连的计算节点图。节点使用的队列,共享数据。在这个意义上说,数据流是一种无共享架构。缺乏共享状态,简化了节点执行,因为线程不同步共享状态。在内存中,阻塞队列的实现需要安全地交给从节点到节点的数据同步。在DataRush中,计算节点的数据流图称为operator。 DataRush提供了一个现成的使用操作组件的operator库。开发人员也可以编写自定义的operator扩展标准库。例如,一些应用程序有自己的实现,只需要继承DataflowOperator类就行。

1.2 NetFlow简介[2]

NetFlow是一种数据交换方式,由Cisco创造。NetFlow流定义为在一个源IP地址和目的IP地址间传输的单向数据包流,且所有数据包具有共同的传输层源、目的端口号。其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。Cisco提供了Cisco NetFlow Collector(NFC)采集NetFlow数据。

NetFlow是Cisco的nIOS软件中内嵌的一种功能,用来将网络流量记录到设备的高速缓存中,从而提供非常精准的流量测量。由于网络通信具有流动性,所以缓存中记录的NetFlow统计数据通常包含转发的IP信息。 输出的NetFlow统计数据可用于多种目的,如网络流量核算、网络付费、网络监控以及商业目的的数据存储。endprint

2 现状分析

网络数据流量的检测能很好的帮助网络管理人员判断当前的网络状态,因此一款能很快的解析数据流量的软件是网络管理人员需要的。但当前用于解析NetFlow数据流量的技术解析效率普遍较低。DataRush技术采用多核技术分析和其他业务应用程序处理的数据集,能很快的解析数据。所以用此技术开发能很好的满足网络管理人员的需要且比现在用于解析数据的技术效率高。

3 数据解析的实现

3.1 节点的功能需求

对于NetFlowRawReader节点的功能需求:

需要读取NetFlow数据文件,根据界面用户选择的文件类型,判定所选文件的类型符合,增加event_source,event_start_time,event_end_time,将数据放入event_data列中,数据结构如表1:

图1 NetFlowRawReader的功能示意图

Raw record flow1的数据结构:

表1 NetFlowRawReader输出数据的结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of the NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timestamp\&0 as default\&event_data\&Binary\&NetFlow data\&]

对于NetFlowRawParser节点的功能需求:

NetFlowRawReader需要对读取的数据按照相应的解析规则进行解析,给对应的字段名赋值,按一定的格式输出结果。

图2 NetFlowRawReader的功能示意图

表2 analytic record flow的数据结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timastamp\&O as default\&NetFlow_srcaddr\&String\&Column of NetFlow data\&NetFlow_dstaddr\&String\&Column of NetFlow data\&NetFlow_input\&int\&Column of NetFlow data\&……\&……\&……\&]

把NetFlowRawReader 和NetFlowRawParser结合起来,图示如下:

图3 整个设计的功能需求

从上面的功能需求图可以看出,在NetFlowRawReader中主要根据NetFlow文件获得文件的类型,路径等相关信息。在NetFlowRawReader中才根据文件的类型,对应相应的字段进行解析,获取对应字段的值。

3.2 NetFlowRawReader节点的主要功能

NetFlowRawReader节点的主要功能是读取NetFlow数据文件,给文件加文件的路径,类型,时间等字段。根据功能需求所以在NetFlowRawReader的界面上应该有选择文件,和提示文件类型的功能控件。

3.3 NetFlowRawParser节点的主要功能

NetFlowRawParser节点的主要功能是对NetFlowRawReader的输出数据按照相应的解析规则进行解析。界面要求有选择文件类型的控件,以便检测文件的类型,还需要有一个控件为用户提供对应文件类型的全部字段名共用户选择,用户可以通过这个值选取一部分字段,查看这一部分字段的值。

3.4结合NetFlowRawReader和NetFlowRawParser对文件进行解析

用NetFlowRawReader和NetFlowRawParser对NetFlow数据文件进行解析,在调用KNIME里面的视图显示的节点,通过图形化显示,更有利于分析数据。

节点的连线图如下:

图4 本次设计的全部效果图

节点通过Color Manager给相同的字段给予同一种颜色,更有利于查看。在这里,Color Manager是通过dstaddr来给对应的值颜色的。

Historgram和Pie chart两个节点的功能是分别用柱状图和饼状图来显示数据的结果,具体效果如下:

Historgram的效果图如图5所示。

Pie chart的效果图如下:

图6 Pie chart的效果图

通过这两个效果图,可以很轻松的来对主句文件进行分析。假如数据文件来自真实的环境,从效果图中,可以看出,目的地址为“10.0.0.3”的数据流量不正常。用户就可以使用特定的工具对这个地址进行监测,判断出这个地址是受到了攻击还是其他一些造成数据流量异常的原因,以便网络管理员更好的管理网络和分配网络流量。

4 结束语

本文就节点开发的一些基本功能和设计中的步骤和详细进行阐述。对于这次开发,下一步的研究任务是通过接收指定端口的NetFlow数据,把数据进行流化。用开发出来的节点直接接收思科路由器的数据,进行解析。实时接收数据,当数据量达到一定数量时,便对数据进行解析,图形化展示给用户。让用户能实时的观察网络流量。

参考文献:

[1] Austin, Texas.DataRush_developers_guide[M].Pervasive Software Inc .December 2010.

[2] 百度百科 NetFlow简介. http://baike.baidu.com/view/490587.htm.

[3] 江开耀.软件工程与开发技术[M].西安:西安电子科大出版社,2009,2.

2 现状分析

网络数据流量的检测能很好的帮助网络管理人员判断当前的网络状态,因此一款能很快的解析数据流量的软件是网络管理人员需要的。但当前用于解析NetFlow数据流量的技术解析效率普遍较低。DataRush技术采用多核技术分析和其他业务应用程序处理的数据集,能很快的解析数据。所以用此技术开发能很好的满足网络管理人员的需要且比现在用于解析数据的技术效率高。

3 数据解析的实现

3.1 节点的功能需求

对于NetFlowRawReader节点的功能需求:

需要读取NetFlow数据文件,根据界面用户选择的文件类型,判定所选文件的类型符合,增加event_source,event_start_time,event_end_time,将数据放入event_data列中,数据结构如表1:

图1 NetFlowRawReader的功能示意图

Raw record flow1的数据结构:

表1 NetFlowRawReader输出数据的结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of the NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timestamp\&0 as default\&event_data\&Binary\&NetFlow data\&]

对于NetFlowRawParser节点的功能需求:

NetFlowRawReader需要对读取的数据按照相应的解析规则进行解析,给对应的字段名赋值,按一定的格式输出结果。

图2 NetFlowRawReader的功能示意图

表2 analytic record flow的数据结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timastamp\&O as default\&NetFlow_srcaddr\&String\&Column of NetFlow data\&NetFlow_dstaddr\&String\&Column of NetFlow data\&NetFlow_input\&int\&Column of NetFlow data\&……\&……\&……\&]

把NetFlowRawReader 和NetFlowRawParser结合起来,图示如下:

图3 整个设计的功能需求

从上面的功能需求图可以看出,在NetFlowRawReader中主要根据NetFlow文件获得文件的类型,路径等相关信息。在NetFlowRawReader中才根据文件的类型,对应相应的字段进行解析,获取对应字段的值。

3.2 NetFlowRawReader节点的主要功能

NetFlowRawReader节点的主要功能是读取NetFlow数据文件,给文件加文件的路径,类型,时间等字段。根据功能需求所以在NetFlowRawReader的界面上应该有选择文件,和提示文件类型的功能控件。

3.3 NetFlowRawParser节点的主要功能

NetFlowRawParser节点的主要功能是对NetFlowRawReader的输出数据按照相应的解析规则进行解析。界面要求有选择文件类型的控件,以便检测文件的类型,还需要有一个控件为用户提供对应文件类型的全部字段名共用户选择,用户可以通过这个值选取一部分字段,查看这一部分字段的值。

3.4结合NetFlowRawReader和NetFlowRawParser对文件进行解析

用NetFlowRawReader和NetFlowRawParser对NetFlow数据文件进行解析,在调用KNIME里面的视图显示的节点,通过图形化显示,更有利于分析数据。

节点的连线图如下:

图4 本次设计的全部效果图

节点通过Color Manager给相同的字段给予同一种颜色,更有利于查看。在这里,Color Manager是通过dstaddr来给对应的值颜色的。

Historgram和Pie chart两个节点的功能是分别用柱状图和饼状图来显示数据的结果,具体效果如下:

Historgram的效果图如图5所示。

Pie chart的效果图如下:

图6 Pie chart的效果图

通过这两个效果图,可以很轻松的来对主句文件进行分析。假如数据文件来自真实的环境,从效果图中,可以看出,目的地址为“10.0.0.3”的数据流量不正常。用户就可以使用特定的工具对这个地址进行监测,判断出这个地址是受到了攻击还是其他一些造成数据流量异常的原因,以便网络管理员更好的管理网络和分配网络流量。

4 结束语

本文就节点开发的一些基本功能和设计中的步骤和详细进行阐述。对于这次开发,下一步的研究任务是通过接收指定端口的NetFlow数据,把数据进行流化。用开发出来的节点直接接收思科路由器的数据,进行解析。实时接收数据,当数据量达到一定数量时,便对数据进行解析,图形化展示给用户。让用户能实时的观察网络流量。

参考文献:

[1] Austin, Texas.DataRush_developers_guide[M].Pervasive Software Inc .December 2010.

[2] 百度百科 NetFlow简介. http://baike.baidu.com/view/490587.htm.

[3] 江开耀.软件工程与开发技术[M].西安:西安电子科大出版社,2009,2.

2 现状分析

网络数据流量的检测能很好的帮助网络管理人员判断当前的网络状态,因此一款能很快的解析数据流量的软件是网络管理人员需要的。但当前用于解析NetFlow数据流量的技术解析效率普遍较低。DataRush技术采用多核技术分析和其他业务应用程序处理的数据集,能很快的解析数据。所以用此技术开发能很好的满足网络管理人员的需要且比现在用于解析数据的技术效率高。

3 数据解析的实现

3.1 节点的功能需求

对于NetFlowRawReader节点的功能需求:

需要读取NetFlow数据文件,根据界面用户选择的文件类型,判定所选文件的类型符合,增加event_source,event_start_time,event_end_time,将数据放入event_data列中,数据结构如表1:

图1 NetFlowRawReader的功能示意图

Raw record flow1的数据结构:

表1 NetFlowRawReader输出数据的结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of the NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timestamp\&0 as default\&event_data\&Binary\&NetFlow data\&]

对于NetFlowRawParser节点的功能需求:

NetFlowRawReader需要对读取的数据按照相应的解析规则进行解析,给对应的字段名赋值,按一定的格式输出结果。

图2 NetFlowRawReader的功能示意图

表2 analytic record flow的数据结构

[Column\&Type\&Description\&event_type\&String\&Type of NetFlow data\&event_source\&String\&Source of NetFlow files\&event_start_time\&Timestamp\&0 as default\&event_end_time\&Timastamp\&O as default\&NetFlow_srcaddr\&String\&Column of NetFlow data\&NetFlow_dstaddr\&String\&Column of NetFlow data\&NetFlow_input\&int\&Column of NetFlow data\&……\&……\&……\&]

把NetFlowRawReader 和NetFlowRawParser结合起来,图示如下:

图3 整个设计的功能需求

从上面的功能需求图可以看出,在NetFlowRawReader中主要根据NetFlow文件获得文件的类型,路径等相关信息。在NetFlowRawReader中才根据文件的类型,对应相应的字段进行解析,获取对应字段的值。

3.2 NetFlowRawReader节点的主要功能

NetFlowRawReader节点的主要功能是读取NetFlow数据文件,给文件加文件的路径,类型,时间等字段。根据功能需求所以在NetFlowRawReader的界面上应该有选择文件,和提示文件类型的功能控件。

3.3 NetFlowRawParser节点的主要功能

NetFlowRawParser节点的主要功能是对NetFlowRawReader的输出数据按照相应的解析规则进行解析。界面要求有选择文件类型的控件,以便检测文件的类型,还需要有一个控件为用户提供对应文件类型的全部字段名共用户选择,用户可以通过这个值选取一部分字段,查看这一部分字段的值。

3.4结合NetFlowRawReader和NetFlowRawParser对文件进行解析

用NetFlowRawReader和NetFlowRawParser对NetFlow数据文件进行解析,在调用KNIME里面的视图显示的节点,通过图形化显示,更有利于分析数据。

节点的连线图如下:

图4 本次设计的全部效果图

节点通过Color Manager给相同的字段给予同一种颜色,更有利于查看。在这里,Color Manager是通过dstaddr来给对应的值颜色的。

Historgram和Pie chart两个节点的功能是分别用柱状图和饼状图来显示数据的结果,具体效果如下:

Historgram的效果图如图5所示。

Pie chart的效果图如下:

图6 Pie chart的效果图

通过这两个效果图,可以很轻松的来对主句文件进行分析。假如数据文件来自真实的环境,从效果图中,可以看出,目的地址为“10.0.0.3”的数据流量不正常。用户就可以使用特定的工具对这个地址进行监测,判断出这个地址是受到了攻击还是其他一些造成数据流量异常的原因,以便网络管理员更好的管理网络和分配网络流量。

4 结束语

本文就节点开发的一些基本功能和设计中的步骤和详细进行阐述。对于这次开发,下一步的研究任务是通过接收指定端口的NetFlow数据,把数据进行流化。用开发出来的节点直接接收思科路由器的数据,进行解析。实时接收数据,当数据量达到一定数量时,便对数据进行解析,图形化展示给用户。让用户能实时的观察网络流量。

参考文献:

[1] Austin, Texas.DataRush_developers_guide[M].Pervasive Software Inc .December 2010.

[2] 百度百科 NetFlow简介. http://baike.baidu.com/view/490587.htm.

[3] 江开耀.软件工程与开发技术[M].西安:西安电子科大出版社,2009,2.