(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf_第1页
(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf_第2页
(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf_第3页
(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf_第4页
(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机科学与技术专业论文)基于正则表达式的应用层协议识别技术研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院硕十学位论文 摘要 准确识别网络链路中流量的协议类型,是带宽管理、入侵检测、防火墙、内 容审计等应用的基础。传统的协议识别基于端口映射机制实现,但由于采用动态 端口通信的协议逐渐增多,该技术准确性已无法满足需求。本论文通过对当前的 各种协议识别技术进行深入研究,根据实际应用需求,采用基于正则表达式的协 议识别技术。 采用正则表达式描述协议应用层数据的特征,通过正则表达式对报文进行深 度检测判别协议类型。论文主要包括下列内容: ( 1 ) 通过对n f a 匹配引擎和d f a 匹配引擎相关研究的分析比较,选择采用 基于d f a 的正则表达式报文匹配技术。 ( 2 ) 针对d f a 状态转换表存储空间的膨胀,提出转换表的三分压缩法。将 转换表拆分成三个表,分别对表中各行和各列大量存在的相同元素进行压缩。通 过对l 7 f i l t e r 中协议的正则表达式进行测试,该方法压缩率一般可以达到9 5 以 上。 ( 3 ) 基于正则表达式可匹配的字符串首字符集合,提出一种新颖的分组方法。 该方法既可以有效减少d f a 的存储空间,又不会对报文的匹配速度造成过大影响。 对十三种常用协议进行测试,使用该方法存储空间只为分组前的2 4 2 。 ( 4 ) 综合考虑准确性、吞吐量、灵活性等因素,设计了软硬件相结合的协议 识别系统框架,既便于模式特征的自动编译和快速更新,又可以实现报文的高速 检测匹配。 ( 5 ) 实现了一个基于千兆网卡的正则表达式协议识别系统。测试结果表明, 该系统可以在千兆的网络链路上实现在线的协议识别。 主题词:协议识别,正则表达式,确定有限自动机,状态转换表压缩 第i 页 国防科学技术大学研究生院硕士学位论文 a b s t r a c t t h ea c c u r a t ei d e n t i f i c a t i o no ft h ep r o t o c o l si nn e t w o r ki st h eb a s ef o rb a n d w i d t h m a n a g e m e n t ,i n t r u s i o nd e t e c t i o n ,f i r e w a u ,a n dc o n t e n ta u d i t i n g t r a d i t i o n a l l yt h e p t o t o c o li d e n t i f i c a t i o nw a sr e a l i z e dt h r o u g hm a p p i n gm e c h a n i s mb a s e do np o r t h o w e v e r ,i t sa c c u r a c yc o u l dn o tm e e tt h ed e m a n d so fa p p l i c a t i o nb e c a u s ea ni n c r e a s i n g n u m b e ro fp r o t o c o l sa p p l i e dt h ed y n a m i cp o r t s t h i st h e s i sc o n d u c t sa ni n - d e p t h r e s e a r c ho np r o t o c o lr e c o g n i t i o nm e t h o d sa n ds e l e c t st h em e t h o db a s e do nt h er e g u l a r e x p r e s s i o n sa c c o r d i n gt ot h ep r a c t i c a ln e e d s r e g u l a re x p r e s s i o n s ,t h ep a t t e r n sf o rt h ea p p l i c a t i o nd a t ao ft h ep r o t o c o l s ,a r e e m p l o y e dt oi n s p e c tt h ep a c k e t sa n dd i s t i n g u i s ht h ep r o t o c o lt y p e s t h em a i n c o n t r i b u t i o n so ft h et h e s i sa r ea sf o l l o w s ( 1 ) ac o m p a r a t i v ea n a l y s i sb e t w e e nn f am a t c h i n ge n g i n ea n dd f am a t c h i n g e n g i n ei sp e r f o r m e d ,a n dt h er e g u l a re x p r e s s i o nb a s e do nd f ai sa d o p t e d ( 2 ) at h r e e d i v i s i o nc o m p r e s s i o nm e t h o di sp r o p o s e db e c a u s eo ft h ee x p a n s i o no f t h em e m o r ys p a c e si nt h ed f at r a n s i t i o nt a b l e s b yd i v i d i n gt h et r a n s i t i o nt a b l ei n t o t h r e et a b l e s ,t h ec o m m o me l e m e n t si ne v e r yr o wa n de v e r yc o l u m ni ne a c ht a b l ew e r e c o m p r e s s e d t h et e s t i n gr e s u l t so ft h er e g u l a re x p r e s s i o n si nl 7 一f i l t e ri n d i c a t et h a tt h e c o m p r e s s i o nr a t i oi sa b o v e9 5 ( 3 ) an e wg r o u p i n gm e t h o di sp r o p o s e db a s e do nt h ei n i t i a lc h a r a c t e r so ft h e s t r i n g sw h i c hm a t c h e dt h er e g u l a re x p r e s s i o n s t h i sm e t h o dr e d u c e st h em e m o r ys i z eo f d f aa n dd o e sn o ti m p a c tt h em a t c h i n gs p e e do ft h ep a c k e t s t h et e s t i n gr e s u l t so ft h e 13n o r m a lp r o t o c o l sr e v e a lt h a tt h em e m o r ys i z ei s o n l y2 4 2 a st h a tb e f o r et h e g r o u p i n g ( 4 ) t a k i n gt h ea c c u r a c y ,t h r o u g h p u t ,a n df l e x i b i l i t yo ft h ep r o t o c o li d e n t i f i c a t i o n s y s t e mi n t oa c c o u n t ,i ta d o p t sas o f t w a r e h a r d w a r ec o m b i n e df r a m e w o r ki nt h es y s t e m t h r o u g ht h i sf r a m e w o r k ,n o to n l yt h ep a t t e r n sc a nb ec o m p i l e da u t o m a t i c a l l ya n d u p d a t e df a s t ,b u ta l s ot h ep a c k e t sc a n b em a t c h e di nh i g hs p e e d ( 5 ) ap r o t o c o l i d e n t i f i c a t i o ns y s t e mb a s e do nr e g u l a re x p r e s s i o n si sr e a l i z e d t h r o u g hag i g a b i tn e t w o r kc a r d t h et e s t i n gr e s u l t ss h o wt h a tt h es y s t e mc a ni d e n t i f yt h e p r o t o c o l so n l i n ew h e nt h e ya r eo nt h eg i g a b i tn e t w o r k k e yw o r d s :p r o t o c o li d e n t i f i c a t i o n ,r e g u l a re x p r e s s i o n ,d e t e r m i n i s t i cf i n i t e a u t o m a t o n ( d f a ) ,t r a n s i t i o nt a b l ec o m p r e s s i n g 第i i 页 国防科学技术大学研究生院硕j :学位论文 表目录 表2 1 公知端口示例6 表2 2 协议识别技术比较9 表2 3 正则表达式常用操作符1 0 表2 4 正则表达式a ( a l b ) * b 的状态转换矩阵1 3 表2 5 对表2 4 中状态集重命名的状态转换矩阵13 表2 6n f a 与d f a 比较1 6 表3 1 “木a b c e + 0 9 d 的状态转换表1 8 表3 2 列可压缩的表1 9 表3 3 列压缩提取后表1 9 表3 4 行可压缩的表2 0 表3 5 行压缩提取后表2 0 表3 6 表3 2 的r u n 1 e n g t h 编码2 0 。 表3 7 表3 4 的r u n 1 e n g t h 编码2 0 表3 8 表3 5 的存储格式2 0 表3 9 表3 7 的索引2 1 表3 1 0 调换表3 1 的行和列2 3 表3 1l 表3 7 的优化2 4 表3 1 2 表3 1 1 的索引。2 4 表3 1 3l 7 一f i l t e r 中常用协议正则表达式压缩效果2 5 表3 1 4 两种匹配引擎比较2 5 表3 1 5 常见协议的d f a 状态数2 6 表3 16l 7 f i l t e r 协议模式特征2 7 表3 1 7 表3 1 5 中协议的集合h 2 7 表3 1 8 规则集中正则表达式分类一2 8 表3 1 9 表3 1 5 中协议的模式分组3 0 表3 2 0 模式分组后的状态数一3 l 表4 1 报文控制域结构4 1 表4 2l 7 f i l t e r 中协议正则表达式匹配效果4 3 表4 3 状态转换表中每一项的内容4 7 表4 4 系统准确性测试采样流量5 0 表4 5 协议识别结果5 1 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图2 1t h o m p s o nn f a 构造算法( a ) a ;( b ) r li r 2 ;( c ) r l r 2 ;( d ) ( r 1 ) 幸1 l 图2 2a ( a l b ) * b 对应的n f a 1 2 图2 3a ( a l b ) * b 的状态转换图13 图3 1 “木a b c e 】+ 0 9 d 对应的n f a 17 图3 2 “母a b c e + o 9 1 d ”的d f a 1 8 图3 3 拆分后转换表查找流程图2 2 图3 4 双匹配引擎结构2 8 图3 5 模式分组流程图3 0 图4 1 协议识别系统结构3 4 图4 2 协议识别网卡硬件结构图3 6 图4 3 协议识别系统的软件结构示意图3 7 图4 4 流链表3 8 图4 5 新报文处理流程图3 9 图4 6 流管理的主要数据结构3 9 图4 7 空闲流i d 管理示意图。4 0 图4 8 报文存储结构4 l 图4 9q q 协议报文内容特征一4 2 图4 1 0 规则配置整体流程图4 4 图4 1 1 由正则表达式到d f a 的编译流程图4 5 图4 1 2 状态转换表写入s r a m 的流程图4 6 图4 1 3 状态转换表结构4 7 图4 1 4 匹配引擎工作流程图4 8 图4 15 匹配模块结构示意图4 9 图4 1 6 系统准确性测试环境5 0 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意 学位论文题目:基王垂则盔达塞盟廑用屋迹这迟剔拉苤丑究 学位论文作者签名:宝0 丝丝日期:触。富年j 2 月27 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:基王垂则盍达盎鲍廑屈屋协这迟剔技苤盟究 学位论文作者签名:趔鱼整 日期:知o1 年1 2 月卫7 日 作者指导教师签名:- 一惫蟑过渣l 日期: 撕暑年2 月2 厂日 国防科学技术大学研究生院硕+ 学位论文 第一章绪论弟一早珀t 匕 近些年来,我国的互联网络得到了迅猛发展,新的网络应用不断涌现。电子 邮件、即时通信、电子商务、远程办公、网络音频、网络游戏等得到了长足发展 和迅速普及i 。互联网已经渗透到人们工作和生活的方方面面。 网络犯罪分子以追求经济利益为主要目标,利用仿冒网站、伪造邮件、盗号 木马、后门病毒等,窃取大量用户数据牟取暴利【2 1 。为应对互联网络中日益严重的 安全问题,保障互联网络正常有效的运行,各种网络安全设备和信息安全技术成 为当前研究的热点。 1 1 研究背景 伴随着基于互联网的各种业务的不断普及和互联网在生产、生活中作用的增 强,信息安全问题日益突出。准确把握互联网流量中各种业务的种类和其所占的 比例情况,一方面有助于互联网服务提供商更科学的运营管理互联网,更好的保 证主流的互联网应用,合理分配各业务网络带宽,提高用户体验。另一方面,有 利于安全设备厂商根据具体的业务类型提供更有针对性的安全检测设备,解决与 各种网络应用密切相关的安全问题。 应用层协议识别,简称协议识别,目的是标识出网络链路上传输的流量所使 用的应用层协议类型。互联网的迅速发展,各种基于互联网的新应用软件不断涌 现,相应流量也不断增多,协议识别越来越困难。准确识别网络链路中流量的应 用层协议类型,对提高网络服务质量、进行入侵检测、流量控制和计费管理等具 有重要的意义。 传统上一直是基于端口映射机制对应用层协议进行标识。例如,当发现捕获 的网络报文的源或目的端口为8 0 ,则认为该报文属于h t t p 协议。但随着越来越 多的网络协议不使用固定的端口进行通信,基于报文端口的协议识别方式受到很 大限制,准确性受到很大挑战【j 4 1 : ( 1 ) 采用动态端口的网络协议大量涌现。f t p 协议被动模式下的数据传输采 用动态端v 1 。而近年来众多的p 2 p 协议软件,如e m u l e t 5 1 、迅雷【6 】、b i t c o m e t 7 】等, 也不再采用固定端口,而是在协议运行过程中动态协商端口。这类采用动态端口 的协议无法通过端口号进行协议识别【8 1 。 ( 2 ) 网络管理员出于抵御外部攻击等安全需要,将原本有注册端口的传统应 用移到非注册端口上。例如,架设企业内部的w e b 服务器时,不采用公知的8 0 或8 0 8 0 端口,架设邮件服务器时,s m t p 协议不采用端口2 5 ,p o p 3 协议不采用 第1 页 国防科学技术大学研究生院硕士学1 :7 = 论文 端l j1 l o 。对这种自定义端口的网络应用无法基于端口识别协议类型。 ( 3 ) 木马程序、间谍软件出于躲避防火墙和入侵检测系统的目的,不采用固 定的通信端口。当前的许多木马程序、间谍软件为了绕开防火墙的封堵和入侵监 测系统的检测,采用常见协议的公知端口( 如h t t p 协议的8 0 端口) 或隧道技术 ( 如h t t p 隧道技术) 传送私有通信数据。对这类流量的检测也无法基于端口实 现。 基于以上这些原因,依赖端口进行协议识别的技术越来越无法满足协议识别 准确性的要求。因此,探寻一种新的协议识别技术以适应当前的变化显得异常迫 切。 1 2 课题意义 准确识别网络链路中流量的应用层协议类型,对提高网络服务质量、检测网 络异常流量、增强网络防护能力具有重要的作用。研究协议识别的意义主要有以 下三个方面: ( 1 ) 协议识别有助于有效进行网络带宽管理。当前,基于p 2 p 协议的下载和 视频软件得到了迅速发展和广泛应用,但p 2 p 协议的流量挤占了其它应用的带宽, 影响网页浏览和邮件收发等基础应用一j 。一些政府、企业单位为提高工作效率,网 络管理人员需要在一些时段限制网络聊天、网络游戏等非工作需要的网络应用。 可见,带宽管理成为网络管理人员的一项重要任务,各种带宽管理设备和带宽管 理软件种类繁多,其中最主要的技术就是对各种应用层协议的准确识别。如基于 l i n u x 的协议识别软件l 7 f i l t e r 1 0 】主要目的就是为了进行带宽管理。 ( 2 ) 入侵检测系统( i d s ) 和入侵防御系统( i p s ) 的有效工作依赖于协议识 别。当前的主流i d s i p s 系统都采用应用层协议深层解析技术来实现基于协议攻击 特征和协议异常的入侵检测【l l ,1 2 】。而准确判断网络流量的协议类型是实现应用层 协议数据正确解析的前提。例如,当识别出报文属于h t t p 协议时,将这些报文 进行流重组后直接交给h t t p 协议分析引擎进行协议解码和入侵检测。 ( 3 ) 协议识别是内容审计系统的前提和基础。网络内容审计系统从网络关键 节点收集网络报文,对网络传送的内容进行审计分析,实现对网络中传送的非法、 色情内容的过滤和避免传送涉及政府、军队或企业的秘密信息。内容审计系统需 要根据网络流量的应用层协议类型将流量还原成原始的应用层数据,在还原出的 数据上进行内容检测【l 引。 由于协议识别在网络管理和网络安全领域具有上述重要作用,而层出不穷的 互联网应用软件大多都采用了新的自定义的通讯协议,因此协议识别技术的研究 对有效管理和控制互联网通信具有重要意义。 第2 页 国防科学技术大学研究生院硕士学位论文 1 3 主要工作 本文在对当前的各种主流协议识别技术进行分析研究的基础上,通过对基于 端口、基于测度和基于负载的协议识别技术的优缺点进行比较,结合入侵检测、 带宽管理、流量分析等实际应用的需求,选择采用基于正则表达式的协议识别技 术。 该协议识别技术首先提取出代表协议特征的正则表达式,然后通过网络流量与 正则表达式的匹配情况来判断该流量是否属于某种协议。 本文所做的主要工作集中在下面几个方面: ( 1 ) 确定采用d f a 匹配引擎实现基于正则表达式的协议识别。协议识别系 统中最核心的技术是正则表达式匹配引擎的实现。本文通过比较当前基于n f a 和 基于d f a 的匹配引擎技术,确定了更有利于高速匹配、灵活性更强的d f a 匹配 引擎技术路线。 ( 2 ) 提出了d f a 状态转换表的三分压缩方法。d f a 匹配引擎存在状态转换 表膨胀的问题,针对转换表中存在的大量冗余元素,提出将转换表拆分成三个表, 将表中各行和各列相同的项提取出来进行压缩,并设计了拆分后三个表的存储和 查找算法。测试结果表明,该方法对常见协议的转换表压缩率在9 5 以上。 ( 3 ) 提出一种基于首字符集合的模式分组方法。多个协议的正则表达式编译 成一个单独的d f a 时会带来状态转换表的膨胀,采用通常的模式分组编译成若干 个d f a 又会增加访问转换表的次数。本文根据协议识别环境中正则表达式的特点 提出根据正则表达式匹配的首字符集合进行分组的方法,既可以压缩转换表,又 不会对匹配时的速度造成过大影响。 ( 4 ) 设计了软硬件相结合的协议识别系统框架。系统的软件部分将正则表达 式编译成n f a ,根据子集法由n f a 构造成d f a ,然后最小化得到最小d f a 的状 态转换表。硬件部分实现输入报文的流管理,报文与状态表的匹配等功能。 ( 5 ) 参与实现了一个基于千兆网卡的正则表达式协议识别系统。详细介绍了 其中的流管理、报文匹配、模式编译等关键模块的设计和实现细节,并对系统性 能进行了测试。 1 4 本文结构 本文分成五章,各章内容如下所述: 第一章介绍了本课题的研究背景,论述了协议识别在当前网络安全领域的意 义,并对本文进行的主要工作作出说明。 第二章介绍了当前的几种主流协议识别技术,并对基于正则表达式的协议识 第3 页 国防科学技术大学研究生院硕+ 学位论文 别中的核心技术正则表达式匹配引擎的研究现状进行了详细分析。 第三章针对d f a 状态转换表的膨胀问题,提出转换表的拆分和模式分组两种 压缩方法,有效解决转换表的存储空间问题。 第四章设计了软硬件相结合的协议识别系统的框架结构,并对如何实现一个 基于网卡的协议识别系统进行了详细的论述。 第五章对本课题的工作进行了总结和展望。 第4 页 国防科学技术大学研究生院硕+ 学位论文 第二章相关研究 弟一早个日大研氕 应用层协议识别是网络安全领域的一项重要技术,是网络带宽管理、入侵检 测和流量分析等应用的关键环节。但由于采用动态端口和自定义端口的应用软件 逐渐增多,传统的基于端口映射的协议识别技术准确性降低,无法满足应用需求。 本章介绍了当前的主流协议识别技术的发展状况,并概括了正则表达式匹配引擎 的研究现状。 2 1 协议识别技术研究现状 传统上采用端口进行协议识别。虽然采用端口进行识别容易达到较高的识别 速率,但是随着网络应用的发展,其缺陷也越来越明显。众多新出现的p 2 p 协议, 以及越来越多的传统协议,都不再使用固定的端口通信。研究人员对协议识别方 式进行了广泛研究,当前主要集中在以下三个方面【1 4 】: 2 。1 1 基于端口的协议识别 网络中多种应用层协议可以同时运行在同一台计算机的同一个i p 地址上。由 于i p 地址与网络应用程序的关系是一对多的关系,所以主机需要通过端口号来区 分不同的网络服务。对于端口号的分配,有两种基本的方式u5 。第一种方式是采 用全局分配,即由一个公认的中央机构统一进行分配。虽然这样容易确定应用程 序和端口的对应关系,但不能适应大量且迅速变化的端口使用环境。第二种分配 方式是本地分配,即动态分配。动态分配的方式是:当某应用程序进程需要访问 网络时,主机操作系统临时为该进程分配一个本地唯一的端口号。但本地分配方 式使得其它主机无法获知分配情况,无法建立通信。 i n t e m e t 同时采用上述两种分配方式,将端口分成两部分,一部分是保留端口, 以全局方式进行分配。这样每一个标准的服务器应用程序都拥有一个或多个全局 的公认端口号;另一部分是自由端口,以本地方式进行分配。当某应用程序想要 通过网络和远地程序通信之前,它会首先申请自由端口号与远地程序通信。 i a n a ( i n t e m e t a s s i g n e d n u m b e r s a u t h o r i t y ) 1 1 6 j 为全局端口的统一注册机构。 其中几种常见协议的端口号如表2 1 所示。利用端口进行应用层协议识别,其主要 原理就是因为存在公认端口和注册端口。将t c p 、u d p 报文中的源或目的端口与 i a n a 中的注册端口相比对,就可以识别出应用层协议类型。 传统上一直是基于端口映射机制对应用层协议进行识别。随着越来越多的网 络协议不使用固定的端口进行通信,基于报文端口的协议识别受到很大限制,准 第5 页 国防科学技术大学研究生院硕士学位论文 确性受到很人挑战【4 ,1 7 j 。但由于基于公知端l j 进彳j 二协议谚 别操作简单,识别速度快, 更容易跟上网络带宽日益增长的步伐,在识别d n s 、s m t p 、p o p 3 等目前端口比 较固定的传统协议时依然有一定的价值。 表2 1 公知端口示例 端口协议说明 2 1f t p 文件传输协议控制端口 2 2s s h s s h 远程登录协议 2 3t e l n e tt e l n e t 服务 2 5s m t p 简单邮件传输协议( s m t p ) 5 3d n s 域名解析 8 0h t t p 用于w w w 服务的超文本传输协议 1 0 1p o p 3 接收邮件的协议 2 1 2 基于测度的协议识别 基于测度的协议识别根据各协议产生的流测度的差异识别应用层协议。基于 测度识别协议无需分析报文体的内容,只要根据报文头中的域值、报文大小、报 文间隙等特征分析流量所属的应用类型。例如,w e b 浏览产生的流量一般为短流 小报文,而各种p 2 p 协议的流量一般为长流大报文【1 4 j 。基于测度的协议识别一般 采用机器学习的方式,利用已经按协议类型分类的报文来训练系统,使其把握该 类应用的流测度特征以识别新的流量【l 引。 w r i g h t 等人i l9 j 提出了一种基于隐式马尔可夫模型进行网络流量分类的方法。 该研究对每一个协议采用几百个流量序列进行h m m 训练,根据报文在链路上传 输的大小、报文与报文之间的间隔,以及报文的方向等对链路上的流量进行学习, 对s m t p 、h t t p 、f t p 、t e l n e t 等协议进行了识别,取得了较好的效果。c h a r l e sw r i g h t 等人1 2 0 】又在此基础上开展研究,在构建协议模型与分类器、量化方式,以及t c p 会话聚类等方面进行优化,建立了一种新的只使用报文大小和报文间隔时间的混 合模型,使其识别准确性提高了大约3 0 。 b e m a i l l e 等1 2 l j 采用无监督聚类的学习方式,仅采用每条流的前五个报文的大 小构造五维空间,采用欧氏距离,以k 均值算法进行分类。对不可知流,采用一 个简单的启发式方式将其归类为最普遍的流量。作者对这种方式的准确性进 行了评估,其准确性一般,但是计算代价非常小。 温超、郑雪峰等【2 2 】提出通过网络流量信息识别p 2 p 协议。基于流量分析的p 2 p 协议识别方法,依据以下四个特征识别p 2 p 协议:p 2 p 主机的上下行流量基本相 第6 页 国防科学技术大学研究生院硕十学位论文 当;p 2 p 主机连接的其它主机的数量较多;p 2 p 主机既为服务器又为客户端;p 2 p 主机的监听端口的特点与其它协议不同。虽然基于流量分析的识别方法只需对数 据包的头部信息进行检测,不需要检测数据包的负载,具有简单、高效的特点。 但是只能识别出网络流量是否为p 2 p 协议,无法识别出具体是哪种p 2 p 协议或是 哪种非p 2 p 协议,具有应用的局限性。 m y u n g s u pk i m 纠4 l 提出识别网络流量的一种新颖的方法,首先根据流量类型 将当前的网络应用分成几大类。使用这种分类,研究出一种叫做流分组的方法确 定报文的应用协议名称。流分组的方法包括下面三步:通过离线搜索应用流量构 建应用端口表( a p t ) ,从每条流中选出重要端口( i p s ) ,生成流关系图( f r m ) 确定每条流的应用类型。作者将这种方法运用在研制的流量分析系统n o m o n 上, 部署在企业网和i n t e r n e t 的接口之间。 基于测度的协议识别方法不需要检测报文体的内容,消耗计算资源相对较小, 并且对流量的细微变化适应性强,流量是否进行加密对识别准确性影响不大。 基于测度的方法适合将流量分成较大的类型,如p 2 p 流量和非p 2 p 流量等, 要准确识别每一种应用层协议比较困难,特别对于行为相似的应用协议分辨率较 差,会带来较高的误报率。 基于测度的协议识别不适合在线处理的应用环境。基于测度进行协议识别, 需要积累一定的流量,根据缓冲的报文进行分析才能够识别协议。目前网络链路 的带宽持续增长,报文吞吐量非常高,报文的缓存困难较大。因此基于测度的协 议识别较多运用在离线状态下。 2 1 3 基于负载的协议识别 基于负载的协议识别,对应用层协议交互过程中产生报文的内容进行分析, 找出不同于其它协议的模式特征,根据各协议特有的模式特征确定流量所属协议 类型。基于负载的协议识别主要有采用固定字符串和正则表达式来表示协议特征 两种方式。 ( 一) 固定字符串表示协议特征 s u b h a b r a t as e n 等人【8 】分析了五种p 2 p 协议的相关文档和实际报文流量,确定 出协议的应用层特征串,并认为只需要检测报文流的前几个报文即可达到较高的 识别率,实现了一种在比较高速的网络上也可以准确有效地在线过滤p 2 p 流量的 过滤器。基于特征码的协议识别比基于端口的识别准确性要高,误报率和漏报率 均低于5 。 陈亮等【3 】也采用应用层协议的特征串进行协议识别。选取每种应用层协议交互 过程中必定出现的且是特有的字段识别各种协议。作者通过对七种常见的应用层 第7 页 国防科学技术大学研究生院硕士学位论文 协议的相关文档的研究,找出了协议交互过程中特有的且必定出现的固定字段。 若协议中只有唯一的固定字段,就选取该字段作为协议的特征串;若存在多个固 定字段,则对协议的实际报文进行统计,选取出现频率最高的字段作为协议的特 征串。实验结果表明,这种识别方法比基于端口的方法具有更高的准确性。 李明伟等【2 3 】研究了如何基于报文的有效载荷准确识别b t 流量。作者通过增加 协议识别的特征串的个数来提高识别的准确性。通过深入分析b t 协议的交互过 程,选出了7 个固定字段作为识别b t 协议的特征串,有效提高了识别的准确性, 但在识别效率上有很大降低。 a n d r e ww m o o r e 等【2 4 j 针对基于端口的协议识别不够准确的现状,研究基于 内容的协议识别的多种方式,该研究采用离线处理方式,为达到准确的识别,采 用多种方式,对报文流依次按照各方法进行协议识别,直到识别出协议类型。同 时通过该研究表明了依靠端口识别出的协议流量与实际流量的差距,证明了基于 端口的协议识别无法满足需求。但该算法无法完全自动实现识别过程,且未给出 在线处理的方案。 ( 二) 正则表达式表示协议特征 因为正则表达式比固定字符串具有更强的表达能力和更好的灵活性,采用正 则表达式代替固定字符串表示协议的特征成为研究的热点。 l 7 f i l t e r l l 0 j 是一个基于l i n u xn e t f i l t e r 上的根据应用层数据识别协议的软件, 它不需要通过端口就可以识别k a z a a ,h t t p ,b i t t o r r e n t ,f t p ,e d o n k e y 2 0 0 0 等协 议。l 7 f i l t e r 很容易更新其正则表达式,用户也可以根据自己的需要,修改正则表 达式以满足特定应用。但是,由于l 7 f i l t e r 采用n f a 的匹配引擎,并且每个正则 表达式规则单独编译成一个n f a ,因此处理能力不高,当开启7 0 个协议的规则时, 吞吐量不到1 0 m b p s ,达不到网络中通常应用的需要,并且c p u 负载超过9 0 , 无法处理其它任务 2 5 1 。 h o l g e rg r e g e r 等1 1 2 j 对基于正则表达式的协议识别在n i d s 中的应用进行了研 究。作者采用l 7 f i l t e r 1 0 系统中的正则表达式作为协议特征,但不采用l 7 f i l t e r 系 统的匹配引擎,将其中的正则表达式转换为开源的n i d s 系统b r o 2 6 】的语法,采用 b r o 的匹配引擎。作者发现虽然b r o 和l 7 f i l t e r 的匹配引擎工作方式相似,但匹配 识别的结果有微小的差距。 范慧萍等【27 j 对基于正则表达式进行协议识别的基本理论进行了系统的研究, 通过正则表达式构造n f a ,再将n f a 编译成d f a ,然后把报文送入d f a 匹配引 擎进行协议识别。文中着重对报文的匹配方式进行研究,对单报文匹配、多报文 叠加匹配、多报文一次性匹配的速度进行了比较,并提出了o n e p a s s 扫描算法。 根据文中对测试数据的评估和分析,采用o n e p a s s 扫描算法加速后速度提高了2 6 第8 页 国防科学技术大学研究生院硕士学位论文 倍。采用d f a 的匹配引擎,虽然比采用n f au j 以提高吞吐量,但存储空l 、日j 的增 长巨大,导致同时参加匹配的正则表达式数量较少,限制了应用范围。 侯婕等【2 8 】提出了基于f s m 进行高速协议识别的硬件实现方案。该方案将正则 表达式编译为有限状态自动机( f s m ) ,用硬件实现模式匹配,解决了基于软件 的模式匹配无法适应网络高速发展的问题。虽然该协议识别结构大大提升了正则 表达式匹配引擎的匹配速度,但同时可匹配的规则数量依然有限,并且没有给出 具体的识别效果评估,若要在骨干链路实现协议识别依然存在许多技术困难。 基于负载的协议识别根据各应用协议传输的报文内容特征进行识别,准确性 较高,也有利于实现在线识别。但需要对报文的负载进行匹配,消耗大量的计算 资源( 2 9 , 3 0 。如何满足网络带宽的快速增长,达到较高的吞吐量是最主要的问题。 2 1 4 协议识别技术比较 三类协议识别技术各有优缺点,其性能的比较如表2 。2 所示。基于端口的协议 识别技术虽然实现简单,可以达到很高的吞吐量,但其逐渐降低的准确性越来越 无法满足需求。而基于测度的协议识别由于其较高的准确性和吞吐量,人们对其 进行了大量的研究并取得了一定范围的应用,但其较差的实时性无法满足高速网 络的在线处理需求。基于负载的协议识别技术在识别的准确性和实时性上较好, 适合在线识别应用的要求,但匹配过程比较消耗资源,吞吐量不容易提高。 表2 2 协议识别技术比较 协议识别技术 准确性实时性吞吐量 基于端口较低高高 基于测度 较高较低较高 基于负载 两 较高较低 本文重点研究基于负载的协议识别技术,因为正则表达式比固定字符串的表 达能力更强,可以更灵活的表示协议特征,所以采用正则表达式来匹配报文的有 效载荷。 2 2 正则表达式匹配引擎相关研究 2 2 1 正则表达式和有限自动机 19 5 6 年,数学家s t e p h e nk l e e n e 提出了正则表达式( r e g u l a re x p r e s s i o n ) ,主要 通过字符的格式匹配进行词法分析。正则表达式,是指一个用来描述或者匹配一 系列符合某个句法规则的字符串的单个字符串。作为一种表示语言,定义了自己 的一套描述方式,来描述各种各样的字符类。关于正则表达式的基本内容在【3 1 ,3 2 】 第9 页 国防科学技术大学研究生院硕七学位论文 中有详细描述。 定义1 :正则表达式【3 l 】 用表示一个有限的非空字符集合,用表示由中的有限个元素组成的字 符串的集合,空字符串用表示。那么正则表达式的定义如下: 1 ) 和西都是上的正则表达式; 2 ) 任何a ,a 是上的正则表达式; 3 ) 假定u 和v 都是上的正则表达式,那么( u i v ) ( 表示“或) 、( u v ) ( 表 示“连接 ) i ( u ) ( 表示“闭包”) 也都是正则表达式。 仅由有限次使用上述三步骤而得到的表达式才是上的正则表达式。 为了表示的方便,正则表达式语言进行了扩展,引入了一些具有特定意义的 操作符,如表2 3 所示。但所有经过扩展的正则表达式都可以通过等价的变换得到 上述定义的标准正则表达式。 表2 3 正则表达式常用操作符 操作符说明举例 j “或”关系,匹配左边或者右边 a c b d 匹配字符串a c 或b d 9 匹配前面的子表达式零次或一次 d o ( e s ) ? 匹配d o 或d o e s $ 匹配字符串的结束位置 r e g e x p $ 只匹配字符串结尾为r e g e x p 的字符串 匹配字符串的开始位置 a r e g e x p 只匹配字符串开始为r e g e x p 的字符串 匹配任意单个字符 a 匹配a a ,a b ,a c 等 + 匹配前面的子表达式1 次或多次a + 匹配a ,a a ,a a a a a 等字符串 幸 匹配前面的子表达式0 次或多次a b * 匹配a ,a b ,a b b ,a b b b b b 等字符串 标记一个子表达式的开始和结束 ( )( a l b ) c d e 匹配a c d e 或b c d e 位置 a 5 ) 匹配a a a a a ;a 5 ,) 匹配a 至少5 次;a 5 ,1 0 ) ) 修饰匹配次数的操作符 匹配a 至少5 次,至多l o 次 口 字符集合,匹配其中的任意字符 a b c d 匹配a b ,a c 和a d 】 字符集合,匹配非表中字符 【 a 】除了a 字符外,其他任何字符都匹配 b e n 匹配r l ,其中n 为十六进制转义值x 4 l 即匹配字符a 例如正则表达式“ 【a b c * ( r e g l e x p ) $ ,匹配以“a ”,“b ”或“c 开头,后 跟任意个字符,最后是字符串“r e g ”或者“e x p ”。它可以匹配字符串“a b c r e g , “b u s e x p ,或者“c r e g e x p ”等。正则表达式的其他一些语法规则,可参考文献 3 3 】。 正则表达式要自动完成与字符串的匹配工作,需要通过正则表达式匹配引擎。 正则表达式匹配引擎通常采用自动机理论,将正则表达式编译成有限状态自动机。 有限状态自动机分为两种:非确定有限状态自动机( n o n d e t e r m i n i s t i cf i n i t e a u t o m a t o n ,n f a ) 和确定有限状态自动机( d e t e r m i n i s t i cf i n i t ea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论