用于有效率的网络流数据分析的方法和装置的制作方法

文档序号:7914445阅读:194来源:国知局
专利名称:用于有效率的网络流数据分析的方法和装置的制作方法
技术领域
本发明涉及网络通信以及使用分析,且具体地涉及用于收集并处理网络流数据的方法和装置。更具体地,本发明的示例实施例涉及使用流记录来识别网络攻击。
背景技术
分组数据网络被广泛用于在全世界范围传输数据。分组数据网络一般将数据格式化为用于在一个计算机和另一个计算机之间传输的分组。这些分组包括报头,报头包含与分组数据和路由相关的信息。数据网络使用路由器从发起计算机向目的计算机发送这些分组,路由器使用分组报头中的路由信息向目的计算机发送分组。分组的流是从特定源网络地址和端口向目的网络地址和端口发送的一组分组。这些特定的目的源网络地址和端口可以例如对应于不同的计算机。随着这些网络的扩张,使用他们的好处日渐增加。然而,这对 于使用网络的商务也产生了攻击的机会。一种攻击类型是分布式拒绝服务。这涉及大量遭到破坏的计算机攻击特定计算机,并通过建立海量网络连接来打击特定的计算机。另一种类型的攻击是端口扫描攻击。这涉及恶意计算机在一定范围的网络地址上建立连接并刺探这些网络地址以寻找弱点。网络流(Netflow)是已知的网络协议,其可以用于收集并监视IP业务(traffic)。一些网络流分析引擎仅基于与IP地址相关联的数据的量,仅保持最高数目(一般高至1000)的源、目的IP地址。以这种方式过滤信息的缺点是实际的流信息丢失,特别是作为结果信息的上下文,例如与源和目的IP地址相关联的源和目的端口。因此,由于所有分布信息丢失,所以这种引擎不能识别攻击。其他网络流分析引擎仅保留流的子集(一般在一个小时的时间段内大约10000个流)。该子集一般基于流的八比特组(octet)大小。该技术减少了对流所需的存储,与上述技术不同,其仍然保留了一些分布信息。然而,由于子集一般基于流的八比特组大小,特别是其最高值,且拒绝服务和端口扫描攻击可以包含少量的八比特组,与攻击相关联的流不出现在子集中,因此该攻击对于引擎来说同样是不可见的。为了能够识别此处所述的攻击模式,必须分析所有的流,特别是仅具有少量八比特组和分组的流。一般不采取这种分析,因为其无效率,即,有效率地分析这种海量数据是不可行的,因为为了识别攻击,这不仅导致与存储容量相关的问题,还要求不现实的处理时间。本发明的目标是通过提供有效处理并分析网络流数据的技术来克服这些问题,该技术具体地使得基于流信息全集的分析对分布式拒绝服务攻击和端口扫描攻击的识别成为可能。

发明内容
在所附权利要求中阐述了本发明的方面。根据本发明的一个方面,流收集技术用于获得与数据网络中的连接有关的信息,其还可以用于在现实的时段内识别病毒攻击。这使得运营商可以通过例如重新配置防火墙设置以拒绝来自被标识为攻击中所涉及的相关地址的特定传输,以采取针对攻击的有目的的行动,从而确保网络安全地运行,且具有尽可能多的带宽。根据实施例,这是通过以下步骤实现的-存储与流有关的信息;-对每一个流特定的信息进行分类,以识别在特定的源和目的IP地址和端口之间的关联以及它们之间的传输量;-然后,基于已分类的信息,对这些不同的源或目的地址和对话进行计数;以及-按照最高不同地址或对话数目,对结果排序。
所谓的“对话”是在特定的源和目的IP地址和端口之间的传输,本发明对这些特定的源和目的IP地址和端口进行存储和分类,以建立它们之间的相应关联。如果会话数目大,则证明存在高业务量,这可能指示端口扫描攻击。在优选实施例中,本发明从流记录中提取相关信息,并针对特定地址和通信模式之间的相应关联对其进行分析,其可能指示正在实施特定类型的攻击。然后,本发明基于这些不同关联和模式的量,对该信息进行分级,从而向用户提供对特定攻击发生的可能性的实时指示。可以表示与对象有关的数据的多种方式中的一种是“元组”(tuple)。这是有序的值集合,每一个值描述了对象的某个方面。进而将元组存储为具有索引的块数据结构,比如电子表格(spreadsheets)中的行或数据库表中的行。在一个实施例中,本发明在元组中存储每一个流记录特定的信息,该元组包括流记录的相关字段。该技术是便于对大量这种信息进行容易分类的方便的技术。在另一实施例中,将元组写入存储器(比如随机存取存储器(RAM))中的整数数组。通过将元组块以这种方式写入存储器,本实施例使得能够将元组块合并,并且以容易的方式确定特定地址和对话的和。现在将参照附图,通过示例来描述体现本发明的布置。


