CN103841096A - 自动调整匹配算法的入侵检测方法 - Google Patents
自动调整匹配算法的入侵检测方法 Download PDFInfo
- Publication number
- CN103841096A CN103841096A CN201310398941.0A CN201310398941A CN103841096A CN 103841096 A CN103841096 A CN 103841096A CN 201310398941 A CN201310398941 A CN 201310398941A CN 103841096 A CN103841096 A CN 103841096A
- Authority
- CN
- China
- Prior art keywords
- packet
- rule
- data
- matching
- algorithm
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种自动调整匹配算法的入侵检测方法,包括以下步骤:A)捕获网络中的数据包;B)对所捕获的数据包进行全协议栈解析;C)首先根据预先设定的模式特征和协议变量特征选择最合适的多模式匹配算法,然后加载模式匹配算法库,并在检测过程中根据当前网络状态来动态调整匹配算法。本发明通过对数据包进行全协议栈解析,大大提高了解码速度,满足实时解码要求,并减少了对服务器内存的需求;此外,本发明通过数据包重组,并提高匹配速度与匹配效率,通过上述高级隐遁技术实现了对高级逃逸入侵的有效防护。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种自动调整匹配算法的入侵检测方法。
背景技术
网络入侵检测作为目前最主要的主动网络安全措施之一,它通过对计算机和网络资源上的恶意网络连接进行识别和响应,有效地补充和完善了诸如访问控制、数据加密、防火墙、病毒防范等安全措施,提高了信息安全基础结构的完整性,已成为信息系统安全解决方案中不可或缺的环节。
高级隐遁技术(AET,Advanced Evasion Technique)、隐遁攻击的叠加网络力量(cyber-force)渗透到各国政治斗争的计算机攻击的案例略见不鲜,最近发生的韩国银行计算机网络故障、美国的纽约时报和华尔街日报受到的攻击足以说明这种情况。显然黑客的攻击手段和能力已经发生了质的变化,根据Garter的报告,从2011年来,网络防御的能力已经远远滞后于攻击的手段。而高级隐遁技术(AET)毫无疑问对IDS/IPS厂商来说是尤为头疼的技术难题,从NSS Lab公布的最新的IPS测试标准《NSS_Labs_ips group testmethodology v6.2》中单独增加了AET的测试(4.15章节部分)可以看出对AET的重视程度。
防火墙和IPS是网络中核心的安全保障设备,防火墙通常根据数据流端口、地址、协议等进行数据的过滤,而IPS则进一步进行数据包的深度检测。为了真正的理解和检测网络数据包,IPS则需要深度理解数据流所采用的协议。表面上如果彻底分析透数据流的协议格式就足够了,但事实证明并非如此。早在1998年,来自Secure Network公司的Tim Newsham和Thomas Ptacek发表了有关如何穿透IDS/IPS的技术文章《插入、隐遁和拒绝服务攻击:避开网络入侵检测》。近两年,国内相关的研究,总参某研究所的徐金伟研究员曾就AET发表过多篇文章。常用的AET手段有:字符串混淆、加密和隧道技术、碎片技术和协议的违规四种。
针对高级隐遁攻击应当考虑新的拦截模式,单纯的特征库匹配模式不再能够完全达到拦截目的,因此,本发明将提出一种全新的自动调整匹配算法的入侵检测方法,该方法将大大提高网络的安全系数。
发明内容
为了克服现有技术的缺陷,本发明的目的在于提出一种能够提高网络安全系数的自动调整匹配算法的入侵检测方法。
为实现上述目的,本发明所述的自动调整匹配算法的入侵检测方法,其包含如下具体步骤:
A)捕获网络中的数据包;
B)对所捕获的数据包进行全协议栈解析;
C)首先根据预先设定的模式特征和协议变量特征选择最合适的多模式匹配算法,然后加载模式匹配算法库,并在检测过程中根据当前网络状态来动态调整匹配算法。
进一步地,所述步骤B的具体方法包括:
B1)协议解析器进行初始化,并加载编译后的正则规则表达集;
B2)读取数据包,并对其进行分组处理;
B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类;
B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信息。
进一步地,所述对数据包进行分组的具体步骤包括:
首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。
进一步地,所述的输出端口分组的配置遵循以下原则:
1)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中;
2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例;
3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。
进一步地,所述的数据分组规则的设置包括两种方式:
一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下:
另一种是基于特殊字段信息的规则设置方式,该规则表的格式如下:
规则号 | 字段偏移量 | 字段长度 | 匹配内容 | 数据分组行为 |
其中:
规则号:是每个规则的唯一标识序号;
源、目的IP地址:数据包传输的源端和目的端的IP地址值;
源、目的IP掩码:数据包传输的源端和目的端IP字段的子网掩码;
源、目的端口:数据包传输的源端和目的端的端口号;
字段偏移量:从IP数据包内容开始计算的需要匹配的特殊字段的偏移量;
字段长度:需要匹配的特殊字段的长度;
匹配内容:特殊字段的匹配值,这些特殊字段包括如URL地址、Emai1信件中的收信人和发信人地址字段;
数据分组行为:“0”表示将该数据包丢弃,“1”表示将该数据包转发到组1,“2”表示将该数据包转发到组2,……“N”表示将该数据报转发到组N,“-1”表示暂停使用该条规则,如果数据分组规则表中除数据分组行为字段外的所有字段都为0,则表示该条规则适用于所有数据包。
进一步地,由于动态设定的规则具有时效性,因此导入到内存的基于数据包的IP地址和端口信息的数据分组规则表增加″动态/静态″和″超时计数″两个字段,格式为:
进一步地,所述步骤B3中,将协议类型相同的数据包进行归类的具体步骤包括:
1)在接收到新数据包时建立新的数据表;
2)当接收到数据报文时,先在所述数据表中查找与其对应的包号,若能找到,再判断所述数据报文是否为最后一个包,若不是,则将所述数据报文归入对应的数据包中;否则,删除该数据包;
3)当所述数据包出现乱序或重发且所述数据包没有被正常删除时,启动定时器在定时时间内将所述数据包删除。
进一步地,所述步骤C包括统计分析模块、匹配模块和评估切换模块;其中,所述统计分析模块用于对模式匹配输入规则树进行统计分析,并根据分析结果选择最优的多模式匹配算法;所述匹配模块用于通过统一调用接口为外部调用模块提供快速多模式匹配服务,并将模式匹配结果描述事件反馈给评估切换模块;所述评估切换模块用于根据匹配模块反馈的事件信息来获知当前网络状态,并据此做出调整当前多模式匹配算法的决定。
进一步地,所述统计分析模块,根据事件配置文件建立模式匹配规则树,规则树中每一树节点代表某一类型模式匹配子任务包括对协议变量或报文数据载荷进行模式匹配;统计分析规则树中每一节点的协议变量特征和相关模式特征;考察算法库中每一备选多模式匹配算法特征,选择一种最适合该规则树节点的多模式匹配算法;
所述匹配模块,利用当前选择的匹配算法为外部调用模块提供快速多模式匹配服务,即对外部模块输入的网络报文或协议变量值执行多关键词搜索操作,并返回最后模式匹配结果;同时有选择地根据本次模式匹配的输入和结果生成相应的模式匹配反馈事件,供评估切换模块统计分析处理。
所述评估切换模块,根据匹配模块反馈的事件信息,来获知当前网络状态;在当前网络状态下对当前选择的多模式匹配算法进行评估,如果评估结果不满意,则考察算法库中各基本模式匹配算法特征,选出一种最适合当前网络状态的多模式匹配算法,指导算法调度引擎完成对当前多模式匹配算法的动态切换。
与现有技术相比,本发明的有益效果在于:
本发明通过对数据包进行全协议栈解析,具体方法是通过协议解析和正则表达式规则库相接合,并采用多线程技术对复杂的用户业务数据进行硬件解码,大大提高了解码速度,满足实时解码要求,并减少了对服务器内存的需求,降低了成本;本发明还通过DFA状态转移表实现高速报文匹配,能够对存在的威胁进行准确检测和防御,准确识别并清除高级逃逸技术,这样将大大提高网络的安全系数。
此外,本发明充分利用各种多模式匹配算法的优势、根据当前应用场景灵活选择合适的匹配算法,在匹配速度和存储空间上达到最优。
附图说明
图1是本发明中协议解析系统的结构示意图;
图2为自适应多模式匹配方法技术构架;
图3为静态自适应模块中静态特征统计流程图;
图4为静态自适应模块中静态算法选择决策流程图;
图5为动态自适应模块中动态特征统计流程图;
图6为动态自适应模块中动态算法选择决策流程图。
具体实施方式
下面结合附图对本发明的方法做进一步详细的说明。
本发明所述的自动调整匹配算法的入侵检测方法,其包含如下具体步骤:
第一步,捕获网络中的数据包;
第二步,对所捕获的数据包进行全协议栈解析;
第三步,首先根据预先设定的模式特征和协议变量特征选择最合适的多模式匹配算法,然后加载模式匹配算法库,并在检测过程中根据当前网络状态来动态调整匹配算法。
图1是本例中基于流的协议解析系统的结构示意图,该系统包括路由器和协议解析设备。其中,路由器用于在通信网络中转发业务数据,并将所转发的数据复制一份发给协议解析器(即DPI协议解析设备);协议解析器并联于所述路由器上,用于接收路由器发送的数据,对接收的数据进行分组并对分组后的数据进行协议类型判断,根据协议类型对数据进行归类,再对每一个协议中数据进行流管理,以确保同一个数据流发送给同一个处理模块中进行解码,最后通过处理模块对数据进行协议解析。这种并联接入的方式由于是独立进行数据协议解析,所以对移动系统进行数据通信的影响较小。
第二步的具体实现过程如下:
步骤1:协议解析器进行初始化,并加载编译后的正则表达式规则集。其中,协议解析器中的DPI芯片经过初始化后才能正常工作,该步骤在协议解析器进行初始化之前还可包括:对正则表达式规则集进行编译,将其转换成DPI芯片能够识别格式的数据,这样协议解析器才能对数据包进行DPI协议解码;
步骤2:读取数据包,并对其进行分组处理。本步骤还包括所述路由器在对数据包进行分组时并将所分发的数据包进行存储;所述分组处理的具体步骤为:
(1)设置输出端口分组配置规则:假设高速网过滤分流接入平台具有8个输出端口,端口标识号分别为:0、1、2、3、4、5、6、7,这些端口分别对应后端的各个安全监测设备。根据每个安全监测设备的业务类型处理需求和各自的数据处理能力,将各个端口划分成四个分组:
分组号 | 输出端口标识号 |
1 | 3;2;0;2 |
2 | 1;4 |
3 | 5;7;5;6;7 |
4 | 0;4 |
划分到同一个分组中的端口说明它们将处理相同类型的数据包,其中端口2在分组1中出现两次,说明端口2对应的后端处理设备将接收并处理该输出端口中二四分之一的数据量;端口4被划分到2和4两个分组当中,说明端口4将负责转发来自这两个分组的数据。
(2)设置过滤分组规则:过滤分流规则的设置是为了实现粗粒度的数据过滤分流,将对后端处理无用的数据滤除掉,将后端每个处理设备所需的数据划分到指定的端口分组中。数据分组规则设置的示例如下所示:
基于数据包的IP地址和端口信息的数据分组规则表:
基于特殊字段信息的数据分组规则表:
规则号 | 字段偏移量 | 字段长度 | 匹配内容 | 过滤分流行为 |
301 | 42 | 15 | xy@yahoo.com.cn | 3 |
根据(3)中假定的情况对数据包b的处理过程:将数据包b中的地址信息与基于数据包的IP地址和端口信息的数据分组规则表中设置的规则逐一进行匹配,匹配结果发现没有与任何一条规则匹配成功,再将该数据包中字段偏移量为0X42字节之后的15个字节的值“xyyahoo.com.cn”提取出来与基于特殊字段信息的过滤分流规则表中的规则进行逐一匹配,匹配结果满足规则301。按照规则301中设置的过滤分流行为,将数据包b划分到分组3,并提取出该数据包中的IP地址信息,连同规则301中设置的过滤分流行为,生成一条新的动态数据过滤分组规则加入到基于数据包的IP地址和端口信息的数据分组规则表中,即:
(5)对划分到每个分组的数据,按照本发明中提出的分流算法进行分组处理。数据包a的源IP地址61.125.3.8和目的IP地址10.10.25.30高低位按位异或,得到的结果值再与源端口号90和目的端口号1290的异或结果进行按位异或,最终得到的结果与分组4中的端口总数取模,即:
{(0X3D7D_0X0A0A)_(0X0308_0X191E)_(0X005A_0X050A)}mod2={0X3777_0X1A16_0X0550}mod2=1
运算结果为1,表明该数据包a应从分组4中的第2个端口输出,即端口4输出。
数据包b的源IP地址10.10.19.131和目的IP地址216.136.173.18高低字节按位异或,得到的结果值再与源端口号1664和目的端口号25的异或结果进行按位异或,最终得到的结果与分组3中的端口总数取模,即:
{(0X0A0A_0XD888)_(0X1383_0XAD12)_(0X0680_0X0019)}mod5={0XD282_0XBE91_0X0699}=4
运算结果为4,表明该数据包b应从分组3中的第5个端口输出,即端口7输出。
(6)假定收到数据包a、b所属连接的后续包,由于所属同一连接数据包的IP地址和端口相同,因此经上述运算过程得到的结果也相同,所以保证了相同连接的所有后续包仍然从相同的端口输出。
(7)收到数据包b所属连接的结束包,则清除动态设置的规则7。
本发明提出的不依赖连接表的高速过滤分流方法如果采用CAM技术实现,对于12路2.5G POS接入,具备30G的数据接入能力,满足高速骨干网络的线速数据接入需求。
步骤3:对经过分组的数据的协议类型进行识别,获取所述数据的协议类型;判断所述数据是否需要进行解码,若不需要,则直接丢弃所述数据,否则进行步骤4。其中,判断的方法是根据实际要求判断某种协议类型的数据是否需要进行解码;
步骤4:将同一数据流分发归类到相同协议解析器中的检测处理模块进行处理,并对对协议类型识别后的数据进行流管理;所述流管理包括对数据流的建立、维护、删除、老化进行管理;
将同一数据流分发到相同协议解析器中的检测处理模块进行处理的具体步骤包括:
1)在接收到新数据包时建立新的数据表;
2)当接收到数据报文时,先在所述数据表中查找与其对应的包号,若能找到,再判断所述数据报文是否为最后一个包,若不是,则将所述数据报文归入对应的数据包中;否则,删除该数据包;
3)当所述数据包出现乱序或重发且所述数据包没有被正常删除时,启动定时器在定时时间内将所述数据包删除。
步骤5:所述DPI协议解析器根据正则表达式规则库对经过流管理模块的数据进行DPI协议解析。所述PPI协议解析器获取了所述数据的协议类型后,根据正则表达式规则库查找到与所述数据协议类型对应的协议解码规则;再对包含所述数据的数据包进行扫描,根据所述协议解码规则从所述数据包中提取所述数据的输出信息。
需要说明的是,所述DPI协议解析器支持跨包扫描。对于跨包数据报文,则在下一个数据报文中输出结果,即若所述输出信息中包含跨包字段,则需要在前一包和当前包中取出对应字段结果,即可获得所述跨包的输出信息。另外,由于本实施例中采用的是正则表达式规则库匹配解码的方法,所述输出信息是匹配位置相对所述数据包的偏移量,所以步骤5还包括根据所述输出信息从所述数据包提取解码信息。
相比于现有技术,本发明通过DPI协议解析和正则表达式规则库相接合,并采用多线程技术对复杂的用户业务数据进行硬件解码。由于在相同条件下,DPI硬件解码速度是软件解码速度的10倍以上,所以本发明大大提高了解码速度,满足实时解码要求,而且由于DPI硬件支持跨包扫描,只需保存一个数据流中的前一包及当前包的信息,所以这就大大减少了对服务器内存的需求,降低了成本。
第三步的具体实现方法如下:
本发明所述的自适应多模式匹配系统中的多模式匹配算法库包含以下5个基本多模式匹配算法:
●标准ACBM算法:基于有限状态自动机模式建立模式匹配AC树,根据报文当前字符进行状态转移,并且结合BM算法,调整匹配窗口前进的字符个数,实现窗口快速滑动。此算法优点在于匹配速度与模式特征和网络当前状况的相关性小;缺点在于AC树状态机所需内存空间大。
●ACBM改进算法1:标准ACBM算法每一个状态下保存256个后续状态,但是对于匹配模式(关键词)均为ASCII码或者中文字符的情况,则只需128个可能状态。此算法将每个状态保存的下一状态数组大小调整为128,以适应ASCII码或者中文字符模式(关键词)的搜索。
●ACBM改进算法2:以模式集合中出现的字符为节点来存储AC树,而不像传统ACBM算法中以状态为节点来存储AC树。此算法适用于模式集合中的字符数量远远小于256的情形,可有效节省AC树存储空间。
●标准WM算法:通过快速HASH表来确定当前文本子串是否出现在某一模式中,若不出现,则利用宽字符BM跳跃思想来快速移动当前文本匹配窗口;若出现,则进行精确匹配。此算法优势在于所耗存储空间小,在正常网络状态下,搜索速度快;缺点在于搜索速度与模式特征和网络当前状况的相关性大;
●WM改进算法:专门针对模式最小长度为1字节时的算法,将长度为1字节的模式单独匹配,剩余模式在用WM算法匹配。
这些基本多模式匹配算法都在算法统一调度模块里实现了统一的调用接口,包括算法初始化、算法匹配调用和算法卸载处理。
匹配算法库模块,库中各基本模式匹配算法对象都必须实现统一调用接口,包括算法初始化,模式匹配和算法卸载处理接口;库中各基本多模式匹配算法可以根据需要添加新算法或者删除指定算法。
本发明所述自适应多模式匹配方法中的静态自适应阶段,根据事件配置文件建立模式匹配规则树,规则树中每一树节点代表某一类型模式匹配子任务包括对协议变量或报文数据载荷进行模式匹配;统计分析规则树中每一节点的协议变量特征和相关模式特征;考察算法库中每一备选多模式匹配算法特征,选择一种最适合该规则树节点的多模式匹配算法。
由以下四个步骤来实施:
首先,通过配置文件预先设置参数临界值。允许设置的临界值包括:
●MAXNUM_SIMI:表示模式集合中前缀相同的模式数量允许的最大值。主要用于标准WM算法,若前缀相同的模式数量大于MAXNUM_SIMI,WM算法中HASH子链搜索效率较低。
●NUM_OF_SET_AC:表示模式集合中字符的数量,主要用于ACBM改进算法2,当模式字符集中字符的个数(nChar)小于这个值时,使用ACBM改进算法2节省存储空间显著。
●WM_LEN:主要用于WM算法的选择,当模式的最小长度等于1,且次小长度大于等于WM_LEN时,使用WM1算法效率高。
●MAXLEN:表示模式的最大长度。
●MAXCOUNT:表示模式的数量。
●LIMIT_OF_MEM:表示匹配算法对内存的限制。
●LIMIT_OF_CPU:表示匹配算法对CPU的限制。
其次,为选择各种多模式匹配算法配置所需的模式特征统计和分析参数,选择上面所列五种算法时,可以配置以下7个参数,这7个变量对算法的影响说明如下:
●minlen:模式的最小长度。
●sub_minlen:模式的次小长度。
●nSimil:拥有相同一字节前缀的模式个数。
●nSimi2:拥有相同两字节前缀的模式个数。
●maxlen:模式的最大长度。
●count:模式的总数量。
●nChar:模式字符集中字符的个数。
目前供选择的多模式匹配算法有:标准ACBM算法、ACBM改进算法1、ACBM改进算法2、标准WM算法和WM改进算法。这五种算法在静态自适应阶段时适用范围如下:
●标准ACBM算法:当模式集合元素数量大于128,nSimi2大于2,并且ACBM存储空间允许时。
●ACBM改进算法1:当模式集合元素数量处于128和NUM_OF_SET_AC之间,nSimi2大于MAXNUM_SIMI,并且存储空间允许时。
●ACBM改进算法2:当模式集合元素数量小于NUM_OF_SET_AC,nSimi2大于20,并且存储空间允许时。
●标准WM算法:模式最小长度至少大于2字节,且nSimi2小于MAXNUM_SIMI;或者模式最小长度为1,nSimi1小于MAXNUM_SIMI。
●WM改进算法:模式最小长度为1,次最小长度大于WM_LEN,且nSimi2小于MAXNUM_SIMI。
再次,根据附图3所示的静态特征统计分析过程计算决策依据参数flag。因为决策的条件多,所以引用一个决策依据参数flag,利用其中标志位来决定所调用的算法。flag为一个无符号16bit短整型:unsigned short flag,flag标志位默认值为0,从高比特位至低比特位,bit15~bit10:记录匹配算法的动态特征,用于动态自适应阶段;bit7~bit0:记录模式静态特征。flag标志位具体说明如下。
bit15~bit12:保留;
bit11=1:代表该协议变量下的匹配算法输入报文“坏字符”出现概率大;
bit10=1:代表该协议变量下关键词匹配成功的概率大,即对应事件频繁出现;
bit9=1:所需存储空间大于允许值;
bit8=1:所需CPU值大于允许值;
bit7和bit6:minlen=1时,bit7=1;sub_minlen>3,bit6=1;则(bit7,bit6)有以下组合(0,0)含义minlen>1且sub_minlen<4;(0,1)含义minlen>3;(1,0)含义minlen=1且sub_minlen<4;(1,1)含义minlen=1且sub_minlen>3;
bit5=1:所有模式中,首字节相同的模式数量大于MAXNUM_SIMI;
bit4=1:除了长度为1的模式外,前两个字节相同的模式数量大于MAXNUM_SIMI;
bit3=1:协议变量类型为ASCII码或者中文;bit3=0:协议变量类型为普通二进制字符;
bit2=1:nChar<NUM_OF_SET_AC;
bit1=1:maxlen>MAXLEN;
bit0=1:count>MAXCOUNT。
图3中根据此原理详细说明决策参数的统计方法。此模块的输入包括内存、CPU情况,以及统计的参数。然后模块根据这些输入值,对决策依据参数flag进行修改。最后输出统计后的决策依据参数flag。
最后,基于决策依据参数flag执行静态多模式匹配算法选择决策过程(见附图4)。图4的输入为决策依据参数和备选算法。在进行算法选择时,根据flag的标志位依次进行选择,步骤如下:
第一步,判断flag的第7~第4比特,如果(bit7==0&&bit4==0),表示模式最小长度大于1,且拥有共同两字节前缀的模式数量少,此时适合用WM算法;
第二步,如果(bit7,bit6,bit5,bit4)==(1,0,0,0),表示模式最小长度为1,次小长度小于WM_LEN,且拥有共同两字节前缀的模式数量少,此时选择WM算法;
第三步,如果(bit7,bit6,bit5,bit4)==(1,1,1,0),表示模式最小长度为1,次小长度大于WM_LEN,且拥有共同两字节前缀的模式数量少,此时适合用WM改进算法。
第四步,判断bit2,如果bit2==1,表明模式字符集中字符数量少,适合用ACBM改进算法2,大大减少存储空间,转到第七步;
第五步,判断bit3,如果bit3==1,表明模式字符集中字符数量处于128和NUM_OF_SET_AC之间,选择ACBM改进算法1,转到第七步;
第六步,选择默认算法,如ACBM算法(如果选择ACBM算法,转到第七步)。此时根据模式特点判断不适合用WM算法和对存储空间减少的ACBM改进算法,故利用ACBM算法完成搜索。
第七步,当选择使用ACBM算法、ACBM改进算法1和2时,需要判断在实际模式处理时所占用的存储空间是否超过可接受的值,若超过,则选用WM算法。
输出所选择算法,调用算法加载模块,算法加载模块将加载匹配算法的初始化函数入口、匹配函数入口和卸载函数入口,并且调用匹配算法的初始化函数。
本发明所述的自适应多模式匹配方法中动态自适应阶段,根据统计和分析模式匹配阶段产生的模式匹配反馈事件信息,来获知当前网络状态;在当前网络状态下对当前选择的多模式匹配算法进行评估,如果评估结果不满意,则考察算法库中各基本模式匹配算法特征,选出一种最适合当前网络状态的多模式匹配算法,指导算法调度引擎完成对当前多模式匹配算法的动态切换。
动态自适应阶段由四个步骤来实施:
1)首先,通过配置文件预先设置算法决策参数,这些参数包括:
●HOLD_TIME:锁定最长时间,对协议变量算法调整,必须是在该协议变量不处于锁定时间内;
●LIMIT_EVENT_DURATION和LIMIT_EVENTN_UM:事件控制参数。参数含义为某事件出现概率高,指同一时间在
LIMIT_EVENT_DURATION时间内出现的次数大于LIMIT_EVENT_NUM;
●LIMIT_PACKT_DURATION和LIMIT_PACKT_NUM:报文特征控制参数。参数含义为某一协议变量匹配时的输入报文(text),在LIMIT_PACKT_DURATION时间内,字符连续出现,这样的text个数大于LIMIT_PACKT_NUM;
●LIMIT_FLUX_DURATION和LIMIT_FLUX_NUM:流量控制参数。参数含义为在LIMIT_FLUX_DURATION时间内,报文流量大于LIMIT_FLUX_NUM;
其次,依据表1考虑网络状态对各种基本多模式匹配算法的影响。
表1网络状况对模式匹配算法的影响
再次,对模式匹配过程中产生的匹配描述事件实现动态特征统计分析以获知当前网络状况,具体的动态特征统计分析流程见附图4。
图5的工作流程如下:
●通过配置来决定需要根据哪些动态特征对算法调整,例如:事件匹配成功的概率、匹配算法输入报文的特征和当前网络流量等等;
●对这些动态特征进行反馈;
●统计这些动态特征,并且修改决策依据参数flag。例如,当某一事件在时间LIMIT_EVENT_DURATION内出现次数大于LIMIT_EVENT_NUM,则修改flag相应的标志位;
●定位该动态特征所关联的协议变量;并且判断该协议变量是否需要进行多模式匹配,以及该协议变量的多模式匹配算法是否被配置为“可调整”等等;
●输出决策依据参数flag和协议变量ID,作为动态算法选择决策模块的输入。
最后,根据当前网络情况,模式匹配规则树中各节点(协议变量)选择更为合适的匹配算法。根据目前备选五种算法的特征,主要分为两类,其适应范围见表1。对于当前所选用的这两类算法,WM算法受网络影响大,所以主要是从WM算法调整到ACBM类算法(包括其改进算法)。
具体工作流程见附图6。
第一步,根据决策依据参数flag,判断是何种原因引起的动态调整。例如,是“由于事件频繁出现而造成算法调整”;下面以此原因来介绍此动态算法选择模块的实现方法;
如果原来的算法是ACBM算法(或者ACBM1、ACBM2),则保持;如果原来的算法为WM算法,则需要调整。根据flag中bit3和bit4,判断调整哪种ACBM算法。同样,也需要对存储空间进行估计,如果存储空间在允许范围内,则调整为ACBM算法(或者ACBM1、ACBM2);否则保持原有算法;
输出选择结果。
本发明所述自适应多模式匹配方法中模式匹配阶段,利用当前选择的匹配算法为外部调用模块提供快速多模式匹配服务,即对外部模块输入的网络报文或协议变量值执行多关键词搜索操作,并返回最后模式匹配结果;同时有选择地根据本次模式匹配的输入和结果生成相应的模式匹配反馈事件,供动态自适应模块统计分析处理。
工作流程如下:
当外部调用模块有报文需要执行模式匹配操作时,将调用统一调用接口模块中的模式匹配接口,以实现快速模式匹配,模式匹配接口调用结束后,将可能产生相应的匹配描述事件,并写入到反馈事件队列中,供动态自适应模块做统计分析,并在必要时做出模式匹配算法切换决策。
本发明所述自适应多模式匹配方法中动态自适应阶段动态特征统计分析工作流程描述如下:
对模式匹配阶段产生的匹配描述事件进行聚合、统计分析,并将统计分析结果提交给“动态算法选择决策模块”,为后者提供算法切换决策依据。“动态算法选择决策模块”在决策时所关心的事件有:某一事件在一段时间(LIMIT_EVENT_DURATION)出现次数大于LIMIT_EVENT_NUM,则认为该事件在单位时间内出现概率高,可能需要对相应的多模式匹配算法进行调整;如果某一协议变量在一段时间(LIMIT_PACKT_DURATION)内,匹配时输入的报文是“坏字符串”(即出现类似“AAAAAAAA”这样重复的字符,且匹配窗口的前缀和后缀出现在报文中概率高)的次数大于LIMIT_PACKT_NUM,则认为该协议变量的匹配算法可能需要调整。
图2中表示了此自适应多模式匹配系统的整体架构。从模块上来看,将此系统分为四个大模块。当系统初始化时,输入规则树的配置,然后调用静态自适应模块,对协议变量的多模式匹配算法进行初始化;当系统工作时,输入为待匹配的文本,输出为匹配的结果;并且在系统工作时,调用动态自适应模块对协议变量的多模式匹配算法进行自动调整。从工作层面上来看,系统分为三个层面:配置管理层面、控制层面和服务层面。配置管理层面是在系统初始化时完成,服务层面是系统工作时为上层提供服务,而控制层面是在自适应系统内部,为提供更好服务而自动完成。
文中英文词汇注释表
以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。
Claims (9)
1.一种自动调整匹配算法的入侵检测方法,其特征在于,包括以下步骤:
A)捕获网络中的数据包;
B)对所捕获的数据包进行全协议栈解析;
C)首先根据预先设定的模式特征和协议变量特征选择最合适的多模式匹配算法,然后加载模式匹配算法库,并在检测过程中根据当前网络状态来动态调整匹配算法。
2.如权利要求1所述的方法,其特征在于,所述步骤B的具体方法包括:
B1)协议解析器进行初始化,并加载编译后的正则规则表达集;
B2)读取数据包,并对其进行分组处理;
B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类;
B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信息。
3.根据权利要求2所述的方法,其特征在于,所述对数据包进行分组的具体步骤包括:
首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。
4.根据权利要求3所述的方法,其特征是,所述的输出端口分组的配置遵循以下原则:
1)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中;
2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例;
3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。
5.根据权利要求3所述的方法,其特征在于,所述的数据分组规则的设置包括两种方式:
一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下:
另一种是基于特殊字段信息的规则设置方式,该规则表的格式如下:
其中:
规则号:是每个规则的唯一标识序号;
源、目的IP地址:数据包传输的源端和目的端的IP地址值;
源、目的IP掩码:数据包传输的源端和目的端IP字段的子网掩码;
源、目的端口:数据包传输的源端和目的端的端口号;
字段偏移量:从IP数据包内容开始计算的需要匹配的特殊字段的偏移量;
字段长度:需要匹配的特殊字段的长度;
匹配内容:特殊字段的匹配值,这些特殊字段包括如URL地址、Emai1信件中的收信人和发信人地址字段;
数据分组行为:“0”表示将该数据包丢弃,“1”表示将该数据包转发到组1,“2”表示将该数据包转发到组2,……“N”表示将该数据报转发到组N,“-1”表示暂停使用该条规则,如果数据分组规则表中除数据分组行为字段外的所有字段都为0,则表示该条规则适用于所有数据包。
7.根据权利要求2所述的方法,其特征在于,所述步骤B3中,将协议类型相同的数据包进行归类的具体步骤包括:
1)在接收到新数据包时建立新的数据表;
2)当接收到数据报文时,先在所述数据表中查找与其对应的包号,若能找到,再判断所述数据报文是否为最后一个包,若不是,则将所述数据报文归入对应的数据包中;否则,删除该数据包;
3)当所述数据包出现乱序或重发且所述数据包没有被正常删除时,启动定时器在定时时间内将所述数据包删除。
8.如权利要求1所述的方法,其特征在于,所述步骤C包括统计分析模块、匹配模块和评估切换模块;其中,所述统计分析模块用于对模式匹配输入规则树进行统计分析,并根据分析结果选择最优的多模式匹配算法;所述匹配模块用于通过统一调用接口为外部调用模块提供快速多模式匹配服务,并将模式匹配结果描述事件反馈给评估切换模块;所述评估切换模块用于根据匹配模块反馈的事件信息来获知当前网络状态,并据此做出调整当前多模式匹配算法的决定。
9.如权利要求8所述的方法,其特征在于,
所述统计分析模块,根据事件配置文件建立模式匹配规则树,规则树中每一树节点代表某一类型模式匹配子任务包括对协议变量或报文数据载荷进行模式匹配;统计分析规则树中每一节点的协议变量特征和相关模式特征;考察算法库中每一备选多模式匹配算法特征,选择一种最适合该规则树节点的多模式匹配算法;
所述匹配模块,利用当前选择的匹配算法为外部调用模块提供快速多模式匹配服务,即对外部模块输入的网络报文或协议变量值执行多关键词搜索操作,并返回最后模式匹配结果;同时有选择地根据本次模式匹配的输入和结果生成相应的模式匹配反馈事件,供评估切换模块统计分析处理。
所述评估切换模块,根据匹配模块反馈的事件信息,来获知当前网络状态;在当前网络状态下对当前选择的多模式匹配算法进行评估,如果评估结果不满意,则考察算法库中各基本模式匹配算法特征,选出一种最适合当前网络状态的多模式匹配算法,指导算法调度引擎完成对当前多模式匹配算法的动态切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310398941.0A CN103841096A (zh) | 2013-09-05 | 2013-09-05 | 自动调整匹配算法的入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310398941.0A CN103841096A (zh) | 2013-09-05 | 2013-09-05 | 自动调整匹配算法的入侵检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103841096A true CN103841096A (zh) | 2014-06-04 |
Family
ID=50804230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310398941.0A Pending CN103841096A (zh) | 2013-09-05 | 2013-09-05 | 自动调整匹配算法的入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103841096A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104579823A (zh) * | 2014-12-12 | 2015-04-29 | 国家电网公司 | 一种基于大数据流的网络流量异常检测系统及方法 |
CN105187224A (zh) * | 2014-06-17 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 入侵检测方法和装置 |
CN105357118A (zh) * | 2015-10-23 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种基于规则的流量分类方法和系统 |
CN106453438A (zh) * | 2016-12-23 | 2017-02-22 | 北京奇虎科技有限公司 | 一种网络攻击的识别方法及装置 |
CN106790206A (zh) * | 2017-01-05 | 2017-05-31 | 厦门中控生物识别信息技术有限公司 | 业务系统的协议解析方法及装置 |
CN107241346A (zh) * | 2017-07-07 | 2017-10-10 | 中国电子科技集团公司第三十四研究所 | 一种用于光子防火墙的模式匹配域的划分和识别方法 |
CN107301210A (zh) * | 2017-06-06 | 2017-10-27 | 福建中经汇通有限责任公司 | 一种数据处理方法 |
CN109672687A (zh) * | 2018-12-31 | 2019-04-23 | 南京理工大学 | 基于可疑度评估的http混淆流量检测方法 |
CN110995678A (zh) * | 2019-11-22 | 2020-04-10 | 北京航空航天大学 | 一种面向工控网络的高效入侵检测系统 |
CN111667217A (zh) * | 2020-06-09 | 2020-09-15 | 宏图智能物流股份有限公司 | 一种仓库网络信息存储方法 |
CN112532658A (zh) * | 2021-02-08 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 云网络逃逸事件扫描方法、装置及计算机可读存储介质 |
CN116668197A (zh) * | 2023-07-28 | 2023-08-29 | 深圳市永达电子信息股份有限公司 | 信息流无干扰策略的网络强制访问控制实现方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564547A (zh) * | 2004-03-25 | 2005-01-12 | 上海复旦光华信息科技股份有限公司 | 保持连接特性的高速过滤分流方法 |
CN1870498A (zh) * | 2006-06-26 | 2006-11-29 | 北京启明星辰信息技术有限公司 | 一种自适应多模式匹配方法及系统 |
US7200684B1 (en) * | 2000-04-13 | 2007-04-03 | International Business Machines Corporation | Network data packet classification and demultiplexing |
CN101605018A (zh) * | 2009-06-17 | 2009-12-16 | 中兴通讯股份有限公司 | 一种基于流的深度报文检测协议解码方法、设备及系统 |
-
2013
- 2013-09-05 CN CN201310398941.0A patent/CN103841096A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200684B1 (en) * | 2000-04-13 | 2007-04-03 | International Business Machines Corporation | Network data packet classification and demultiplexing |
CN1564547A (zh) * | 2004-03-25 | 2005-01-12 | 上海复旦光华信息科技股份有限公司 | 保持连接特性的高速过滤分流方法 |
CN1870498A (zh) * | 2006-06-26 | 2006-11-29 | 北京启明星辰信息技术有限公司 | 一种自适应多模式匹配方法及系统 |
CN101605018A (zh) * | 2009-06-17 | 2009-12-16 | 中兴通讯股份有限公司 | 一种基于流的深度报文检测协议解码方法、设备及系统 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187224A (zh) * | 2014-06-17 | 2015-12-23 | 腾讯科技(深圳)有限公司 | 入侵检测方法和装置 |
CN104579823B (zh) * | 2014-12-12 | 2016-08-24 | 国家电网公司 | 一种基于大数据流的网络流量异常检测系统及方法 |
CN104579823A (zh) * | 2014-12-12 | 2015-04-29 | 国家电网公司 | 一种基于大数据流的网络流量异常检测系统及方法 |
CN105357118A (zh) * | 2015-10-23 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 一种基于规则的流量分类方法和系统 |
CN106453438B (zh) * | 2016-12-23 | 2019-12-10 | 北京奇虎科技有限公司 | 一种网络攻击的识别方法及装置 |
CN106453438A (zh) * | 2016-12-23 | 2017-02-22 | 北京奇虎科技有限公司 | 一种网络攻击的识别方法及装置 |
CN106790206A (zh) * | 2017-01-05 | 2017-05-31 | 厦门中控生物识别信息技术有限公司 | 业务系统的协议解析方法及装置 |
CN106790206B (zh) * | 2017-01-05 | 2019-10-29 | 厦门中控智慧信息技术有限公司 | 业务系统的报文解析方法及装置 |
CN107301210A (zh) * | 2017-06-06 | 2017-10-27 | 福建中经汇通有限责任公司 | 一种数据处理方法 |
CN107241346A (zh) * | 2017-07-07 | 2017-10-10 | 中国电子科技集团公司第三十四研究所 | 一种用于光子防火墙的模式匹配域的划分和识别方法 |
CN107241346B (zh) * | 2017-07-07 | 2020-03-24 | 中国电子科技集团公司第三十四研究所 | 一种用于光子防火墙的模式匹配域的划分和识别方法 |
CN109672687B (zh) * | 2018-12-31 | 2021-04-13 | 南京理工大学 | 基于可疑度评估的http混淆流量检测方法 |
CN109672687A (zh) * | 2018-12-31 | 2019-04-23 | 南京理工大学 | 基于可疑度评估的http混淆流量检测方法 |
CN110995678B (zh) * | 2019-11-22 | 2021-07-23 | 北京航空航天大学 | 一种面向工控网络的高效入侵检测系统 |
CN110995678A (zh) * | 2019-11-22 | 2020-04-10 | 北京航空航天大学 | 一种面向工控网络的高效入侵检测系统 |
CN111667217A (zh) * | 2020-06-09 | 2020-09-15 | 宏图智能物流股份有限公司 | 一种仓库网络信息存储方法 |
CN111667217B (zh) * | 2020-06-09 | 2022-07-12 | 宏图智能物流股份有限公司 | 一种仓库网络信息存储方法 |
CN112532658A (zh) * | 2021-02-08 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 云网络逃逸事件扫描方法、装置及计算机可读存储介质 |
CN116668197A (zh) * | 2023-07-28 | 2023-08-29 | 深圳市永达电子信息股份有限公司 | 信息流无干扰策略的网络强制访问控制实现方法及装置 |
CN116668197B (zh) * | 2023-07-28 | 2023-11-28 | 深圳市永达电子信息股份有限公司 | 信息流无干扰策略的网络强制访问控制实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103841096A (zh) | 自动调整匹配算法的入侵检测方法 | |
US7602780B2 (en) | Scalably detecting and blocking signatures at high speeds | |
CN103491069A (zh) | 网络数据包的过滤方法 | |
CN101018121B (zh) | 日志的聚合处理方法及聚合处理装置 | |
CN103475653A (zh) | 网络数据包的检测方法 | |
CN107733851A (zh) | 基于通信行为分析的dns隧道木马检测方法 | |
CN101714952B (zh) | 一种接入网的流量识别方法和装置 | |
CN1287570C (zh) | 保持连接特性的高速过滤分流方法 | |
CN104348716B (zh) | 一种报文处理方法及设备 | |
US20060191008A1 (en) | Apparatus and method for accelerating intrusion detection and prevention systems using pre-filtering | |
US8510830B2 (en) | Method and apparatus for efficient netflow data analysis | |
CN101640594B (zh) | 一种在网络设备上提取流量攻击报文特征的方法和单元 | |
US20130305365A1 (en) | System and method for optimization of security traffic monitoring | |
US20060167915A1 (en) | Pattern matching using deterministic finite automata and organization of such automata | |
CN103685224A (zh) | 网络入侵检测方法 | |
CN110417729B (zh) | 一种加密流量的服务与应用分类方法及系统 | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
CN103685221A (zh) | 网络入侵检测方法 | |
CN101729389A (zh) | 基于流量预测和可信网络地址学习的流量控制装置和方法 | |
CN103685222A (zh) | 基于确定性有穷状态自动机的数据匹配检测方法 | |
CN103746996A (zh) | 一种防火墙的报文过滤方法 | |
CN103875214A (zh) | 用于以太网网络的具有安全检测的智能phy | |
CN104468107A (zh) | 校验数据处理方法及装置 | |
US10291632B2 (en) | Filtering of metadata signatures | |
CN104333483A (zh) | 互联网应用流量识别方法、系统及识别装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140604 |
|
RJ01 | Rejection of invention patent application after publication |