网络入侵检测方法

文档序号:7769427阅读:211来源:国知局
网络入侵检测方法
【专利摘要】本发明提出了一种网络入侵检测方法,其包括以下步骤:A)捕获网络中的数据包;B)对所捕获的数据包进行全协议栈解析,即对包括应用层协议在内的所有协议数据进行重组后,再对重组后的数据包进行解析;C)通过确定性有限状态机将正则表达式规则集编译成DFA状态转换表,对DFA状态转换表进行压缩;D)将步骤2解析后的数据写入压缩后的DFA状态转换表做匹配;E)输出匹配结果。本发明通过对数据包进行全协议栈解析,大大提高了解码速度,满足实时解码要求,并减少了对服务器内存的需求;本发明还通过DFA状态转移表实现高速报文匹配,能够对存在的威胁进行准确检测和防御,准确识别并清除高级逃逸技术。
【专利说明】网络入侵检测方法
【技术领域】
[0001]本发明涉及网络安全【技术领域】,尤其涉及一种网络入侵检测方法。
【背景技术】
[0002]网络入侵检测作为目前最主要的主动网络安全措施之一,它通过对计算机和网络资源上的恶意网络连接进行识别和响应,有效地补充和完善了诸如访问控制、数据加密、防火墙、病毒防范等安全措施,提高了信息安全基础结构的完整性,已成为信息系统安全解决方案中不可或缺的环节。
[0003]高级隐遁技术(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的重视程度。
[0004]防火墙和IPS是网络中核心的安全保障设备,防火墙通常根据数据流端口、地址、协议等进行数据的过滤,而IPS则进一步进行数据包的深度检测。为了真正的理解和检测网络数据包,IPS则需要深度理解数据流所采用的协议。表面上如果彻底分析透数据流的协议格式就足够了,但事实证明并非如此。早在1998年,来自Secure Network公司的TimNewsham和Thomas Ptacek发表了有关如何穿透IDS/IPS的技术文章《插入、隐遁和拒绝服务攻击:避开网络入侵检测》。近两年,国内相关的研究,总参某研究所的徐金伟研究员曾就AET发表过多篇文章。常用的AET手段有:字符串混淆、加密和隧道技术、碎片技术和协议的违规四种。
[0005]针对高级隐遁攻击应当考虑新的拦截模式,单纯的特征库匹配模式不再能够完全达到拦截目的,因此,本发明将提出一种全新的网络入侵检测方法,该方法将大大提高网络的安全系数。

【发明内容】

[0006]为了克服现有技术的缺陷,本发明的目的在于提出一种能够提高网络安全系数的网络入侵检测方法。
[0007]为实现上述目的,本发明所述的网络入侵检测方法,其包含如下具体步骤:
[0008]A)捕获网络中的数据包;
[0009]B)对所捕获的数据包进行全协议栈解析,即对包括应用层协议在内的所有协议数据进行重组后,再对重组后的数据包进行解析;
[0010]C)通过确定性有限状态机将正则表达式规则集编译成DFA状态转换表,对DFA状态转换表进行压缩;
[0011]D)将步骤2解析后的数据写入压缩后的DFA状态转换表做匹配;
[0012]E)输出匹配结果。
[0013]进一步地,所述步骤B中,对协议数据进行重组的具体步骤包括:
[0014]从捕获的原始数据包中提取与IP协议相关的描述特征,分析其中的数据报文;
[0015]对分析后的数据报文按照其规范进行重新拼装,并保存到特定的内存结构中。
[0016]进一步地,所述步骤B中,对重组后的数据包进行解析的具体步骤包括:
[0017]BI)协议解析器进行初始化,并加载编译后的正则规则表达集;
[0018]B2)读取数据包,并对其进行分组处理;
[0019]B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类;
[0020]B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信息。
[0021]进一步地,所述对数据包进行分组的具体步骤包括:
[0022]首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。
[0023]进一步地,所述的输出端口分组的配置遵循以下原则:
[0024]I)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中;
[0025]2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例;
[0026]3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。
[0027]进一步地,所述的数据分组规则的设置包括两种方式:
[0028]一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下:
[0029]
规则号_地址_掩码源端口 !j目的IP地址巨的IP掩码:1/11 ,
;I I I I I I^T^I I^I[0030]另一种是基于特殊字段信息的规则设置方式,该规则表的格式如下:
[0031]
【权利要求】
1.一种网络入侵检测方法,其特征在于,包括以下步骤: A)捕获网络中的数据包; B)对所捕获的数据包进行全协议栈解析,即对包括应用层协议在内的所有协议数据进行重组后,再对重组后的数据包进行解析; C)通过确定性有限状态机将正则表达式规则集编译成DFA状态转换表,对DFA状态转换表进行压缩; D)将步骤2解析后的数据写入压缩后的DFA状态转换表做匹配; E)输出匹配结果。
2.如权利要求1所述的方法,其特征在于,所述步骤B中,对协议数据进行重组的具体步骤包括: 从捕获的原始数据包中提取与IP协议相关的描述特征,分析其中的数据报文; 对分析后的数据报文按照其规范进行重新拼装,并保存到特定的内存结构中。
3.如权利要求1所述的方法,其特征在于,所述步骤B中,对重组后的数据包进行解析的具体步骤包括: BI)协议解析器进行初始化,并加载编译后的正则规则表达集; B2)读取数据包,并对其进行分组处理; B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类; B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信息。
4.根据权利要求3所述的方法,其特征在于,所述对数据包进行分组的具体步骤包括: 首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。
5.根据权利要求4所述的方法,其特征是,所述的输出端口分组的配置遵循以下原则: 1)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中; 2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例; 3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。
6.根据权利要求4所述的方法,其特征在于,所述的数据分组规则的设置包括两种方式: 一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下:
7.根据权利要求3所述的方法,其特征在于,所述步骤B3中,将协议类型相同的数据包进行归类的具体步骤包括: 1)在接收到新数据包时建立新的数据表; 2)当接收到数据报文时,先在所述数据表中查找与其对应的包号,若能找到,再判断所述数据报文是否为最后一个包,若不是,则将所述数据报文归入对应的数据包中;否则,删除该数据包; 3)当所述数据包出现乱序或重发且所述数据包没有被正常删除时,启动定时器在定时时间内将所述数据包删除。
8.如权利要求1所述的方法,其特征在于,所述步骤C中,对DFA状态转换表进行压缩的具体步骤包括: 对DFA状态转换表的每一行,将转换状态相同的输入字符分为同一组; 对DFA状态转换表的每一行,将分在同一组的相邻或邻近的输入字符及其转换状态用三元组信息来表示,该三元组信息为起始字符,位图和转换状态;对DFA状态转换表的每一行,当分在同一组的输入字符不能被单个所述三元组信息编码时,由多个所述三元组来编码; 对DFA状态转换表的每一行,如果其包含的所述三元组的个数不超过预设的阀值,则该状态行用上述三元组编码的方式存放在高速存储器中;否则,该状态行不压缩,用一维线性数组的方式存储在片外DRAM中; 对状态值重新映射,使得存放三元组的高速存储器中存放的状态值都小于片外DRAM存放的状态值;将片外DRAM存放的状态值中的极小值作为分界值。
9.如权利要求8所述的方法,其特征在于, 所述起始字符为分组内最小的输入字符; 所述位图以二进制表示,计算该组各个输入字符相对于起始字符的偏移值,将位图上与这些偏移值相对应的比特位置为I,其余比特位置为O。
10.如权利要求1所述的方法,其特征在于,所述步骤D的具体方法包括: 4a)以DFA状态转换表的起始状态和报文首字符作为起始输入; 4b)如果该状态是终结状态则结束匹配;如果状态值小于所述分界值,则执行步骤4c查找存放三元组的高速存储器;否则,执行步骤4d查找片外DRAM ; 4c)根据一维线性数组索引的方式,从存放三元组的高速存储器中读出该状态行的所有三元组编码,将每一个三元组编码中位图比特偏移值置I的字符与该输入字符进行匹配;如果匹配到,则取该字符所在三元组的转移状态和报文的下个字符作为输入,执行步骤4b ;如果没有匹配到任何三元组,则匹配失败并结束; 4d)根据二维线性数组索引的方式,从片外DRAM中读取对应的转移状态;如果有转移状态,则取该转移状态和报文的下个字符作为输入,执行步骤4b ;如果没有转移状态,则匹配失败并结束。
【文档编号】H04L9/00GK103685224SQ201310400482
【公开日】2014年3月26日 申请日期:2013年9月5日 优先权日:2013年9月5日
【发明者】徐震 申请人:北京安博达通科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1