CN101938474A - 一种网络入侵检测与防护的方法及装置 - Google Patents

一种网络入侵检测与防护的方法及装置 Download PDF

Info

Publication number
CN101938474A
CN101938474A CN2010102657931A CN201010265793A CN101938474A CN 101938474 A CN101938474 A CN 101938474A CN 2010102657931 A CN2010102657931 A CN 2010102657931A CN 201010265793 A CN201010265793 A CN 201010265793A CN 101938474 A CN101938474 A CN 101938474A
Authority
CN
China
Prior art keywords
rule
adaptation
candidate item
coupling
survival
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
Application number
CN2010102657931A
Other languages
English (en)
Other versions
CN101938474B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN 201010265793 priority Critical patent/CN101938474B/zh
Publication of CN101938474A publication Critical patent/CN101938474A/zh
Application granted granted Critical
Publication of CN101938474B publication Critical patent/CN101938474B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提出了一种网络入侵检测与防护的方法,包括读入漏洞特征规则集并形成特征规则表,对匹配器进行重排序,并对特征规则表进行重排序和分组;采用增量解析方式对应用层数据进行解析;根据重排序后的匹配器和重排序及分组后的特征规则表,对应用层数据的解析结果进行依赖当前域匹配器的匹配,并执行候选项选择算法计算本轮存活的候选项,直至所有匹配器完成,最终存活的候选项为最终匹配规则;报告最终匹配规则,重置匹配器的状态,清空保存中间结果的存储空间,返回第一步。本发明实施例还提出了一种网络入侵检测与防护的装置。本发明在实现规则高速匹配的同时,减小了存储中间结果所需的存储空间,并且能够同时达到高速度和高准确性。

Description

