基于确定性有穷状态自动机的数据匹配检测方法技术

技术编号:9867416 阅读:152 留言:0更新日期:2014-04-03 03:55
本发明专利技术提出了一种基于确定性有穷状态自动机的数据匹配检测方法,包括以下步骤:A)捕获网络中的数据包;B)对所捕获的数据包进行全协议栈解析;C)将待匹配数据报文输入至确定性有限自动机DFA状态表中进行匹配;D)输出匹配成功结果。本发明专利技术通过对数据包进行全协议栈解析,大大提高了解码速度,满足实时解码要求,并减少了对服务器内存的需求;此外,本发明专利技术通过基于正则表达式的匹配方法,可以极大地减小状态迁移表所占用的储存空间,并提高匹配速度与匹配效率,通过上述高级隐遁技术实现了对高级逃逸入侵的有效防护。

【技术实现步骤摘要】

本专利技术涉及网络安全
,尤其涉及一种。
技术介绍
网络入侵检测作为目前最主要的主动网络安全措施之一,它通过对计算机和网络资源上的恶意网络连接进行识别和响应,有效地补充和完善了诸如访问控制、数据加密、防火墙、病毒防范等安全措施,提高了信息安全基础结构的完整性,已成为信息系统安全解决方案中不可或缺的环节。高级隐遁技术(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公司的TimNewsham和Thomas Ptacek发表了有关如何穿透IDS/IPS的技术文章《插入、隐遁和拒绝服务攻击:避开网络入侵检测》。近两年,国内相关的研究,总参某研究所的徐金伟研究员曾就AET发表过多篇文章。常用的AET手段有:字符串混淆、加密和隧道技术、碎片技术和协议的违规四种。针对高级隐遁攻击应当考虑新的拦截模式,单纯的特征库匹配模式不再能够完全达到拦截目的,因此,本专利技术将提出一种全新的数据匹配检测,该方法将大大提高网络的安全系数。
技术实现思路
为了克服现有技术的缺陷,本专利技术提出了一种,以获得更快的匹配速度,并降低DFA表项所占用的存储空间。为实现上述目的,本专利技术所述的,其包含如下具体步骤:A)捕获网络中的数据包;B)对所捕获的数据包进行全协议栈解析;C)将待匹配数据报文输入至确定性有限自动机DFA状态表中进行匹配,所述DFA状态表包括状态迁移表,所述状态迁移表中包括正则表达式匹配过程中的所有状态地址和各个状态之间的迁移关系,所述迁移关系包括匹配条件及符合匹配条件的下一状态:判断当前状态对应的数据类型,所述数据类型包括单个字符Char型和多个字符Str型,所述Str型对应的数据为连续的多个字符;如果当前状态对应的数据类型是Str型,则将待匹配报文中当前状态的多个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态;如果当前状态对应的数据类型是Char型,则将待匹配报文中当前状态的单个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态;当所述下一状态为接受态时,结束匹配过程;D)输出匹配成功结果。进一步地,所述步骤B的具体方法包括:BI)协议解析器进行初始化,并加载编译后的正则规则表达集;B2)读取数据包,并对其进行分组处理;B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类;B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信肩、O进一步地,所述对数据包进行分组的具体步骤包括:首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。进一步地,所述的输出端口分组的配置遵循以下原则:I)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中;2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例;3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。进一步地,所述的数据分组规则的设置包括两种方式:一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下:本文档来自技高网
...

【技术保护点】
一种基于确定性有穷状态自动机的数据匹配检测方法,其特征在于,包括以下步骤:A)捕获网络中的数据包;B)对所捕获的数据包进行全协议栈解析;C)将待匹配数据报文输入至确定性有限自动机DFA状态表中进行匹配,所述DFA状态表包括状态迁移表,所述状态迁移表中包括正则表达式匹配过程中的所有状态地址和各个状态之间的迁移关系,所述迁移关系包括匹配条件及符合匹配条件的下一状态:判断当前状态对应的数据类型,所述数据类型包括单个字符Char型和多个字符Str型,所述Str型对应的数据为连续的多个字符;如果当前状态对应的数据类型是Str型,则将待匹配报文中当前状态的多个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态;如果当前状态对应的数据类型是Char型,则将待匹配报文中当前状态的单个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态;当所述下一状态为接受态时,结束匹配过程;D)输出匹配成功结果。

