基于FSM高速网络协议识别研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FSM高速网络协议识别研究

基于FSM高速网络协议识别研究   摘要:提出的高速网络协议识别方案用FSM表示RegExp,用硬件完成模式匹配,实现了高速的网络协议识别,解决了基于软件的字符串匹配不能适应高速网络发展的问题。测试表明其模式匹配速度可达到Gbps以上性能。   关键词:网络入侵检测系统; 协议识别; 正则表达式; 模式匹配   中图分类号:TP393   文献标志码:A   文章编号:1001-3695(2008)06-1877-02      当前,许多关键的网络服务均基于报文内容,或报文头部的结构信息对报文进行处理。例如,主流IDS/IPS产品广泛采用应用层协议深层解析技术实现基于协议攻击特征和协议异常的入侵检测。目前,多数产品都是基于端口映射机制来判别数据流所属的协议类型,如发现捕获的报文中源端口或目的端口为80,则认为是HTTP相关报文,经过重组处理,直接交由HTTP报文分析模块处理。随着网络中大量出现使用动态端口和不可预知端口的网络软件以及各种恶意软件,基于端口映射的方法已经不能有效地识别报文。例如P2P和SIP(VoIP)的应用,并不采用固定协议端口,而是在运行过程中使用动态协商端口。一些应用使用非标准端口代替其标准端口。各种恶意软件为了躲避IDS/IPS产品的检测而采用一些熟知端口(如80端口)进行私有协议通信。   ?ビ纱丝杉?,基于端口的协议识别已经不可靠,需要一种能快速、准确识别报文的机制。陈亮等人[1]通过对实际应用的流量分析,总结出一些特征串,进行应用层协议识别,但该方法只能识别出广义上的HTTP,即使用了HTTP规范的协议,而不能区分那些使用了HTTP规范的协议。本文提出的方案使用的是现在应用最广的模式描述语言――RegExp与报文内容进行匹配。   ??L7-filter[2,3]是一个Linux内核Netfilter子系统的协议分类器,可以识别应用层的数据包。当全部开启七十多种协议时,系统的吞吐量迅速下降到不及10 Mbps,远低于当前LAN的速度。统计表明超过90%的CPU资源用于RegExp匹配,已无法完成其他工作[4]。本文提出的硬件体系结构能实现高速的网络协议识别,达到Gbps以上的性能。   ??Sidhu等人[5]和Clark等人[6]采用FPGA器件构造NFA,达到了较高的存储空间利用率。Moscola等人[7]用DFA代替NFA,提高了性能。很高的并行度和丰富的器件资源,使得基于FPGA的方法可达到很高的吞吐率,但该方法不适合??RegExp经常更新的应用。对于正在使用的设备,快速地重新综合、修改RegExp电路相对困难。本文提出的基于存储器的硬件结构,更新时只需更改存储器的内容,方便简单。   ?ケ疚奶岢龅慕峁购头椒ㄊ视糜谕?络数据包识别与分类的各种应用,软硬件相结合的方法达到了很高的性能。主要提出和解决了三个问题:提出并实现了一种基于FSM的高速网络协议识别设备;运用相关算法对DFA对应的状态转移表进行了压缩优化;提出了对应的硬件匹配算法。      ??1背景及相关工作      1.1正则表达式   ?フ?则表达式(regular expression,RegExp)是由普通字符(如字符a~z)以及特殊字符(即元字符)组成的文字模式,应用时作为一个模式与所搜索的字符串进行匹配。例如,“^.?\x02.+\x03??$”用来识别网络中QQ的数据包,它用来匹配第一个或第二个字符ASCII码值为0x02(若不满足,很快即可确定匹配不成功),随后接一个或多个任意字符,最后一个字符ASCII码值对应的十六进制是0x03的报文内容。例如,“\x02sa\x03”“k\x02ajask\x03”就是匹配的数据包内容,“dsa\x02js\x03”则不匹配。详细的语法知识参考文献[8]。   ??1.2FSM   ??FSM是为研究有限内存的计算过程和某些语言类而抽象出来的一种计算模型。它拥有有限数量的状态,每个状态可以迁移到零个或多个状态,根据输入的字符决定执行哪个状态的迁移。FSM可以表示为一个有向图,在数字电路设计、词法分析、文本编辑器等方面均得到了应用。FSM可以分为NFA和DFA两种。其中,NFA可以转换成DFA。   ?ヒ桓?FSM是由下述元素构成的五元组(Q,∑,q??0,δ,A)。其中:有穷状态集合Q;有穷输入字母表∑;初始状态q??0;转移函数δ:Q×∑→Q;接受状态A。FSM从初始状态q??0起,逐一读入由输入字母表∑中字母构成的输入串的每个字母,根据当前状态、输入字母和转移函数δ决定自动机的下一个状态。当输入的字符串结束时,若自动机处于接收状态集合A中的某一个状态,则表示自动机接收该字符串;否则不接收。DFA对每个输入只产生一个状态转移,而NF

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档