一种网络入侵检测与防护的方法及装置
技术领域
本发明涉及网络安全技术领域,特别涉及一种基于漏洞特征规则的高速网络入侵检测与防护方法及装置。
背景技术
当今,因特网已经进入了高速宽带网络时代,并且速度和流量仍在不断提高。与此同时,因特网上应用的多样性和复杂性也不断提高。网络设备和各种应用不可避免地存在各种漏洞,而速度的提高和应用的日益复杂化使得防御来自网络的入侵变得越来越困难。其中,网络漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些漏洞会被黑客利用导致巨大损失。具体的说,网络漏洞会影响到很大范围的软硬件设备,包括作系统本身及其支撑软件,网络客户和服务器软件,网络路由器和安全防火墙等。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
为避免出现上述网络入侵问题,构建网络入侵检测与防护系统(Network Intrusion Detection/Prevention System,NIDS/NIPS)成为现今预防及检测网络入侵的重要手段之一。准确性和速度是衡量NIDS/NIPS的两大指标。其中,准确性具有首要意义,特别是对NIPS而言。因为NIPS当检测到一个连接为可疑连接时,必须实时将其切断。为了确保被切断的连接一定是可疑连接,检测系统必须具有很高的准确性,这就要求每一条规则应该非常准确。
目前,主流的网络入侵检测与防护系统大多采用正则表达式匹配技术,例如开源的NIDS系统(Snort、Bro等),以及商用的NIDS/NIPS(Cisco或Juniper公司等的产品)。多条正则表达式规则能够合并在一起同时进行匹配,这一特点使得增减规则非常方便,速度也能够达到较高的水平。但是,正则表达式匹配不能够很准确地描述入侵行为的特征。在理论上,研究者已经证明,图灵机是描述对漏洞入侵行为的准确技术。正则表达式的描述能力远远低于图灵机。在实践中,已经出现了多态(polymorphic)和变形(metamorphic)等逃避正则表达式检测的技术,并且在研究中也构造出能够逃避Snort检测的入侵流量。
为了提高入侵检测与防护系统的准确性,现有研究中提出了一种基于漏洞特征规则(vulnerability signature)的检测与防护技术。每一条漏洞特征规则由一组作用在协议语义信息上的符号化的谓词断言(symbolic predicates)构成。如果这一组中的每一个断言的运算结果都是“真”,则该条规则的匹配结果为“真”;否则为“假”。现有研究中,已经提出了在网络入侵与检测系统中使用基于漏洞特征规则的检测与防护技术,并且从理论上证明了图灵机是描述对漏洞入侵行为的准确技术。基于漏洞特征规则的检测与防护技术采用的是上下文相关语言分析技术,是目前最接近图灵机描述能力的入侵检测与防护技术。研究人员采用字符串匹配技术来定位协议数据中的语义信息,然后再采用漏洞特征规则来匹配结果。
下面是一个漏洞特征规则的例子:
Figure BSA00000248406100021
上述规则描述了2003年爆发的“冲击波”蠕虫(Blaster Worm)所利用的Windows远程过程调用组件中的漏洞。Windows远程过程调用组件使用的是WINRPC协议,它是一个有状态协议(stateful protocol)。一个完整的远程过程调用包括了下面的步骤:客户端向服务器发出一个BIND数据单元(protocol data unit,PDU),请求绑定一个特定的API;BIND数据单元中包含了所请求的API的UUID(一个128位二进制串)和版本号;在本例中,“冲击波”蠕虫所利用的API的UUID是UUID_IRemoteActivation,版本号是“0.0”;服务器接受该请求后返回一个BIND-ACK数据单元以示确认;然后客户端发出一个CALL数据单元,其中包含了调用API的操作码opnum和调用数据stub;在本例中,如果opnum等于0x00,stub的长度大于或等于40字节,并且stub的RAbody域以字符串“\x5c\x00\x5c\x00”开头,则漏洞被触发,“冲击波”蠕虫能够成功地入侵服务器。
通过上述例子可以看出,漏洞特征规则能够精确地描述漏洞被触发的条件。无论黑客或者蠕虫如何变化,最终都必须满足上述条件才能成功地实施入侵。因此,漏洞特征规则既不会过于宽松而漏掉真正的入侵(伪假性,false negative),也不会过于严格而阻挡合法的访问(伪真性,false positive)。
但是,目前采用漏洞特征规则的研究结果都是采用顺序匹配方式处理各条规则,一旦规则数目增加,规则匹配速度将严重下降。
在网络入侵检测与防护系统中使用基于漏洞特征规则的方法并达到Gbps级别的处理速度,需要解决下面五个问题。
(1)骨干网络中同时存在着数以百万计的TCP流,NIDS/NIPS需要为每一个流维护相应的状态。因此每一个流的状态数必须尽可能的小,以避免存储空间溢出和状态保持攻击(state-holding attack);
(2)在漏洞特征规则中,域的运算更多样和更复杂。目前已有的运算包括整数精确比较、整数范围比较、字符串精确匹配和正则表达式匹配;
(3)不同的运算一般作用在不同的域上,因此不能像以往正则表达式匹配方法那样合并运算;
(4)不同的域的大小差别很大,一个整数域的大小只有4字节,一个字符串域的大小可能从几个字节到几百、几千字节,甚至跨越多个IP包。由于受到每流存储空间的限制,系统不能够缓存大量的域;
(5)不同的域是顺序到达的,其先后次序由不同的PDU决定。因此,不能够把所有的域缓存下来后再执行匹配,对于较大的域甚至不能完整地缓存。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别提出了一种网络入侵检测与防护的方法及装置,以实现在高速网络入侵检测与防护系统中使用漏洞特征规则时,采用很小的状态存储空间来实现规则的高速匹配,并且能够同时达到告诉网络部署时要求的高速度和高准确性。
为实现上述目的,本发明实施例一方面提出了一种网络入侵检测与防护的方法,包括如下步骤:
S101:读入漏洞特征规则集并将其表格化以形成特征规则表,对所述特征规则表中的各个特征规则对应的匹配器进行重排序,并对所述特征规则表进行重排序和分组;
S102:获取应用层数据,采用增量解析方式对所述应用层数据进行解析;
S103:根据所述重排序后的匹配器和重排序及分组后的所述特征规则表,对所述应用层数据的解析结果进行依赖当前域匹配器的匹配,并执行候选项选择算法计算本轮存活的候选项,并以所述本轮存活的候选项作为下轮匹配的输入,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则;和
S104:报告所述最终匹配规则,重置所述匹配器的状态,清空保存中间结果的存储空间,返回步骤S101。
本发明实施例另一方面提出了一种网络入侵检测与防护的装置,包括:规则集预处理模块,用于读入漏洞特征规则集并将其表格化以形成特征规则表,对所述特征规则表中的各个特征规则对应的匹配器进行重排序,并对所述特征规则表进行重排序和分组;
增量式协议解析模块,用于获取应用层数据,采用增量解析方式对所述应用层数据进行解析;
规则集并行匹配模块,根据所述重排序后的匹配器和重排序及分组后的所述特征规则表,对所述应用层数据的解析结果进行依赖当前域匹配器的匹配和候选项选择算法计算本轮存活的候选项,并以所述本轮存活的候选项作为下轮匹配的输入,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则,保存并报告最终匹配规则,重置所述匹配器的状态,清空保存中间结果的存储空间。
本发明的网络入侵检测与防护的方法及装置,通过对匹配器按照区分度进行重排序,按照重排后顺序对域和匹配器进行匹配。在实现规则的高速匹配的同时,减小了存储中间结果所需的存储空间。并且,本发明的增量式协议解析方式对应用层数据进行解析,其解析速度相对于HTTP协议和WINRPC协议提高了数倍以上。本发明的网络入侵检测与防护的方法及装置能够同时达到高速度和高准确性,达到在高速网络上部署的要求。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的网络入侵检测与防护的方法的流程框图;
图2为图1所示的网络入侵检测与防护的方法的具体实施流程图;
图3为本发明实施例的候选项选择算法的流程图;
图4为本发明实施例的网络入侵检测与防护的装置的结构框图;以及
图5为本发明实施例的网络入侵检测与防护的方法与传统的网络入侵检测与防护技术的速度和准确性的比较示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为实现本发明之目的,本发明实施例一方面公开了一种网络入侵检测与防护的方法。结合图1和图2所示,该方法包括如下步骤:
S101:读入漏洞特征规则集并将其表格化以形成特征规则表,对特征规则表中的各个特征规则对应的匹配器进行重排序,并对特征规则表进行重排序和分组;
S1011:读入以文本文件形式存储的漏洞特征规则集,并将上述规则集表格化以形成特征规则表。
首先,从存储介质中,如磁盘等,读入以文本形式存储的漏洞特征规则集。然后,将上述规则集以表格形式存储,即存储为特征规则表。其中,以各条规则作为规则表的各行,将规则中作用在输入数据的各个域的不同的匹配器(Matcher)作为规则表的各列。由于,每一个匹配器表示一个在对应域上的运算,以域的值作为运算输入,以规则和匹配器所确定的表格单元格的值作为运算参数。运算结果包括:“真”(True)或者“假”(False)。如果某条规则不依赖某个匹配器的匹配结果,则在该条规则和该匹配器所确定的表格单元格中以“*”号表示。
S1012:根据匹配器的区分度和域所需要的存储空间的大小对匹配器进行重排序。
由于各个匹配器之间是“与”的逻辑运算,交换匹配器不会影响匹配结果。但是,先执行具有更大区分度的匹配器能够尽快排除不可能的规则,从而减少保存中间结果所需要的存储空间。因此,本实施例提供的方法根据匹配器的区分度和域所需要的存储空间的大小,从高到低对各个匹配器进行重排序。
为了说明匹配器重排序算法,下面首先对候选项选择算法进行简单介绍。
在本实施例的候选项选择算法中,定义匹配器Mi(1≤i≤K,K为ML中的匹配器的数目,ML为匹配器的序列)选出的候选项的集合为Ci,经过匹配器M1、M2到Mi筛选之后存活的候选项的集合为。将Ci中的候选项分为两部分Ai和Bi。其中,将Ci中来自规则分组RB1、RB2到RBi-1的候选项的集合记为Ai,即将Ci中来自规则分组RBi的候选项的集合记为Bi,即Bi=Ci ∩RBi
在候选项选择算法的每一步迭代计算
Figure BSA00000248406100052
中,
Figure BSA00000248406100053
减小了Si的大小,Bi增大了Si的大小。由于
Figure BSA00000248406100054
和Bi是互不重合的两个集合,其加法非常简便和快速。因此计算的代价主要来自
Figure BSA00000248406100055
而存储的代价主要取决于Si的大小。可以看出,候选项选择算法的计算和存储的代价都与Si的大小紧密相关,用|Si|表示Si的大小,|Si|的平均值avg(|Si|)越小,候选项选择算法平均的计算和存储的代价越小。设K为匹配器的数目,因为SK是最终匹配的规则的集合,只需要报告并写入日志文件,不需要在内存中继续保存,因此它没有计算和存储代价。只需要考虑S1到SK-1。由于
Figure BSA00000248406100056
因此
Figure BSA00000248406100057
当匹配器的编号j越小时,系数
Figure BSA00000248406100061
越大,|Bj|对avg(|Si|)的影响越大。因此,将贡献较小的|Bj|的匹配器放在前面执行,则可以减小avg(|Si|),从而减小候选项选择算法所需要的计算和存储代价。
但是,最初匹配器的顺序是按照协议中的域的出现先后顺序排列的。在这种自然排列的顺序中,一个域到达之后能够被相应的匹配器立即匹配,匹配之后域的值所占用的存储空间能够被立即释放,不需要额外的空间来保存。如果改变了匹配器的顺序,则需要额外的存储空间来保存已经到达而不能被立即匹配的域。由于每一个流所能使用的存储空间是有限的,需要在保存域的值和保存Si之间找到一个最优方案,使得系统的速度达到最高。
因此,本实施例采用下述方法对各个匹配器进行重排序。
具体的说,设BUF为每一个流所能使用的存储空间,BUF_MAX_LEN为BUF的最大容量。匹配器所支持的域的数据类型包括整数和字符串。由于每个整数需要4字节存储空间,字符串由于其长度可变,所需要的存储空间大小不确定。因此,在本实施例中只缓存整数域,不缓存字符串域。根据表1中所示整数匹配算法,对于给定的特征规则集和匹配器,可以预先计算出每一个整数匹配器Mj可能得到的|Bj|的最大值,记为EstMaxB(Mj)。其中,EstMaxB(Mj)为与各个匹配器相对应的属性值。设MaxB为预设的阈值,在EstMaxB(Mj)>MaxB时才对匹配器进行重排序。设ML为按照协议中的域的出现先后顺序排列的匹配器序列,OrderedML为重排序后的匹配器序列。下方示出了匹配器重排序算法的伪代码。
Figure BSA00000248406100062
Figure BSA00000248406100071
表1
  域的数据类型   匹配操作   匹配算法
  整数   精确匹配   平衡二分查找树算法
  整数   范围检查   平衡二分查找树算法
  字符串   精确匹配   基于Trie的字符串匹配算法
  字符串   正则表达式匹配   基于合并的有限状态自动机的正则表达式匹配算法
  字符串   长度检查   平衡二分查找树算法
