CN105637831A - 用于分析数据流的方法和系统 - Google Patents
用于分析数据流的方法和系统 Download PDFInfo
- Publication number
- CN105637831A CN105637831A CN201380080073.XA CN201380080073A CN105637831A CN 105637831 A CN105637831 A CN 105637831A CN 201380080073 A CN201380080073 A CN 201380080073A CN 105637831 A CN105637831 A CN 105637831A
- Authority
- CN
- China
- Prior art keywords
- packet
- stream
- state
- stored
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0254—Stateful filtering
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K999/00—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS dummy group
- H05K999/99—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS dummy group dummy group
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Abstract
本发明涉及用于分析数据流的方法,包括以下步骤:a)提取所述数据流的分组的分组信息;b)基于所提取的分组信息确定所述分组的状态和所述数据流的状态,以及当所述状态指示所述分组是失序的时,对所述分组进行存储以用于随后检测;以及c)基于检测规则来检测所述分组和/或所存储的分组,其中,针对所述检测规则中的至少一个与所提取的分组信息的部分匹配,临时地存储所述分组的分组检测的结果,以及其中,当已经存储的分组与已经检测的分组是按顺序的时,对已经存储的分组进行检测,以及其中,针对所述检测规则中的至少一个的全部匹配,执行预定动作并删除所存储的结果。本发明还涉及用于分析数据流的系统。
Description
技术领域
本发明涉及用于分析数据流的方法。
本发明还涉及用于分析数据流的系统。
虽然适用于任何分析方法,但是本发明将关于深度分组检测和深度流检测来描述。
背景技术
一般地,深度分组检测使得能够分析(例如经由TCP/IP发送的)数据分组的应用层内容,以检测其是否包含从签名数据库获取的样式(pattern),比如内容字符串、常规表达或短型修正符等。
然而,当样式扩展到相同流的多个分组上时(比如图1中所示的示例),对一个分组的内容的分析可能不会匹配完全表达。
为了克服这一问题,常规方法通过重组连续分组来对整个流进行重构以使它们按顺序(in-order),然后对所重构的流进行深度分组检测,并且还查找整个流中的匹配(这也被称为“深度流检测(DFI)”)。
然而,缺点之一在于,由于必须在检测前对每个流进行全部重构,所以对大流量应用这一方法是不可行的。针对每个穿过链路的流,需要流重构链(例如,软件实现的线程),从而耗尽计算资源。
另一缺点在于,当重组所述流时,必须显式地保持被重构的每个流的状态,从而耗尽存储器资源。在所述流的整个寿命期间保留这些按流的资源,即使所述流在其寿命期间经历了某些非活动状态也是如此。例如,在非专利文献A.Kortebi,L.Muscariello,S.Oueslati,J.Roberts,“Evaluatingthenumberofactiveflowsinaschedulerrealizingfairstatisticalbandwidthsharing,”ACMSIGMETRICS2005或非专利文献C.Hu,Y.Tang,X.Chen,andB.Liu,“Per-flowQueueingbyDynamicQueueSharing,”ProceedingsofIEEEINFOCOM,Anchorage,Alaska,2007中,示出了在给定时间窗期间呈现的分组级别活动性在几百毫秒到几秒之间的流的数量显著地小于正在处理的流的数量。这意味着,如果在实践中高速链路共享总数为一百万的流,则在给定时间的活动流的数量的量级是几千,因此大量的存储器用于非活动的流。
此外,在非专利文献“Beyondbloomfilters:fromapproximatemembershipcheckstoapproximatestatemachines(SIGCOMM06)”,GeorgeVarghese等(http://cseweb.ucsd.edu/~varghese/PAPERS/sigcomm06a.pdf\)中,示出了用于流量分析的D-left表,然而,其中保存了流状态信息,并且使用插入/删除操作来更新流的状态。
在非专利文献“Bouma2-AQuasi-Stateless,TunableMultipleString-MatchAlgorithm”(http://arxiv.org/abs/1209.4554)中,示出了准无状态字符串匹配算法。
发明内容
因此,本发明的目标在于,提供在计算资源方面更高效的用于分析数据流的方法和系统。
本发明的目标还在于,提供在存储器使用/存储器资源方面更高效的用于分析数据流的方法和系统。
本发明的目标还在于,提供不需要针对每个流进行重构或为每个流保持状态信息的用于分析数据流的方法和系统。
本发明的目标还在于,提供使得能够分析与常规方法和系统相比数量更多的流的用于分析数据流的方法和系统。
通过权利要求1的方法和权利要求13的系统来实现上述目标。
在权利要求1中,限定了用于分析数据流的方法。
根据权利要求1,所述方法的特征在于,包括以下步骤:
a)提取所述数据流的分组的分组信息;
b)基于所提取的分组信息确定所述分组的状态和所述数据流的状态,以及当所述状态指示所述分组是失序的时,对所述分组进行存储以用于随后检测;以及
c)基于检测规则来检测所述分组和/或所存储的分组,其中,针对所述检测规则中的至少一个与所提取的分组信息的部分匹配,临时地存储所述分组的分组检测的结果,以及其中,当已经存储的分组与已经检测的分组是按顺序的时,对已经存储的分组进行检测;以及针对所述检测规则中的至少一个的全部匹配,执行预定动作并删除所存储的结果。
在权利要求13中,限定了一种用于分析数据流的系统,所述系统优选地执行根据权利要求1-12中的任一项所述的方法。
根据权利要求13,所述系统的特征在于包括:
提取装置,操作用于提取所述数据流的分组的分组信息;
状态装置,操作用于基于所提取的分组信息确定所述分组的状态和所述数据流的状态;
存储装置,操作用于当所述状态指示所述分组是失序的时,对所述分组进行存储以用于随后检测;以及
检测装置,操作用于基于检测规则来检测所述分组和/或所存储的分组,其中,针对所述检测规则中的至少一个与所提取的分组信息的部分匹配,临时地存储所述分组的分组检测的结果,以及其中,当已经存储的分组与已经检测的分组是按顺序的时,对已经存储的分组进行检测;以及针对所述检测规则中的至少一个的全部匹配,执行预定动作并删除所存储的结果。
根据本发明,已经认识到,可以减小在检测分组时的存储器占用空间。这是因为,针对部分匹配,临时地存储分组检测的结果,并且当分组与已经检测的分组是按顺序的时检测所述分组,而不必为了之后的重构而保存所述流的每个分组。
根据本发明,还已经认识到,实现对数据流的进行中(on-the-fly)的检测。连续分组位于相同流内允许按流检测,而无需在此之前对流进行重组。
根据本发明,还认识到,不需要保持针对被分析的每个流的状态。
根据本发明,还认识到,针对每个流只需要保持关于分组的相应顺序(例如,序号)的状态。
根据本发明,还认识到,一旦接收到属于该流的分组,便执行分组和/或流检测。
根据本发明,还认识到,能够实现简单且低成本的实施方式。
换言之,只在需要时才存储流信息。只针对失序分组的流或在进行检测时只出现部分匹配的流存储相关信息。针对将要分析的大多数数据流,分组是在进行中分析的,并且不必为了随后分析而存储。
在以下将描述其他特征、优点和优选实施例。
根据优选实施例,为了根据步骤b)确定所述状态,执行以下步骤:b1)基于所提取的信息检查所述分组是否与已经接收的分组相关,并且如果不相关,则将所述分组的状态设置为失序;以及b2)基于所提取的信息检查所述分组是否与已经观测的流匹配。这使得能够通过快速高效的方式确定分组的状态,特别是如果分组属于已经观测的流并且如果该分组与已经接收的分组(例如就连续分组而言)相关。
根据优选实施例,为了确定分组的状态,在该分组上应用至少一个概率滤波器,优选为一对布隆滤波器。这使得能够保持流状态信息紧凑。例如,在一对旋转布隆滤波器的情况下,其使得能够对分组所属的流的状态进行查找。如果分组是按顺序的,则通过例如深度分组检测来检测所述分组。为了检测不按顺序的分组和/或副本分组,具体地,使用该对旋转布隆滤波器来为每个流存储下一连续分组的数量:例如,当分组到达该对布隆滤波器时,提取一组密钥并对于布隆滤波器检查该组密钥,使得布隆滤波器中是否存在密钥指示当前分组在其所属的流中的位置信息。
根据另一优选实施例,步骤c)包括执行深度分组检测。这使得能够通过使用少量的信息来执行所谓的流传输深度分组检测,即在不进行TCP流重构的情况下对每个分组进行检测。
根据另一优选实施例,在步骤c)中,一旦不存在匹配,则丢弃所述分组。这确保用于临时存储分组或状态的存储器使用可被保持为较低,这是因为,一旦没有匹配,则不需要为了随后使用而存储分组,并且分组被丢弃。
根据另一优选实施例,在步骤b)中确定副本分组,优选地在步骤b2)中确定所述副本分组,并且在步骤c)之前丢弃。这使得能够通过非常高效的方式来识别流内例如由于分组丢失等所引起的重传而导致的副本分组。一旦检测到副本分组,则可将其丢弃,这是因为已经对所述分组进行了分析。在部分匹配的情况下,临时地保存了相应分组的状态,在没有匹配的情况下,简单地将分组丢弃。因此,副本分组还是不令人感兴趣,并且在全部匹配的情况下,已经执行了所述动作,因此不必再执行相同的动作。
根据另一优选实施例,针对所存储的状态信息和/或针对所存储的失序分组使用暂停(timeout),其中,在预定时间之后,丢弃所述信息和/或所存储的分组。这通过非常高效的方式处理以下情况:在由发送方发送分组(例如,视频流)并且发送方以某种方式终止传输(例如,由于发送方的位置处发生电力故障)的情况下,将不会对视频流进行进一步的传输。因此,通过使用暂停,避免了长期不必要地存储状态信息或不按顺序的分组,因此有效地减少了存储器使用。
根据另一优选实施例,分组的状态被限定为分组在所述流内的位置。这使得可以保持将用于临时存储所述状态的存储器为非常低。优选地,可通过分组序号的形式来提供分组在流内的位置信息。
根据另一优选实施例,所述流的状态被定义为指示在所述分组之前对所述流的观测的二进制变量。这使得能够对分组是否属于已经观测的流或分组是否属于新的流进行归类。在分组属于新的流的情况下,例如在布隆滤波器的情况下,进行更新,以针对将到达布隆滤波器的接下来的分组包括该信息。
根据用于存储分组和/或状态信息的又一优选实施例,使用2-left散列表扩展。这使得能够通过简单的方式来存储关于流状态的信息,并最终存储失序分组,以便当在其间接收到分组时恢复(resume)检测,使得构成流的分组从而是按顺序的。通过使用D-left散列表,这可充当具有密钥-值配对的词典,其中将例如指示IP源、IP目的地、端口源、端口目的地和L4-协议的5元组作为密钥,将通过给定流的当前状态和通过序号排序的失序分组的队列形成的配对作为值。
根据另一优选实施例,所述概率滤波器的尺寸是基于小于或等于预定阈值的概率确定的。这增强灵活性并且优化存储器使用。例如,在布隆滤波器的情况下,布隆滤波器的尺寸可适于保证误判(falsepositive)概率低于阈值,其误判概率即针对布隆滤波器,在成员或元素不在布隆滤波器的表中的情况下返回其在表中的概率。例如,为了避免冲突,可以扩大布隆滤波器的存储器,从而减小这种冲突的概率。
根据另一优选实施例,在概率滤波器的非确定性结果的情况下,在对分组应用所述概率滤波器时所提供的结果基于具有最高概率的非确定性结果。这确保概率滤波器的不太可能的结果不被考虑。当然,可以执行单独的概率分析,从而可以认识到模糊性问题并且在该情况下单独处理。
关于如何有利地设计并进一步发展本发明的教导,存在多种方式。为此,一方面可以参见引用权利要求1的从属权利要求,另一方面可以参见以下通过示例的方式借助附图对本发明的优选实施例的解释。
附图说明
结合借助附图对本发明的优选实施例的解释,将对所述教导的一般优选实施例和进一步的发展进行解释。在附图中:
图1示出了流中的样式的示例;
图2示出了根据本发明的第一实施例的方法的流程图;
图3a、3b示出了根据本发明的第二实施例的方法的步骤的一部分;
图4a、4b示出了根据本发明的第三实施例的方法的步骤的一部分;
图5示出了根据本发明的第四实施例的方法的流程图。
具体实施方式
图1示出了流中的样式的示例。
在图1中,示出了流F中的多个分组P1、P2、P3、P4、P5、P6。这些分组P1、P2、P3、P4、P5、P6是按顺序排序的。
在图1中,例如,将通过流F中的深度分组检测来找到常规表达“MALWARE”。然而,术语“MAL”属于分组P1,术语“WARE”属于分组P2。因此,常规地,如果可应用重新排序,要存储分组P1和P2,并且必须将相应的流F一般地重构,使得它们按顺序。从而,可在整个流上执行深度分组检测,即针对相应常规表达“MALWARE”执行深度流检测DFI。
图2示出了根据本发明的第一实施例的方法的流程图。
在图2中,示出了分组P1、P2、P3,其中第一分组P1是所谓的按顺序的分组,第二分组P2是不按顺序的分组,第三分组P3是重传的分组。所有分组P1、P2、P3进入所谓的连接布隆滤波器C-BF。连接布隆滤波器C-BF保持关于分组的信息,例如5-元组,其包括目前为止已经看见的源和目的地IP地址、相应的端口以及L4-协议条目。通过这种方式,可以区分出这是不是第一次观测到给定连接(通过5-元组中包括的并且从分组P1、P2、P3的相应分组信息中提取的信息表示)。
重传的分组(即,图2中的分组P3)通过顺序布隆滤波器S-BF(sequence-SF)标识,并且该分组被丢弃。
其他两个分组P1、P2在经过连接布隆滤波器C-BF之后进入顺序布隆滤波器S-BF。顺序布隆滤波器S-BF保持例如关于所期望的TCP连接序号的信息。一旦分组P1、P2到达,所述5-元组和分组P1、P2在相应流F内的当前序号将被连接,并且在顺序布隆滤波器S-BF中被查找。
如果不存在任何匹配,即顺序布隆滤波器S-BF返回密钥(即5-元组的信息)不在表中,则分组P2被确定为不按顺序,或分组P2是相应TCP会话的第一个分组。当顺序布隆滤波器S-BF中发生匹配时,这意味着,要么分组P3是副本,例如分组P3具有同一对5-元组和相应序号,要么分组P3是按顺序的、尚未检测的分组P1。在匹配的情况下,使用与<5-元组,下一序号>密钥有关的条目相应地更新顺序布隆滤波器S-BF的相应表。
在匹配的情况下,为了解决模糊性的问题,可对密钥<5-元组,当前序号>和<5-元组,下一序号>进行检查。如果二者都存在于顺序布隆滤波器S-BF中,则该分组P3被认为是副本。如果只存在<5-元组,当前序号>,则分组P1可被认为是按顺序的。
由于连接布隆滤波器C-BF而导致的开销可通过只在密钥<5-元组,当前序号>和<5-元组,下一序号>都不存在于顺序布隆滤波器S-BF中时在连接布隆滤波器C-BF中进行查找来减小。
以下示出了分组何时进入布隆滤波器的概率的列表:
连接布隆滤波器C-BF和顺序布隆滤波器S-BF导致对流F以及当前分组在流F内是新的、按顺序的、不按顺序的还是副本的识别。在分组和流F的状态ST被确定之后,可执行深度流检测,以查找相应分组上的匹配。例如,常规表达引擎可获取输入的常规表达(例如使用类PCRE的语法),构建确定性的有限自动机DFA,以查找分组中的样式,从而在网络分组/有效载荷上运行引擎,以检查部分或全部匹配。常规表达和确定性的有限自动机DFA可在系统1的配置时间处限定,而匹配检查则在运行时间发生。
深度分组检测引擎从而在进行中执行检测,即一旦接收到属于流的分组,则执行流检测。一旦该流的下一个按顺序的分组已经进入系统1,则执行流分析,并且在检测之后,丢弃该分组。只要接收到按顺序的分组,就不会存储分组,即使确定了与该分组存在部分匹配或不存在任何匹配也是如此。
从而,在两个连续网络分组之间发生部分匹配的情况下,每次将分组分析为属于给定流,临时地存储确定性的有限自动机DFA状态,这在对当前分组进行检测后达到,从而一旦接收到下一个按顺序的分组,则可恢复所述检测。所述布隆滤波器对(即连接布隆滤波器C-BF和顺序布隆滤波器S-BF)使得相同流内的分组按顺序传递到深度分组检测引擎。
深度分组检测引擎的类型是不受限的:例如,可以是Thompson深度分组检测引擎,该引擎将常规表达转换成非确定性的有限自动机NFA,然后将其转换为确定性的有限自动机DFA。还可使用其他深度分组检测引擎。
具体地,布隆滤波器是概率数据结构,其可能返回误判。这意味着,例如,即使分组不对应与布隆滤波器中的条目,布隆滤波器也可能返回分组对应于布隆滤波器中的条目。然而,这一冲突的影响有限:
-可以调节布隆滤波器的尺寸,以保证这种冲突发生的给定概率p。
由于在顺序布隆滤波器S-BF中检查了两个密钥并且在连接布隆滤波器中检查了一个密钥,所以冲突概率更低了:假定布隆滤波器S-BF和C-BF之间是独立的,并且假定布隆滤波器S-BF、C-BF二者的尺寸相等,则如果不执行连接布隆滤波器C-BF中的查找的话,这一冲突概率是p3或p2。
-如果使用了布隆滤波器S-BF和C-BF两者,则可消除模糊性:在下表中,示出了模糊性列表以及能够如何对它们进行处理:
在左侧一列中,数字-1-、-3-和-5-对应于其中顺序布隆滤波器S-BF可能返回误判的情况。例如,查询的结果是“1”,即,所述元素存在于顺序布隆滤波器S-BF的相应表中(即使其并非如此)。但是,在所有这些情况下,来自查询连接布隆滤波器C-BF的“0”响应(即这意味着元素不存在)清楚地消除了模糊性:布隆滤波器S-BF、C-BF从不返回漏判(falsenegative)。
数字-2-的情况对应于连接布隆滤波器C-BF返回所述元素在连接布隆滤波器C-BF的表中但当前序号不在顺序布隆滤波器S-BF中。这最可能是不按顺序的分组的情况,但需假定连接布隆滤波器C-BF返回误判的概率较低(如上所述,这是可配置的),该分组可被解释为与情况-1-中的情形相对应的所述流中的第一个分组。通过任一方式,所述分组都可被认为是不按顺序的,即使它是第一个并且可与在其后接收的分组一起在D-left表DLEFT中缓存:一旦暂停期满,则不管怎样都将在可用的按顺序的分组中开始流检测。
数字-4-的情况对应于连接布隆滤波器C-BF返回所述元素在连接布隆滤波器C-BF的表中并且当前序号在顺序布隆滤波器S-BF中但并不是所期望的下一序号。这最可能是按顺序的分组的情况,但需假定顺序布隆滤波器S-BF针对当前序号返回误判的概率较低,该分组可被解释为与情况-2-中的情形相对应的不按顺序的分组。被存储在D-left表DLEFT中的所检测的序号的存在使得能够在两种情况之间进行区分。
数字-6-的情况对应于连接布隆滤波器C-BF返回所述元素在连接布隆滤波器C-BF的表中并且当前序号和所检测的序号两者都在顺序布隆滤波器S-BF中。这最可能是副本分组的情况,但需假定顺序布隆滤波器S-BF针对期望序号返回误判的概率较低,该分组可被解释为与情况-4-中的情形相对应的按顺序的分组。被存储在D-left表DLEFT中的所检测的序号的存在使得能够在两种情况之间进行区分。备选地,可对副本分组进行分析,并且不仅在全部匹配的情况下可以触发警报,在部分匹配的情况下同样可以。“无匹配”的情况不会出现问题。
此外,当前序号中的连接布隆滤波器C-BF和顺序布隆滤波器S-BF两者都返回误判的情况是非常不可能发生的,优选地,不对其加以考虑。
图3a、3b示出了根据本发明的第二实施例的方法的步骤的一部分.
在图3a和3b中,示出了当确定了部分匹配时D-left结构DLFET中对状态的机会分配。
例如,当所接收的分组是不按顺序的或深度分组检测引擎返回部分匹配时,D-left散列表DLEFT用来存储关于确定性的有限自动机DFA状态的信息以及最终存储失序的分组,以便当在其间接收到分组时恢复检测,使得构成所述流的分组是按顺序的。该D-left表DELFT充当具有密钥-值配对的词典,并且优选地将5-元组作为密钥,将通过针对给定流的确定性有限自动机的当前状态和通过序号排序的不按顺序的分组的队列形成的配对作为值。
在图3a中,D-left表DLEFT开始是空的。当第一分组P1到达时并且其不是副本分组时,所述第一分组P1可被确定为是按顺序的或不按顺序的。在按顺序的分组的情况下,从D-left表DLEFT获取确定性的有限自动机DFA状态,并且从上一部分匹配开始恢复检测。如果条目包括之前接收的不按顺序的分组,则也对它们进行处理(假定他们现在与触发深度分组检测的上一个接收的分组是按顺序的)。
在图3a中,由于分组P1是将要到达的第一个分组,所以在D-left散列表DLEFT中不存在任何条目。在图3a、3b中,顺序地处理两个分组P1和P2。在处理了第一分组P1之后,第一分组P1的DFA状态ST存储在D-left表DLEFT中,流的编号也相应地存储在与第一分组P1的DFA状态ST相关联的D-left表DLEFT中。这在图3b中示出。然后,对第二分组P2进行处理。检查第二分组P2是否是副本分组。然后,检查第二分组P2是按顺序的还是不按顺序的。由于第二分组P2是按顺序的(第一分组P1是前一个分组),所以从D-left表DLEFT获取第一分组P1的确定性的有限自动机DFA状态,并且根据所获取的DFA状态,从上一个部分匹配开始恢复对第二分组P2进行检测。
在处理了第二分组P2之后,第二分组P2的DFA状态ST存储在D-left表DLEFT中,流的编号也相应地存储在与第二分组P2的DFA状态ST相关联的D-left表DLEFT中,依次类推。
图4a、4b示出了根据本发明的第三实施例的方法的步骤的一部分。
在图4a、4b中,示出了对不按顺序的分组的处理。图4a对应于图3a。但是在图4a中,没有第二分组P2,作为替代,第三分组P3直接跟在第一分组P1之后。因此,第三分组P3将被确定为不按顺序的分组。因此,当不按顺序的分组到达时,例如图4a中由于分组P2不存在该分组是P3,在根据图4b的D-left表DLEFT中,存储按顺序的第一分组P1的DFA状态,并且根据第三分组P3的序号将第三分组P3存储在缓冲队列中。在这种情况下,没有实现任何匹配。在D-left表DLEFT中创建针对第一分组P1的DFA状态的新条目(如果其不存在的话),并且根据第三分组P3的序号将第三分组P3存储在缓冲队列中,优选地,存储在不按顺序的/失序分组的经过整理的列表中。
图5示出了根据本发明的第四实施例的方法的流程图。
在开始后,在第一步骤S1中,等待下一分组。
在第二步骤S2中,提取到达的分组的IP-元组,其中IP-元组包括源和目的地IP-地址和端口。
在第三步骤S3中,检查连接布隆滤波器C-BF中是否存在到达的分组。
如果否,则在第四步骤S4中,将IP-元组的信息添加到连接布隆滤波器C-BF中。
然后,在第五步骤S5中,将具有下一序号的IP-元组添加到顺序布隆滤波器S-BF。
如果在第三步骤S3中将到达的分组确定为存在于连接布隆滤波器C-BF中,则提取5-元组<IP-元组,当前序号>,其中序号指示分组在流内的位置。
在第六步骤S6中,检查其是否存在于顺序布隆滤波器S-BF中。
如果是,则在步骤S7中,从所述分组提取IP-元组和下一序号。
然后,在第八步骤S8中,检查下一序号是否存在于顺序布隆滤波器S-BF中,并且如果否,则通过将下一序号添加到顺序布隆滤波器S-BF来进行第五步骤S5。
如果在第六步骤S6中所述分组不存在于顺序布隆滤波器S-BF中,则在第九步骤S9中,确定所述分组失序,并且对其进行排队以用于以后分析,然后再次从步骤S1开始,等待下一个分组。
如果在第八步骤S8中所述下一序号存在于所述顺序布隆滤波器S-BF中,则在第十步骤S10中,确定存在副本分组,并且该副本分组被丢弃,以及再次从第一步骤S1开始,等待下一个分组。
在执行了第五步骤S5之后,在第十一步骤S11中,如果针对该分组存在状态,则从D-left散列表DLEFT获取状态。
在第十二步骤S12中,开始深度分组检测DPI,并且在第十三步骤S13中,检查全部匹配,并且在全部匹配的情况下,在第十五步骤S15中执行动作。
如果在步骤S13中不存在任何全部匹配,则在第十四步骤S14中检查是否存在部分匹配。
如果否,则在第十六步骤S16中丢弃分组。
如果在第十四步骤S14中确定了部分匹配,则在第十七步骤中对具有当前确定性的有限自动机DFA状态的D-left条目进行更新。
在步骤S15、S16或S17之后,在第十八步骤S18中检查另一有效分组是否存在于D-left散列表DLEFT中。如果是,则执行第五步骤S5,并且如果否,则再次从第一步骤S1开始,等待下一个分组。
概括地讲,本发明提供了在不对流进行重构的情况下在对流进行重新排序时的特定深度分组检测。本发明使得能够进行按分组分析的深度分组检测,其只在需要时存储流信息。具体地,只针对不按顺序的分组的流或在进行深度分组分析时只出现部分匹配的流保留相关信息。本发明使得对于大多数经过分析的流不存储任何条目,而只是存储相应状态的条目。
本发明使得能够在不对整个流进行重构的情况下进行深度分组检测,而只是在对所述流重拍序时才进行重构。本发明优选地使用D-left散列表来根据确定性的有限自动机DFA来存储关于对流的深度分组检测分析的状态的信息,并最终存储不按顺序的分组。本发明优选地使用概率数据结构和特定步骤来减少计算功率、存储器消耗,而且还减少由使用概率数据结构导致的模糊性。
本发明优选地使用布隆滤波器来存储最小流状态信息,包括所述流之前是否被看到过或当前分组是否是流中的按顺序的分组。本发明使得像布隆滤波器和D-left散列表的概率数据结构的组合能够执行机会准无状态深度流检测DFI。
本发明使得能够执行快速深度流检测,即流分析,这在使用的存储器和计算资源方面是高效的。另一优点是,通过使用布隆滤波器库,可以将流状态信息保持得紧凑。另一优点是,当使用D-left散列表来存储关于深度分组检测分析的信息时,D-left散列表只用于确定了部分匹配的流。
与传统机制相比,本发明可以更好地衡量计算资源和存储器消耗。本发明使得能够检测更多数量的流,具体地,估计为2-3个数量级范围内。此外,根据何种自动机工作得最好并且在其深度分组检测引擎中对此进行使用,本发明简单且灵活。
为了概括,本发明优选地使用布隆滤波器库来为流量聚集内的所有流保留紧凑状态信息,比如根据实际序列号当前分组是否是流中的下一个分组。然后,下一步骤将是每次接收到针对给定流的按顺序的分组时立即逐分组地执行深度分组检测分析。深度分组检测分析既可处理所述分组并得到其已经被处理过从而有规则来处理它或可找到签名匹配的结论,也可得到对分组有效载荷的分析只返回部分匹配并且从而等待下一分组以进行检测的结论。在这最后一种情况下或在不按顺序的分组的情况下,D-left数据结构用来存储不按顺序的分组或确定性的有限自动机DFA的当前状态,以在接收到下一分组时恢复检测。在不按顺序的分组或部分匹配的情况下,存储被分析的流的显式状态,大大地减小在大流量链路上执行深度分组检测所需的存储器。
本领域技术人员在知晓上述描述和关联附图中提出的教导的情况下将想到所公开发明的修改和其他实施例。因此,应理解,本发明不限于所公开的具体实施例,并且修改和其他实施例意在包含于所附权利要求的范围内。虽然本文采用了特定的术语,但它们只是一般性及描述性的,不用于进行限制。
Claims (13)
1.一种用于分析数据流(F)的方法,
其特征在于,所述方法包括以下步骤:
a)提取所述数据流(F)的分组(P1、P2、P3、P4、P5、P6)的分组信息;
b)基于所提取的分组信息确定所述分组(P1、P2、P3、P4、P5、P6)的状态和所述数据流(F)的状态,以及当所述状态指示所述分组是失序的时,对所述分组进行存储以用于随后检测;以及
c)基于检测规则来检测所述分组(P1、P2、P3、P4、P5、P6)和/或所存储的分组(P1、P2、P3、P4、P5、P6),其中,针对所述检测规则中的至少一个与所提取的分组信息的部分匹配,临时地存储所述分组(P1、P2、P3、P4、P5、P6)的分组检测的结果,以及当已经存储的分组与已经检测的分组(P1、P2、P3、P4、P5、P6)是按顺序的时,对已经存储的分组进行检测,以及针对所述检测规则中的至少一个的全部匹配,执行预定动作并删除所存储的结果。
2.根据权利要求1所述的方法,其特征在于,为了根据步骤b)确定所述状态(ST),执行以下步骤:b1)基于所提取的信息,检查所述分组(P1、P2、P3、P4、P5、P6)是否与已经接收的分组(P1、P2、P3、P4、P5、P6)相关,并且如果不相关,则将所述分组的状态设置为失序;以及b2)基于所提取的信息,检查所述分组(P1、P2、P3、P4、P5、P6)是否与已经观测到的流(F)匹配。
3.根据权利要求1所述的方法,其特征在于,为了确定分组(P1、P2、P3、P4、P5、P6)的状态(ST),对所述分组(P1、P2、P3、P4、P5、P6)应用至少一个概率滤波器(S-BF、C-BF),优选为一对布隆滤波器。
4.根据权利要求1-2中的任一项所述的方法,其特征在于,步骤c)包括:执行深度分组检测(DFA、DPI)。
5.根据权利要求1-3中的任一项所述的方法,其特征在于,在步骤c)中,一旦不匹配,则丢弃所述分组(P1、P2、P3、P4、P5、P6)。
6.根据权利要求1-5中的任一项所述的方法,其特征在于,在步骤b)中确定副本分组(P3),并且在步骤c)之前丢弃,优选地在步骤b2)中确定所述副本分组(P3)。
7.根据权利要求1-6中的任一项所述的方法,其特征在于,针对所存储的状态信息和/或针对所存储的失序分组(P2)使用暂停,其中,在预定时间之后,丢弃所述信息和/或所存储的分组(P2)。
8.根据权利要求1-7中的任一项所述的方法,其特征在于,分组(P1、P2、P3、P4、P5、P6)的状态(ST)被定义为所述分组在所述流(F)内的位置。
9.根据权利要求1-8中的任一项所述的方法,其特征在于,所述流(F)的状态(ST)被定义为指示在所述分组之前对所述流(F)的观测的二进制变量。
10.根据权利要求3-9中的任一项所述的方法,其特征在于,为了存储分组(P1、P2、P3、P4、P5、P6)和/或状态信息,使用2-Left散列表扩展(DLEFT)。
11.根据权利要求3-10中的任一项所述的方法,其特征在于,所述概率滤波器(S-BF、C-BF)的尺寸是基于小于或等于预定阈值的概率确定的。
12.根据权利要求3-11中的任一项所述的方法,其特征在于,在概率滤波器的非确定性结果的情况下,在对分组应用所述概率滤波器时所提供的结果基于具有最高概率的非确定性结果。
13.一种用于分析数据流(F)的系统,所述系统优选地使用根据权利要求1-12中的任一项所述的方法进行操作,
其特征在于,所述系统包括:
提取装置(EM),操作用于提取所述数据流的分组(P1、P2、P3、P4、P5、P6)的分组信息;
状态装置(SM),操作用于基于所提取的分组信息确定所述分组(P1、P2、P3、P4、P5、P6)的状态(ST)和所述数据流(F)的状态(ST);
存储装置(DLEFT),操作用于当所述状态(ST)指示所述分组(P1、P2、P3、P4、P5、P6)是失序的时,对所述分组(P1、P2、P3、P4、P5、P6)进行存储以用于随后检测;以及
检测装置(IM),操作用于基于检测规则来检测所述分组和/或所存储的分组(P1、P2、P3、P4、P5、P6),其中,针对所述检测规则中的至少一个与所提取的分组(P1、P2、P3、P4、P5、P6)信息的部分匹配,临时地存储所述分组(P1、P2、P3、P4、P5、P6)的分组检测的结果,以及当已经存储的分组与已经检测的分组(P1、P2、P3、P4、P5、P6)是按顺序的时,对已经存储的分组进行检测;以及针对所述检测规则中的至少一个的全部匹配,执行预定动作并删除所存储的结果。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2013/076433 WO2015086082A1 (en) | 2013-12-12 | 2013-12-12 | Method and system for analyzing a data flow |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105637831A true CN105637831A (zh) | 2016-06-01 |
CN105637831B CN105637831B (zh) | 2019-04-19 |
Family
ID=50151239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380080073.XA Active CN105637831B (zh) | 2013-12-12 | 2013-12-12 | 用于分析数据流的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9923870B2 (zh) |
EP (1) | EP3020176B1 (zh) |
CN (1) | CN105637831B (zh) |
WO (1) | WO2015086082A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9723027B2 (en) | 2015-11-10 | 2017-08-01 | Sonicwall Inc. | Firewall informed by web server security policy identifying authorized resources and hosts |
US9860259B2 (en) * | 2015-12-10 | 2018-01-02 | Sonicwall Us Holdings Inc. | Reassembly free deep packet inspection for peer to peer networks |
US10623420B2 (en) | 2016-01-19 | 2020-04-14 | Nec Corporation | Method and device for data inspection |
US10587491B1 (en) | 2016-12-27 | 2020-03-10 | Amazon Technologies, Inc. | Testing computer networks in real time |
US10659571B1 (en) | 2016-12-27 | 2020-05-19 | Amazon Technologies, Inc. | Network device with integrated packet generators or packet checkers |
US10666775B1 (en) | 2016-12-27 | 2020-05-26 | Amazon Technologies, Inc. | Integrated packet generator and checker |
US11076025B1 (en) * | 2016-12-27 | 2021-07-27 | Amazon Technologies, Inc. | Generating network packet centric signatures |
US10819683B2 (en) * | 2017-11-20 | 2020-10-27 | Forcepoint Llc | Inspection context caching for deep packet inspection |
US20190215306A1 (en) * | 2018-01-11 | 2019-07-11 | Nicira, Inc. | Rule processing and enforcement for interleaved layer 4, layer 7 and verb based rulesets |
US11431677B2 (en) * | 2018-01-11 | 2022-08-30 | Nicira, Inc. | Mechanisms for layer 7 context accumulation for enforcing layer 4, layer 7 and verb-based rules |
US20220038372A1 (en) * | 2020-08-02 | 2022-02-03 | Mellanox Technologies Tlv Ltd. | Stateful filtering systems and methods |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060077979A1 (en) * | 2004-10-13 | 2006-04-13 | Aleksandr Dubrovsky | Method and an apparatus to perform multiple packet payloads analysis |
US20060227787A1 (en) * | 2005-04-08 | 2006-10-12 | 3Com Corporation | Detection of signatures in disordered message segments |
US20070011734A1 (en) * | 2005-06-30 | 2007-01-11 | Santosh Balakrishnan | Stateful packet content matching mechanisms |
WO2013032473A1 (en) * | 2011-08-31 | 2013-03-07 | Hewlett-Packard Development Company, L.P. | Tiered deep packet inspection in network devices |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2420907A1 (en) * | 2000-08-31 | 2002-03-07 | Padcom, Inc. | Method and apparatus for routing data over multiple wireless networks |
US9525696B2 (en) * | 2000-09-25 | 2016-12-20 | Blue Coat Systems, Inc. | Systems and methods for processing data flows |
WO2002030061A1 (en) * | 2000-10-03 | 2002-04-11 | U4Ea Technologies Limited | Filtering data flows |
US7966658B2 (en) * | 2004-04-08 | 2011-06-21 | The Regents Of The University Of California | Detecting public network attacks using signatures and fast content analysis |
DE102004048167B4 (de) * | 2004-10-02 | 2007-01-04 | Siemens Ag | Verfahren zur inhaltsbezogenen Handhabung eines Datenstroms |
US7742406B1 (en) * | 2004-12-20 | 2010-06-22 | Packeteer, Inc. | Coordinated environment for classification and control of network traffic |
JP2007041223A (ja) * | 2005-08-02 | 2007-02-15 | Mitsubishi Electric Corp | データ配信装置及びデータ通信システム |
US7633944B1 (en) * | 2006-05-12 | 2009-12-15 | Juniper Networks, Inc. | Managing timeouts for dynamic flow capture and monitoring of packet flows |
IL189530A0 (en) * | 2007-02-15 | 2009-02-11 | Marvell Software Solutions Isr | Method and apparatus for deep packet inspection for network intrusion detection |
US8572717B2 (en) * | 2008-10-09 | 2013-10-29 | Juniper Networks, Inc. | Dynamic access control policy with port restrictions for a network security appliance |
US20100226384A1 (en) * | 2009-03-09 | 2010-09-09 | Prabhakar Balaji S | Method for reliable transport in data networks |
EP2441216A1 (en) * | 2009-06-09 | 2012-04-18 | Telefonaktiebolaget LM Ericsson (publ) | Packet forwarding in a network |
US8782787B2 (en) * | 2009-10-28 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Distributed packet flow inspection and processing |
US9110792B1 (en) * | 2012-03-12 | 2015-08-18 | Emc Corporation | System and method for cache replacement using bloom filter lookahead approach |
US9760625B2 (en) * | 2012-03-21 | 2017-09-12 | Deep Information Sciences, Inc. | Method and system for indexing in datastores |
US9172743B2 (en) * | 2012-12-31 | 2015-10-27 | Futurewei Technologies, Inc. | Scalable storage systems with longest prefix matching switches |
CN107113282A (zh) * | 2014-12-30 | 2017-08-29 | 华为技术有限公司 | 一种抽取数据报文的方法及装置 |
-
2013
- 2013-12-12 EP EP13831827.4A patent/EP3020176B1/en active Active
- 2013-12-12 CN CN201380080073.XA patent/CN105637831B/zh active Active
- 2013-12-12 WO PCT/EP2013/076433 patent/WO2015086082A1/en active Application Filing
- 2013-12-12 US US14/912,094 patent/US9923870B2/en active Active
-
2017
- 2017-12-22 US US15/851,767 patent/US10104043B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060077979A1 (en) * | 2004-10-13 | 2006-04-13 | Aleksandr Dubrovsky | Method and an apparatus to perform multiple packet payloads analysis |
US20060227787A1 (en) * | 2005-04-08 | 2006-10-12 | 3Com Corporation | Detection of signatures in disordered message segments |
US20070011734A1 (en) * | 2005-06-30 | 2007-01-11 | Santosh Balakrishnan | Stateful packet content matching mechanisms |
CN101258721A (zh) * | 2005-06-30 | 2008-09-03 | 英特尔公司 | 带状态的分组内容匹配机制 |
WO2013032473A1 (en) * | 2011-08-31 | 2013-03-07 | Hewlett-Packard Development Company, L.P. | Tiered deep packet inspection in network devices |
Also Published As
Publication number | Publication date |
---|---|
US10104043B2 (en) | 2018-10-16 |
CN105637831B (zh) | 2019-04-19 |
US9923870B2 (en) | 2018-03-20 |
US20160205072A1 (en) | 2016-07-14 |
EP3020176B1 (en) | 2020-07-22 |
EP3020176A1 (en) | 2016-05-18 |
US20180124019A1 (en) | 2018-05-03 |
WO2015086082A1 (en) | 2015-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105637831A (zh) | 用于分析数据流的方法和系统 | |
US10735379B2 (en) | Hybrid hardware-software distributed threat analysis | |
EP3420487B1 (en) | Hybrid hardware-software distributed threat analysis | |
US11128642B2 (en) | DFA state association in a multi-processor system | |
US8005012B1 (en) | Traffic analysis of data flows | |
US9264378B2 (en) | Network monitoring by using packet header analysis | |
US8010685B2 (en) | Method and apparatus for content classification | |
JP4734223B2 (ja) | トラヒック分析装置および分析方法 | |
KR100862187B1 (ko) | 취약점 분석 및 공격방식 모델링을 이용한 네트워크기반의인터넷 웜 탐지 장치 및 그 방법 | |
US7596809B2 (en) | System security approaches using multiple processing units | |
EP1122932B1 (en) | Protection of computer networks against malicious content | |
CN105407096A (zh) | 基于流管理的报文数据检测方法 | |
CN101938474B (zh) | 一种网络入侵检测与防护的方法及装置 | |
JP4538370B2 (ja) | 異常通信探知装置 | |
CN113992425B (zh) | 一种收发网络数据包的方法、网络设备以及通信系统 | |
US20060259971A1 (en) | Method for detecting viruses in macros of a data stream | |
JP4416630B2 (ja) | 監視装置、通信システム、監視方法、および監視プログラム | |
KR100518844B1 (ko) | 네트워크 패킷 검사 방법 | |
Chow et al. | LCS: a Linux-based Content Switch | |
KR20180086917A (ko) | 네트워크 기반의 악성 파일 탐지 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180115 Address after: Heidelberg Applicant after: NEC EUROPE LTD. Address before: Heidelberg Applicant before: NEC Europe Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210315 Address after: Tokyo, Japan Patentee after: NEC Corp. Address before: Heidelberg, Germany Patentee before: NEC EUROPE Ltd. |