一种乱序数据包字符串匹配方法及系统技术方案

技术编号:11781961 阅读:92 留言:0更新日期:2015-07-27 21:29
本发明专利技术涉及一种乱序数据包字符串匹配方法及系统,包括以下步骤:初始化确定有限状态自动机DFA和模式后缀树PST;初始化缓冲区,逐个接收在网络中传输的、由数据流分割得到的字符串,每个所述数据流由至少两个字符串有序排列组成;逐个获取属于同一个数据流的字符串;如果当前的字符串存在前缀,设置确定有限状态自动机的当前状态;如果当前的字符串存在后缀,将查找状态追加到当前的字符串的末尾,得到合并片段;将合并片段输入到确定有限状态自动机中;存储当前的字符串信息,并让当前的字符串通过。本发明专利技术提出的乱序数据包字符串匹配方法,该模型不需要缓存数据包,而只缓存状态,实现了乱序数据包重排的字符串匹配。

【技术实现步骤摘要】

本专利技术涉及一种网络数据包检测方法,特别涉及一种乱序数据包字符串匹配方法 及系统。
技术介绍
网络安全设备,例如入侵检测/防御系统IDS/IPS已经被广泛的部署。简要的说, 入侵检测系统监听链路层的数据包,对可能的入侵发出警告。入侵防御系统跟入侵检测系 统很接近,但它是内联的,只是丢弃恶意的数据包,而不是生成警告。大多数的入侵检测/ 防御系统是基于字符串或者正则表达式的,它们有自己的字符串或者正则表达式集合,根 据这些集合去匹配数据包的负载。当匹配成功时,数据包被认定为恶意的。 网络中的一个流是一个有限的数据包序列,它们有相同的五元组(源IP,目的IP, 源端口,目的端口,协议类型)。如果一个传输的字符串超过了一个数据包所能承载的大小, 那么它将会被分成多个分片,再分别封装成数据包。这些数据包由于多重路由,包重发等原 因可能以乱序到达网络设备,这种现象称为数据包重排。 为了检测分散在不同数据包中的目标字符串,IDS/IPS不得不缓存并且重排乱序 的数据包。在2005年,Dharmapurikar发现在整个网络流中,重排的TCP数据包流量仅占了 2-3 %。而在1997年10月到1998年1月的90 %的TCP数据包被重排,但是Dharmapurikar 认为这是因为老一代的路由器架构所导致的。不管怎样,如果数据包重排在正常的网络环 境中不是很多,重组所有的流在IDS/IPS中仍然是一个通用的解决方案。另一个方案是流 量规范器,它在网络中移出二义性的流量而不传给IDS/IPS。流量规范器需要维护每一个 连接的状态以及缓存乱序的数据包。数据包重排和流量规范器都需要大量的资源,因此给 高速的网络流环境带来了潜在的瓶颈,使得IDS/IPS对于耗尽内存的网络攻击很脆弱。 目前,有人提出了一些不使用重组或者规范器进行攻击检测的尝试。George Varghese等人提出了分片检测(Split-Detect)的方法。它将字符串或者正则表达式划分 成一片一片的。对每一片的检测都会使TCP流从IDS的快速路径移到慢速路径。分片检测 处理和存储开销大约是传统IDS的10%。分片检测与本专利技术解决相同的问题,但是它不能 完全的避免重组。它仅仅是通过从快速路径转移到慢速路径减少了重组,以至于不是所有 的流都需要重组。慢速路径的流仍然需要重组数据包。此外,分片检测还需要三个假设:每 个TCP接收器都做些小改动,字符串或者正则表达式检测需要改动,还有一个限制,固定长 度的字符串或者正则表达式的约束。所有的这些假设都很难满足。 另一个方法叫On-Line Reassembly(OLR)。它利用DAWG去存储模式并且记录自动 机的状态以避免重组。这个方法与本专利技术很像,但是DAWG未考虑输入的数据包正好填补空 洞的情况,因此这个方法逻辑上是不完备的。本专利技术提出了一个基于后缀树的字符串匹配 模型。该模型不需要缓存数据包,而只缓存状态,实现了乱序数据包重排的字符串匹配。
技术实现思路
本专利技术所要解决的技术问题是提供一种不需要缓存数据包、只缓存状态的乱序数 据包字符串匹配方法及系统。 本专利技术解决上述技术问题的技术方案如下:一种乱序数据包字符串匹配方法,包 括以下步骤: 步骤1 :初始化确定有限状态自动机DFA和模式后缀树PST,所述确定有限状态自 动机的返回值为匹配状态和匹配列表,所述模式后缀树的返回值为查找状态和查找标记, 将匹配状态和查找状态设置为零,将查找标记设置为假; 步骤2 :初始化缓冲区,逐个接收在网络中传输的、由数据流分割得到的字符串, 每个所述数据流由至少两个字符串有序排列组成; 步骤3:分别为每个字符串查找其所属的数据流,并为每个字符串根据其所属的 数据流分别设置序列号、前缀和后缀,逐个获取属于同一个数据流的字符串; 步骤4 :如果当前的字符串存在前缀,将确定有限状态自动机的当前状态初始化 为前缀在确定有限状态自动机中对应的匹配状态,执行步骤5 ;否则,直接执行步骤5 ; 步骤5 :如果当前的字符串存在后缀,将所述后缀输入到模式后缀树中,得到查找 状态,将查找状态追加到当前的字符串的末尾,得到合并片段,执行步骤6 ;否则,直接执行 步骤6 ; 步骤6 :将合并片段输入到确定有限状态自动机中,如果匹配成功,则丢弃当前的 合并片段,并清除缓冲区中与当前的合并片段对应的数据流的记录,执行步骤2,如果未匹 配成功,将合并片段作为当前的字符串,执行步骤7 ; 步骤7:存储当前的字符串的字符串信息,并让当前的字符串通过,执行步骤2,直 至网络中没有传输的、由数据流分割得到的字符串。 本专利技术的有益效果是:本专利技术不需要缓存数据包,而只缓存状态,实现了乱序数据 包重排的字符串匹配。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,所述步骤6与步骤7之间还包括: 步骤6. 1 :如果当前的字符串存在前缀,执行步骤6. 2 ;否则,执行步骤6. 5 ; 步骤6.2 :当前缀的查找标记为真,将当前的字符串和前缀在模式后缀树中对应 的状态输入模式后缀树,得到查找状态和查找标记,执行步骤6.4 ;当前缀的查找标记为 假,执行步骤6. 3; 步骤6.3 :将模式后缀树的当前状态设置为前缀在模式后缀树中对应的查找状 态,执行步骤6. 4 ; 步骤6.4 :存储当前的字符串的序列号和长度,并从缓冲区中删除当前的字符串 的前缀的信息,执行步骤6.6 ; 步骤6.5 :如果当前的字符串不存在前缀,将模式后缀树的当前状态设置为零,然 后将当前的字符串输入模式后缀树,返回查找状态和查找标记,执行步骤6. 6 ; 步骤6. 6 :如果当前的字符串存在后缀,执行步骤6. 7,否则,执行步骤6. 9 ; 步骤6. 7 :如果后缀的查找标记为假,将确定有限状态自动机的当前状态设置为 后缀在确定有限状态自动机中对应的匹配状态,将后缀在模式后缀树中对应的查找标记设 置为假,执行步骤6. 8 ;如果后缀的查找标记为真,执行步骤6. 8 ; 步骤6.8 :存储当前的字符串的长度,并从缓冲区中删除当前的字符串的后缀的 信息,执行步骤6.9 ; 步骤6.9 :如果当前的字符串不存在后缀,将当前的字符串存入缓冲区,让当前的 字符串通过,重新接受下一个字符串,直至网络中没有传输的、由数据流分割得到的字符 串。 进一步,所述步骤7中的字符串信息包括字符串所属的数据流、字符串在数据流 中的序列号、字符串的长度、字符串在确定有限状态自动机中对应的匹配状态、字符串在 模式后缀树中对应的查找状态和查找标记。 进一步,所述确定有限状态自动机进行字符串匹配的流程具体包括以下步骤: 步骤a:根据接收到的网络中传输的、由数据流分割得到的所有字符串构建确定 有限状态自动机; 步骤b:将确定有限状态自动机的匹配列表初始化为空; 步骤c :逐个获取待匹配的字符串的每个字符,当所有字符全部获取完毕,执行步 骤d; 步骤d:如果当前字符存在于确定有限状态自动机中,设置匹配状态为真,并将当 前字符存储于匹配列表中;如果当前字符不存在于确定有限状态自动机中,返回匹配状态 为假,并输出显示,重新执行步骤b ; 步骤e :返回匹配状态和匹配列表。 进一步,所述模式后缀树查找字符串具体包本文档来自技高网
...