S1013:根据规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据规则所依赖的第一个匹配器的不同进行分组。
与步骤1013中的匹配器同理,规则的顺序也不会影响规则能否匹配。因此本实施例提供的方法根据规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据规则所依赖的第一个匹配器的不同进行分组。
具体的说,设R为重排序前的规则集,NR为重排序和分组后的规则集,初始时,NR为空。对于匹配器序列ML中的每个匹配器Mi(1≤i≤K,K为ML中的匹配器的数目)构造一个规则分组RBi,将R中现存的所有依赖匹配器Mi的规则置入规则分组RBi。如上所述,根据规则所依赖的第一个匹配器的不同分组为RB1到RBn,n为规则分组的数目。同时,按照规则所依赖的匹配器出现的先后顺序,对规则进行重排序。将规则分组RB1到RBn依次插入NR中,即得到重排序和分组后的规则集。下面为规则集重排序和分组的伪代码示意图:
Figure BSA00000248406100081
下面以表2和表3为例,举例说明规则集的重排序和分组算法。其中,表2为未经过重排序和分组的规则表。表2中包含9条HTTP协议规则和5个匹配器,并依赖4个HTTP协议域。在匹配器的名称中,第一部分为协议域的名称,如“Method”、“Filename”等;第二部分为运算符,如“==”表示字符串精确匹配,“RE”表示正则表达式匹配等。每一个匹配器对所作用的域运算之后返回“真”(True)或者“假”(False)的结果。以匹配器3为例,其协议域名称为Filename,运算符为“RE”,即正则表达式匹配。
表2
Figure BSA00000248406100082
表3为对表2经过重排序和分组后得到的规则表。由于本例中的5个匹配器均为区分度较大的匹配器,因此按照步骤1012中的方法对匹配器进行排序后,匹配器的顺序不变。对规则根据所依赖的匹配器出现的先后进行排序和分组。其中,对于所依赖的第一个匹配器为匹配器1的规则被分为第1组,即规则组号为1;所依赖的第一个匹配器为匹配器2的规则被分为第2组,以此类推。以规则组1为例,原规则号为8、6和2的规则所依赖的第一个匹配器为匹配器1,因此均被分到规则组1。规则组2、3、4、5的分组方式同理。
表3
Figure BSA00000248406100091
由于规则表中存在许多“*”号项,即该条规则不依赖该匹配器的匹配结果。为了节省存储空间,在存储规则表时不保存“*”号项,只保存非“*”号项,而用于一个位图BITMAP保存“*”号项的信息。
其中,BITMAP为一个n×m的位图矩阵,n为规则的条数,m为匹配器的个数。设RuleID为规则号,MatcherID为匹配器号,如果BITMAP[RuleID][MatcherID]等于1,则说明规则RuleID依赖于匹配器MatcherID;如果BITMAP[RuleID][MatcherID]等于0,则说明规则RuleID不依赖匹配器MatcherID。本实施例提供的方法中,位图BITMAP为只读信息。因此,所有的数据流可以共享同一个BITMAP,存储空间花费很小。
S102:获取应用层数据,采用增量解析方式对所述应用层数据进行解析;
S1021:从网络接口获得数据帧,经过数据链路层、网络层和传输层处理,得到应用层数据;
S1022:对上述应用层数据进行增量解析方式进行解析;
具体的说,增量解析方式为在协议数据上移动指针的过程。当一段数据到达时,根据之前保存的协议状态上下文判断当前指针所指的数据属于协议的哪个域,并根据这个域的作用类型决定如何处理数据。
其中,协议域可以分为三类:类型0、类型1和类型2。
类型0为无用域,即在协议解析和规则匹配过程中没有用到的域,无用域它们可以被指针直接跳过。
类型1为在协议解析过程中用到的域,由于协议属于上下文有关语言,后续域的解析有可能依赖前驱域的值,因此类型1的值必须保存在协议状态上下文中供后续解析使用,直到它不再被需要时才能被释放并回收其所占用的内存。
类型2为漏洞特征规则中使用的域,即为本步骤的解析结果。
在本步骤中,在实现对应用层数据的解析的同时,更新并保持协议状态的上下文。
本实施例中的增量解析方式相对传统的解析方式,具有以下特点:对于某个域而言,如果其完整地存在于当前的数据段中,将被完整地解析出来并一次处理完成;如果其被分割在先后到达的多个数据段中,那么解析出来一部分就会处理一部分。由此,每一部分已经处理过的数据就不再需要保存,节省了内存空间。
S103:根据重排序后的匹配器和重排序及分组后的所述特征规则表,对应用层数据的解析结果进行依赖当前域匹配器的匹配,并执行候选项选择算法计算本轮存活的候选项,并以本轮存活的候选项作为下轮匹配的输入,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则;
S1031:执行依赖当前域的匹配器的匹配算法;
对来自步骤1022中的解析结果,即漏洞特征规则中使用的域的数据执行依赖当前域的匹配器的匹配算法。
根据所作用的域的数据类型和匹配操作的不同,匹配器分为若干种类型,分别采用不同的匹配算法,以实现并行匹配作用在同一个域上的所有规则。匹配器的数据类型和匹配算法如表1所示。
以表3中的匹配器1(Method==)为例,“==”表示字符串精确匹配。设输入的Method域的值为“POST”,如表3所示,采用基于Trie的字符串匹配算法。在Trie中查找“POST”字符串,最终将报告规则3被匹配器1匹配。
在本实施例中,每一个匹配器的匹配算法可以并行匹配所有依赖该匹配器的所有规则。具体的说,匹配器可以单独使用每一种匹配算法,也可以组合使用多种算法。以表3中的匹配器4(VARS==RE)为例,其匹配的为HTTP报文中的URI的变量。如表3所示,每个变量由两部分组成,第一部分是变量名Name,第二部分是变量值Value,例如“file:/root/path1/../../path2/filename.html”。此处,变量的Name为“file”,Value为“/root/path1/../../path2/filename.html”。在执行匹配器4时,首先要对Name部分执行字符串精确匹配(==),如果不命中任何规则,则直接返回“空”;如果命中某些规则,则再对Value部分执行正则表达式匹配(RE),返回最终命中的规则。由于每一步所使用的算法都是并行匹配多条规则的算法,因此整个匹配器对依赖它的所有规则都是并行匹配的,能够达到很高的匹配速度。
当前域的数据先后到达,每到达一项数据时,对该数据与特征规则表进行匹配,记录其匹配后的中间结果。其中,当匹配成功时,中间结果为“真”;当匹配失败时,中间结果为“否”。
在当前域的数据全部到达之后,从所有中间结果中取出所有结果为“真”的规则作为本次匹配的候选项,进行候选项选择算法的运算;否则将空集作为本次匹配的候选项进行候选项选择算法运算,继续执行步骤1032;
S1032:执行候选项选择算法;
在步骤1031中,每一个匹配器匹配结束之后都会报告一批结果为“真”的规则,但是只有通过所有匹配器检测的规则才是最终被匹配的规则。
对于如何有效地合并从不同匹配器中找出的候选项的问题,可以采用位矢量来记录匹配的结果。但对于大规则集,比如1000条规则,则每个连接需要1000比特(125字节)。当同时存在100万个流时,仅候选项选择这一步骤就需要125MB的存储空间,加上其他步骤的存储开销,所需要的存储代价无法在高速NIDS/NIPS上满足。
为解决上述问题,本发明实施例的入侵检测与防护方法中提出了一种新的候选项选择算法。
具体的说,在本实施例的候选项选择算法中,定义候选项集合S=Φ,已检测的规则条数T=0,N为规则的总条数,定义匹配器Mi(1≤i≤K,K为ML中的匹配器的数目,ML为匹配器的序列)选出的候选项的集合为Ci,经过匹配器M1、M2到Mi筛选之后存活的候选项的集合为Si,这样有S1=C1
将Ci中的候选项分为两部分Ai和Bi。其中,将Ci中来自规则分组RB1、RB2到RBi-1的规则的集合与当前匹配器所匹配的候选项的集合的交集记为Ai,即将Ci中来自规则分组RBi的规则的集合与当前匹配器所匹配的候选项的集合的交集记为Bi,即Bi=Ci∩RBi。则Ai∩Bi=Φ,Ai+Bi=Ci。因为规则分组RBi中的所有规则都依赖匹配器Mi,因此Bi中的所有候选项都应该加入Si中。而规则分组RB1、RB2到RBi-1中的规则可能依赖匹配器Mi(BITMAP[RuleID][MatcherID]等于1),也可能不依赖匹配器Mi(此时在规则表中以“*”号表示,BITMAP[RuleID][MatcherID]等于0),因此需要考虑出现“*”号的情况。
在本实施例中,本方法采用表示支持“*”号的集合运算。具体的说,如果Si-1中的某条规则不依赖匹配器Mi,则把这条规则加入Si;如果Si-1中的某条规则依赖匹配器Mi且这条规则在Ai中,则把这条规则加入Si;否则这条规则被剔除。
由此得到计算第i步存活的候选项集合Si的方法:
Figure BSA00000248406100113
为了更好的理解本发明,下方示出了候选项选择算法的伪代码示意图。
Figure BSA00000248406100121
其中,Otimes()是计算运算的函数,即表示支持“*”号的集合运算。结合下方的伪代码,具体说明本运运算函数。
具体的说,定义集合NS,初始为空。对候选项集合S中每一个规则的规则号RuleID,采取如下运算:如果BITMAP[RuleID][MatcherID]等于1,即RuleID依赖于匹配器MatcherID时,则仅当RuleID属于A时才将RuleID加入NS;否则,如果BITMAP[RuleID][MatcherID]等于0,即规则RuleID不依赖匹配器MatcherID时,无论RuleID是否属于A,都将RuleID加入NS。从而保证当BITMAP[RuleID][MatcherID]等于0时,RuleID一定不属于A。
Figure BSA00000248406100123
将经过当前域对应的匹配器匹配得到的候选项,与上一轮存活的候选项进行集合运算,运算所选出的候选项得到本轮存活的候选项。如果所有的匹配器都已经执行完,则本轮存活的候选项即为最终匹配的规则,转到步骤104;否则转到步骤1033。
步骤1033:保存本轮存活的候选项,转到步骤102。
保存本轮存活的候选项,返回步骤102,获取应用层数据并进行增量式解析,然后采用匹配算法和候选项选择算法获取存活的候选项,直至对所有匹配器执行完毕,得到最终的本轮存活选项,即最终匹配规则。
下面结合图3详细说明候选项选择算法的执行流程。如图3所示,输入数据为图中最上方的数据(Method=POST;Filename=fp40reg.d11;VARs:“file:/root/path1/../../path2/filename.html”;Headers:“host:www.LongDomainNameWebsites.com.cn”),采用的表2所示的规则表。
首先,根据输入数据Method=POST,在匹配器1上匹配字符串“POST”,得到候选项为S1={3}。然后根据输入数据Filename=fp40reg.d11,在匹配器2上匹配字符串“fp40reg.d11”,命中了规则6。根据表3,规则6属于规则分组2,所以A2=Φ,B2={6}。根据表3,S1中的规则3依赖匹配器2,但是规则3并不在A2中,所以规则3不能加入S2,即
Figure BSA00000248406100131
从而接着我们在匹配器3上对字符串“fp40reg.d11”进行正则表达式匹配,结果为“空”,即A3=Φ,B3=Φ。根据表3,S2中的规则6不依赖匹配器3,因此规则6能加入S3,即
Figure BSA00000248406100133
于是
Figure BSA00000248406100134
然后在匹配器4上匹配变量“file:/root/path1/../../path2/filename.html”。首先匹配名称字符串“file”,然后对变量值“/root/path1/../../path2/filename.html”进行正则表达式匹配,最终命中规则4。因为规则4属于规则分组2,因此A4={4},B4=Φ。根据表3,S3中的规则6不依赖于匹配器4,因此规则6能加入S4,即
Figure BSA00000248406100135
于是
Figure BSA00000248406100136
Figure BSA00000248406100137
最后,在匹配器5上匹配Header“host:www.LongDomainNameWebsites.com.cn”。首先匹配名称字符串“host”,然后检查值的长度,最终得到规则6。因为规则6属于规则分组2,因此A5={6},B5=Φ。根据表3,S4中的规则6依赖于匹配器5,并且其属于A5,因此规则6能加入S5,即
Figure BSA00000248406100138
于是
Figure BSA00000248406100139
至此,所有匹配器都完成匹配,最终存活的候选项S5={6}就是最后匹配的规则。
在候选项选择算法中,由于先匹配区分度大的匹配器,因此每轮存活的候选项都比较少,只需要较少的内存空间就能把这些候选项保存到下一轮,大大节省了存储空间。
S104:报告最终匹配的规则,重置所有匹配器的状态,回收所有保存中间结果的存储空间,转到步骤102。
本发明的网络入侵检测与防护的方法通过对匹配器按照区分度进行重排序,按照重排后顺序对域和匹配器进行匹配。在实现规则的高速匹配的同时,减小了存储中间结果所需的存储空间。并且,本发明的增量式协议解析方式对应用层数据进行解析,其解析速度相对于HTTP协议和WINRPC协议提高了数倍以上。本发明的网络入侵检测与防护的方法及装置够同时达到高速度和高准确性,达到在高速网络上部署的要求。
本发明实施例的另一方面提出了一种网络入侵检测与防护装置。结合图4所示,该装置100包括规则集预处理模块110、增量式协议解析模块120和规则集并行匹配模块130。
其中,规则集预处理模块110,用于读入漏洞特征规则集并将其表格化以形成特征规则表,对特征规则表中的各个特征规则对应的匹配器进行重排序,并对特征规则表进行重排序和分组。
具体的说,首先,规则集预处理模块110读入以文本文件形式存储的漏洞特征规则集,并将上述规则集表格化。从存储介质中,如磁盘等,读入以文本形式存储的漏洞特征规则集。然后,将上述规则集以表格形式存储,即存储为规则表。其中,以各条规则作为规则表的各行,将规则中作用在输入数据的各个域的不同的匹配器(Matcher)作为规则表的各列。由于,每一个匹配器表示一个在对应域上的运算,以域的值作为运算输入,以规则和匹配器所确定的表格单元格的值作为运算参数。运算结果包括:“真”(True)或者“假”(False)。如果某条规则不依赖某个匹配器的匹配结果,则在该条规则和该匹配器所确定的表格单元格中以“*”号表示。
然后,规则集预处理模块110根据匹配器的区分度和域所需要的存储空间的大小对匹配器进行重排序。由于各个匹配器之间是“与”的逻辑运算,交换匹配器不会影响匹配结果。但是,先执行具有更大区分度的匹配器能够尽快排除不可能的规则,从而减少保存中间结果所需要的存储空间。因此,本实施例提供的装置根据匹配器的区分度和域所需要的存储空间的大小,从高到低对各个匹配器进行重排序。
为了说明匹配器重排序算法,下面首先对候选项选择算法进行简单介绍。
在本实施例的候选项选择算法中,定义匹配器Mi(1≤i≤K,K为ML中的匹配器的数目,ML为匹配器的序列)选出的候选项的集合为Ci,经过匹配器M1、M2到Mi筛选之后存活的候选项的集合为。将Ci中的候选项分为两部分Ai和Bi。其中,将Ci中来自规则分组RB1、RB2到RBi-1的候选项的集合记为Ai,即
Figure BSA00000248406100141
将Ci中来自规则分组RBi的候选项的集合记为Bi,即Bi=Ci ∩RBi
在候选项选择算法的每一步迭代计算
Figure BSA00000248406100142
中,
Figure BSA00000248406100143
减小了Si的大小,Bi增大了Si的大小。由于
Figure BSA00000248406100144
和Bi是互不重合的两个集合,其加法非常简便和快速。因此计算的代价主要来自而存储的代价主要取决于Si的大小。可以看出,候选项选择算法的计算和存储的代价都与Si的大小紧密相关,用|Si |表示Si的大小,|Si|的平均值avg(|Si|)越小,候选项选择算法平均的计算和存储的代价越小。设K为匹配器的数目,因为SK是最终匹配的规则的集合,只需要报告并写入日志文件,不需要在内存中继续保存,因此它没有计算和存储代价。只需要考虑S1到SK-1。由于
Figure BSA00000248406100151
因此当匹配器的编号j越小时,系数
Figure BSA00000248406100153
越大,|Bj|对avg(|Si|)的影响越大。因此,将贡献较小的|Bj|的匹配器放在前面执行,则可以减小avg(|Si|),从而减小候选项选择算法所需要的计算和存储代价。
但是,最初匹配器的顺序是按照协议中的域的出现先后顺序排列的。在这种自然排列的顺序中,一个域到达之后能够被相应的匹配器立即匹配,匹配之后域的值所占用的存储空间能够被立即释放,不需要额外的空间来保存。如果改变了匹配器的顺序,则需要额外的存储空间来保存已经到达而不能被立即匹配的域。由于每一个流所能使用的存储空间是有限的,需要在保存域的值和保存Si之间找到一个最优方案,使得系统的速度达到最高。
因此,本实施例中规则集预处理模块110采用下述方法对各个匹配器进行重排序。
具体的说,设BUF为每一个流所能使用的存储空间,BUF_MAX_LEN为BUF的最大容量。匹配器所支持的域的数据类型包括整数和字符串。由于每个整数需要4字节存储空间,字符串由于其长度可变,所需要的存储空间大小不确定。因此,在本实施例中只缓存整数域,不缓存字符串域。根据表1中所示整数匹配算法,对于给定的特征规则集和匹配器,可以预先计算出每一个整数匹配器Mj可能得到的|Bj|的最大值,记为EstMaxB(Mj)。其中,EstMaxB(Mj)为与各个匹配器相对应的属性值。设MaxB为预设的阈值,在EstMaxB(Mj)>MaxB时才对匹配器进行重排序。设ML为按照协议中的域的出现先后顺序排列的匹配器序列,OrderedML为重排序后的匹配器序列。
并且,规则集预处理模块110根据规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据规则所依赖的第一个匹配器的不同进行分组。同理,规则的顺序也不会影响规则能否匹配。因此本实施例提供的装置根据规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据规则所依赖的第一个匹配器的不同进行分组。
由于规则表中存在许多“*”号项,即该条规则不依赖该匹配器的匹配结果。为了节省存储空间,在存储规则表时不保存“*”号项,只保存非“*”号项,而用于一个位图BITMAP保存“*”号项的信息。
其中,BITMAP为一个n×m的位图矩阵,n为规则的条数,m为匹配器的个数。设RuleID为规则号,MatcherID为匹配器号,如果BITMAP[RuleID][MatcherID]等于1,则说明规则RuleID依赖于匹配器MatcherID;如果BITMAP[RuleID][MatcherID]等于0,则说明规则RuleID不依赖匹配器MatcherID。本实施例提供的装置中,位图BITMAP为只读信息。因此,所有的数据流可以共享同一个BITMAP,存储空间花费很小。
利用网络数据捕捉模块140从网络接口获得数据帧,经过数据链路层、IP层、TCP层处理模块150对上述数据进行数据链路层、网络层和传输层处理,得到应用层数据。将应用层数据送入增量式协议解析模块120,进行解析。
增量式协议解析模块120对上述应用层数据进行增量解析方式进行解析。具体的说,增量解析方式为在协议数据上移动指针的过程。当一段数据到达时,根据之前保存的协议状态上下文判断当前指针所指的数据属于协议的哪个域,并根据这个域的作用类型决定如何处理数据。
其中,协议域可以分为三类:类型0、类型1和类型2。
类型0为无用域,即在协议解析和规则匹配过程中没有用到的域,无用域它们可以被指针直接跳过。
类型1为在协议解析过程中用到的域,由于协议属于上下文有关语言,后续域的解析有可能依赖前驱域的值,因此类型1的值必须保存在协议状态上下文中供后续解析使用,直到它不再被需要时才能被释放并回收其所占用的内存。
类型2为漏洞特征规则中使用的域,即为增量式协议解析模块120的解析结果。
增量式协议解析模块120在实现对应用层数据的解析的同时,更新并保持协议状态的上下文。
本实施例中的增量解析方式相对传统的解析方式,具有以下特点:对于某个域而言,如果其完整地存在于当前的数据段中,将被完整地解析出来并一次处理完成;如果其被分割在先后到达的多个数据段中,那么解析出来一部分就会处理一部分。由此,每一部分已经处理过的数据就不再需要保存,节省了内存空间。
规则集并行匹配模块130根据规则集处理模块重排序后的匹配器和重排序及分组后的规则,对来自增量式协议解析模块120的应用层数据的解析结果执行依赖当前域的匹配器的匹配算法,并执行候选项选择算法以获取并保存本轮存活的候选项,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则,保存并报告最终匹配规则,重置匹配器的状态,清空保存中间结果的存储空间。
具体的说,规则集并行匹配模块130首先对来自增量式协议解析模块120的解析结果,即漏洞特征规则中使用的域的数据执行依赖当前域的匹配器的匹配算法。根据所作用的域的数据类型和匹配操作的不同,匹配器分为若干种类型,分别采用不同的匹配算法,以实现并行匹配作用在同一个域上的所有规则。在本实施例中,每一个匹配器的匹配算法可以并行匹配所有依赖该匹配器的所有规则。具体的说,匹配器可以单独使用每一种匹配算法,也可以组合使用多种算法。由于每一步所使用的算法都是并行匹配多条规则的算法,因此整个匹配器对依赖它的所有规则都是并行匹配的,能够达到很高的匹配速度。
当前域的数据先后到达,每到达一项数据时,对该数据与特征规则表进行匹配,记录其匹配后的中间结果。其中,当匹配成功时,中间结果为“真”;当匹配失败时,中间结果为“否”。
在当前域的数据全部到达之后,从所有中间结果中取出所有结果为“真”的规则作为本次匹配的候选项,进行候选项选择算法的运算;否则将空集作为本次匹配的候选项进行候选项选择算法运算。
规则集并行匹配模块130执行候选项选择算法,包括:每一个匹配器匹配结束之后都会报告一批结果为“真”的规则,但是只有通过所有匹配器检测的规则才是最终被匹配的规则。
对于如何有效地合并从不同匹配器中找出的候选项的问题,可以采用位矢量来记录匹配的结果。但对于大规则集,比如1000条规则,则每个连接需要1000比特(125字节)。当同时存在100万个流时,仅候选项选择这一步骤就需要125MB的存储空间,加上其他步骤的存储开销,所需要的存储代价无法在高速NIDS/NIPS上满足。
为解决上述问题,本发明实施例的入侵检测与防护装置中提出了一种新的候选项选择算法。
具体的说,在本实施例的候选项选择算法中,定义候选项集合S=Φ,已检测的规则条数T=0,N为规则的总条数,定义匹配器Mi(1≤i≤K,K为ML中的匹配器的数目,ML为匹配器的序列,)选出的候选项的集合为Ci,经过匹配器M1、M2到Mi筛选之后存活的候选项的集合为Si,这样有S1=C1
将Ci中的候选项分为两部分Ai和Bi。其中,将Ci中来自规则分组RB1、RB2到RBi-1的规则的集合与当前匹配器所匹配的候选项的集合的交集记为Ai,即
Figure BSA00000248406100171
将Ci中来自规则分组RBi的规则的集合与当前匹配器所匹配的候选项的集合的交集记为Bi,即Bi=Ci∩RBi。则Ai∩Bi=Φ,Ai+Bi=Ci。因为规则分组RBi中的所有规则都依赖匹配器Mi,因此Bi中的所有候选项都应该加入Si中。而规则分组RB1、RB2到RBi-1中的规则可能依赖匹配器Mi(BITMAP[RuleID][MatcherID]等于1),也可能不依赖匹配器Mi(此时在规则表中以“*”号表示,BITMAP[RuleID][MatcherID]等于0),因此需要考虑出现“*”号的情况。
在本实施例中,本实施例的装置采用
Figure BSA00000248406100172
表示支持“*”号的集合运算。具体的说,如果Si-1中的某条规则不依赖匹配器Mi,则把这条规则加入Si;如果Si-1中的某条规则依赖匹配器Mi且这条规则在Ai中,则把这条规则加入Si;否则这条规则被剔除。
由此得到计算第i步存活的候选项集合Si的方法:
Figure BSA00000248406100173
为了更好的理解本发明,其中,Otimes()是计算
Figure BSA00000248406100174
运算的函数,即表示支持“*”号的集合运算。
具体的说,定义集合NS,初始为空。对候选项集合S中每一个规则的规则号RuleID,采取如下运算:如果BITMAP[RuleID][MatcherID]等于1,即RuleID依赖于匹配器MatcherID时,则仅当RuleID属于A时才将RuleID加入NS;否则,如果BITMAP[RuleID][MatcherID]等于0,即规则RuleID不依赖匹配器MatcherID时,无论RuleID是否属于A,都将RuleID加入NS。从而保证当BITMAP[RuleID][MatcherID]等于0时,RuleID一定不属于A。
将经过当前域对应的匹配器匹配得到的候选项,与上一轮存活的候选项进行集合运算,运算所选出的候选项得到本轮存活的候选项。如果所有的匹配器都已经执行完,则本轮存活的候选项即为最终匹配的规则。进而报告最终匹配的规则,重置所有匹配器的状态,回收所有保存中间结果的存储空间。否则保存本轮存活的候选项。返回增量式协议解析模块120,获取应用层数据并进行增量式解析,然后采用匹配算法和候选项选择算法获取存活的候选项,直至对所有匹配器执行完毕,得到最终的本轮存活选项,即最终匹配规则。
在候选项选择算法中,由于先匹配区分度大的匹配器,因此每轮存活的候选项都比较少,只需要较少的内存空间就能把这些候选项保存到下一轮,大大节省了存储空间。
下面结合具体实施例评估本发明的入侵检测与防护方法与装置的协议解析速度和规则匹配速度以及在多核服务器上的速度。
分别采集自清华大学和美国西北大学的真实网络数据来评估本系统的协议解析和匹配的性能。其中清华大学数据取自清华大学的网关,美国西北大学数据取自西北大学计算机与电子工程系的网关。表4为网络数据(traces)的具体信息。
表4
  位置   清华大学   清华大学   美国西北大学   清华大学   美国西北大学
  协议类型   DNS   WINRPC   WINRPC   HTTP   HTTP
  开始日期   2007年11月   2007年11月   2006年10月  2008年5月   2006年10月
  时间长度   159小时   207天   765天   13小时   32小时
  应用层   1.33GB   598MB   1.33GB   15GB   3.96GB
  流数   17M   681K   2.24M   2.35M   71.9K
  平均流长   77B   879B   596B   6.56KB   55KB
