CN103154884B - 模式检测 - Google Patents
模式检测 Download PDFInfo
- Publication number
- CN103154884B CN103154884B CN201080069855.XA CN201080069855A CN103154884B CN 103154884 B CN103154884 B CN 103154884B CN 201080069855 A CN201080069855 A CN 201080069855A CN 103154884 B CN103154884 B CN 103154884B
- Authority
- CN
- China
- Prior art keywords
- pattern
- data
- byte
- mode
- pipeline
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 18
- 240000002853 Nelumbo nucifera Species 0.000 claims 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 claims 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 19
- 230000006855 networking Effects 0.000 description 9
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 230000000507 anthelmentic effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- 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/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/52—Network services specially adapted for the location of the user terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在执行与模式检测不相关的数据处理时,使数据移动通过管线。与数据移动通过管线时的数据处理并行地,检测器在数据移动通过管线时在预定位置处或者基于预定参考来在该数据内检测模式。检测器在不延迟数据进入、通过和退出管线的移动的情况下,在数据移动通过管线时在该数据内检测模式。
Description
背景技术
随着联网技术和互联网的出现,全世界的计算设备已经能够与彼此相互通信。尽管这已经提供了许多优点,但是存在着一些问题。一个问题是:不期望的计算机代码或信息(例如计算机病毒、特洛伊木马、蠕虫、垃圾邮件等)可以更容易且不期望地遍布于大量计算设备上。
附图说明
图1是根据本公开的实施例的模式检测设备的图。
图2是根据本公开的实施例的详细的图1的设备的处理管线的图。
图3是根据本公开的实施例的详细的图1的设备的检测器的图。
图4是根据本公开的实施例的用于检测的方法的流程图。
具体实施方式
随着计算设备通过互联网和其他网络的互联性的提高,不期望的计算机代码或信息的散播已经成为问题。由此,用户和网络管理员通常关心检测这种不期望的计算机代码或信息。此外,用户和网络管理员通常关心在可以在一个或多个给定计算设备上接收到和/或安装这种不期望的计算机代码或信息或者这种不期望的计算机代码或信息以其他方式感染一个或多个给定计算设备之前,检测到这种不期望的计算机代码或信息。其他时候,其不是不期望的信息,而是用户和/或网络管理员希望以某种独特方式检测和处理的感兴趣信息。例如,公司可能希望检测到在保密信息中找到的具体模式,并确保它们未被传输至不安全位置。因而,如本文所讨论的,不期望的计算机代码或信息包括以下这两种类型的信息:包括不期望的计算机代码或信息以及感兴趣信息。
如本文所讨论的,提供了一种模式检测机制,其中,在数据移动通过管线时,可以在不延迟数据通过管线的移动的情况下,在管线内检测一个或多个模式。在数据移动通过管线时,对模式的检测可以聚焦于特定位置,或者相对于数据分组内的特定参考。例如,可以在多个层报头之一内、在分组有效载荷内、在特定位置或相对于另一模式的匹配位置中等等检测到模式。
如本文所讨论的,将针对一个或多个模式和/或一个或多个模式部分来讨论不期望的计算机代码或信息。
图1示出了根据本公开的示例的代表性设备100。设备100可以是联网设备,例如,交换机、路由器或其他类型的联网设备。可替换地或附加地,设备100可以是像通用计算机之类的计算设备,诸如,服务器计算设备、客户端计算设备、台式计算机和/或膝上型计算机、除此之外还有其他类型的计算设备。
设备100包括处理管线102和检测器104。管线102和检测器104二者均至少以硬件实现。在一个示例中,管线102和检测器104二者诸如通过使用适当的专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他类型的仅硬件组件而完全以硬件来加以实现。在另一示例中,管线102和检测器104可以在以下范围内至少以硬件加以实现:它们也是由处理器(硬件)执行以执行其相应功能的软件。
为了在设备100内处理数据,使数据移动通过管线102,如由箭头106所指示的那样。该处理与模式检测不相关。即,使数据移动通过管线102以对数据执行处理的目的与模式检测不相关。在数据移动通过管线102时对数据执行处理,其中,数据由管线102内执行的处理代理更改,该处理代理可以控制数据移动通过管线102的速率。
例如,在设备100是联网设备(例如,交换机或路由器)的情况下,数据可以是从对于其而言设备100是网守(gatekeeper)的网络的外部接收到的输入数据分组。管线102可以用于修改这些数据分组的报头信息,从而使得将分组传输至网络内的合适设备。例如,可以将与万维网(WWW)请求相关的数据分组传输至网络上的WWW服务器设备,可以将与文件传输协议(FTP)请求相关的数据分组传输至网络上的FTP服务器设备,等等。
因此,网络上的外部设备可以将网络视为具有单个联网地址,而实际上,网络由具有对应(内部)网络地址的多个设备组成。因此,在该示例中,使用管线102将输入数据分组的联网地址更改为网络上的要处理所述数据分组的设备的内部网络地址。输入数据分组的联网地址向内部网络地址的修改是可在管线102内对这些数据分组执行的处理的示例。
然而,与在数据移动通过管线102时的数据处理并行地,检测器104在数据移动通过管线102时在该数据内检测一个或多个模式,如由虚线108所指示的那样。检测器104能够在不延迟数据进入、通过和退出管线102的移动的情况下,在数据移动通过管线102时在该数据内检测至少一个模式。在管线102中执行的数据处理与由检测器104执行的模式检测无关。在无需等待检测器104执行其检测的情况下,数据进入、移动通过并退出管线102。
在该方面,图1的示例能够在不降低设备100的总体性能的情况下检测至少一个模式。此外,图1的示例不需要潜在地昂贵且功耗大的专用处理器来进行模式检测。更确切地,可以经由与专用处理器相比消耗低得多的功率的低得多成本的硬件组件、以硬件方式实现检测器104。
图1的示例的附加优点在于:在至少一些情形中,进入设备100的所有数据移动通过管线102以供处理,从而使得检测器104能够在所有数据内检测至少一个模式。
图2更详细地示出了根据本公开的示例的处理管线102。管线102包括多个行202A、202B、202C、……、202N,通称为行202。行202还可以被称为管线102的级。行202A是管线102的第一行,以及行202N是管线102的最后一行。管线102的每个行202存储相同数目的字节。出于示例性目的,每个行202存储8个字节。然而,每个行202可以存储不同数目的字节,诸如16个字节、32个字节等。管线宽度不限于2的幂次数目的字节。
与每个行202可存储的字节数目相等的数目的数据字节在第一行202A处进入管线102,并逐行地行进通过管线102,直到数据退出最后一行202N为止,如由箭头106所指示的那样。例如,第一8个数据字节在第一行202A处进入管线102。然后,这第一8个数据字节向下级联至第二行202B,并且同时,第二8个数据字节在第一行202A处进入管线102。接着,第一8个数据字节向下移动至第三行202C,第二8个字节向下移动至第二行202B,以及第三8个数据字节在第一行202A处进入管线。该过程继续,直到第一8个数据字节进入并且然后退出管线102的最后一行202N,紧接着,第二8个字节进入并且然后退出最后一行202N,依此类推。
在管线102的任何给定行202处,可以更改或处理数据。例如,如上所记录的,在处理管线102是网守联网设备100的一部分的情况下,可以更改数据分组的报头信息。例如,可以利用联网地址E.F.G.H来替换联网地址A.B.C.D。联网地址A.B.C.D指定了设备100作为其一部分的网络作为整体的外部联网地址。联网地址E.F.G.H指定了要处理所讨论的数据分组的网络内的设备的内部联网地址。
在图2中明确地标注了行202的两个特定行204和206,将与图2相关地描述由检测器104对模式的检测。行204包括字节208A、208B、208C、208D、208E、208F、208G和208H,起始于字节208A并结束于字节208H。行206包括字节208I、208J、208K、208L、208M、208N、208O和208P,起始于字节208I并结束于字节208P。在初步示例中,数据分组210被认为由12个字节208C-208N组成,其在图2中由阴影指示。注意,实际上,在至少一些情形中,数据分组更可能由更多数目的字节组成。
图2中对行204和206以及数据分组210的明确标注示意了数据分组与管线102的行202相比较的两个方面。第一,数据分组可以跨越多于一个行。例如,示例性数据分组210跨越行204和206。第二,数据分组不必起始于行的第一个字节,也不必结束于行的最后一个字节。例如,示例性数据分组210起始于行204的第三字节208C,并结束于行206的第六字节208N。行204的第二字节208B可以是前一数据分组的结束字节,并且行206的第七字节208O可以是下一数据分组的起始字节。
图3更详细地示出了根据本公开的示例的检测器104。此外,与图3相关地描述了检测器104可以如何代表性地检测跨越处理管线102的行204和206的数据分组210中的一个或多个模式。检测器104包括:存储器302,存储模式316、318;位掩码324、326,其分别与模式316、318相关联;存储器310,存储与存储器302中存储的模式316、318中的每一个相关联的一个或多个参数集320、322;逻辑312;以及相关器304A、304B、304C、304D、304E、304F、304G和304H,其通称为相关器304。尽管在图3中仅描绘了两个模式316、318和关联位掩码324、326,但是可以意识到,可替换地,可以存储具有关联位掩码的仅一个模式,或者可以存储具有关联位掩码的多于两个模式。因此,由于参数与存储器302中存储的模式相对应,因而根据存储器302中存储的模式的数目,可以将一个参数或多于两个参数存储在存储器310中。存储器302存储一个或多个模式316、318。模式316具有字节308A、308B、308C、308D、308E、308F、308G、308H和308I,其通称为字节308。该一个或多个模式316、318的字节308的数目与管线102的每个行202中的字节的数目无关。在图3中所描绘的示例中,在图3的示例的存储器302中的每个模式中存在9个字节308,但实际上,可以存在更多或更少这种字节308。模式316、318中的每一个与一个或多个模式部分相对应。模式部分是模式的足以利用预定置信度标识该模式的部分。例如,在模式316与具有字节308的一个模式部分相对应的情况下,如果在数据内发现所有字节308按照相同顺序并具有相同值,则这意味着:该数据包含具有有着该预定置信度的该模式部分的模式。
字节308的每个比特可以与两种不同类型的比特之一相对应。第一种类型的比特是具有特定值以由相关器304与字节308的其他比特相关地在数据内检测到的实际不期望的计算机代码或信息比特。然而,第二种类型的比特是不用注意(do-not-care)比特。数据内的对应比特的身份对不用注意比特来说无关紧要,并且对数据内的模式检测来说不重要。这些不用注意比特是基于分别与模式316、318相关联的位掩码324、326来定义的。
例如,可能已知的是,给定类型的不期望的计算机代码或信息具有以下代码段:该代码段包括特定值A的比特,后面两比特下跟随着特定值B的比特。然而,具有值A和B的比特中间的比特无足轻重,并对该类型的代码的检测来说不重要。因此,将模式316的字节308内的对应比特设置为不用注意比特,以向相关器304指示该比特实际上不用于检测数据内的不期望的计算机代码或信息。换言之,不用注意比特是占位符比特,用于指定在数据内检测模式过程中重要的其他比特的分离。该逐比特运算的一个显著用途是:对于由ASCII字符集(每个字节占一个字符)表示的英文字母表而言,大写字符仅与其小写对应物有一比特区别。因此,可以通过将每个字节内的特定比特标记为不用注意比特,使模式区分大小写变得不敏感。
存储器310存储一个或多个参数集320、322。每个参数集可以与存储器302中存储的模式316、318之一相关联。例如,参数集320可以与模式316相关联,参数集322可以与模式318相关联等等。每个参数集可以包括一个或多个参数,包括参考、起始、停止、匹配位置、匹配分组标识(ID)和匹配。其他参数可以被存储在存储器302中并与存储器302中的模式316、318相关联。
例如,关于参数集320,参考参数可以提供对数据分组中的起始参考点的指示以查找模式316。参考点可以是例如层2、层3或层4报头起始、存储器302中的另一模式的或相对于该另一模式的匹配位置、分组有效载荷、分组有效载荷内的特定位置等。
起始参数可以提供相对于参考的具体字节位置,检测器应当在该具体字节位置处开始查找模式316。例如,起始参数可以指示检测器应当在参考参数之后四个字节开始查找模式316。这提供了以下可能性:搜索数据分组以得到具有数据分组内的已知位置或与分组的感兴趣部分或较早模式匹配相关的已知位置的模式。停止参数可以提供检测器应当查找模式316的起始之后的字节的数目。通过提供起始和停止参数,检测器可以标识检测器将在其中查找数据分组内的模式的字节的窗口或范围。通过提供这种窗口或范围,如果已知不期望的计算机代码或信息的位置在数据分组的特定部分内,则检测器可以聚焦于不期望的计算机代码或信息的已知位置,并且在分组的非感兴趣部分中检测到模式的情况下,不生成“错误肯定”通知。例如,检测器104可以以特定已知位置(诸如层4报头之后50-200个字节等)为目标。
如果检测到模式316,则匹配位置参数存储数据分组内的检测到模式的位置。匹配位置参数可以由与不同模式相关联的参考参数指代。例如,模式318的参考参数可以指代模式316的匹配位置参数。因此,检测器可以在与模式316的位置相关的位置中查找模式318。通过提供这种灵活性,可以检测复杂的模式串。通过提供参考参数、起始参数和停止参数,检测器104可以以不期望的计算机代码或信息的特定已知位置(诸如,从模式316的匹配位置起200-2000个字节)为目标。
如果检测到模式316,则匹配分组ID参数存储其中检测到模式316的分组的ID。这可以用于确保多个模式的模式匹配发生在相同分组内,而不在碰巧同时共存于数据管线中的两个不同分组的不同部分上触发。
如果检测到模式316,则匹配参数存储找到匹配的指示。
通过提供该参数集,可以检测到复杂的模式串。例如,可以检测到层3报头中的模式X后跟随着层4报头中的模式Y、后又跟随着分组的有效载荷中的模式Z。因此,由于检测器可以确保在相同数据分组内检测到模式,因此可以减少错误肯定。
在数据移动通过管线时,相关器304搜索数据。相关器304在数目上等于管线102的每个行202中的字节的数目。因此,在图3的示例中,存在8个相关器304,这是由于在管线102的每个行202中存在8个字节。相关器304中的每一个检测模式316的模式部分是否存在于数据内、开始于行204中但在行204内的不同起始字节位置处。即,相关器304A至304H具有与行内的字节208A至208H的位置相对应的起始字节位置,并因此分别具有0至7的唯一偏移。
例如,相关器304A具有为0的偏移,并因此具有与行204的字节208A相对应的起始字节位置。因此,相关器304A检测模式316的字节308A至308I是否与行204和206的字节208A至208I相匹配,其中,字节208A至208H处于行204中,并且字节208I处于行206中。即,相关器304A检测字节308A是否与字节208A相匹配、字节308B是否与字节208B相匹配、依此类推,至字节308I是否与字节208I相匹配。这些比较中的每一个由“不用注意”参数逐比特地加以标记。
通过比较,相关器304B具有为1的偏移,并因此具有与行204的字节208B相对应的起始字节位置。因此,相关器检测模式316的字节308A至308I是否与字节208B至208J相匹配。即,相关器304B检测字节308A是否与字节208B相匹配、字节308B是否与字节208C相匹配、依此类推,至字节308I是否与字节208J相匹配。因此,鉴于相关器304A确定模式316的字节308是否存在于行204和206内、起始于字节208A处,相关器304B确定字节308是否存在于行204和206内、起始于字节208B处。类似地,相关器304C具有为2的偏移,并因此确定字节308是否存在、起始于字节208C处,相关器304D具有为3的偏移,并确定字节308是否存在、起始于字节208D处,依此类推。
由于相关器304的数目等于管线102的每个行202中的字节的数目,因此相关器304可以检测模式316的字节308是否存在于行204和206中的对应字节序列中(即,按照相同顺序并具有相同值),而不论序列起始于行204内的何处。如果字节308的序列起始于行204中的字节208A处,则相关器304A检测到模式316,并且如果字节308的序列起始于行204中的字节208B处,则相关器304B检测到模式316。类似地,如果字节308的序列起始于行204中的给定字节208C至208H处,则具有与行204中的该字节相对应的起始字节位置的相关器304C至308H检测到模式316。
在图3的示例中,由于该数据跨越管线102的行204和206二者,因此每个相关器304检测在数据内是否存在模式316的模式部分。然而,一般地,根据模式316内的字节308的数目和管线102的每行202内的字节的数目,可以不存在跨越管线102的多于一行202的相关器。可替换地,可以存在跨越管线102的两行202或多于两行202的一个或多个相关器。
如上所示,每个模式具有关联的参数集。因此,相关器304可以基于与每个模式相关联的参数来检测每个模式。相关器304可以基于关联的参考、起始和停止参数来查找模式316。例如,如果模式316具有指示数据有效载荷的起始的参考参数、从数据有效载荷的起始起1字节的起始参数、和从起始参数起200个字节的停止参数,则(一个或多个)适当的相关器304可以在如关联参数集中定义的窗口或范围处进行搜索,以检测模式316。
每个相关器304提供其已与模式316相匹配的数据的字节的数目,并且检测器104基于已与模式316相匹配的数据的字节的该数目来指示已经在数据内检测到模式。例如,在一个实施例中,仅当给定的相关器308将模式316的所有字节与数据的对应字节相匹配时,检测器104才指示已经检测到模式。作为其他示例,以及在其他实施例中,可以采用可编程阈值字节数或者所匹配的字节数相对于模式316内的字节308的总数的阈值百分比,来决定是否指示已经检测到模式。
还可以在不同时刻处将不同模式存储在存储器302中作为模式316。因此,相关器304可以在不同时刻处在移动通过管线102的数据内检测不同模式。这在以下情况下可能是有用的:在存在针对其而测试数据的大量的模式的情况下,以及在这样的情况下:如果一个数据分组感染有给定类型的模式,则其他数据分组很可能感染有相同类型的模式,因此,当模式316被配置为查找不同模式时,错过对某些分组的检测可能是可接受的,只要一旦模式316被恢复至感兴趣的模式,其就可以在未来分组中检测模式即可。然而,如果先验地已知给定类型的模式在任何给定时刻处更危险或更盛行,则可以在模式316内保留与这种类型的模式相对应的模式,而同时通过例如模式318轮转与其他类型的模式相对应的其他模式。
在一个示例中,模式316内的每个模式部分的字节308可能必须存在于处理管线102中的数据的相同数据分组内。在图3的示例中,如果字节308A至308D与给定的模式部分相对应,则仅相关器304C至304H能够在这种情形中检测到该模式部分,而相关器304A和304B不能。这是由于关于这四个字节308A至308D的相关器304A和304D跨越两个数据分组,而不是仅跨越数据分组210。通过比较,相关器304C至304H仅跨越数据分组210。
由相关器340执行的比较相对较快,这是由于每个相关器304仅必须将开始于行204内的对应起始字节位置处的数据与模式316的字节308进行比较。例如,相关器304的一个实施方式可以是与模式316的比特(与字节形成对照)的总数相等数目的比较器。因此,尽管检测器104不具有沿行202向下延迟数据通过管线102的移动的能力,但是这不是对实施方式的阻碍,这是由于可以快速进行比较。比较器也是实现起来相对较便宜的硬件组件,特别是与专用处理器相比。
设备104还包括逻辑312。逻辑312可以被实现为多个逻辑选择块。逻辑选择块的数目可以与存储器302中存储的模式的数目相对应。逻辑选择块可以用于执行任何逻辑运算,例如AND(与)、OR(或)、NOT(非)、NOR(或非)、XOR(异或)、XNOR(同或)、NAND(与非)等。可以通过将这些逻辑运算中的两个或更多个串在一起来定义其他更复杂的运算,例如匹配模式1与模式3非模式5等。可以使用用户界面(未示出)来定义一个或多个功能。该一个或多个功能可以利用逻辑选择块,以基于指示在数据移动通过管线时是否在数据内发现存储器302中的模式中的一个或多个的匹配的匹配参数和匹配分组ID参数来执行逻辑运算。这提供了在每个分组的数据经过数据管线102时在该每个分组的数据内搜索复杂模式的能力。
图4描绘了用于执行与关于图1-3提供的描述相一致的模式检测的方法400的流程图。检测器确定与第一模式相关联的参考(402)。在数据移动通过管线时,检测器基于所确定的参考,在管线中的数据内检测第一模式(404)。检测器与在数据移动通过管线时的数据处理并行地以及在不延迟数据进入、通过和退出管线的移动的情况下检测第一模式。检测器存储与检测到的第一模式的位置相关联的信息(406)。
对已经在数据内检测到模式的确定可以基于已与该模式相匹配的数据的每个重叠部分的字节的数目。例如,如果基于关联的参考参数,模式316与开始于行204内的起始字节位置处的管线102内的数据的重叠部分中的任一个相匹配(即,所有字节308匹配于与字节308相同的序列中的数据内的对应比特),则已经检测到模式316。然而,如果模式316不与开始于行204内的起始字节位置处的管线102内的数据的重叠部分中的任一个相匹配,则在该示例中,尚未检测到模式。
一旦已经检测到模式,就存储标识在何处检测到第一模式的字节位置和分组标识信息。
如果指示模式316的匹配的字节位置的匹配位置被存储为与模式318相关联的参考,则使用模式316的字节位置来查找模式318。因此,可以基于与模式318相关联的参考(即,模式316的匹配或字节位置)来检测模式318。如果检测到模式318,则存储标识在何处检测到模式318的字节位置和分组标识信息。
可以基于所存储的模式的检测或缺乏检测,利用逻辑运算符,来执行逻辑运算或功能。
Claims (15)
1.一种模式检测设备,包括:
至少以硬件实现的管线,数据移动通过所述管线,以执行与模式检测不相关的对所述数据的处理;以及
至少以硬件实现的检测器,用于与所述数据移动通过所述管线时的数据处理并行地、以及在不延迟所述数据通过所述管线的移动的情况下,在所述数据内的第一位置处检测第一模式;
访问指定与第一模式的位置相对的位置的参考参数;
基于所述参考参数以及标识所述第一位置的信息确定第二位置;
在所述数据中的所确定的第二位置处检测第二模式。
2.根据权利要求1所述的设备,还包括:
存储器,其用于存储所述第一模式和与所述第一模式相关联的位掩码,所述位掩码标识了关联的第一模式的不用注意比特,其中,所述检测器将基于除所述不用注意比特外的比特来检测所述第一模式。
3.根据权利要求1所述的设备,其中,所述第一位置标识了对所述检测器能够在所述数据中的何处检测到所述第一模式的参考,所述参考标识了多个层报头之一、分组有效载荷和第二模式的匹配位置,以及其中,第一位置还标识了相对于所述参考的起始点和相对于所述起始点的停止点,以标识所述检测器能够在其中检测到所述第一模式的字节窗口。
4.根据权利要求1所述的设备,其中,在检测到所述第一模式时,所述检测器将存储分组中的在其处检测到所述第一模式的第一字节位置。
5.根据权利要求4所述的设备,其中,所述检测器将基于在其处检测到所述第一模式的第一字节位置来定义第二位置,以及其中,所述检测器将存储在其处检测到所述第二模式的第二字节位置,所述第二模式是基于所定义的第二位置而检测的。
6.根据权利要求4所述的设备,其中,当检测到所述第一模式时,所述检测器将存储标识分组的分组标识信息。
7.根据权利要求5所述的设备,其中,所述检测器包括用于基于所述第一模式的检测和所述第二模式的检测执行运算的逻辑元件。
8.一种模式检测方法,包括:
在管线中的输入数据内检测第一模式,所述检测是与所述输入数据移动通过所述管线时的输入数据处理并行且在不延迟所述输入数据进入、通过和退出所述管线的移动的情况下执行的;
响应于所述检测,存储标识所述输入数据中的第一模式的第一位置的信息;
访问指定与第一模式的位置相对的数据中的位置的参考参数;
基于所述参考参数以及标识所述第一位置的信息确定第二位置;
在所述输入数据中的所确定的第二位置处检测第二模式。
9.根据权利要求8所述的方法,还包括:
存储标识在何处检测到所述第一模式的字节位置和分组标识信息;
将所述字节位置存储为与第二模式相关联的参考;以及
基于与所述第二模式相关联的参考,在所述管线中检测所述第二模式。
10.根据权利要求9所述的方法,其中,所述参考标识了多个层报头之一、分组有效载荷和第二模式的匹配位置。
11.根据权利要求9所述的方法,还包括:
将相对于所述参考的起始点和相对于所述起始点的停止点与所述第一模式相关联,以标识能够在其中检测到所述第一模式的字节窗口。
12.根据权利要求8所述的方法,还包括:
基于所述第一模式和所述第二模式的检测来执行逻辑运算。
13.一种模式检测设备,包括:
存储设备,以硬件实现,用于存储:
具有预定数目的字节的长度的多个模式;以及
与所述多个模式相关联的多个参数,所述多个参数中的每一个包括标识在何处检测所述多个模式中的关联的每个模式的参考、起始和停止;以及
多个相关器,以硬件实现并在数目上等于管线的多个行中的每个行的字节的数目,
每个相关器将提供已与所述多个模式中的一个或多个相匹配的数据的字节的数目,
每个相关器具有唯一的偏移,以开始于所述管线的给定行内的数据的不同起始字节位置处,检测所述多个模式中的一个或多个,以及
每个相关器用于提供已与所述多个模式中的一个或多个相匹配的所述数据的字节的数目;以及
其中,将所述多个模式中的一个模式指示为已由每个相关器基于已与所述多个模式中的一个或多个相匹配的所述数据的字节的数目在所述数据内检测到。
14.根据权利要求13所述的设备,其中,所述参考标识了多个层报头之一、分组有效载荷和所述多个模式中的第二模式的匹配位置,以及其中,所述起始表示分组中相对于所述参考的起始点,并且所述停止表示相对于所述起始点的停止点,以标识能够在其中检测到所述多个模式中的每一个的字节窗口。
15.根据权利要求14所述的设备,还包括用于基于检测到的模式执行运算的逻辑元件。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2010/054250 WO2012057745A1 (en) | 2010-10-27 | 2010-10-27 | Pattern detection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103154884A CN103154884A (zh) | 2013-06-12 |
CN103154884B true CN103154884B (zh) | 2016-08-10 |
Family
ID=45994217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080069855.XA Active CN103154884B (zh) | 2010-10-27 | 2010-10-27 | 模式检测 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9342709B2 (zh) |
EP (1) | EP2633396A4 (zh) |
CN (1) | CN103154884B (zh) |
WO (1) | WO2012057745A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL226747B (en) | 2013-06-04 | 2019-01-31 | Verint Systems Ltd | A system and method for studying malware detection |
IL230743B (en) * | 2014-01-30 | 2019-09-26 | Verint Systems Ltd | System and method for extracting identifiers from unknown protocol traffic |
IL238001B (en) | 2015-03-29 | 2020-05-31 | Verint Systems Ltd | System and method for identifying communication conversation participants based on communication traffic patterns |
IL248306B (en) | 2016-10-10 | 2019-12-31 | Verint Systems Ltd | System and method for creating data sets for learning to recognize user actions |
US10673816B1 (en) * | 2017-04-07 | 2020-06-02 | Perspecta Labs Inc. | Low delay network intrusion prevention |
IL252037B (en) | 2017-04-30 | 2021-12-01 | Verint Systems Ltd | System and method for identifying relationships between computer application users |
IL256690B (en) | 2018-01-01 | 2022-02-01 | Cognyte Tech Israel Ltd | System and method for identifying pairs of related application users |
IL260986B (en) | 2018-08-05 | 2021-09-30 | Verint Systems Ltd | A system and method for using a user action log to study encrypted traffic classification |
EP3942740A1 (en) | 2019-03-20 | 2022-01-26 | Verint Systems Ltd. | System and method for de-anonymizing actions and messages on networks |
WO2021084439A1 (en) | 2019-11-03 | 2021-05-06 | Verint Systems Ltd. | System and method for identifying exchanges of encrypted communication traffic |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100514281C (zh) * | 2004-03-03 | 2009-07-15 | 浙江大学 | 一种应用于数字信号处理器流水线中的数据旁路系统 |
US7805392B1 (en) * | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601048B1 (en) | 1997-09-12 | 2003-07-29 | Mci Communications Corporation | System and method for detecting and managing fraud |
JP3520186B2 (ja) * | 1996-09-30 | 2004-04-19 | 東芝マイクロエレクトロニクス株式会社 | フィルムキャリアテープの製造方法、フィルムキャリアテープの製造装置 |
CN1312892C (zh) * | 1999-06-30 | 2007-04-25 | 倾向探测公司 | 用于监控网络流量的方法和设备 |
US6789116B1 (en) * | 1999-06-30 | 2004-09-07 | Hi/Fn, Inc. | State processor for pattern matching in a network monitor device |
EP1249098A1 (en) | 1999-12-17 | 2002-10-16 | Nokia Corporation | A method for contention free traffic detection |
US8200577B2 (en) | 2001-03-20 | 2012-06-12 | Verizon Business Global Llc | Systems and methods for retrieving and modifying data records for rating and billing purposes |
US7418732B2 (en) | 2002-06-26 | 2008-08-26 | Microsoft Corporation | Network switches for detection and prevention of virus attacks |
US7418729B2 (en) | 2002-07-19 | 2008-08-26 | Symantec Corporation | Heuristic detection of malicious computer code by page tracking |
US7373500B2 (en) * | 2003-04-15 | 2008-05-13 | Sun Microsystems, Inc. | Secure network processing |
US7257840B2 (en) | 2004-01-16 | 2007-08-14 | Cisco Technology, Inc. | Preventing network data injection attacks using duplicate-ACK and reassembly gap approaches |
WO2006023948A2 (en) | 2004-08-24 | 2006-03-02 | Washington University | Methods and systems for content detection in a reconfigurable hardware |
US20080189784A1 (en) * | 2004-09-10 | 2008-08-07 | The Regents Of The University Of California | Method and Apparatus for Deep Packet Inspection |
US20060107055A1 (en) * | 2004-11-17 | 2006-05-18 | Nesvis, Networks | Method and system to detect a data pattern of a packet in a communications network |
US7710969B2 (en) * | 2005-05-13 | 2010-05-04 | Texas Instruments Incorporated | Rapid I/O traffic system |
EP1929426B1 (en) * | 2005-09-09 | 2011-03-16 | Nxp B.V. | Rfid signal reading method with delimiter pattern detection |
US7636356B1 (en) | 2006-01-03 | 2009-12-22 | Marvell Israel (M.I.S.L.) Ltd | Processor traffic segregation for network switching and routing |
US8095683B2 (en) | 2006-03-01 | 2012-01-10 | Cisco Technology, Inc. | Method and system for mirroring dropped packets |
US20080034350A1 (en) | 2006-04-05 | 2008-02-07 | Conti Gregory R | System and Method for Checking the Integrity of Computer Program Code |
GB0610434D0 (en) * | 2006-05-26 | 2006-07-05 | Qinetiq Ltd | Pattern matching apparatus |
CA2706721C (en) | 2006-11-27 | 2016-05-31 | Smobile Systems, Inc. | Wireless intrusion prevention system and method |
US8112801B2 (en) | 2007-01-23 | 2012-02-07 | Alcatel Lucent | Method and apparatus for detecting malware |
CN101013937A (zh) | 2007-02-08 | 2007-08-08 | 华为技术有限公司 | 一种防止媒体代理受黑客攻击的方法和装置 |
IL189530A0 (en) * | 2007-02-15 | 2009-02-11 | Marvell Software Solutions Isr | Method and apparatus for deep packet inspection for network intrusion detection |
US8416773B2 (en) | 2007-07-11 | 2013-04-09 | Hewlett-Packard Development Company, L.P. | Packet monitoring |
CN100595778C (zh) | 2007-07-16 | 2010-03-24 | 珠海金山软件股份有限公司 | 鉴定病毒文件的方法、装置 |
WO2009052039A1 (en) * | 2007-10-16 | 2009-04-23 | University Of Florida Research Foundation, Inc. | Efficient intrusion detection |
US20090109953A1 (en) | 2007-10-29 | 2009-04-30 | The Hong Kong University Of Science And Technology | Robust timing synchronization for mb-ofdm frequency hopping systems in a sop environment |
US8059766B2 (en) | 2007-12-12 | 2011-11-15 | Harris Corporation | Communications device and related method with reduced false detects during start of message bit correlation |
US8103764B2 (en) * | 2008-10-14 | 2012-01-24 | CacheIQ, Inc. | Method and apparatus for matching trigger pattern |
US8752175B2 (en) | 2008-10-31 | 2014-06-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for network intrusion detection |
US8578491B2 (en) | 2008-12-11 | 2013-11-05 | Alcatel Lucent | Network based malware detection and reporting |
GB201013195D0 (en) * | 2009-09-28 | 2010-09-22 | Qinetiq Ltd | Processor |
CN102576392B (zh) | 2009-10-31 | 2014-12-17 | 惠普发展公司,有限责任合伙企业 | 用于恶意代码检测的设备和方法及恶意代码检测器 |
CN103828345B (zh) * | 2011-09-29 | 2017-03-22 | 富士胶片株式会社 | 用于图像处理的设备、方法以及图像拾取设备 |
-
2010
- 2010-10-27 WO PCT/US2010/054250 patent/WO2012057745A1/en active Application Filing
- 2010-10-27 CN CN201080069855.XA patent/CN103154884B/zh active Active
- 2010-10-27 EP EP10859062.1A patent/EP2633396A4/en not_active Withdrawn
- 2010-10-27 US US13/876,586 patent/US9342709B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100514281C (zh) * | 2004-03-03 | 2009-07-15 | 浙江大学 | 一种应用于数字信号处理器流水线中的数据旁路系统 |
US7805392B1 (en) * | 2005-11-29 | 2010-09-28 | Tilera Corporation | Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table |
Also Published As
Publication number | Publication date |
---|---|
CN103154884A (zh) | 2013-06-12 |
EP2633396A1 (en) | 2013-09-04 |
EP2633396A4 (en) | 2016-05-25 |
WO2012057745A1 (en) | 2012-05-03 |
US9342709B2 (en) | 2016-05-17 |
US20130191917A1 (en) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103154884B (zh) | 模式检测 | |
CN105871882B (zh) | 基于网络节点脆弱性和攻击信息的网络安全风险分析方法 | |
US9275224B2 (en) | Apparatus and method for improving detection performance of intrusion detection system | |
Silveira et al. | URCA: Pulling out anomalies by their root causes | |
US8307441B2 (en) | Log-based traceback system and method using centroid decomposition technique | |
CN107392016A (zh) | 一种基于代理的Web数据库攻击行为检测系统 | |
Yeganeh et al. | Cute: Traffic classification using terms | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
RU2757597C1 (ru) | Системы и способы сообщения об инцидентах компьютерной безопасности | |
CN106302450A (zh) | 一种基于ddos攻击中恶意地址的检测方法及装置 | |
CN111818055B (zh) | 基于动态反馈的网络攻击路径分析方法 | |
Kozik et al. | Pattern extraction algorithm for NetFlow‐based botnet activities detection | |
CN109587000A (zh) | 基于群智网络测量数据的高延迟异常检测方法及系统 | |
CN106227741B (zh) | 一种基于多级哈希索引链表的大规模url匹配方法 | |
TW200921435A (en) | Apparatus, method and system for performing a rule matching on a datastream | |
Pulls | Towards effective and efficient padding machines for tor | |
CN109088756B (zh) | 一种基于网络设备识别的网络拓扑补全方法 | |
CN110912756A (zh) | 一种面向ip定位的网络拓扑边界路由ip识别算法 | |
Harsányi et al. | Wormhole detection in wireless sensor networks using spanning trees | |
CN102576392B (zh) | 用于恶意代码检测的设备和方法及恶意代码检测器 | |
RU2622788C1 (ru) | Способ защиты информационно-вычислительных сетей от компьютерных атак | |
KR101863569B1 (ko) | 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치 | |
Kruczkowski et al. | FP-tree and SVM for malicious web campaign detection | |
CN115065592A (zh) | 信息处理方法、装置及存储介质 | |
Hussein et al. | Machine Learning for Network Resiliency and Consistency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20161221 Address after: American Texas Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP Address before: American Texas Patentee before: Hewlett-Packard Development Company, L.P. |