【技术保护点】
一种乱序数据包字符串匹配方法,其特征在于,包括以下步骤:步骤1:初始化确定有限状态自动机和模式后缀树,所述确定有限状态自动机的返回值为匹配状态和匹配列表,所述模式后缀树的返回值为查找状态和查找标记,将匹配状态和查找状态设置为零,将查找标记设置为假;步骤2:初始化缓冲区,逐个接收在网络中传输的、由数据流分割得到的字符串,每个所述数据流由至少两个字符串有序排列组成;步骤3:分别为每个字符串查找其所属的数据流,并为每个字符串根据其所属的数据流分别设置序列号、前缀和后缀,逐个获取属于同一个数据流的字符串;步骤4:如果当前的字符串存在前缀,将确定有限状态自动机的当前状态初始化为前缀在确定有限状态自动机中对应的匹配状态,执行步骤5;否则,直接执行步骤5;步骤5:如果当前的字符串存在后缀,将所述后缀输入到模式后缀树中,得到查找状态,将查找状态追加到当前的字符串的末尾,得到合并片段,执行步骤6;否则,直接执行步骤6;步骤6:将合并片段输入到确定有限状态自动机中,如果匹配成功,则丢弃当前的合并片段,并清除缓冲区中与当前的合并片段对应的数据流的记录,执行步骤2,如果未匹配成功,将合并片段作为当前的字符串,执行步骤7;步骤7:存储当前的字符串的字符串信息,并让当前的字符串通过,执行步骤2,直至网络中没有传输的、由数据流分割得到的字符串。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:张鹏于越杨嵘朱嵬刘庆云
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1