实验环境:
首先用一台带有一个单核英特尔奔腾四至强3.8GHz CPU和4GB主存的计算机进行试验。在所有试验中,事先将traces存入主存中。对于WINRPC和HTTP协议,traces为经过TCP重组的TCP数据流,以检验本发明的应用层数据匹配核心的协议解析和规则匹配速度。
1)协议解析速度
首先检验本发明实施例的入侵检测与防护方法及装置的协议解析速度。
在本实施例中,分别对DNS、HTTP和WINRPC协议进行了实验。将本发明的增量式协议解析方式与BINPAC进行了比较。
首先测量原始BINPAC协议解析器的性能。为了进一步提高两者比较的公平性,优化了BINPAC的代码,进一步提高了BINPAC的速度,比较结果如表5所示。本发明的增量式协议解析方式与优化后的BINPAC相比,协议解析速度对于HTTP协议提高了3倍以上,对于WINRPC协议提高了11倍以上。
表5
Figure BSA00000248406100191
2)协议解析加规则匹配速度。
采用本发明实施例的增量式协议解析方式,并分别使用串行匹配算法和本发明的规则集并行匹配算法进行实验,测量上述两种方法的匹配速度。
由于DNS协议没有漏洞特征规则,仅对HTTP协议和WINRPC协议分别进行实验。对于HTTP协议,本实施例参考了Snort规则,生成了794条漏洞特征规则,其功能等同于973条Snort规则。对于WINRPC协议,本实施例生成了45条漏洞特征规则,其功能等同于3519条Snort规则。对于HTTP的974条规则,本实施例生成了791条多维度基于漏洞的特征,比较结果如表6所示。
所示。本发明实施例的并行匹配算法和采用串行匹配算法的方法相比,其匹配速度对于HTTP协议规则提高了7倍以上。但是对于WINRPC协议规则提高不明显,这是由于WINRPC协议只有45条规则,串行匹配和并行匹配差别不大。
表6
Figure BSA00000248406100192
3)多核服务器上的速度。
在一台带有两个处理器、每个处理器有四个核心并带有16GB内存的服务器上重复上述协议解析实验和协议解析加规则匹配实验。
首先运行一个单线程实验程序,它只使用一个处理器核心进行计算,检测它的速度。然后再同时运行八个相同的程序,检测相应的速度。单核结果和八核结果分别如表5和表6所示。从结果可以看到,本发明的入侵检测与防护的方法及装置在使用八核的速度比使用单核的速度提高了6到7倍。由此说明本发明具有良好的扩展性,要提高系统性能只需要简单地增加计算核心即可,非常方便。
图5进一步将本发明实施例的网络入侵检测与防护方法与现有的网络入侵检测与防护技术的速度和准确性进行了对比。
如图5中所示,现有的基于正则表达式匹配的IDS/IPS虽然能够达到较高的速度,但是准确性不足,并且存在理论上限,已经不能满足日益严峻的网络安全形势的需要。而现有的基于漏洞特征规则的入侵检测与防护方法虽然具有较高的准确性,但是由于其采用顺序匹配方式,速度不能达到在高速网络上部署的要求。
本发明实施例的入侵检测与防护的方法及装置,通过对匹配器按照区分度进行重排序,按照重排后顺序对域和匹配器进行匹配。在实现规则的高速匹配的同时,减小了存储中间结果所需的存储空间。并且,本发明的增量式协议解析方式对应用层数据进行解析,其解析速度相对于HTTP协议和WINRPC协议提高了数倍以上。本发明的网络入侵检测与防护的方法及装置够同时达到高速度和高准确性,达到在高速网络上部署的要求。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (15)