图I是用于在网络中处理和提供流信息的网络路由设备的框图。图2是示出了由根据本发明实施例的网络流处理引擎来检测端口扫描攻击的示例的框图。图3是示出了由根据本发明的实施例的网络流处理引擎来检测分布式拒绝服务攻击的示例的框图。图4是示意性地示出了根据本发明的示例实施例的功能组件、数据结构、以及由网络流处理引擎执行的用于处理网络流记录的流的操作的图。图5是示出了在本发明的示例实施例中每一个流记录的字段的框图。图6包括图6A到6C,图6是示出了根据本发明的实施例在计算机存储器中用于存储网络连接的信息的示例元组和元组块数据的框图。
具体实施例方式图I示出了用于处理接收的分组并从网络收集流记录的网络路由设备I的一般框图。在路由设备I的分组处理引擎12接收和处理分组11时,在流高速缓存13中存储与已接收的分组流有关的信息。以固定的时间间隔,例如每一分钟,清空流高速缓存13,且由体现为流导出器14的网络流导出协议来导出网络流信息,并将网络流信息发送至流数据引擎15。图2示出了从攻击者到多个目标主机的端口扫描攻击的示例。攻击者计算机一般建立到一定范围的计算机的大量连接。路由设备I使用流记录将这些连接报告给网络流处理引擎3。该攻击的流信息将一般具有一个源地址和大量的相关联的目的地址和端口。换言之,从具有单一源地址的恶意计算机发起攻击,其目标是具有很多不同目的地址和端口的多个其他主机,所有这些目的地址和端口都与单一的源地址相关联。
图3示出了从多个计算机向单一目标主机发起拒绝服务攻击的示例。在该示例中,大量计算机典型地建立与单一计算机的连接。路由设备I使用流记录将这些连接报告给网络流处理引擎3。针对该攻击的流信息将具有与目标主机相对应的一个目的地址以及与多个计算机相对应的并与单一目的地址相关联的大量源地址和端口。下面将参照图4来描述根据本发明的处理和收集流记录的流(stream)的操作,以便于对识别上述形式的网络攻击的有效后续分析。图4是示意性地示出了流记录处理引擎3的功能组件和数据结构的操作的流程框图。该过程开始于从路由设备I接收多个流记录41,该多个流记录由网络流处理引擎3的流记录接收器线程42来处理。在该实施例中,网络流处理引擎3收集预定义时间窗中的多个流记录,该时间窗可以是任意时间量,比如一小时或几天。图5示出了包含与流有关的相关信息在内的示例流记录的内容。如图5所示,字段包括-源IP地址-目的IP地址-源IP 端口-目的IP 端口-IP 协议-流中的八比特组的数目-流中的分组的数目-服务类型-其他字段针对每个流,路由器以规律时间间隔(例如每分钟)来发射流记录,因此单一的生命长的流将产生很多流记录。可以将针对特定查询的过滤器应用于每一个流。这种过滤器的示例可以是在特定时间范围中的流或与特定接口匹配的流等等。过滤器可以由针对流记录中可用的字段的任意组合的过滤参数来构成。可以由关联字段的值或值的范围来定义过滤参数。例如,可以将IP地址值的范围定义为例如网络掩码,并且可以将端口范围定义为从起始值到终止值。在该实施例中,网络流处理引擎3被如上所述地配置用于检测分布式拒绝服务和/或端口扫描网络攻击,并因此收集和分析预定时间窗内的流记录,以有效地识别面向特定源或目的IP地址的活跃的网络流。在该实施例中,网络流处理引擎3被配置为从流记录中提取上述字段中的五个字段以分析网络流,即提取源地址和端口、目的地址和端口以及IP协议。下面将这五个字段统一称作5元组对话数据。本领域技术人员将认识到,任何其他字段组合可以用于形成具有N个字段的N元组,以例如针对不同任务或查询来分析流记录。由元组块写入器43从每一个接收到的流记录中提取5元组对话数据的相应字段的值。在该示例实施例中,首先将所提取的值放入如图6A所示的元组数据结构中。元组数据结构中的字段的顺序取决于网络流处理引擎3的配置。例如,针对网络流处理引擎3被配置为识别面向相同目的IP地址的活跃网络流的分布式拒绝服务检测,使用以下顺序61将值写入元组数据结构中首先是目的IP地址,然后是源IP地址,之后是源端口、目的端口和IP协议。另一方面,针对网络流处理引擎3被配置为识别面向相同源IP地址的活跃网络流的端口扫描检测,则使用以下顺序62将值写入元组数据结构中首先是源IP地址,然后是目的IP地址,之后是源端口、目的端口和IP协议。5元组数据结构可以具有固定的大小,例如由4个32比特整数元素构成,以有效率地进行处理。如图6A所示,如果关联的值少于该数据结构的固定长度,则因此可以在5个 字段后提供填充(padding)。在该实施例中,网络流处理引擎3被配置为对来自预定时间窗的5元组的已分类数据流进行提取、收集、处理和输出。然后将该已分类的数据流传递给后续分析组件以进行有效率的处理。为了存储器效率和处理器效率,分两个阶段来执行根据本实施例的分类。在第一阶段中,元组块写入器43向具有索引的元组块数据结构63输出产生的5元组数据结构,直到块数据结构满了为止,该数据结构63具有用于存储固定数目的5元组数据结构的预定大小。本领域技术人员将认识到,可以将具有索引的元组块存储为例如RAM存储器中的整数数组。元组块63还包括每一个单独的元组元素65在元组块63中的相对位置的索弓I 64。在图6B所示示例中,索引64是整数数组,其存储每一个元组单元65的整数索引,作为元组块63中的偏移量。一旦网络流处理弓I擎3确定已用最大数目的单独的元组元素65填充了元组块63,则将元组块63发送至元组块分类器44。元组块分类器44以预定义顺序对单独的元组元素65分类,使得已分类的数据结构便于更有效率的分析,以识别特定的源和目的IP地址和端口之间的不同关联,以及识别它们之间的传输量(例如,基于流中的八比特组的数目和/或流中的分组的数目,从相关联的流记录中提取的值)。本领域技术人员将认识到,可以基于网络流处理引擎的配置来定义分类顺序。例如,针对网络流处理引擎3被配置为识别面向相同目的IP地址的活跃网络流的分布式拒绝服务检测,基于目的IP地址对元组分类,将目的IP地址存储为元组数据结构61中的第一元素,因此可以有效率地进行提取以由元组块分类器44进行处理。另一方面,针对网络流处理引擎3被配置为识别面向相同源IP地址的活跃网络流的端口扫描检测,基于源IP地址对元组分类,根据该配置,将源IP地址同样存储为元组数据结构62中的第一元素。根据本实施例,元组块分类器44可以通过对索引64的单独索引进行重新排序,而不是必须提取、重新排序、并重新写入元组数据本身,来执行对单独的元组元素65的有效分类。换言之,在元组块分类期间,不在元组块64中移动元组元素65本身;仅移动索引位置。还可以通过从索引64中移除重复的元组之一的单独索引而有效率地从元组块63中移除任何已识别的重复的元组(例如,在元组具有相同的源和目的地址、端口和协议的情况下)。当元组块分类器44已对元组块63分类时,将已分类的元组块发送到元组块写入器45,元组块写入器45将已分类的元组块44移动到输出元组块文件66。如图6C所示,产生的元组块文件66可以包括已分类的单独的元组元素的总数作为报头元素。因此元组块为空,且针对预定时间窗完成第一阶段的第一次迭代。元组块写入器45可以执行附加处理,以确定最有可能指示攻击的不同的源或目的地址以及对话,并对它们排列优先级。针对预定时间窗的持续时间,重复上述过程,即提取5元组,填充元组块、对已填充的元组块分类,并将已分类的元组块添加到输出元组块文件。当网络流处理引擎3确定已经经过了预定时间窗,则向合并分类组件46输出元组块文件66,合并分类组件46从元组块文件66读取元组块,并执行对已分类的元组的合并分类。本领域技术人员将认识到,合并组件46可以通过保持对元组块文件中的每一个元组块的指针、从块中放出(emit)最低元组并使该指针前进,有效率地执行合并分类。
然后,由合并分类组件46将整体合并已分类的元组作为从预定时间窗提取的所有元组的已分类数据流加以输出,且将已存储的元组的数据流传递给地址和对话计数器47,该地址和对话计数器47处理已接收的数据流,以计算针对每一个唯一的源和目的IP地址对的不同的关联地址和对话的数目。在该实施例中,可以对已分类的元组的已接收的数据流有效地执行计数器计算,例如使用以下算法
权利要求
1.一种用于收集网络流数据的装置,包括 用于接收多个流记录的装置(42); 用于从所接收的流记录中提取数据到块数据结构中的装置(43),其中,所述块数据结构包括多个单独的元素以及所述多个单独的元素的索引,每一个元素存储从相应的流记录中提取的数据;以及 用于通过对所述索引重新排序而对所述块数据结构中单独的元素进行分类的装置(44)。
2.根据前述权利要求中任一项所述的装置,其中,所述块数据结构具有固定大小,并且所述装置还包括用于确定所述块数据结构何时填满以及将所述块数据结构传递给所述分类装置的装置。
3.根据权利要求3所述的装置,其中,所述分类装置(44)被布置为基于所提取的数据的比特模式对单独的元素进行分类。
4.根据权利要求4所述的装置,其中,所述分类装置被布置为向输出块文件添加已分类的块数据结构。
5.根据前述权利要求中任一项所述的装置,其中,所述接收装置(42)被布置为接收预定时间窗内的多个流记录。
6.根据权利要求5所述的装置,其中,所述提取装置和所述分类装置被布置为针对所述预定时间窗内的多个流记录,重复地填充所述块数据结构、对所填充的块数据结构进行分类以及将已分类的块结构添加到块文件。
7.根据权利要求6所述的装置,还包括用于执行所述块文件中的多个元素的合并分类以及输出已分类的元素的数据流的装置。
8.根据权利要求7所述的装置,还包括用于处理作为数据流的已分类的块数据结构以识别网络使用模式的装置(46、47)。
9.根据前述权利要求中任一项所述的装置,其中,所述单独的元素是N元组,N是从流记录中提取的数据项的数目,以及所述块数据结构是元组块。
10.根据权利要求9所述的装置,其中,所述索引包括索引数组,每一个索引标识相应的单独的N元组在所述元组块中的位置。
11.根据权利要求10所述的装置,其中,所述处理装置(46、47)还被布置为识别流记录的网络地址和网络端口之间的关联,以及基于已识别的关联来识别指示分布式拒绝服务和/或端口扫描攻击的一个或多个流记录。
12.根据权利要求11所述的装置,其中,所述处理装置(46、47)被布置为通过根据与单一源网络地址相关联的目的网络地址和网络端口的最高数目以及与单一目的网络地址相关联的源网络地址和网络端口的最高数目,对所确定的结果进行分级,以识别关联。
13.根据权利要求12所述的装置,还包括用于输出已分级的信息的装置。
14.一种收集网络流数据的方法,包括 接收多个流记录; 从所接收的流记录中提取数据到块数据结构中,其中,所述块数据结构包括多个单独的元素以及所述多个单独的元素的索引,每一个元素存储从相应的流记录中提取的数据;以及通过对所述索引重新排序,对所述块数据结构中的单独的元素进行分类。
15.一种计算机可执行的指令,用于将可编程装置配置为变为被配置为根据权利要求I至13中任一项所述的系统,或变为被配置为执行根据权利要求14所述的方法。
全文摘要
本发明提供一种用于检测对数据网络的网络攻击的基于流的检测系统。以便于有效率分类的新颖的数据结构来收集流记录。可以随后以有效率的方式来分析已分类的数据结构,以确定网络是否受到攻击。如果唯一对应的地址或对话的数目过大,则识别出攻击。
文档编号H04L29/06GK102811162SQ201110279449
公开日2012年12月5日 申请日期2011年9月20日 优先权日2011年6月3日
发明者彼德·雷利 申请人:弗卢克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1