【技术特征摘要】
1.一种基于确定性有穷状态自动机的数据匹配检测方法,其特征在于,包括以下步骤: A)捕获网络中的数据包; B)对所捕获的数据包进行全协议栈解析; C)将待匹配数据报文输入至确定性有限自动机DFA状态表中进行匹配,所述DFA状态表包括状态迁移表,所述状态迁移表中包括正则表达式匹配过程中的所有状态地址和各个状态之间的迁移关系,所述迁移关系包括匹配条件及符合匹配条件的下一状态: 判断当前状态对应的数据类型,所述数据类型包括单个字符Char型和多个字符Str型,所述Str型对应的数据为连续的多个字符; 如果当前状态对应的数据类型是Str型,则将待匹配报文中当前状态的多个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态; 如果当前状态对应的数据类型是Char型,则将待匹配报文中当前状态的单个字符值与匹配条件进行匹配处理,当匹配时,迁移至所述符合匹配条件的下一状态; 当所述下一状态为接受态时,结束匹配过程; D)输出 匹配成功结果。2.如权利要求1所述的方法,其特征在于,所述步骤B的具体方法包括: BI)协议解析器进行初始化,并加载编译后的正则规则表达集; B2)读取数据包,并对其进行分组处理; B3)识别分组后所述数据包的协议类型,并判断所述数据包是否需要解析,如不需要,则直接丢弃该数据包;否则,将协议类型相同的数据包进行归类; B4)根据正则表达式规则集查找到与数据协议类型对应的协议解码规则,再对包含该数据的数据包进行扫描,根据所述协议解析规则从数据包中提取所述数据的解析信息。3.根据权利要求2所述的方法,其特征在于,所述对数据包进行分组的具体步骤包括: 首先设置输出端口分组规则和数据分组规则,输出端口分组规则的配置是首先将各输出端口按照对应的后端应用系统的业务处理类型进行分组,然后再根据组内各端口对应的后端系统的处理能力决定每个端口在该组中数据包处理流量的分配比例,数据分组规则的配置是根据IP地址信息或特殊字段将数据包划分到各个分组当中;再进行数据分组处理,先通过协议解析,从网络上接收到的原始数据包中提取出IP数据包,根据设置好的数据分组规则将与后续处理相关数据划分到各个输出端口分组中;然后将划分到每个组中的数据包的地址和端口信息进行Hash运算,Hash值再与该分组所包含的端口总数取模,得到的结果就是该数据包在所属的分组中对应的输出端口序号。4.根据权利要求3所述的方法,其特征是,所述的输出端口分组的配置遵循以下原则: 1)输出端口的分组首先依据后端处理系统的业务需求,按照业务处理类型进行分组,当一个系统与多个系统分别在数据分组规则属性中互相有重叠时,同一个输出端口会出现在两个以上的分组中; 2)在每个分组内部,为了保证数据处理任务实现均衡分配,同一个输出端口可多次出现在同一个组中,即在分组内按照每个端口对应的后端系统的数据处理能力决定每个端口在该组中数据包流量的分配比例; 3)组内各输出端口的分配在保证负载均衡的同时,保证同一条TCP连接双向的所有数据包必须转发到同一个输出端口上,便于后端对所接收到的数据的汇总和还原。5.根据权利要求3所述的方法,其特征在于,所述的数据分组规则的设置包括两种方式: 一种是将数据包的IP地址和端口信息作为直接监控对象,基于这些IP地址信息将规则设置在基于地址信息的数据分组规则表中,该规则表的格式如下: 6.根据权利要求5所述的方法,其特征在于,由于动态设定的规则具有时效性,因此导入到内存的基于数据包的IP地址和端口信息的数据分组规则表增加动态/...

【专利技术属性】
技术研发人员:刘庆
申请(专利权)人:北京科能腾达信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1