1.一种网络入侵检测与防护的方法,其特征在于,包括如下步骤:
S101:读入漏洞特征规则集并将其表格化以形成特征规则表,对所述特征规则表中的各个特征规则所对应的匹配器进行重排序,并对所述特征规则表进行重排序和分组;
S102:获取应用层数据,采用增量解析方式对所述应用层数据进行解析;
S103:根据所述重排序后的匹配器和重排序及分组后的所述特征规则表,对所述应用层数据的解析结果进行依赖当前域匹配器的匹配,并执行候选项选择算法计算本轮存活的候选项,并以所述本轮存活的候选项作为下轮匹配的输入,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则;和
S104:报告所述最终匹配规则,重置所述匹配器的状态,清空保存中间结果的存储空间,返回步骤S101。
2.如权利要求1所述的检测与防护的方法,其特征在于,所述特征规则表包括:规则号、表征所述规则中的域的运算的匹配器和所述规则和匹配器确定的运算参数。
3.如权利要求1所述的检测与防护的方法,其特征在于,所述对规则对应的匹配器进行重排序,包括:根据各个特征规则对应的匹配器的区分度从高到低对所述匹配器进行重排序;
所述对特征规则表进行重排序和分组,包括:根据所述各个规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据所述各个规则所依赖的第一个匹配器的不同进行分组。
4.如权利要求1所述的检测与防护的方法,其特征在于,所述采用增量解析方式对应用层数据进行解析,包括如下步骤:
在所述应用层数据上移动指针;
根据协议状态上下文判断当前指针所指数据所属的协议域,并根据所述协议域的类型处理所述应用层数据,更新并保存协议状态的上下文。
5.如权利要求4所述的检测与防护的方法,其特征在于,所述协议域包括:无用域、解析过程中使用的域和漏洞特征规则中使用的域。
6.如权利要求5所述的检测与防护的方法,其特征在于,所述对应用层数据的解析结果执行依赖当前域的匹配器的匹配算法,包括如下步骤:
将所述漏洞特征规则中使用的域中的数据通过所述依赖当前域的匹配器与所述特征规则表进行匹配,如果当前域的数据全部到达之后,
当匹配成功时,则取出匹配成功的规则作为本次匹配的候选项进行候选项选择算法运算;
当匹配不成功时,则将空集作为本次匹配的候选项进行候选项选择算法运算。
7.如权利要求6所述的检测与防护的方法,其特征在于,所述匹配器并行匹配依赖其的所有特征规则,包括:每个匹配器的匹配算法均为并行匹配所有依赖该匹配器的规则的算法。
8.如权利要求6所述的检测与防护的方法,其特征在于,对所述本次匹配的候选项采用候选项选择算法,包括:
将所述经过当前域对应的匹配器匹配得到的候选项,与上一轮存活的候选项通过候选项选择算法进行运算,运算所选出的候选项为本轮存活的候选项,直至所有匹配器均已执行匹配算法和候选项选择算法,则最终存活候选项为最终匹配的规则。
9.如权利要求8所述的检测与防护的方法,其特征在于,获取本轮存活的候选项,包括如下步骤:
设第i轮存活的候选项集合为Si,则:
Figure FSA00000248406000021
其中,Si-1为第i-1轮存活的候选项集合;
Ai为来自规则分组RB1、RB2至RBi-1的规则的集合与当前匹配器所匹配的候选项的集合的交集,即其中,Ci为匹配器Mi选出的候选项集合,Bi为来自规则分组RBi的规则的集合与当前匹配器所匹配的候选项的集合的交集,即Bi=Ci ∩RBi
其中,则Ai∩Bi=Φ,Ai+Bi=Ci
10.一种网络入侵检测与防护的装置,其特征在于,包括:
规则集预处理模块,用于读入漏洞特征规则集并将其表格化以形成特征规则表,对所述特征规则表中的各个特征规则对应的匹配器进行重排序,并对所述特征规则表进行重排序和分组;
增量式协议解析模块,用于获取应用层数据,采用增量解析方式对所述应用层数据进行解析;
规则集并行匹配模块,根据所述重排序后的匹配器和重排序及分组后的所述特征规则表,对所述应用层数据的解析结果进行依赖当前域的匹配器的匹配和候选项选择算法计算本轮存活的候选项,并以所述本轮存活的候选项作为下轮匹配的输入,直至所有匹配器完成匹配,则最终存活的候选项为最终匹配规则,保存并报告最终匹配规则,重置所述匹配器的状态,清空保存中间结果的存储空间。
11.如权利要求10所述检测与防护的装置,其特征在于,所述规则集预处理模块对规则对应的匹配器进行重排序,包括:
根据各个特征规则对应的匹配器的区分度从高到低对所述匹配器进行重排序;
所述规则集预处理模块对特征规则表进行重排序和分组,包括:
根据所述各个规则所依赖的匹配器出现的先后顺序对规则进行重排序,并根据所述各个规则所依赖的第一个匹配器的不同进行分组。
12.如权利要求10所述的检测与防护的装置,其特征在于,所述增量式协议解析模块采用增量解析方式对应用层数据进行解析,包括:
所述增量式协议解析模块在所述应用层数据上移动指针;
所述增量式协议解析模块根据协议状态上下文判断当前指针所指数据所属的协议域,并根据所述协议域的类型处理所述应用层数据,更新并保存协议状态的上下文。
13.如权利要求10所述的检测与防护的装置,其特征在于,所述规则集并行匹配模块对应用层数据的解析结果执行依赖当前域的匹配器的匹配算法,包括:
将所述漏洞特征规则中使用的域中数据通过所述依赖当前域的匹配器与所述特征规则表进行匹配,如果当前域的数据全部到达之后,
当匹配成功时,则取出匹配成功的规则作为本次匹配的候选项进行候选项选择算法运算;
当匹配不成功时,则将空集作为本次匹配的候选项进行候选项选择算法运算。
14.如权利要求13所述的检测与防护的装置,其特征在于,所述规则集并行匹配模块对所述本次匹配的候选项采用候选项选择算法,包括:
将所述本次匹配得到的候选项与上一轮存活的候选项通过依赖当前域的匹配器进行匹配,匹配成功的候选项为本轮存活的候选项,直至所有匹配器均已执行,则最终存活候选项为最终匹配规则。
15.如权利要求14所述的检测与防护的装置,其特征在于,所述规则集并行匹配模块获取本轮存活的候选项,包括:
设第i轮存活的候选项集合为Si,则:
Figure FSA00000248406000031
其中,Si-1为第i-1轮存活的候选项集合;
Ai为来自规则分组RB1、RB2至RBi-1的规则的集合与当前匹配器所匹配的候选项的集合的交集,即其中,Ci为匹配器Mi选出的候选项集合,Bi为来自规则分组RBi的规则的集合与当前匹配器所匹配的候选项的集合的交集,即Bi=Ci ∩RBi
其中,则Ai∩Bi=Φ,Ai+Bi=Ci
CN 201010265793 2010-08-27 2010-08-27 一种网络入侵检测与防护的方法及装置 Expired - Fee Related CN101938474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010265793 CN101938474B (zh) 2010-08-27 2010-08-27 一种网络入侵检测与防护的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010265793 CN101938474B (zh) 2010-08-27 2010-08-27 一种网络入侵检测与防护的方法及装置

