[go: up one dir, main page]

CN101409624B - 规则匹配装置和方法 - Google Patents

规则匹配装置和方法 Download PDF

Info

Publication number
CN101409624B
CN101409624B CN2008101702025A CN200810170202A CN101409624B CN 101409624 B CN101409624 B CN 101409624B CN 2008101702025 A CN2008101702025 A CN 2008101702025A CN 200810170202 A CN200810170202 A CN 200810170202A CN 101409624 B CN101409624 B CN 101409624B
Authority
CN
China
Prior art keywords
rule
data flow
content
group
mated
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.)
Expired - Fee Related
Application number
CN2008101702025A
Other languages
English (en)
Other versions
CN101409624A (zh
Inventor
林明元
符永贵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
O2Micro Inc
Original Assignee
O2Micro International Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by O2Micro International Ltd filed Critical O2Micro International Ltd
Publication of CN101409624A publication Critical patent/CN101409624A/zh
Application granted granted Critical
Publication of CN101409624B publication Critical patent/CN101409624B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种规则匹配装置和方法。所述规则匹配的装置包含内容匹配模块和第一规则匹配模块;所述内容匹配模块搜索所述数据流寻找内容组;所述内容组被整理成规则组,所述规则组包含具有单一内容的简单规则和具有多重内容的复杂规则;所述第一规则匹配模块连接到所述内容匹配模块,根据所述内容匹配模块的一个搜索结果判断是否所述规则组被所述数据流匹配;所述第一规则匹配模块根据所述搜索结果更新多个状态寄存器,并且每个状态寄存器能显示规则组中的一个规则是否被所述数据流匹配。本发明所述的规则匹配装置和方法,可有效利用资源,并具有相对高的灵活性和相对低的价格。

Description

规则匹配装置和方法
技术领域
本发明涉及数据处理,特别是数据过滤技术。
背景技术
计算机系统现在运行在一个近乎无所不在的互连环境中,无论是连接到互联网和网络还是通过有线或无线技术。虽然在线通讯的采用已经为商务网络和信息共享建立了无数新机会,但是也同时增加了网络安全被试图侵害、骇客攻击、意图访问保密信息,或者其他妨碍网络通讯的行为的频率。
最近,大量以侦测和阻止网络中攻击为目标的计算机软件程序出现,包括反病毒数据过滤,防火墙,侵入侦测/阻止和网络保护。几乎每个现代网络安全系统的核心都是一个内容匹配引擎,其扫描一个输入数据流以寻找特定的内容,这些内容是已知有威胁或危险的数据。内容匹配引擎也是一个已知的模式匹配引擎,并且被扫描的特定内容(模式)通常被称作内容(模式)标志存在于标志数据库中。如果在被扫描的数据流和在标志数据库中的一个内容标志之间找到一个匹配,一个警报就会发出,并且被扫描的数据流会在其造成任何损害之前被捕捉住。除了在网络安全计算机软件中的应用,内容匹配也被用于因特网通讯协议(IP,internet protocol)路径,其中每个穿过IP路径的数据流都可以被追溯到其IP地址。
内容匹配引擎的一个实施方式是利用一个处理器(CPU/NPU)。在运行中,标志数据库的内容组被存储在一个外部同步随机存取存储器(SRAM,synchronous random accessmemory,)或者一个动态随机存取存储器(DRAM,(dynamic random access memory)中。被处理器运行的软件比较输入数据流和标志数据库中的内容组以执行内容匹配功能。因为处理器(CPU/NPU)不是专门用于执行内容匹配的,因此基于处理器运行的匹配速度十分慢。
内容匹配引擎的另外一个实施方式是利用内容可寻址存储器(CAM,content addressable memory)或者三重内容可寻址存储器(TCAM,ternary content addressable memory)。CAM(TCAM)是一个存储装置,其尤其适用于匹配功能。然而,CAM(TCAM)是一个特别昂贵的存储元件,其一般的费用是SRAM的五倍。而且,CAM(TCAM)的存储容量特别小并且不能随着标志数据库中内容组的增加而调整。
内容匹配引擎的另外一个实施方式是利用一个现场可再编程门阵列((FRGA,field reprogrammable gate array))。在运行中,在标志数据库中的内容组被转换成状态图并且在FRGA中作为状态机实施。FRGA被编程用来扫描输入数据流以在其中寻找标志数据库中已经在FRGA中被转换成状态图的内容组。然而,一旦标志数据库中的内容组被修改,FRGA必须被相应重新配置。一般来说,此类重新配置需要大量时间以至于FRGA的灵活性会受到影响。
总的来说,以上实施方式具有多种缺点。
发明内容
为了解决上述问题,本发明提供了一种用于对数据流实现规则匹配的装置,包括:内容匹配模块,其用来搜索所述数据流以寻找多个内容;和
第一规则匹配模块,其连接到所述内容匹配模块,所述第一规则匹配模块根据搜索结果更新多个状态寄存器,并且根据所述多个状态寄存器,用来判断规则组是否被所述数据流匹配;
其中所述规则组包含从所述多个内容中选出的具有一个单一内容的简单规则,和从所述多个内容中选出的具有多重内容 的复杂规则,并且其中每个所述状态寄存器表示所述规则组中的一个规则是否被所述数据流匹配。
本发明进一步提供了一种用来对数据流实现规则匹配的方法,包括:
搜索所述数据流寻找多个内容;
根据搜索结果更新多个状态寄存器;并且
根据所述多个状态寄存器判断所述规则组是否被所述数据流匹配,
其中所述规则组包含具有一个单一内容的简单规则和具有多重内容的复杂规则,并且其中所述多个状态寄存器中的每个状态寄存器表示所述规则组中的一个规则是否被所述数据流匹配。
本发明还提供一种用来对数据流执行规则匹配的系统,包括:具有规则组的标志数据库,所述规则组包含多个内容;以及匹配引擎,连接到所述标志数据库用来搜索所述数据流以便寻找所述多个内容,并根据搜索结果更新多个状态寄存器,并且根据所述多个状态寄存器判断所述规则组是否被所述数据流匹配;其中所述状态寄存器组中的每个状态寄存器显示所述规则组中的规则是否被所述数据流匹配。
本发明所述的规则匹配装置和方法,可有效利用资源,并具有相对高的灵活性和相对低的价格。
附图说明
本发明的优点将会通过如下说明书典型实施例的详细说明变得明显,其中说明书应该结合附图理解,其中:
图1是根据本发明实施例的一个规则匹配系统的框图;
图2是根据本发明实施例的第一规则匹配模型的框图;
图3是根据本发明实施例的一个状态寄存器的结构图;
图4是根据本发明实施例的一种用来对数据流实现规则匹配方法的流程图。
具体实施方式
现在将会详细参考本发明实施例。虽然本发明将会结合具体实施例进行说明,但是可以理解,如下说明不是意图将本发明限制在实施例中。相反,本发明覆盖了所有的替代,修改和等同方式,只要这些相关技术特征包含在本发明随附的权利要求书定义的主旨和范围中。
图1所示的是根据本发明一个实施例中一个规则匹配系统100的框图。系统100包含一个匹配引擎110和一个标志数据库120。标志数据库120存在于一个存储元件中,例如SRAM或DRAM,并包含内容组,该内容组进一步被整理成规则组,该内容组可以包含具有一个单一内容的简单规则组和具有多个内容的复杂规则组。匹配引擎110扫描数据流101,以在其中寻找在标志数据库120中的规则组。在一个实施例中,为了加快规则匹配,一个数据过滤模块103能被连接于数据流101和匹配引擎110之间。一个输出模块130也能被连接到匹配引擎110,以当在数据流101和在标志数据库120中的规则组之间找到一个匹配时,输出模块130提供一个警报信号。在一个实施例中,匹配引擎110能进一步包括一个内容匹配模块105,第一规则匹配模块107和第二规则匹配模块109。
数据过滤模块103过滤数据流101,以便只有那些有可能与在标志数据库120中的规则组匹配的数据被输出到匹配引擎110以进行进一步检查。这样,系统100的处理速度能被明显提高。在一个实施例中,数据过滤模块103能在数据流101中寻找标志数据库120中规则组的部分字符串,并且只有包含该部分字符串的数据被输出以便进一步检查。例如,在标志数据库120中的一第一规则包含字符串“hinthint”其后跟有“virusvirusvirus”,并且在标志数据库120中的一第二规则包含字符串“playplay”其后 跟有“basketbasketbasket”。不是在数据流101中寻找这些规则组的全部字符串(例如,“hinthintvirusvirusvirus”和“playplaybasketbasketbasket”),而是由数据过滤模块103寻找部分字符串(例如,“hinthint”和“playplay”),并且只有在数据流101中包含“hinthint”或“playplay”的数据被输出到匹配引擎110以便进一步检查。
为了进一步加快系统100的处理速度,部分字符串可以采用压缩算法,例如哈希算法(hashing),被压缩到同样更短的部分字符串。例如,包含“hinthint”和“playplay”的8位部分字符串能被哈希压缩成同样的3位部分字符串(例如“abc”)。在这种情况下,数据过滤模块103首先在数据流101中寻找3位被哈希压缩过的部分字符串“abc”;如果在数据流101中找到被哈希压缩过的部分字符串“abc”,从“abc”解压出来的8位部分字符串(例如“hinthint”和“playplay”)在数据流101中被进一步搜索。以这种方式,数据过滤模块103的过滤速度被进一步提高使得系统100达到一个进一步提高的处理速度。
内容匹配模块105从被数据过滤模块103过滤的数据中搜索在标志数据库120中的内容组,并且只有那些在被过滤的数据中被找到的内容组被输出到第一规则匹配模块107。在一个实施例中,在标志数据库120中每个独一无二的内容由一个独一无二的内容标识符(CID,content identifier)所标记,并且在被过滤的数据中找到的内容组的CID组被汇报给第一规则匹配模块107从而方便分类。例如,标志数据库120包含内容组“abcdefg”,“bla-bla-bla-bla”,“hkejljmoetp”,“1234554321abcde”,“leddisplay”,“vpnfirewall”,“batterycollcharging”,等等。内容“abcdefg”,“bla-bla-bla-bla”,“hkejljmoetp”,“1234554321abcde”,“leddisplay”,“vpnfirewall”, “batterycollcharging”分别被标记成CID-1,CID-2,CID-3,CID-4,CID-5,CID-6,CID-7。被过滤的数据包含一个字符串“123-455xxxbbbbla-bla-bla-blaa....dfafahkejljmoetpadjqer....gadfleddisplay....bafgsgvpnfirewall....aabatterycollcharging”。在被内容匹配模块105扫描后,内容组“bla-bla-bla-bla”,“hkejljmoetp”,“leddisplay”,“vpnfirewall”和“batterycollcharging”能在被过滤的数据中被找到,并且每个CID组(CID-2,CID-3,CID-5,CID-6,CID-7)作为匹配的CID组被汇报给第一规则匹配模块107。
如前所述,在标志数据库120中的多个内容组被整理成规则组。为了判断数据流101与规则组是否匹配,第一规则匹配模块107能够触发包含由匹配的CID组所标记的内容组的相关规则组以进一步检查。例如,内容“abcdefg”构成一个规则-1,内容组“bla-bla-bla-bla”,“hkejljmoetp”和“vpnfirewall”构成一个规则-2,并且内容组“bla-bla-bla-bla”和“1234554321abcde”构成规则-3。因此,规则-1是一个简单规则并且规则-2和规则-3是复杂规则组。一个代表这些规则组的CID组如下:规则-1:CID-1;规则-2:CID-2,CID-3,CID-6;规则-3:CID-2,CID-4。如前假设,CID-2,CID-3,CID-5,CID-6和CID-7作为匹配的CID组被汇报。随后,规则-2和规则-3(其包含被匹配的CID组标记的内容组)被触发以在第一规则匹配模块107中进一步检查。然而,规则-1被第一规则匹配模块107忽略,因为所述规则-1不包含任何被匹配的CID组标记的内容。并且,第一规则匹配模块107能作为一个状态机被运行,用来侦测是否所有被包含在被触发规则组中的所有内容都被数据流101找到,并基于侦测结果作出一个匹配的判断,这一点会在以下部分详细说明。因此,第一规则匹配模块107能作出规则-2被数据流101匹配的匹配判断。然而,规则-3没有被匹配,因为数据流101不含有CID-4标记的内容。以这种方式,系统100能够在扫描数据流101寻找一个复杂规则时,和寻找一个简单规则时一样高效。并且,被第一规则匹配模块107作出的匹配判断可以被提供给输出模块130,以发出警报。
并且,对于一个在标志数据库120中具有多重内容的复杂规则,可以有附加的要求,例如一个顺序要求,其用来在复杂规则之内为多重内容设定一个顺序,或者一个预定距离要求,其用来在复杂规则之内为内容组设定一个距离限制。对于一个顺序要求,第一规则匹配模块107能被设计成以一个严格的连续顺序从内容匹配模块105中接收被匹配的CID组,并且也作出匹配判断,这将在以后部分详细说明。对于一个预定距离要求,当第一规则匹配模块107已经识别了所有由匹配的CID组标记的内容组构成的规则组后,第二规则匹配模块109被专用于处理这个限制。在下面的部分中对第二规则匹配模块109会作一个更加详细的说明。
参考图1能够推导出,系统100采用一个多步骤方法,通过不同的模块一步一步检查数据流101。以这种方式,在标志数据库120中每个被匹配的规则都能被快速识别以至于系统效率被提高。还有,系统100提供一个彻底的解决方案扫描数据流101,以便查找具有多重内容的复杂规则组和附加要求。另外,标志数据库120能被容易地修改或者扩充,因为标志数据库120位于SRAM或者DRAM中,其具有大的存储空间并可以被重写。SRAM或DRAM是相对便宜的存储元件。系统100能在一个集成逻辑电路中运行,例如,一个在100k门(gate)范围的现场可编程门阵列(FPGA,(Field Programmable Gate Array))或专用集成电路(ASIC,(Application Specific Integrated Circuit)), 其资源可以被有效利用。因此,系统100也有相对高的灵活性和相对低的价格。
图2显示了根据本发明实施例第一规则匹配模块107的一个框图。图2中标注相同标记的元件具有相同的功能并且在此为了简明起见不再赘述。第一规则匹配模块107在此作为一个状态机203被运行。状态机203根据被汇报给状态机203的所匹配CID组,能判断出在标志数据库120中的规则组是否被匹配。匹配的CID组在此被标记为201。并且,标志数据库120被分成一个规则块205和一个状态寄存器块207。规则块205存储规则组,如上,其具有以上述CID的表示。状态寄存器块207包含对应规则组的状态寄存器组,其用来跟踪对应规则组的匹配结果。例如,状态寄存器1对应规则-1并且跟踪规则-1的匹配结果,状态寄存器2对应规则-2并且跟踪规则-2的匹配结果,状态寄存器3对应规则-3并且跟踪规则-3的匹配结果,并且状态寄存器N对应规则-N并且跟踪规则-N的匹配结果。每个状态寄存器具有一定数量的位。位数量取决于规则组中其中一个规则所具有的最大内容数。
在运行中,状态机203能触发包含所匹配CID组标记的内容组的相关规则组,以进行检查。如前所假设,包含所匹配的CID组的相关规则-2和规则-3被状态机203触发以进行检查。特别地,每个状态寄存器的每个位被设成逻辑1或者逻辑0,以表示在每个规则中的内容组中的某一个内容是否在数据流101中被发现。根据每个状态寄存器的位值,状态机203能判断每个规则是否被数据流101匹配。
图3是根据本发明一个实施例中一个状态寄存器300的一个结构图。对图3的说明结合图2。寄存器300具有M位,其表示在数据流101中的规则组中其中一个规则具有最大的内容数为M。在其中一个实施例中,最左边的N位表示对应状态寄存器300的 规则由N个内容构成,并且N个内容的每个匹配结果被最左边的N位中的某一位追踪。在一个实施例中,最左边N位初始化为逻辑0而其他的M-N位被初始化为逻辑1。例如,对应状态寄存器300的规则被归属于规则-4,其由3个内容构成,该内容组被分别标记为CID-1,CID-3和CID-5。这样,N等于3。在运行中,最左边3位被初始化为逻辑0同时其余M-3(M减去3)位被初始化为逻辑1—位1(B1)位对应CID-1,位2(B2)对应CID-3,并且位3(B3)对应CID-5。如前所假设,CID-3和CID-5作为匹配的CID组被汇报。因此,状态寄存器300的位2(B2)被更新成逻辑1。相似地,位3(B3)也被更新成逻辑1。然而,位1(B1)仍旧是逻辑0,因为CID-1不属于被匹配的CID组。随后,状态机203能判断规则-4不被数据流101匹配,因为不是状态存储器300的所有位都被设置成逻辑1。
另外,表示内容组的匹配结果的N位能具有各种各样的位置分布于状态寄存器300中,而不是被限制在最左边的N个位中。还有,只要如上功能能够实现,状态寄存器300能以不同的方式被初始化。
并且,当有一个如上所讨论的顺序要求时,状态机203被设计成能以一个严格的连续顺序接收被匹配的CID组。例如,当规则-4中的内容组被要求具有顺序CID-1,CID-3,CID-5时,状态机203能被设计成,只有当左边临近位已经被设成逻辑1时,状态机300的最左边3个位才被设置成状态1。优点是,不必考虑什么样的顺序被规则组要求,状态机203都能够选择一个结构来存储被要求的顺序。
在一个实施例中,假设最大内容数是16,对应规则-1的状态寄存器1被初始化成0111-1111-1111-1111(从最左边B1到最右边B16),这是因为,如前所述的例子中,规则-1包含一单独CID (CID-1)并因此只有一单独位(最左边位B1)被设成逻辑0。类似地,对应规则-2的状态寄存器2被初始化成0001-1111-1111-1111(从最左边B1到最右边B16),因为,在如上例子中,规则-2包含3个CID组(CID-2,CID-3和CID-6)并因此这3个最左边位B1—B3被设成逻辑0。以一个相似的方式,对应规则-3的状态寄存器3被初始化成0011-1111-1111-1111(从最左边B1到最右边B16)。
假设(通过举例方式)被匹配的CID组被状态机203接收的顺序是CID-3,CID-5,CID-2,CID-6和CID-7,则状态机203将有次序地执行随后的操作。当CID-3被接收后,状态寄存器2将被更新成0101-1111-1111-1111,因为规则-2包含CID-3,而状态寄存器2对应规则-2,并且第二个位对应CID-3;状态寄存器1和3将会保持原来的值,分别为0111-1111-1111-1111和0011-1111-1111-1111。以一个相似的方式,当CID-5被接收后,状态寄存器1,2和3将会保持他们的原来的值,因为CID-5没有被包含在对应规则组中。当CID-2被接收后,状态寄存器2和3将被分别更新成1101-1111-1111-1111和1011-1111-1111-1111,因为CID-2被包含在规则-2和规则-3中,并且对应状态寄存器2和3的第一位;状态寄存器1将会保持原来的值为0111-1111-1111-1111。当CID-6被接收后,状态寄存器2将会被更新成1111-1111-1111-1111,同时状态寄存器1和3将会保持保持它们原来的值为0111-1111-1111-1111和1011-1111-1111-1111。当CID-7被接收,状态寄存器组1,2和3将会保持他们原来的值,因为CID-7没有被包含在相应规则组中。当所有被匹配的CID组被搜索到后,状态机203能够判断是否对应规则组被数据流101匹配。例如,状态机203能判断规则-2被数据流101匹配,因为状态寄存器2的所有位都被设成逻辑1,同时规则-1和规则-3不 被数据流101匹配,因为状态寄存器1和3中不是所有位都被设成逻辑1。
在一个实施例中,规则-2能包含一个附加的顺序要求。例如,规则-2中的内容组被预设成顺序CID-2,CID-3和CID-6。在这种情况下,状态机203能被设计成只有当左边临近位已经被设成逻辑1时,状态寄存器2中的B1,B2和B3才能被设成逻辑1。这样,在以上例子中,状态机203能判断出,在CID-3被第一次接收时,规则-2没有被数据流101匹配,因为状态寄存器2将被更新成0101-1111-1111-1111-1111,其不满足状态机203的预设构造。
再次参考图1,标志数据库120可以包含具有多重内容的复杂规则和预设距离要求。例如,一个在标志数据库120中的复杂规则-5可以如下所示:
规则-5:“leddisplay”,后面跟着“batterycollcharging”,距离刚好是50个字符,接着跟着“bla-bla-bla-bla”,并且不超过20个字符。
如前所假设,“leddisplay”,“batterycoolcharging”和“bla-bla-bla-bla”分别被标记为CID-5,CID-7和CID-2。CID代表的复杂规则-5如下:
规则-5:CID-5:,CID-7:=50,CID-2:<20
为了处理预设距离要求,内容匹配模块105将会不仅汇报被匹配CID组给第一规则匹配模块107,还会侦测在数据流101中找到的内容组的位置并发送被侦测到的位置给第二规则匹配模块109。如前假设,CID-2,CID-3,CID-5,CID-6和CID-7作为被匹配的CID组被内容匹配模块105汇报。另外,内容匹配模块105也将会侦测在数据流101中被标示为CID-2,CID-3,CID-5CID-6,和CID-7的内容的位置。其结果就是,内容匹配模块105 将要获得与这些位置结合的被匹配CID组。例如,内容匹配模块105将获得如下信息:CID-5:25,CID-7:75,CID-2:100,CID-6:125,CID-3:130,而这组信息则表示CID-5,CID-7,CID-2,CID-6和CID-3在数据流101中被找到的位置分别在25,75,100,125和130。
如前所讨论,在数据流101通过第一规则匹配模块105后,与规则组相关的、没有预设距离要求的匹配判断能被直接汇报给输出模块130。而且,对于具有预设距离要求的复杂规则-5,第二规则匹配模块109将开始检查在规则-5中的多重内容之间的距离。
在这种情况下,第二规则匹配模块109将要接收来自内容匹配模块105的、被包含在复杂规则-5中的多重内容的位置,以便计算这些内容之间的距离。例如,基于CID-5,CID-7和CID-2的位置,第二规则匹配模块109计算CID-5和CID-7之间的距离是50个字符并且CID-7和CID-2之间的距离是25个字符。这样,CID-7和CID-2之间的距离不满足不大于20个字符的预设距离要求。因此,第二规则匹配模块109能做出匹配判断,即复杂规则-5不被数据流101匹配。
图4是根据本发明一实施例中对数据流执行规则匹配方法的流程图400。虽然在图4中揭示了单个步骤作为示例,但这些步骤只是举例。就是说,本发明十分适合于图4中引用示例的各种各样的其他实施步骤或者其他的变型。对图4的说明是结合图1和图2进行的。
在框图410中,数据流被过滤以便加快规则匹配。在一个实施例中,数据过滤模块103能搜索数据流101以寻找规则组的部分字符串,从而根据搜索结果过滤数据流101。数据过滤步骤对规则匹配是有益的但不是不可缺少的。
在框图420中,被过滤的数据流被搜索以寻找内容组,从而得到被匹配的内容标识符组。在一个实施例中,内容匹配模块105能搜索来自数据过滤模块103的被过滤的数据流以便寻找多个内容,并把在被过滤数据流中找到的内容中的内容标识符组作为被匹配的内容标识符组汇报。
在框图430中,根据被匹配内容标识符组,状态寄存器组被更新以判断是否规则组被数据流匹配。在一个实施例中,第一规则匹配模块107能被作为一个状态机203运行,根据被匹配的内容标识符组,用来更新在标志数据库120中的状态寄存器组。状态寄存器组的位值能判断规则组是否被数据流101匹配。
在框图440中,如果规则组要求一个预设距离要求,那么被包含在规则组中的内容之间的距离被检查以判断是否该规则组被数据流匹配。在一个实施例中,规则组包含具有单一内容的简单规则组和具有多重内容的复杂规则组。复杂规则组能进一步包含一个预设距离要求。在这种情况下,第二规则匹配模块109被用来检查多重内容之间的距离。当在检查后,预设距离要求被满足,第二规则匹配模块109能判断复杂规则组被数据流101匹配。
在此所用的术语和表述是用来说明的术语,并不是限制,并且没有意图,用这些术语和表述排除任何显示和说明(或者部分显示和说明)的技术特征的等同特征,并且承认在权利要求范围内有各种各样的修改是可能的。其他的修改,各种形式,和变形也是可能的。因此,权利要求的意图是覆盖所有这些等同和变形的方式。

Claims (25)

1.一种用于对数据流执行规则匹配的装置,其特征在于,包括:
内容匹配模块,其用来搜索所述数据流以寻找多个内容;和
第一规则匹配模块,其连接到所述内容匹配模块,所述第一规则匹配模块根据搜索结果更新多个状态寄存器,并且根据所述多个状态寄存器,判断规则组是否被所述数据流匹配;
其中所述规则组包含从所述多个内容中选出的具有一个单一内容的简单规则,和从所述多个内容中选出的具有多重内容的复杂规则,并且其中每个所述状态寄存器表示所述规则组中的一个规则是否被所述数据流匹配。
2.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,进一步包括:
数据过滤模块,其连接到所述内容匹配模块以搜索所述数据流,以在其中寻找所述规则组的部分字符串,并且在所述数据流被所述内容匹配模块搜索寻找所述多个内容之前,根据所述数据过滤模块的搜索结果过滤所述数据流。
3.根据权利要求2所述用于对数据流执行规则匹配的装置,其特征在于,所述部分字符串被哈希压缩成一个被哈希压缩的部分字符串并且所述数据流被搜索以寻找所述被哈希压缩的部分字符串。
4.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,所述多个内容由多个内容标识符分别标示,并且其中,根据被匹配的内容标识符,相关规则组被触发以用来检查所述被匹配内容标识符标示的在所述数据流中被找到的内容。
5.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,所述第一规则匹配模块被作为一个状态机运行。
6.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,所述第一规则匹配模块对在所述数据流中找到的所述多个内容规定一个顺序,并且根据被规定的所述顺序判断所述规则组是否被所述数据流匹配。
7.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,所述复杂规则具有一个预设的距离要求。
8.根据权利要求7所述用于对数据流执行规则匹配的装置,其特征在于,进一步包括:
第二规则匹配模块,其连接到所述第一规则匹配模块用来检查在所述多重内容之间的距离是否满足所述预设的距离要求,并且根据检查结果判断所述复杂规则是否被所述数据流匹配。
9.根据权利要求8所述用于对数据流执行规则匹配的装置,其特征在于,所述内容匹配模块在所述数据流中侦测所述多重内容的位置,并且其中所述第二规则匹配模块被连接到所述内容匹配模块以便基于被侦测的所述位置计算所述多重内容之间的距离。
10.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,用来执行所述规则匹配的装置在一个硬件中被运行,所述硬件从至少一个现场可编程门阵列和一个专用集成电路中选择。
11.根据权利要求1所述用于对数据流执行规则匹配的装置,其特征在于,所述多个内容被存储在一个存储元件中,所述存储元件从至少一个同步随机存取器和一个动态随机存储器中选择。
12.一种用来对数据流执行规则匹配的方法,其特征在于,包括:
搜索所述数据流以寻找多个内容;
根据搜索结果更新多个状态寄存器;并且
根据所述多个状态寄存器判断规则组是否被所述数据流匹配,
其中所述规则组包含具有一个单一内容的简单规则和具有多重内容的复杂规则,并且其中所述多个状态寄存器中的每个状态寄存器表示所述规则组中的一个规则是否被所述数据流匹配。
13.根据权利要求12所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
搜索所述数据流寻找所述规则组中的部分字符串;并且
在搜索所述数据流寻找所述多个内容之前,根据寻找所述规则组中的部分字符串的搜索结果过滤所述数据流。
14.根据权利要求13所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
哈希压缩所述字符串成一个被哈希压缩的部分字符串;并且
搜索所述数据流寻找所述被哈希压缩的部分字符串。
15.根据权利要求12所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
用多个内容标识符分别标识所述多个内容;
汇报所述多个内容标识符中其中一个内容标识符作为一个被匹配的内容标识符,其中所述被匹配的内容标识符标识的内容在所述数据流中被找到;并且
触发相关规则组以根据所述被匹配的内容标识符检查。
16.根据权利要求12所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
对在所述数据流中找到的多个内容规定一个顺序;并且
根据被规定的所述顺序判断所述规则组是否被所述数据流匹配。
17.根据权利要求12所述用来对数据流执行规则匹配的方法,其特征在于,所述复杂规则具有一个预设的距离要求。
18.根据权利要求17所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
检查在所述多重内容之间的距离是否满足所述预设的距离要求,并且
根据检查结果判断所述多重规则是否被所述数据流匹配。
19.根据权利要求18所述用来对数据流执行规则匹配的方法,其特征在于,进一步包括:
在所述数据流中侦测所述多重内容的位置;并且
基于被侦测的所述位置计算所述多重内容之间的距离。
20.一种用来对数据流执行规则匹配的系统,其特征在于,包括:
具有规则组的标志数据库,所述规则组包含多个内容;以及
匹配引擎,连接到所述标志数据库用来搜索所述数据流以便寻找所述多个内容,并根据搜索结果更新多个状态寄存器,并且根据所述多个状态寄存器判断所述规则组是否被所述数据流匹配;
其中所述状态寄存器组中的每个状态寄存器显示所述规则组中的规则是否被所述数据流匹配。
21.根据权利要求20所述用来对数据流执行规则匹配的系统,其特征在于,所述标志数据库存在于一个存储元件中,所述存储元件从至少一个同步随机存取器和一个动态随机存储器中选择。
22.根据权利要求20所述用来对数据流执行规则匹配的系统,其特征在于,所述匹配引擎在一个硬件中被运行,所述硬件从至少一个现场可编程门阵列和一个专用集成电路中选择。
23.根据权利要求20所述用来对数据流执行规则匹配的系统,其特征在于,进一步包括:
数据过滤模块,用来搜索所述规则组的部分字符串,并且在所述数据流被所述匹配引擎搜索寻找所述多个内容之前,根据所述数据过滤模块的搜索结果过滤所述数据流。
24.根据权利要求20所述用来对数据流执行规则匹配的系统,其特征在于,所述规则组包含具有多重内容的复杂规则和预设距离要求,并且其中所述匹配引擎进一步包括第一规则匹配模块和第二规则匹配模块,通过检查是否所述多重内容在所述数据流中被找到,所述第一规则匹配模块判断所述复杂规则是否被所述数据流匹配,并且通过检查所述多重内容之间的距离是否满足所述预设距离要求,所述第二规则匹配模块判断所述复杂规则是否被所述数据流匹配。
25.根据权利要求20所述用来对数据流执行规则匹配的系统,其特征在于,所述匹配引擎把在所述数据流中找到的所述多个内容规定一个顺序,并且根据被规定的所述顺序判断是否所述规则组被所述数据流匹配。
CN2008101702025A 2007-10-09 2008-10-09 规则匹配装置和方法 Expired - Fee Related CN101409624B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/973,817 2007-10-09
US11/973,817 US7904433B2 (en) 2007-10-09 2007-10-09 Apparatus and methods for performing a rule matching

Publications (2)

Publication Number Publication Date
CN101409624A CN101409624A (zh) 2009-04-15
CN101409624B true CN101409624B (zh) 2010-12-15

Family

ID=40524165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101702025A Expired - Fee Related CN101409624B (zh) 2007-10-09 2008-10-09 规则匹配装置和方法

Country Status (3)

Country Link
US (1) US7904433B2 (zh)
CN (1) CN101409624B (zh)
TW (1) TW200921435A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953792B2 (en) * 2008-11-24 2011-05-31 At&T Intellectual Property I, Lp Method and system for content distribution network performance and quality measurement
IN2013MU03382A (zh) * 2013-10-25 2015-07-17 Tata Consultancy Services Ltd
CN104462398A (zh) * 2014-12-10 2015-03-25 北京国双科技有限公司 网页的分享功能的加载方法和装置
CN104468239B (zh) * 2014-12-22 2018-08-21 上海大唐移动通信设备有限公司 一种基于规则的数据处理方法及装置
US9967272B1 (en) * 2017-12-05 2018-05-08 Redberry Systems, Inc. Real-time regular expression search engine
WO2020107359A1 (zh) * 2018-11-30 2020-06-04 唐山曹妃甸联城科技有限公司 一种规则匹配方法及装置
CN112994931B (zh) * 2021-02-05 2023-01-17 绿盟科技集团股份有限公司 一种规则匹配的方法及其设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1317114A (zh) * 1998-07-10 2001-10-10 快速检索及传递公司 一种用于数据检索的搜索系统和方法及其在搜索引擎中的应用
CN1427994A (zh) * 2001-01-30 2003-07-02 梅姆考尔有限责任公司 组合的按内容寻址存储器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799199B1 (en) * 2000-01-11 2004-09-28 The Relegence Corporation Media monitor system
US7324990B2 (en) * 2002-02-07 2008-01-29 The Relegence Corporation Real time relevancy determination system and a method for calculating relevancy of real time information
US7587487B1 (en) * 2003-12-10 2009-09-08 Foundry Networks, Inc. Method and apparatus for load balancing based on XML content in a packet
GB2460625B (en) * 2008-05-14 2010-05-26 Ingenia Holdings Two tier authentication

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1317114A (zh) * 1998-07-10 2001-10-10 快速检索及传递公司 一种用于数据检索的搜索系统和方法及其在搜索引擎中的应用
CN1427994A (zh) * 2001-01-30 2003-07-02 梅姆考尔有限责任公司 组合的按内容寻址存储器

Also Published As

Publication number Publication date
TW200921435A (en) 2009-05-16
US7904433B2 (en) 2011-03-08
US20090094226A1 (en) 2009-04-09
CN101409624A (zh) 2009-04-15

Similar Documents

Publication Publication Date Title
CN101409624B (zh) 规则匹配装置和方法
CN112738126B (zh) 基于威胁情报和att&amp;ck的攻击溯源方法
US8239945B2 (en) Intrusion detection using a network processor and a parallel pattern detection engine
CN111988339B (zh) 一种基于dikw模型的网络攻击路径发现、提取和关联的方法
Ramaki et al. RTECA: Real time episode correlation algorithm for multi-step attack scenarios detection
US7685637B2 (en) System security approaches using sub-expression automata
US9990583B2 (en) Match engine for detection of multi-pattern rules
AU2010239696B2 (en) Digital DNA sequence
CN112333195B (zh) 基于多源日志关联分析的apt攻击场景还原检测方法及系统
Pfeffer et al. Malware analysis and attribution using genetic information
US12124574B2 (en) System and method of synthesizing potential malware for predicting a cyberattack
CN111709022B (zh) 基于ap聚类与因果关系的混合报警关联方法
Ma et al. Discovering suspicious APT families through a large-scale domain graph in information-centric IoT
CN116938587A (zh) 基于溯源图行为语义提取的威胁检测方法及系统
Sukhwani et al. A survey of anomaly detection techniques and hidden markov model
CN101272386B (zh) 一种前缀匹配算法
CN103166942A (zh) 一种恶意代码的网络协议解析方法
CN114398887B (zh) 一种文本分类方法、装置及电子设备
Tseng et al. A parallel automaton string matching with pre-hashing and root-indexing techniques for content filtering coprocessor
Hao et al. AutoMal: automatic clustering and signature generation for malwares based on the network flow
Bhatt et al. Analyzing targeted attacks using hadoop applied to forensic investigation
Touré et al. Automated and improved detection of cyber attacks via an industrial IDS probe
Lin et al. A platform-based SoC design and implementation of scalable automaton matching for deep packet inspection
KR102655234B1 (ko) 고속 패킷 검색 방법 및 장치
CN119011291B (zh) 一种基于重叠社区发现的apt攻击行为识别方法

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
ASS Succession or assignment of patent right

Owner name: O2 TECH. INTERNATIONAL LTD.

Free format text: FORMER OWNER: O2MICRO ELECTRONICS (WUHAN) CO., LTD.

Effective date: 20120215

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120215

Address after: Grand Cayman British Cayman Islands

Patentee after: O2 Tech. International Ltd.

Address before: Wuhan City, Hubei province 430074 Luoyu Road No. 716 Hua Le Business Center Room 806

Patentee before: O2Micro International Ltd.

ASS Succession or assignment of patent right

Owner name: AIYOUKE SERVICE CO., LTD.

Free format text: FORMER OWNER: O2 TECH. INTERNATIONAL LTD.

Effective date: 20120821

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120821

Address after: Delaware

Patentee after: O2Micro Inc.

Address before: Grand Cayman British Cayman Islands

Patentee before: O2 Tech. International Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101215

Termination date: 20131009