Processing

Please wait...

Settings

Settings

Goto Application

1. CN110100415 - SYSTEM FOR PREPARING NETWORK TRAFFIC FOR FAST ANALYSIS

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
用于将网络流量准备好进行快速分析的系统


技术领域
本发明是用于将网络流量准备好进行分析的系统和方法,特别是用于将网络流准备好进行分析的系统和方法。
背景技术
出于多种原因需要分析网络流量。
“Flow-based Compromise Detection”(作者:Rick Hofstede,ISBN:978-90-365-4066-7;2016,简称为“论文”)描述了一种分析网络流量的方法,该方法与基于分组的分析不同。该论文描述了基于流的网络分析以及一些用于检测与网络连接的计算设备的所受感染的一些应用程序。基于流的网络分析涉及以流导出记录的形式准备和导出流以作为与网络行为有关的信息。
为了运行该流程,分析分组,以提取适合导出的信息作为导出流。导出流以来自多个分组的数据为特征。根据导出流协议执行导出,包括但不限于IPFIX或Netflow。虽然这两种协议都是有用的,但是IPFIX的开发是为了支持从设备或网络探测器(设计用于转发分组)的流导出。然而,两种协议都不需要单个设备来捕获和分析分组以获得导出流。
以IPFIX为例,流信息以信息元素或IE的形式导出。不同的IE可能采用的格式以及所包含信息的类型与IANA所维护的标准相关。下面是可接受的流导出元素(IE或字段)的一些示例的表格。表1示出了流的可接受的IANA元素的非限制性示例。
表1,流的IANA元素:
根据IPFIX或Netflow导出协议,流可以可选地被定义为“在特定时间间隔内经过网络中的观察点的IP分组集,使得属于特定流的所有分组具有一组共同属性”。这些导出协议定义了以下共同属性:分组报头字段(例如源IP地址、目的IP地址和端口号)、基于分组内容的解释信息、以及元信息。一旦流终止,那么该流将被导出。
在典型数据库中,共同属性可以可选地被存储为行,以每个属性作为一列。可以可选地按照上述论文中所描述的那样执行分组分析。
发明内容
本发明是一种通过将网络流分解成多个元素后对其进行标记来将网络流准备好进行分析的系统和方法。经标记元素可以可选地包括根据任何类型的网络流标准(包括但不限于IPFIX或Netflow标准)的任何类型的元素的组合,或者可以可选地从这些元素中获得,例如,可选地,可以添加外部(非流)信息,或者通过对网络流标准元素执行某种类型的计算。
例如根据网络流的外部信息或通过对网络流标准元素执行某种类型的计算来从一个或多个网络流标准元素中得出的经标记元素在此被确定为简单经标记元素。经标记元素是从网络流标准元素中获得的,但它本身不是单一的网络流标准元素。
这种简单经标记元素的非限制性示例是地理位置标记元素,其从导出的网络流的IP地址和查找表中获得。查找表将IP地址与地理位置进行匹配,并且不被视为网络流标准元素。简单经标记元素的另一个非限制性示例是经过时间或持续时间,其可以可选地从流开始时间和流结束时间网络流标准元素计算出。简单经标记元素的另一非限制性示例是计算来自特定IP地址的流量的频率。这种经标记元素的又一非限制性示例是流量比,其可选地从发送到特定IP地址或特定IP地址的特定端口的数据量以及从其接收到的数据量中获得。这种经标记元素的又一非限制性示例是端口/IP地址元素,其可选地从网络流的源IP地址和目的端口的组合中获得。
可选地,经标记元素由一个或多个经处理的网络流标准元素(即,来自一个或多个简单经标记元素)确定,并且在本文中被称为复合经标记元素。复合经标记元素可以可选地包含多个简单经标记元素的组合。附加地或替代地,可以可选地通过对简单经标记元素执行某种类型的计算或者通过将网络流标准元素与简单经标记元素组合(可选地,还包括某种类型的计算或网络流的外部信息)来从简单经标记元素加网络流的外部信息中获得复合元素。
这种复合经标记元素的非限制性实例可以可选地从上述经过时间或持续时间简单经标记元素加上与地理位置有关的另一简单经标记元素的组合中获得。这种复合经标记元素的另一个非限制性示例可以可选地通过对到达特定地理位置的流量数量(无论是频率、字节或其组合)进行计数来获得。
经标记元素还可以可选地用作构建块,以构建更复杂的经标记元素,其在本文中也被称为复合元素。例如,可以可选地分析先前描述的流量比,以确定哪部分来自特定端口,或者正在被发送到目的IP地址上的特定端口。这种分析可以可选地通过将多个复合经标记元素进行组合或将复合经标记元素与简单经标记元素进行组合来完成。因此,可以以非常灵活的方式使用经标记元素,并且可以可选地将其组合以创建新的这种经标记元素。
根据本发明的至少一些实施例,一种用于分析网络流的方法包括接收网络流,分析网络流并按列编写经标记元素。可选地,按行分析网络流。这增加了该流程的功效。优选地,该方法包括在确定复合经标记元素之前,首先分析网络流以确定更简单的经标记元素。优选地调整该方法,使得在确定了特定经标记元素之后执行需要特定经标记元素的标记流程。可选地,通过针对网络流将每种类型的经标记元素(无论是简单,复合还是复杂)映射到这种经标记元素记录的列来执行该调整。简单经标记元素优选地映射到首先要写入的列,而复合经标记元素优选地仅映射到至少在包含有复合经标记元素所依赖的简单元素的那些列之后要被写入的列。本身需要至少一个复合经标记元素的复合经标记元素优选地映射到至少在包含有所需复合经标记元素的那些列之后要写入的列等。
除非另外定义,否则本文使用的所有技术和科学术语具有与本发明所属领域的普通技术人员通常理解的含义相同的含义。本文提供的材料、方法和实施例仅是说明性的而非限制性的。
本发明的方法和系统的实现涉及手动、自动或其组合地执行或完成某些所选任务或步骤。此外,根据本发明的方法和系统的优选实施例的实际仪器和设备,可以通过硬件或任何固件的任何操作系统上的软件或其组合来实现若干所选步骤。例如,作为硬件,本发明的所选步骤可以实现为芯片或电路。作为软件,本发明的所选步骤可以实现为通过计算机使用任何合适的操作系统来执行的多个软件指令。在任何情况下,本发明的方法和系统的所选步骤可以被描述为由数据处理器执行,例如用于执行多个指令的计算平台。
尽管针对“计算机网络”上的“计算机”描述了本发明,但应该注意,可选地,任何具有数据处理器和执行一个或多个指令的能力的设备均可以被描述为计算机或计算设备,包括但不限于任何类型的个人计算机(PC)、服务器、蜂窝电话、IP电话、智能电话、PDA(个人数字助理)、瘦客户端、移动通信设备,智能手表、头戴式显示器或其他能够与外部通信的可穿戴设备、虚拟的或基于云的处理器或寻呼机。任何彼此通信的两个或更多个这样的设备可以可选地包括“计算机网络”。
附图说明
在此参考附图仅通过举例的方式描述了本发明。现在具体关于附图需要强调的是,所示的细节仅是示例性的,并且仅出于对本发明的优选实施例的说明性讨论的目的,且被呈现以提供被认为是对本发明的原理和概念方面的最有用的且易于理解的描述。在这方面,并未尝试比对基本理解本发明所必需的程度更详细地展示本发明的结构细节,结合附图进行的描述使得如何在实践中体现本发明的几种形式对于本领域技术人员变得明显。
图1示出了根据本发明的至少一些实施例的用于收集和分析流的示例性且非限制性的说明性系统;
图2示出了根据本发明的至少一些实施例的用于收集和准备流的示例性且非限制性的说明性系统;
图3示出了根据本发明的至少一些实施例的用于流导出、收集和分析的示例性且非限制性的说明性流程;
图4示出了根据本发明的至少一些实施例的用于流分析的示例性且非限制性的说明性详细流程;
图5示出了根据本发明的至少一些实施例的用于流数据预处理的示例性且非限制性的说明性详细流程;
图6示出了根据本发明的至少一些实施例的用于流数据处理的示例性且非限制性的说明性详细流程;以及
图7示出了根据本发明的至少一些实施例的用于流元素标记的示例性且非限制性的说明性详细流程。
具体实施方式
根据本发明的至少一些实施例,提供了一种用于通过标记来将网络流准备好进行分析的系统和方法。不需要关于流的用于成功标记的先验知识,而且标记也不需要对流的含义或意义做出任何判断。相反,标记提供了一种稳定、可重现且高效的流程,以用于将网络流快速分解为有用的信息。
现在转到附图,图1示出了根据本发明的至少一些实施例的用于收集和分析流的示例性且非限制性的说明性系统。如图1所示,提供了系统100,其具有一个或多个网络,通过该网络收集流数据。如前所述,流数据涉及与通过一个网络或多个网络的分组的流有关的数据。如图所示,提供了远程网络1,其可以可选地连接到被称为流导出器4的装置。流导出器4可以可选地是专用装置或设备。可替选地,流导出器4可以是除了流导出之外还具有其他功能的服务器或其他计算设备。
如前所述,流导出可选地并且优选地以收集分组数据为特征,然后将分组数据组织成导出流,再将其导出。可选地根据一个或多个不同的协议进行流导出,包括但不限于IPFIX和/或NetFlow。IPFIX协议目前称为RFC 7011,NetFlow协议称为RFC 3954。所述流数据是元数据摘要,流导出器2使用这些流导出协议中的一个来准备该元数据摘要。流数据优选地被组织成使得并不需要所有分组数据,例如可选地,流数据可以仅从分组报头中获得,或者从其他分组行为可量化的分组特征或分析中获得。
然后,流导出器4以及流导出器2可以可选地准备这样的数据并将其发送到流收集器和分析应用程序7,该流收集器和分析应用程序7可选地且优选地由计算设备102操作。现在,根据计算设备102的相对位置,可以可选地在计算设备102、远程网络1和可选地例如本地网络3之间建立不同的连接。这些连接可以可选地通过任何网络进行,包括但不限于因特网5。
在此处示出的针对系统100的示例中,流导出器4通过因特网5与路由器6通信。流导出器2从本地网络3接收流并处理其中所包含的数据。流导出器2和流导出器4根本上经由路由器6通过计算设备102进行通信,尽管可以可选地使用任何类型的网络装置来连接来自这些不同网络的这些不同流,可选地包括通过因特网5进行的任何类型的通信。
然后,所示的流收集器和分析应用程序7收集流并且可以可选地执行某种类型的分析。这将在图C中更详细地进行描述。
图2示出了根据本发明的至少一些实施例的用于收集和准备流的示例性且非限制性的说明性系统,包括示例性系统200,其提供关于流的分析和准备的附加细节。在该图中,为了便于解释,已经省略了一些计算设备,但是应当注意,可选地,流导出器8、流收集器10和分析应用程序11可以分别可选地实现为网络设备或装置,和/或操作任何类型的软件的服务器,即使在这种情况下,为了便于解释,可以可选地不显示这些设备。
因此,流导出器8再次根据流导出器协议准备流并将其导出,可选地,该流导出协议也可以是NetFlow、IPFIX或任何其他合适的流导出协议。然后,流通过网络9被导出到流收集器10,可选地,该网络9可以是因特网。
流收集器10可以可选地从多个流导出器8收集流(未示出),然后将收集到的流发送到分析应用程序11。
可选地,流收集器10可以或可以不与一个或多个流导出器8位于同一主机系统上。因此,在这种情况下,例如,流收集器10可以可选地与流导出器8分别位于不同的主机系统和/或不同的网络上。流收集器10可以可选地与分析应用程序11在相同的主机系统上操作,或者甚至由相同的计算设备进行操作,或者可以可选地与分析应用程序11分别位于不同的主机系统上和/或分别由不同的计算设备进行操作。同样,关于流收集分析流程,在图C中示出了进一步的细节。
图3现在涉及图C,其示出了根据本发明的至少一些实施例的用于流导出、收集和分析的可选流程。如图所示,优选地,多个流导出器12将流通过网络13导出到流量收集器14。再次如关于前图所描述的,可选地,此处示出的每个组件均可以实现为独立的网络装置或设备,或者可以可选地实现为服务器或服务器组的一部分(可选地实现为固件或软件)。尽管未示出这样的计算设备,但是它们被认为是图的固有部分,并且实际上会容易地被本领域普通技术人员添加和理解。
因此,回到图3,流由流收集器或流收集点14收集,并且可选地且优选地被放置在流数据存储器15中。可选地,该流数据存储器15可以是临时的或永久型的数据存储器。然后,流数据分析组件16可选地且优选地从流数据存储器15中读取流,以执行某种类型的分析。可以可选地由结果处理组件17处理该分析的结果。
可以可选地根据任何类型的存储设备来实现流数据存储器15,包括但不限于硬盘、SAN存储器、RAM盘、任何类型的存储结构、队列等。发送到结果处理组件17的流数据分析16的结果可以可选地包括但不限于针对异常行为、网络路由更新、网络模型创建或更新、低预测等发送的警报。然而,流数据分析16可以可选地对于分析的含义是不知道的,使得例如流数据分析16可以可选地不确定特定的流是否指示对计算机系统的某个部分的未授权的访问、存在(或不存在)恶意软件等。可选地,流数据分析16不会将所有结果都发送到结果处理组件17,而是选择那些信息量最大且/或表示网络、网络模型或系统的某种类型的状态变化的结果,和/或可以代表可选地根据预定规则设置的某种类型的警报的结果,其可以指示结果处理组件17需要更详细地进行检查的结果。
结果处理组件17可以可选地包括但不限于恶意软件检测应用程序、未授权访问检测应用程序或异常检测应用程序、或者任何类型的受感染检测(其中计算机系统的操作以某种方式受感染)中的一个或多个。
在图3中被称为项“D”的图4(也示为D)提供了关于流数据分析16的更多细节。图4涉及示例性的详细的数据分析流程。再次如图所示,提供了收集数据的流数据收集或收集器18。可选地,在这种情况下,这可以是表示从多个组件收集流数据的功能组件,且可选地进行预处理或不进行预处理。
在阶段19中,分析流程开始,例如,这可以可选地包括某种类型的预处理或数据的收集。在阶段20中,确定新的流数据是否可用。如果新的流数据不可用,则该处理优选地直接进入阶段26,在阶段26中分析流程结束,并且任何异常的或其他重要的结果均被发送到先前描述的结果处理阶段27。可选地且优选地仅包括被称为重要、异常的结果、表示变化的结果,或者是可以可选地根据一个或多个规则触发的结果。
然而,当在阶段20中有新的流数据可用时,则该流程继续到阶段21,同时预处理该流数据。结合图E更详细地描述了该预处理阶段。预处理阶段优选地以流数据列的形式将更多的元数据添加到流数据。预处理和标记对于本发明,至少对于一些实施例来讲是重要的,因为其涉及一种可以以某种方式预分析或预处理被检查的数据以减少所需的计算资源和/或以更容易实现的方式分发这些计算资源的方法,该方法至少更加灵活并且允许系统内的不同装置和/或计算设备或组件承担该处理方法和/或任何类型的分析的不同方面。
在预处理完成后,在阶段22中分析流数据。在分析流数据后,在阶段23中对其进行后处理。如果在阶段24中发现可公布的结果,则将在阶段25中公布该结果。无论是否有可发布的结果,且如果在发布后仍有可发布的结果,在任何一种情况下,分析处理均如前所述在阶段26中结束。
图5涉及图E,其更详细地描述了对流数据的预处理。因此,在图5中,如在阶段28中所示,对数据进行分析,以确定所接收的数据的类型,并确认数据是否适于处理。预处理流程实际在阶段29中开始。在阶段30中确定预处理模块的顺序。可选地,这可以至少部分地根据数据的一个或多个特征和/或根据先前已经实现的一个或多个规则来确定。这些规则还可以可选地由数据的一个或多个特征触发。
对于预处理,假设存在一个或多个模块,每个模块在分析流数据时都具有特定的预处理任务。由于模块可以依赖于特定标记的存在,因此重要的是调度模块执行的顺序,以最大化可以完成的标记的数量。这种调度还可以防止无限循环中的循环依赖。因此,例如,如果一个模块依赖于另一个模块的结果,那么显然地,依赖于其他模块的结果的模块需要在提供该结果的模块之后实现。
如果调度足够提前和/或如果提供了足够的信息,则可以调度并行执行。该调度优选地在阶段30中完成。
在阶段31中,以确定的顺序选择用于预处理的每个模块,该模块优选地是预处理专用模块(专用于特定的简单或复合经标记元素)。如前所述,所确定的顺序优选地涉及每个模块需要哪些信息。例如,如果模块仅需要标准网络流元素,则该模块能够可选地首先运行。需要已经标记的元素的模块优选地在所需的经标记元素准备好之后运行。
接下来在阶段32中,使用所选模块预处理流数据。图F示出了该处理的更多细节。在阶段33中,确定每个模块的预处理是否实际上已经执行以预处理流数据。如果不是,则流程返回到阶段31。如果是,并且实际上已经执行了所有模块,则在阶段34中,预处理流程结束,并且在阶段35中,分析流程优选地继续。
现在转到图6,图F中示出了一种方法,其更详细地涉及每个模块的预处理阶段。如图所示,在预处理活动阶段36中,接着在阶段37中开始模块在标记中的执行。首先,确定对于该模块所需的所有列是否在阶段38中可用。每个模块可选地至少需要一列来添加或更新元数据或标签。在没有列的情况下,或者作为前提条件,标签可以包括时间戳或序列号或者不需要该特定流数据集的上下文的任何东西。
如果没有可用的可标记列,则该模块的执行在阶段45结束,并且继续另一个模块的预处理,或者继续执行阶段46中的另一个步骤。如果所需的列可用,则会为这些列中的每一行启动迭代循环。因此,继续更详细地说,在阶段38中确定可标记列是否可用,并且如果再次没有可用的可标记列,则表明标记流程在阶段45中结束。然而,可选地,这可能只是针对这个特定模块的流程,并且事实上,可能有需要根据特定模块的顺序来对其重新调度,以在该流程中随后执行该模块,或者如果实际上该模块正在等待结果,甚至可能在不同的流程中执行该模块。
可选地并且优选地,系统足够灵活,使得如果已经示出特定模块未按顺序执行,则可以可选地在随后的预处理的迭代中的该顺序的不同部分中执行该模块,以避免不得不多次重新调度模块。当然,这可能并不是在所有情况下都是可行的,在这种情况下,可以可选地执行模块重新调度以确保所有模块都被实际执行。
一旦确定了可标记列可用,则在阶段39中确定行数据是否可用。如果行数据可用,则在阶段40中,优选地读取每行中的列。根据本发明的至少一些实施例,预处理方法按列操作而不是按行操作,使得在考虑下一列之前完全读取每列中的每个单元,而不是将每一行作为单独的个体读取。在后一种情况下,每个单元和每一行将对应于不同的列,使得在考虑下一行之前,按行读取来自多列的单元格。然而,在这种情况下,由于这些单元来自同一列,因此在考虑下一列之前考虑来自多行的单元。
接下来在阶段41中,确定标记数据。优选地,结合图G更详细地描述了对标记数据的确定流程。在阶段42中,如果需要创建新的结果列,则创建它,并且在阶段43中初始化该结果列。
在阶段44中写入标记数据,然后该流程继续回到阶段39,直到一列全部完成。每个列均完成之后,标记流程可以可选地以不同的模块继续,或者可选地以不同的列继续,直到标记流程结束,如阶段45所示。在阶段46中,预处理流程优选地以下一个模块继续。
可选地,可以借助一列或多列的查找表,通过计算或逻辑归纳/推断和/或使用不同数据库的更复杂的算法来确定标签的值。优选地,标记流程不会在行或行组合的值的任何上下文中产生关于重要性的任何结论。标记流程最好不加选择地处理每个符合条件的行,并添加标记而不处理整个行。
如果需要将标记数据写入新列42,如前所述,则需要在阶段43中创建或初始化该列。
图7示出了根据本发明的至少一些实施例的用于在非限制性示例的网络数据流被处理以形成标记数据时对其进行流元素标记的示例性且非限制性的说明性详细流程。作为非限制性且说明性的示例给出了该数据。该数据由流收集器接收并作为特定类型的流元数据47的列存储在中间存储器中。在该例中,是一些常见但不受限制的流数据属性示例。
开始标记的第一模块48查看“目的IP地址”列,并通过在特定表中执行查找来为该IP地址确定已注册的物理位置。该数据将被写入名为“目的地理位置”的新列,作为简单经标记元素的示例。
开始标记的第二模块49再次使用“目的IP地址”列,但它也使用内部数据库,其持续跟踪IP地址的访问频率。其递增内部数据库中的值,将该值存储在数据库中,并将数据写入名为“频率”的新列,作为简单经标记元素的另一个示例。
第三模块50使用“发送字节”和“接收字节”列,然后使用公式(发送/接收)×1000000来计算流量比并将该值放入新列“流量比”中,作为简单经标记元素的另一个示例。
第四模块51使用列“源IP地址”和“目的端口”以及内部数据库来从该源IP地址的先前活动确定该组合作为异常孤立点的度量。该度量将写入新列“异常”,以作为复合经标记元素的示例。
第五模块52使用“目的端口”和“流量比”来添加或减去“异常”列中已存在的值。在现有列“异常”中更新该结果,或者可选地在新列中更新该结果,以作为复合经标记元素的示例。
应当理解,为了清楚起见而在单独的实施例的上下文中描述的本发明的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见而在单个实施例的上下文中描述的本发明的多个特征也可以分开提供或以任何合适的子组合提供。
尽管已经结合本发明的具体实施方案描述了本发明,但是显然,许多替代、修改和变型对于本领域技术人员而言是显而易见的。因此,旨在涵盖落入所附权利要求的精神和广义范围内的所有这些替代、修改和变型。本说明书中提及的所有出版物、专利和专利申请均通过引用整体并入本说明书中,其程度如同每个单独的出版物、专利或专利申请被具体和单独地指明通过引用并入本文的程度相同。另外,本申请中任何参考的引用或标识不应被解释为承认这样的参考可用作本发明的现有技术。