Publications (2)

Publication Number Publication Date
CN101938474A true CN101938474A (zh) 2011-01-05
CN101938474B CN101938474B (zh) 2013-07-31

Family

ID=43391604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010265793 Expired - Fee Related CN101938474B (zh) 2010-08-27 2010-08-27 一种网络入侵检测与防护的方法及装置

Country Status (1)

Country Link
CN (1) CN101938474B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667776A (zh) * 2017-03-31 2018-10-16 中兴通讯股份有限公司 一种网络业务诊断方法
CN111669746A (zh) * 2020-06-08 2020-09-15 厦门理工学院 一种用于物联网信息安全的防护系统
CN113923002A (zh) * 2021-09-29 2022-01-11 山石网科通信技术股份有限公司 计算机网络入侵防御方法、装置、存储介质及处理器
CN114021147A (zh) * 2021-11-17 2022-02-08 山东云天安全技术有限公司 基于bitmap预测工控网漏洞的系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106453438B (zh) * 2016-12-23 2019-12-10 北京奇虎科技有限公司 一种网络攻击的识别方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581089A (zh) * 2003-08-04 2005-02-16 联想(北京)有限公司 一种入侵检测方法
CN1741472A (zh) * 2005-09-05 2006-03-01 北京启明星辰信息技术有限公司 网络入侵事件风险评估方法及系统
US20100088767A1 (en) * 2008-10-08 2010-04-08 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1581089A (zh) * 2003-08-04 2005-02-16 联想(北京)有限公司 一种入侵检测方法
CN1741472A (zh) * 2005-09-05 2006-03-01 北京启明星辰信息技术有限公司 网络入侵事件风险评估方法及系统
US20100088767A1 (en) * 2008-10-08 2010-04-08 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667776A (zh) * 2017-03-31 2018-10-16 中兴通讯股份有限公司 一种网络业务诊断方法
CN111669746A (zh) * 2020-06-08 2020-09-15 厦门理工学院 一种用于物联网信息安全的防护系统
CN111669746B (zh) * 2020-06-08 2023-04-21 厦门理工学院 一种用于物联网信息安全的防护系统
CN113923002A (zh) * 2021-09-29 2022-01-11 山石网科通信技术股份有限公司 计算机网络入侵防御方法、装置、存储介质及处理器
CN113923002B (zh) * 2021-09-29 2024-04-19 山石网科通信技术股份有限公司 计算机网络入侵防御方法、装置、存储介质及处理器
CN114021147A (zh) * 2021-11-17 2022-02-08 山东云天安全技术有限公司 基于bitmap预测工控网漏洞的系统

