




已阅读5页,还剩73页未读, 继续免费阅读
(通信与信息系统专业论文)面向流量分析的流模式匹配技术.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 网络流量识别在网络安全、网络监控以及负载均衡等方面起着重要的作用,已 成为网络管理的基础和前提。但随着加密流量和各种新应用的不断涌现,网络流 量识别也面临着巨大的挑战。目前的各种网络流量识别方法( 基于端口、基于载荷 以及统计特征的算法) 都有着各自显著的优缺点,且均不能满足现今数据流分析的 需要。因此需要设计一种简单、规范的机制,来融合各种识别方法的优点,使其 协同工作,实现高效、准确的网络流量识别。 本文提出一种流模式匹配技术,通过定义形式化的描述规范,使得用户可以按 照一定语法和语义,用一个“流模式 来无歧义的表示一系列具有某些共同特征 的数据流;并针对这种表示方法进行解析、处理,设计出基于非确定性有限自动 机( n f a ) 和位并行算法的流模式匹配引擎,实时地从截获的网络数据中准确区分 出指定的流。 本论文主要完成了以下工作: 1 给出流模式的定义以及规范化设计。该模式融合了现有的几种流量识别算 法,并可以灵活方便的进行书写和扩展。 2 根据流模式自身的特点,构建了适合流模式的专用的解析树构造器,将用 户设定的流模式解析成便于程序处理的树型结构。 3 在解析树的基础上,设计出基于非确定性有限自动机和位并行搜索算法的 流模式匹配引擎。 4 对流模式匹配引擎进行系统测试、验证,给出理论分析和功能测试。测试 结果验证匹配引擎能有效地完成流量的识别。 关键词:流量识别流模式n f a 位并行 a b s t r a c t a bs t r a c t r e c o g n i z i n gn e t w o r kt r a f f i ch a sa l w a y sb e e nt h eb a s i so fn e t w o r ks e c u r i t ya n d m a n a g e m e n td u et o i t s a p p l i c a t i o n si nn e t w o r ks e c u r i t y , n e t w o r km o n i t o r i n g ,l o a d b a l a n c i n g ,e t e b u ti th a sf a c e de n o r m o u sc h a l l e n g e sd u et ot h ec o n t i n u e de m e r g e n c eo f n e wa p p l i c a t i o n sa n de n c r y p t e dt r a f f i c t h ec u r r e n t l ya v a i l a b l ea p p r o a c h e ss u c ha s p o r t b a s e dc l a s s i f i c a t i o n , p a y l o a d - b a s e dc l a s s i f i c a t i o na n ds t a t i s t i c a l b a s e dc l a s s i f i c a t i o n , h a v er e s p e c t i v ea d v a n c e sa n db a c k w a r d s ,a n dn o n eo ft h e mp e r f o r mw e l lf o ra l l d i f f e r e n tn e t w o r kd a t ao nt h ei n t e m e tn o w a d a y s t h u sak i n do fs i m p l ea n ds t a n d a r d m e c h a n i s mw h i c hi n c l u d e st h ea d v a n t a g e so fd i f f e r e n tm e t h o d sa n dp r o v i d e sah i g h l e v e lo fr e c o g n i t i o ne f f i c i e n c ya n da c c u r a c ys h o u l db ep r o p o s e da n dd e s i g n e d t h i st h e s i sp r o p o s e sas t r e a mp a t t e mm a t c h i n gt e c h n i q u e b yd e f i n i n gaf o r m a l d e s c r i p t i o ns p e c i f i c a t i o n ,a n ys e r i e so fd a t as t r e a mw i t hc o m m o nf e a t u r e sc a l lb e u n a m b i g u o u s l yd e s c r i b e db yas p e c i a ls t r e a mp a t t e r n ,a c c o r d i n gt oac e r t a i ng r a m m a r a n dl e x e m e a n dt h e nt h es t r e a m p a t t e mi sp a r s e d i no r d e rt oo b t a i nat r e e r e p r e s e n t a t i o n ;a b o v em 巩as t r e a mp a t t e r ne n g i n ei sc o n s t r u c t e db a s e do nt h e n o n f i n i t ea u t o m a t a ( n f a ) a n db i t p a r a l l e ls e a r c h i n ga l g o r i t h m s n em a i nc o n t r i b u t i o n si nt h i st h e s i sa r ea sf o l l o w s : 1 p u tf o r w a r dad e f i n i t i o na n ds p e c i f i c a t i o nd e s i g no fs t r e a mp a t t e r n t h i sp a t t e m c o m b i n e sd i f f e r e n ta p p r o a c h e sa tp r e s e n t ,a n dc a nb ef l e x i b l yw r i t t e na n d e x p a n d e d 2 b u i l das p e c i a ls t r e a mp a t t e r np a r s e rb a s e do ni t so w nf e a t u r e s ,i no r d e rt oo b t a i n t h et r e es t r u c t u r ew h i c hi se a s i l yp r o c e s s e d 3 c o n s t r u c tas t r e a mp a t t e r ne n g i n eb a s e do nt h en f a - b a s e df s ma n db i t p a r a l l e l s e a r c h i n ga l g o r i t h m sa f t e rt h ep a r s et r e ei sb u i l t 4 t e s ta n dv e r i f yt h ep e r f o r m a n c eo fs t r e a mp a t t e me n g i n e ,a n dg i v et h ea n a l y s i s o ft h et h e o r ya n dt h ef u n c t i o n a lt e s t t h ef u n c t i o n a lt e s tr e s u l ts h o w st h e e f f e c t i v e n e s so ft h es t r e a mp a t t e r ne n g i n e k e y w o r d s :t r a f f i cr e c o g n i t i o ns t r e a mp a t t e r nn f ab i t - p a r a l l e l 声明 创新性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他入已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:至座士 日期一2 趔! :鲣:! 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密在一年解密后适用本授权书。 本人签名:兰夏壬 导师签名:戳 日期 型! :堕:! 竺 1 7 1j 朝垫鱼! 芝:! 兰 第一章绪论 第一章绪论 网络流量识别在网络安全、网络监控以及带宽管理等方面起着重要的作用,已 成为网络管理的基础和前提。本章首先对网络流量识别的研究背景进行了简单的 介绍,指出对网络流量进行识别是一个既重要又迫切的研究问题。然后综述了现 有的流量识别的研究现状。接下来提出了本文的研究意义,最后给出了本文的章 节安排。 1 1 研究背景 随着信息技术的飞速发展,互联网已成为人类社会最重要的信息基础设施,成 为人们日常工作生活中不可或缺的一部分。无论是政府、工业部门、企事业单位 还是私人用户,都在使用着网络中的各种应用。为了提供良好的网络环境和网络 服务,网络管理员或网络服务提供者( i s p ) 需要对网络的稳定性和安全性进行管 理与监控,主要包含以下三个方面:( 1 ) 带宽管理( 2 ) 网络安全( 3 ) 网络监控。 近年来,网络环境变得越来越复杂,各种新的网络应用不断涌现,传统的应用协 议如h t ,r p 、f t p 、s m t p 等在总流量中所占的比重越来越少,取而代之的是p 2 p 、 流媒体、网络游戏等更加复杂的应用协议。这对网络安全与网络管理的各个方面 都起到了不容忽视的影响,也将网络流量识别这项技术推向了更为重要的位置。 在带宽管理方面,当前多数i s p 采用上网时长或上网流量计费,使得v o l p 、 p 2 p 等应用能够以低廉的成本占用大量的带宽,其中v o l p 等语音业务还对电信运 营商的传统业务造成损害,因此对不同种类的流量执行不同的资费标准( 按业务 计费) 是未来的发展方向,而识别出特定的应用层流量是实施按业务计费的前提。 此外,一些新应用( 如p 2 p 下载、流媒体、聊天软件、网络游戏等) 占用了大量 的网络带宽和员工的工作时间,严重影响了企业的网络质量和整体生产效率,如 何对这类应用产生的流量进行识别并加以管理,也是人们关注的焦点之一。 在网络安全方面,各类入侵检测防御系统( i d s i p s ) 本质上就是从所有网络 流量中识别出入侵行为的流量;而防火墙及其他访问控制系统都是在识别出用户 指定的流量( 指定源目的地址、指定源目端口、指定包含在u r l 中的关键字等) 后对其加以控制。可以看出,流量识别是网络安全设备的基础功能,没有识别就 无法提供有效的安全防护,因此识别的效率和性能对于这些设备来讲至关重要。 在网络监控和内容审计方面,通常需要恢复出应用的内容( 文本、图像或视频) , 然后执行内容检测。对网络流量识别是应用恢复与检测的前提,只有识别出流量 2 一 面向流鼙分析的流模式匹配技术 属于哪种特定的应用,才能根据其协议规范或是格式恢复出相应的内容。 综上所述,无论是从带宽管理方面、安全防护方面、还是基于应用的内容审计 与监控方面,流量识别都是网络安全和网络管理的基础和前提。能够准确地识别 网络上的各种特定流量,对于服务质量控制( q o s ) 、入侵检测、边界防护、流量 控制、计费管理以及用户行为分析等都有着重要的意义。 随着网络技术的发展,这些新型应用( 流媒体、网络游戏和p 2 p 等1 1 2 1 ) 产生 的复杂流量给网络流量分析识别工作带来了巨大的挑战。这些新型应用的主要特 点如下: 它们的种类繁多、应用广泛,且还在不断的增长中; 使用的应用层协议在格式和操作上都十分复杂而难懂,一些应用( 如 k a z a a l 3 4 ) 为了应对潜在的威胁甚至采用加密的手段来隐藏自己的行为; 随意使用大于1 0 2 4 的非保留端口号作为默认端1 2 ,且不向i a n a t 5 】注册; 拓扑结构从传统的客户端服务器模式( 星状) 换成了p 2 p 通信模式( 网 状) ,大多数p 2 p 应用程序可以直接与其他结点传送数据,这使得网络流 量从整体上变得复杂得多; 许多p 2 p 和流媒体使用动态端口号来相互通信,以此达到逃避检测和控 制的目的1 3 , 4 】。 因此如何有效地分析和处理这些新的应用,如何更精确地对网络流量进行识别 成了近年来研究的热点问题。 1 2 研究现状 网络流量识别在网络安全、网络监控以及负载均衡等方面起着越来越重要的作 用,因此近年来出现了很多关于流量识别的研究。 在协议识别提出的早期,绝大部分的协议识别是按照端口映射方式实现的。传 统的应用层协议识别算法只利用了端口这个一维信息,根据各个应用层协议在 i a n a l 5 , 6 】中注册的端1 2 1 号来区分不同协议。例如,若某个t c p 数据流使用了端口 号8 0 、8 0 8 0 或4 4 3 ,则将其标记为w e b 流量。然而,随着应用的发展,许多网络 应用不再使用固定、可以预测的端口号,而采用动态分配端口号,比如p 2 p 协议 等;更有些应用采取其他手段对其业务流量进行伪装以逃避检测,比如使用t c p 8 0 端口作为开放端口,从而伪装成h 兀p 流量。随着越来越多此类应用的产生,利 用端口来进行识别协议的算法受到越来越多的限制。 为了解决基于端口的协议识别所产生的问题,2 0 0 2 年至2 0 0 4 年期间,很多学 第一章绪论 者研究从网络数据包的内容中提取用于识别的信息,称为基于载荷的协议识别算 法1 7 1 。该算法采用深度包检测( d p i ) 技术来获得应用流量的特征。在算法提出的 早期是要读取网络数据包的全部信息,对全部信息进行解析。虽然这是一种很精 确的算法,但是存在很多的问题,其中之一就是资源消耗太大【s j 。之后提出基于签 名的d p i 协议识别算法,只检测部分的载荷内容,以提高检测效率。这是目前较 为成熟的识别技术,绝大部分厂商所研发的协议识别产品均采用此类算法1 9 l 。深度 包检测技术需要事先详细分析待识别的应用层协议,找出其交互过程中不同于其 他协议的字段,即找出标示协议的特殊字节模式也称为“签名”作为该协议的特 征,从而避免依赖端口进行流量识别的弊端。对于协议特征的提取,若固定字段 唯一,则使用该字段作为协议的特征串;若存在多个固定字段,则选择其中出现 频率最高的字段作为协议的特征串l l 们。最近越来越趋向用正则表达式来代替固定 的特征串来表示协议特征j ,比如l i n u x 中的应用层协议识别软件l 7 f i l t e r 是完全 采用正则表达式来进行协议识别和过滤的。但是由于基于载荷的算法要对应用层 的内容进行分析,所以不能识别加密流量,也不能识别未知流量。 从2 0 0 4 年起,很多学者研究开始提出用统计特征的方法来进行协议识别,称 为基于测度的算法【i2 1 。基于测度的协议识别利用“不同的协议规范对应不同的流 测度”这一差异来区别各个协议。例如,w e b 流一般是短流小报文,而p 2 p 流一 般为长流大报文。m o o r e i l3 j 等人针对流及报文定义了2 4 9 种测度,包括有流持续 长度统计特征、t c p 端口信息、载荷长度信息、包间隔到达时间、基于熵的有效 带宽和包间隔到达时间的傅里叶变换等特征。基于测度的识别算法要求事先有标 准的训练集,即用各个协议的样本集作为训练集来训练识别器,然后根据已知的 特征数据和待识别的流测度,按照特定的判别算法得到待识别流所属的类别,判 断出其使用的协议。为了达到更好的效果,通常总是将基于统计的识别方法与人 工智能领域的方法结合起来,一种方法就是b a y e s i a n 分析技术【1 4 巧j 。由于基于统 计的识别方法一般都要用到流的整体特征,所以一般适用于离线识别。b e m a i l l e i m j 等人实现了基于包头的统计特征来进行流量识别,他们利用整个连接的前部分数 据包来进行聚类分析识别,虽然需要使用同一网络中的大量历史数据来进行训练, 但是此算法可以实现协议的在线识别。由于基于统计的识别算法并不需要知道载 荷的具体信息,因此可以识别出加密流量和未知流量。利用基于统计的识别算法 可以将现有的流量分为五大类:( 1 ) 传统流量,( 2 ) 流媒体, ( 3 ) p 2 p ,( 4 ) 游戏, ( 5 ) 网络存储,并实现对相应类型流量的管理。然而这项技术目前还并不 成熟,其识别精度还有待提高,只能达到粗分类,并且实现起来也比较复杂。 目前在文献中提出很多种不同的协议识别算法,但是还没有一种算法能够对现 在网络中存在的所有应用都做到有效的识别。一些研究试图通过某种方式将几种 识别算法综合起来。k i m 【l ”等人提出首先通过基于测度的算法将数据流分类,然 4 一 面向流精分析的流模式匹配技术 后在所分得的每一类中寻找代表端口来标识协议。虽然该方法可以提高基于端口 算法识别的准确性,但是如果端口的选择方式完全随机,那么该方法将失效。 p a p a g i a n n a k i 【1 8 j 等人出了将基于端口和基于特征串的识别算法相结合;在提出的识 别算法中迭代地使用九个子方法,使识别的准确率达到了9 9 ,但是该算法的时 间和空间复杂度过高,无法满足实际的需要。因此,需要进一步研究如何将各类 算法更好的结合起来,使其优势互补,实现高效的协议识别。s z a b o i j 等人为了实 现更高的识别率,提出将各种不同方法的优点都结合起来。首先得到每一个单独 算法的分类结果,再利用一个复杂的决策机制来得到最终的分类结果。这样,没 有被识别出来的协议比例就变的特 3 b j d , ,并使得识别结果更可靠。 近年来又提出了基于行为的协议识别。k a r a g i n n n i s l 2 0 1 等人提出基于流行为的识 别算法,在三个层面上对协议进行分析:社会、功能以及应用。在b l i n c 提到的 分析方法中用到了一个5 元组( 源和目的地址,源和目标端1 2 号,以及协议) ,另外 还有其他两个特征:流持续长度以及大小。在社会层面上,用到了地址信息,显 示了有多少个主机与此主机相连。在功能的层面上来说,用到源端口和目的端口 信息。最后,在应用层面上,一般通过四个域的关系来判断应用的类型。这四个 域包括:协议、流持续时间、流大d , c 字节数和包数) 、以及平均包长度。b l i n c 技术适合大流量聚集t r a c e 的离线识别。 1 3 研究意义 综上所述,现有的各种流量识别方法各自有着显著的优缺点,但都不能满足现 今数据流分析的需要。另外基于载荷的识别算法和基于统计的识别算法在实现上 较为复杂,只能应用于特定的场合,无法做到灵活的通用配置。目前提出的将几 种流量识别的算法综合起来的论述也只是将各算法简单的结合起来,还没有一种 算法可以将各种识别算法的优点完美的结合起来进行协议识别。本文提出了一种 协议识别框架,可以融合各种识别算法的优点,使各种识别算法协同工作,达到 最佳的识别效果。 本文研究一种面向流量分析的流模式匹配技术,使得用户可以按照一定语法和 语意,用一个流模式来表示一系列具有某些共同特征的数据流。流模式含有特定 的格式,每一类数据流对应一个流模式。流模式中的每一个“元 对应于数据流 中的一个数据包,它包含了至少三类信息:端口信息、载荷信息和统计特征信息。 针对这种流模式表示法,本文所作的研究中还开发了基于正则匹配技术的流模式 匹配引擎,实时地从截获的网络数据中区分出指定的流。 流模式及其匹配引擎的设计融合了各种识别算法如端口信息、基于载荷识别和 统计分析等现有的分析方法,着眼于实现更加优质高效的网络数据流分析,研究 第章绪论 的流模式匹配引擎可以扩展到网络安全,网络监控以及负载均衡等应用方面。 1 4 论文组织结构 本文主要对网络数据流的识别问题进行了研究,在分析了几种代表性的流量识 别方法之后,提出了一种融合各种识别方法的流量识别技术,即流模式匹配技术。 本文对该技术各个环节的设计和实现都做了介绍,包括流模式的设计、流模式的 解析算法、匹配引擎中有限自动机的选取和构造、对流量的搜索和匹配等,还对 系统的性能与功能进行了分析和测试。 本文共分为六章。 第一章:绪论,阐述了流量识别技术的研究背景,综述了现有的流量识别技术 的研究现状,并指出本文的研究意义。 第二章:协议识别算法综述,介绍了几种经常使用的流量识别算法:传统的基 于端口的识别方法、基于载荷的协议识别方法、基于流量统计特征的方法、基于 行为的识别方法和一些综合方法,并分别比较了各种方法的优缺点。 第三章:设计构造了流模式匹配引擎。首先给出了流模式的规范设计,定义了 语法和语义,规定流模式的描述格式为x m l 形式;然后根据流模式自身的特点, 构造了专门用于流模式的解析器,将流模式转换为对应的解析树结构。接着简单 介绍了现有的各类自动机的定义以及相应的构造算法,并分析了各类自动机的优 缺点。最后在g l u s h k o vn f a 的基础上设计并实现了含有计数器的流模式对应的 g l u s h k o vn f a ,即s c g n f a 算法,构造了流模式匹配引擎。 第四章:设计与实现搜索匹配算法。首先介绍现有的搜索匹配算法t h o m p s o n n f a ,d f a 、位并行算法以及其他算法,然后根据s c g - n f a 的特点,在位并行 算法的基础上提出并实现了流模式对应的位并行s c g l u s h k o v 算法。 第五章:系统测试,在实际的网络环境下,对流模式匹配引擎进行了系统测试, 并给出流模式匹配引擎的理论分析和系统功能测试。 第六章:总结与展望,总结了本文的研究成果,并展望了进一步的研究工作和 主要方向。 第二章协议识别算法 第二章协议识别算法 无论进行网络规划、网络故障检测、网络使用情况报告,还是网络服务质量提 高、异常流量检测,流量识别分析都是最基本的前提。本章介绍了几种经常使用 的流量识别技术,主要有传统的基于端口的识别方法、基于载荷的协议识别方法、 基于流量统计特征的方法、基于行为的识别方法以及一些综合方法等,并比较了 各种方法的优缺点。 2 1 基于端口的协议识别 基于端口的协议识别算法首先由美国a t & t 实验室s u b h a b r a t as e n 提出,根据 网络中的应用服务与i a n a 中注册的端口相对应,因此可以用端口号来标识流量。 例如,若某个t c p 数据流使用了端口号8 0 、8 0 8 0 或4 4 3 ,则将其标记为w e b 流量。 基于端口算法的主要优点就是它的速度比较快,不需要进行复杂的运算。对普 通服务如d n s ( 5 3 ) ,f t p ( 2 0 ,2 1 ) ,e - m a i l ( 2 5 ,1l o ) 等识别效果很好。 近年来,随着各种应用的发展,比如p 2 p 、流媒体、游戏流量等的出现,新的 协议不断涌现,许多网络应用不再使用固定的、可以预测的端口号。利用端口识 别协议的方法正在受到越来越多的限制。这主要表现在: ( 1 )非特权用户通常需要使用1 0 2 4 以上的端口号; ( 2 ) 某些用户试图隐藏他们的网络活动或希望绕过基于端1 3 方法的流量过 滤,例如,8 0 端口被很多非w e b 应用程序所使用以绕开那些不过滤8 0 端口流量的防火墙,而以隧道方式在h t t p 协议上使用i p 协议,则可以 允许所有的应用程序通过t c p 的8 0 端口; ( 3 )某些网络协议使用动态变化的端口,例如f t p 协议在被动模式下用于数 据传输的服务器端口1 2 i 】就是动态分配的: ( 4 )不是所有的协议都在i a n a 中注册使用端口。例如q q ,b i t t o r r e n t : ( 5 ) 同一个端口可以被不同的应用所使用。例如,端口8 8 8 同时被a c e e s s b u i d e 和c d d b p ( c dd a t a b a s ep r o t o c 0 1 ) 所使用【2 2 1 ,在l o t u sn o t e s 中,e m a i l 和 d a t a b a s et r a n s a c t i o n 应用同一个端1 31 2 1 l 。 上述所有的问题使得基于端口映射的识别方法变得不准确,甚至不能识别协 议。基于端口的协议识别算法所能识别的协议在总协议数量中所占的比重越来越 少,其准确性也越来也低。 8 面向流鼙分析的流模式匹配技术 2 2 基于载荷的协议识别 大多数协议都在其对应的网络数据包负载中或者其交互过程中包含着区别于 其他协议的特殊字段,这些特殊的字段就可以作为识别协议的特征1 21 】,称之为协 议的签名。协议的签名一般是通过分析定义协议的文档所得到的,不过对于那些 不公开文档或者文档不完整的协议,也会通过对网络流量的分析和跟踪的方式来 得到协议的签名。 由于新型应用的出现,比若p 2 p 网络应用等,传统的基于端口的协议识别方法 己逐渐失效,而基于载荷的协议识别却能起到很好的识别效果,因此相关的研究 和应用也逐渐增加。 s a n 2 3 1 等人分析了各种p 2 p 协议,并给出了几种协议如g n u t e l l ap r o t o c o l 、 e d o n k e yp r o t o c o l 、b i t t o r r e n tp r o t o c o l 等的签名,通过检测包负载与签名相匹配的 程度来识别协议。但是其所识别的协议仅限于p 2 p 协议。为了提高签名算法的准 确性,此算法需要包含尽可能多的字段来作为协议的签名,因此效率较低。 陈亮,龚俭i 1 0 1 等人也提出了一种基于特征串的应用层协议识别算法,通过统计 协议实际交互过程中出现频率最高的固定字段,并将这些固定字段作为协议的特 征字符串来识别协议。这种识别方法对少量的协议进行识别的速度比较快,但随 着协议数量的增多,其识别时间也会持续增加,性能下降较快,因此只适用于单 个或少量协议的识别。 协议签名的构造可以分为两类:1 ) 在负载中的固定偏移位置提取的字段,2 ) 在 负载中的随机位置提取出的特征字段。在上述算法中提到的签名都是提取协议中 固定偏移位置的字段,而最近也越来越趋向于使用正则表达式来表示签名并进行 匹配,从而识别那些在随机位黄包含特征签名的协议,l i n u x 中的应用层协议识别 软件l 7 f i l t e r l 2 4 j 就是完全采用正则表达式来进行协议识别和过滤的。 前面所得到的协议的签名可以通过分析文档或进行网络跟踪来人工构造,为了 简化签名的人工构造过程,在文献 2 1 1 q u 给出i p 流量负载中提取签名的自动化方 法,这种自动化方法是与机器学习的方法相结合。 基于载荷的协议识别算法对于基于端口算法来说是一个很好的补充,它取得了 很好的识别效果,而且在目前来看,是识别准确率比较高的一种算法。不过这种 算法也存在着以下的局限性: ( 1 )由于需要逐报文的匹配所有协议的特征以及需要额外的存储报文的负载 部分,该类算法的时空复杂度是目前所有算法中最高的;而且为了减少 资源的消耗,通常只记录数据包部分长度的内容( 例如2 0 0 字节) ,这 样有可能出现这种情况:在原始的数据包负载中包含着签名,然而在所 第二章协议识别算法 ( 2 ) ( 3 ) ( 4 ) 9 一 记录下来的负载中没有包含着签名,在这种情况下将降低此类算法协议 识别的有效性。 有些国家法律禁止对数据包内容的深度检测,这一规定将使得此方法无 效。 对于加密流量,数据包的负载部分是加密的,这也将使得此算法无效。 一个有效的签名被准确确定下来也是比较复杂和困难的,需要反复的验 证和反馈,例如以“g e t 作为协议对应的签名,那么其实可以同时匹 配出h t t p 和g n u t e l l a 两类协议,这样的话,协议识别的准确率就降低 了。 为了识别新的应用,就要不断的更新签名,使签名保持最新,达到较高 的识别准确率。 此类算法一般很难识别出未知流量。 2 3 基于流量统计特征的协议识别 基于流量统计特征的协议识别算法【2 5 i 利用“不同的应用协议对应不同的统计特 性这一差异来区分识别不同的应用协议。例如w e b 流一般为小报文组成的比较 短的流,而p 2 p 流则一般为大报文组成的比较长的流。此算法是一个多维的判决 问题,为了提高识别的效果,通常与机器学习的方法相结合来进行识别。在有关 于入侵检测方面的研究中,机器学习算法首先被引入,用于网络流量识别1 2 引。 文献【1 3 】中共提到了2 8 9 种流及流中报文的统计特征,其中较常用的几种特征 有:流持续时间、t c p 端口号、包间隔到达时间( 均值,方差) 、包负载长度( 均 值,方差) 、基于熵的有效带宽,以及包间隔到达时间的傅里叶变换等【2 。 机器学习1 2 列算法一般用于对数据进行分类,目前存在很多种机器学习的算法, 所有的这些算法都分为两大类:确定性的分类和概率性的分类。所谓确定性的分 类就是首先提取某些特征,然后通过计算待分类数据特征和训练样本特征之间的 距离来将待分类数据精确分类,如( k m e a n s ) 1 2 9 j 就是确定性的分类算法;而概率性 分类则是依据概率将数据分为某一类( 如e m 算法) 。考虑到分类效果的稳健性,概 率性分类方式更适合网络流量的分类,更符合网络流量动态不稳定的特性。 机器学习算法一般包括两部分:模型建立和分类。通过训练数据建立模型,再 将模型作为分类器的输入来对数据集进行分类。对于机器学习识别法来说,学习 算法是提高识别效果的关键,实用的系统还需考虑计算复杂度及识别过程的吞吐 率( 速度) 等。目前在网络协议识别方面有监督( s u p e r v i s e d ) 的算法、非监督 ( u n s u p e r v i s e d ) 的算法等。 有监督的机器学习方法包括:给定一个由数据流组成的集合x = x x 。) 和 l o _ 一 面向流量分析的流模式匹配技术 一个类别集合y = ( y y 。) ,然后定义一个映射关系:厂:x 专y ,其中每个数 据流被分配到一个类中。一个类精确的包含了被映射到其中的流,即 y ,= x ,i f ( x ,) = y , ,1 刀且x ,x 。有监督学习算法需要大量已分类数据,用 于作为训练和测试数据。用于网络流量分类的监督学习算法有:n e a r e s tn e i g h b o r o 州) 和l d a 算法1 3 0 3 t ,以及n a i v eb a y e s i 2 7 3 2 3 3 】算法等。这些算法的共同点就是 先找出流的统计特性,然后根据这些统计特性将已分类流量进行手工分类并利用 这些已分类流量进行训练和测试,建立分类器模型,然后在这个分类器模型下识 别网络流量。 非监督的机器学习算法包括:给定一个由数据流组成的集合x = x x 。) 和 整数值k ,然后定义一个映射:厂:x - - 9 , l 七) ,其中第f 个流被映射到第,个簇k 中,第,个簇k j 由所有被映射到该簇中的数据流组成,即k ,= x ,if ( x ) = k ,l ,k ,且x ,x 。假设簇的数目k 是已知的,每个簇k ,( 1 ,k ) 的实 际问题做过函数定义的结果被确定,聚类问题的求解视为产生一个簇集k = k 卜k 。 的过程。无监督学习算法在学习时只用到无类别标签的数据集,有类别 标签数据只是作为检测其学习性能的测试数据。用于网络流量分类的非监督学习 算法有:e m 算法【3 4 筇l ,k m e a n s l 2 9 3 6 , 3 7 】,d b s c a n l 3 7 】等。这些算法的共同点就是 对无类别流量进行学习,选取流的一些统计特征,通过聚类,通过不断的调整反 馈来获得最佳的自然分类类别。 在线 离线 基于机器学习的算法的步骤过程一般如图2 1 ,图2 2 所示: 采样 唑i i 1, ji 7 i 流特征厂 数据包分类机器学习 分类器 阿和 算法参数卜 i i 流分类 : 机器学习 : 输出 图2 1 机器学习的训练过程 第二章协议识别算法 在线 离线 采样 恻 - 1 ri l 流特征厂 包分类 机器学习 | q 络监挖等 分类器卜 戍片j 厨斗 流分类 机器学习 : 输出 图2 2 机器学习的识别过程 基于流量统计的协议识别算法利用数据流或数据包与数据包之间的统计特征 来进行识别,它不需要对数据包的负载进行深度检测,因此可以识别加密的流量。 但是其分类结果的好坏取决于分类器的稳健性。新的应用不断的出现,就需要不 断的对数据进行训练来获得最新的分类器。如何选择特征以及如何选择分类算法 对识别效果有着很大的影响。并且基于流量统计的识别算法也只能实现对流量的 粗分类,即分为以下几大类( b u l k ,d a t a b a s e ,i n t e r a c t i v e ,m a i l , s e r v i c e s ,w w w ,p 2 p ,a 仉c kg a m e s ,m u l t i m e d i a ) ,而不能再对流量进 行细分,因此这将限制基于流量统计的识别的准确度。 2 4 基于行为的协议识别算法 研究发现,每一种应用都与主机之间某种特定的交互连接模式相对应,连接模 式通常由一条或者几条数据流构成,这种连接模式被称为主机行为。基于行为的 协议识别算法1 2 0 j 就是在多个数据流的基础上,利用主机行为来进行分类识别。基 于行为的协议识别算法从三个层次来识别应用:社会层,网络功能层,应用层。 这三个层次之间相互提供主机行为信息,共同完成对协议的识别,单个层次的主 机行为信息不能完成对协议的识别。它的工作过程是这样的:首先解析所有数据 流,收集反映传输层的行为的与主机相关的信息,然后将主机行为与一种或者更 多的应用类型相对应,间接地对数据流进行识别。主机行为从社会、网络功能、 应用三个层次上来分析: 在社会层面上:主机行为就是与该主机通信的主机数目标,也就是该主机的受 欢迎程度。这一层次主要关注与该主机通信的目标i p 地址的集合,因此只需要源 和目的i p 地址。 在网络功能层面上:主机的行为就是该主机在网络中的功能,比如主机是作为 服务的提供者还是使用者,通常通过分析源和目的i p 地址及源端口号来获得此行 为。 1 2 面向流量分析的流模式匹配技术 在应用层面上:首先利用四元组( 源i p 地址,目的i p 地址,源端口号,目的端 口号) 进行分类,然后再通过数据流的进一步信息( 比如数据包的个数以及传输字 节数和传输协议) 来标定某一种应用。每一种应用都与主机间的某种特定的交互 关系相对应,将主机间的这种对应关系用称之为g r a p h l e t s 的来表示。那么g r a p h l e t s 作为应用的识别模式就标记了主机行为。对于不同的应用,g r a p h l e t s 都不同,如图 2 3 ,图2 4 所示。图2 - 3 表示d n s u n p 协议所对应的g r a p h l e t s ,图2 4 表示f t p 协议所对应的g r a p h l e t s 。可以看出两种协议对应的g r a p h l e t s 是不同的。g r a p h l e t s 中的节点表示相应列组成的集合的一个实体如s r c p o r t 。节点之间存在连线说明至 少存在一个流的数据包中包含了这个特殊的节点信息,如端口。短连线表示连接 可能不存在或者此连接对于应用识别不起重要作用。 基于行为的协议识别从一组流的统计特性的角度对协议进行了识别,它有两个 重大的优点:( 1 ) 它是在黑暗中进行的,不需要深度检测包负载,不需要知道端 口数目以及除了采集器能直接提供的信息外不需要任何其他信息。( 2 ) 它可以灵 活的在a c c u r a c y 和c o m p l e t e n e s s 之间取得平衡。( a c c u r a c y 代表被准确分类的流 所占的比例,c o m p l e t e n e s s 代表被分类的流所占的比例) d n s u d p s r c i p d s t l ps r c p o r td s t p o r t 图2 3d n s u d p 对应的g r a p h l e t s 图2 4f 1 p 对应的g r a p h l e t s o r t 第二章协议识别算法 2 5 综合算法 上述提到的各种流量识别算法各自有着其相应的优缺点,但是不能对所有的流 量识别都保持很高的准确率,因此出现了很多综合算法,将某几种算法的优点结 合起来,试图实现较高的准确率。 在文献【1 7 】中将应用通信行为与端口结合对流量进行识别。文中根据三个特征 会话个数,端口特征,交互的主机个数将通信行为分为五大类:t y p es - f 2 、t y p e m f 2 、t y p em - d - 2 、t y p em - f - 3 、t y p em - d 3 。首先建立应用端1 2 1 表a p t :包 括应用名称、代表端口号、常用端口号、通信类型。在应用识别过程中,首先将 待识别应用通过i p s ( i m p o r t a n tp o r ts e l e c t i o n ) 得到代表端口号,并提取流的相应特 征送入f r m ( f l o wr e l a t i o n s h i pm a p ) 中,f r m 结合a p t 来获得应用类型。 文献【l8 】从端1 ;3 、签名、协议三个方面提出九个子方法综合来识别应用。这九 种子方法在复杂性和需要的数据量上依次递增。如果前面的方法得到合适的匹配, 那么就不需要后面的方法。这九种方法以一种串联的方式工作。它的识别步骤如 下: ( 1 )首先判断待分类流是否与某已分类流相匹配,如果匹配就停止识别,将 该流识别为已分类流。如果没有被识别则进入( 2 ) 。 ( 2 )检查流中是否包含已知端口号,如果没有包含已知端口号,则进入( 3 ) ; 不过即使流包含己知端口号,则将此流标记上含有已知端口,同样进入 ( 3 ) 。 ( 3 )检查流的第一个包中是否含有已知的签名。如果有签名,则可以识别此 流,比如( 蠕虫或攻击流量) :否则就检查第一个包是否与某已知的协 议相符合,如果符合就识别,否则进入( 4 ) 。 ( 4 )检查流的前k 字节是否包含已知签名。如果有,则识别出此流;如果没 有,就依次运用最后几个方法来对更深层次的数据提取信息来进行识别。 如果在进行上述识别过程之后网络数据流还没有被正确识别,则进入最后一个 步骤,进行人工干预,来达到1 0 0 流量识别。此方法对流量进行逐层次的识别, 理论上可以实现1 0 0 的识别率,但其空间复杂度和时间复杂度都很高,很难应用 于实际。 文献 1 9 1 提出利用种决策机制将基于端口算法、基于负载算法、基于统计算 法、基于行为算法等几种算法综合起来。综合算法如下:首先各个算法作为独立 识别模块独立地对流量进行识别,然后将各个识别模块的识别结果送入决策模块, 由决策模块根据决策机制得出最终的协议类型。决策机制是为各个算法赋予相应 的权值,权值的大小决定对决策结果的影响力。各个算法的权值与其经验的识别 1 4 _ 一 面向流量分析的流模式匹配技术 结果的准确性相对应。识别准确率高的赋予高权值,准确率低的赋予低权值。例 如基于负载的识别算法识别准确率最高,所以就赋予最高的权值;基于行为的准 确率较低,就赋予较低的权值。这样,该综合算法就有效的利用了各种算法的优 点,识别结果由多种算法综合决定,因此降低了未能识别出的流量比例,而且也 提高了识别的可靠性。但是其决策机制比较复杂,识别结果比较难控制。 2 6 本章小结 本章总结了几类常用的流量识别算法,对基于端口的协议识别技术、基于载荷 的协议识别技术、基于流量统计特征技术、基于行为的识别技术以及综合方法等 进行了阐述,并分析了各种技术的优点以及局限性。研究发现每一种识别算法都 不能达到很好的识别效果,都有其相应的局限性。 第三章流模式匹配引擎设计与构造 第三章流模式匹配引擎设计与构造 3 1 系统模型总述 正则表达式p s j 在文本内容分析中有着广泛的应用。凡是具有某种特点的字符串 ( 如i p v 4 地址、u r l 、包含特定敏感内容的网页等等) ,都能用j 下则表达式清晰、 无歧义地描述出来,并通过正则匹配引擎被快速地从海量文本中识别、提取出来 以供进一步分析。目前文本正则匹配技术已经十分成熟。 网络数据流分析同文本分析有着很多相似之处:一个数据流对应于一个字符 串,每个数据包相当
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大数据分析师入门考试模拟题集
- 2025年中医养生保健康复技术认证考试模拟题集
- 2025年专业岗位模拟题医疗器械销售与推广岗位招聘考试试题库
- 2025年色母料项目发展计划
- 2025年抗倍特板合作协议书
- 2025年新型便携式温、湿、风向风速仪项目发展计划
- 2025-2026学年北师大版(2024)小学数学三年级上册《身高的增长》教学设计
- 2025年SKI系列二甲苯异构化催化剂项目建议书
- 河北省唐县第一中学2025-2026学年高二上学期开学物理试题
- 抗疫为主题的课件
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 2025年第九届“学宪法、讲宪法”知识竞赛题库及答案(中小学组)
- 2025年低压电工理论考试1000题(附答案)
- 学前教育学完整-2017课件
- 国土空间规划概述课件
- T-CAMET 04017.1-2019 城市轨道交通 全自动运行系统规范 第1部分:需求
- 育苗基质选择标准课件
- 肾癌伴下腔静脉癌栓诊治共识课件
- 集装箱吊具图纸
- 混凝土支撑拆除施工方案
- 【精品】ppt课件新《预算法》解读
评论
0/150
提交评论