Also Published As

Publication number Publication date
CN101938474B (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
US11899786B2 (en) Detecting security-violation-associated event data
EP2916256B1 (en) Systems and methods for behavior-based automated malware analysis and classification
US9516051B1 (en) Detecting web exploit kits by tree-based structural similarity search
JP4598127B2 (ja) ステートフルなパケット内容マッチング機構
US9680866B2 (en) System and method for analyzing web content
US9171153B2 (en) Bloom filter with memory element
Liu et al. A fast string-matching algorithm for network processor-based intrusion detection system
CN103733590B (zh) 用于正则表达式的编译器
US8397285B2 (en) Multi-pattern packet content inspection mechanisms employing tagged values
US9454658B2 (en) Malware detection using feature analysis
US8156247B2 (en) Systems and methods for reducing network performance degradation
CN103634306A (zh) 网络数据的安全检测方法和安全检测服务器
CN114679329B (zh) 用于基于赝象对恶意软件自动分组的系统
CN101938474B (zh) 一种网络入侵检测与防护的方法及装置
US20070152854A1 (en) Forgery detection using entropy modeling
AU2021259228A1 (en) Machine learning systems and methods for reducing the false positive malware detection rate
CN109660517A (zh) 异常行为检测方法、装置及设备
CN117792804B (zh) 基于位图和预过滤的网络威胁筛选方法及系统
KR20240019740A (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130731

Termination date: 20160827

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