已阅读5页,还剩60页未读, 继续免费阅读
(计算机应用技术专业论文)基于嗅探技术的网络监控系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着通讯技术和网络的发展,网络已日益成为生活中不可或缺的工具,在 给用户带来方便的同时也使得维护网络安全变得更加困难。为了保护企业的机 密信息不被泄漏,封堵网上的不良信息,网络监控系统在网络安全中起到越来 越重要的作用。 论文首先介绍了网络嗅探技术中的两种数据包捕获过滤模型:b p f 和 n p f 。并了解了相对应的捕获函数库l i b p e a p 和w i n p c a p 的体系结构;研究 了协议分析技术。在此基础上,对系统的三个主要功能模块( 网络嗅探器、协 议分析引擎、监控台) 进行了详细的设计和实现。 其次,论文阐述了几种经典的协议分析技术。基于此,对模式匹配算法进 行了改进。改进的算法充分利用每一次匹配比较的信息以跳过尽可能多的字符 进行下次比较,提高了网络监控系统的效率。同时也指出了其缺陷。 最后,论文对系统的主要功能模块和改进的模式匹配算法进行了测试。通 过对测试结果的分析总结了其优点和不足。 关键词嗅探器模式匹配,协议分析,l i b p c a p g r m p c a p a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m m u n i c a t i o nt e c h n o l o g ya n dn e t w o r k , t h en e t w o r kh a sa l r e a d yb e c o m eat o o lw h i c hi s i n d i s p e n s a b l ei n e v e r y d a y i tm a k e st h em a i n t e n a n c ef o rt h en e t w o r ks e c u r i t yb e c o m e m o r ed i f f i c u l t t oa v e r ta ne n t e r p r i s e ss e c r e ti n f o r m a t i o nf r o mb e i n g l e a k e d , b l o c kt h eh a r m f u li n f o r m a t i o no ni n t e m e t t h en e t w o r km o n i t o r s y s t e mp l a y sam o r ea n dm o r ei m p o r t a n tm l ei nn e t w o r ks e c u r i t y a tf i r s tt h i sp a p e rh a si n t r o d u c e dt w ok i n d so fd a t ac a p t u r i n ga n d f i l t e r i n gm o d e l s :b p fa n dn p ea n dc o m p r e h e n d e dt h ea r c h i t e c t u r eo f l i b p c a pa n dw i n p c a p ,w h i c ha r e t h ef u n c t i o nl i b r a r y r e s p e c t i v e l y c o r r e s p o n d i n gb p fa n dn p f s t u d yt h ep r o t o c o la n a l y s i st e c h n o l o g y b a s eo nt h e s e ,t h i sp a p e rc a r r yo nt h ed e t a i ld e s i g na n di m p l e m e n tt ot h e t h r e em a j o rf u n c t i o nm o d u l e s ( n e t w o r ks n i f f e r 、p r o t o c o la n a l y s i se n g i n e 、 c o n t r o la n dm o n i t o rc o n s o l e ) s e c o n d l y , t h i sp a p e re x p a t i a t e so ns o m ec l a s s i c a lp a t t e r nm a t c h i n g a l g o r i t h m s ,a n da n a l y s e st h e i ra d v a n g t a g e sa n dd i s a d v a n t a g e s o nt h e b a s i so ft h i s i m p r o v e st h ep a t t e r nm a t c h i n ga l g o r i t h m s t h ei m p r o v e d a l g o r i t h mm a k e s f u l ln s eo ft h ei n f o r m a t i o no fe v e r y m a t c h i n g c o m p a r i s o nt os k i pm o r ec h a r a c t e r sb e f o r et h en e x tc o m p a r i s o n i m p r o v e dt h ee f f i c i e n c yo ft h en e t w o r km o n i t o rs y s t e m a tt h es a m e t i m e ,p o i n to u tt h ed e f e c t s f i n a l l y , t h i sp a p e rc o n d u c t sam m a b e ro ft e s t si nt h ee t h e r n e t n e t w o r k t ot e s tt h em a i nf u n c t i o nm o d u l e sa n dt h ei m p r o v e dp a t t e r n m a t c h i n ga l g o r i t h m a f t e ra n a l y s i s i n g t h er e s u l t so ft h et e s t s , s u m m a r i z e dt h em e r i t sa n dt h el i m i t a t i o n so ft h en e t w o r km o n i t o r s y s t e m k e yw o r d ss n i f f e r ,p a t t e r nm a t c h i n g ,p r o t o c o la n a l y s i s ,l i b p c a p , w i n p c a p 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得中南大学或其他单位的学位或证书而使用过的材料。与我 共同工作的同志对本研究所作的贡献均已在在论文中作了明确的说 明。 作者签名: 犯嘲旃 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校 有权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位 论文的全部或部分内容,可以采用复印、缩印或其它手段保存学位论 文;学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:巡导师签名缸日期:兰竺f _ 上月兰日 硕士学位论文 第一章绪论 1 1 课题来源和背景 第一章绪论 随着网络技术在国内的普及,网络在日常工作中发挥着越来越重要的作用, 而企事业单位的内网更成为日常工作中不可或缺的重要组成部分。目前多数企 业内部网络都面临着许多问题和挑战,包括数据的非法拷贝、软件的非法安装 以及由于对网络管理不当造成的黑客攻击等。内网在方便数据和信息的传递、 共享的同时,也给数据的安全带来了隐患。内网的安全性问题对企业的威胁和 对企业的破坏程度日渐得到重视。 企业级用户计算机网络安全系统涉及的面很广,传统意义上的终端安全主 要依赖于防病毒技术。目前对于防病毒软件以及防火墙技术已经比较成熟,只 要使用得当、管理得力,网络对于外部的攻击行为有着较好的“免疫”效果。 但是“堡垒”是最容易从内部攻破的。由于对内部网络缺乏有效的管理手段, 使得内部网络充斥着非法有害的软件甚至病毒,员工往往利用网络进行与工作 无关的行为,更严重的是企业内部机密数据往往有意或无意中通过网络外泄, 让人防不甚防。因此企业内部网络的安全性问题也就越来越突出。发达的网络 即方便了信息交流,但如何在共享网络资源的同时也对内部网络用户的行为进 行监控管理,防止机密信息网网通过m s n 、q q 、f t p 甚至是网络硬盘上传这 样的方式外泄成为了困扰许多企业的一大难题。而普通的网络监控或防火墙系 统是很难做到这一点的“1 旧因此,这就推动了网络异常监控系统及自防御体 系的研制和开发。 1 2 网络监控技术的现状 目前网络监控技术已经比较成熟,但是企业内部的网络监控系统的应用还 主要集中在信息安全要求比较高的大中型企业或机关中。不过随着越来越多的 企事业单位越来越重视内部的数据保密和网络安全,网络监控系统的应用也将 得到极大的普及。 网络监听特指“s n i f f a n g ”( 通常直译为嗅探或窥探) ,即利用计算机网络接 口截获目的地为其他计算机的数据报文。网络监听技术的实现要依赖一系列的 原语集合,这些原语用来捕获数据包,监视网络以及其它的用途忉。 硕士学位论文 第一章绪论 纵观国内外在网络监听技术中所使用的包捕获机制的方法,大致可归纳为 两类,一类是由操作系统内核提供的捕获机制。另类是由应用软件或系统开 发包通过安装包捕获驱动程序提供的捕获机制,该机制主要用于w i n 3 2 平台下 的开发“。 操作系统提供的捕获机制主要有四种:b p f ( b e i l 【e l e y p a c k e tf i l t e r ,b e r k e l e y 的封包过滤器) ,d l p i ( d a t al i n kp r o v i d e ri n t e r f a c e ,数据联系提供接口) ,n i t ( n e t w o i l 【i n t e r f a c e t a p ,网络接口栓) ,s o c k p a c k e t 类型套接口。b p f 由基 于b s d 的u n i x 系统内核所实现。d l p i 是s o l a f i s 系统的内嵌子系统。n i t 是 s u n o s 4 系统的一部分,但在s o l a r i s s u n o s 5 系统中被d l p i 所取代。l i n u x 核心则实现了s o c kp a c k e t 的包捕获机制。从性能上看,b p f 比d l p i 及n i t 好得多,而s 0 c k - p a c l ( e t 最弱。s c o o p c n s c r v c r 虽然本身没有内核捕获模 块b p f ,但有作为可压入内核的s t r e a m s 模块b p f ,采用与b p f 相一致的概 念,但并未提供b p f 的所有功能。 w m d o w s 操作系统没有提供内置的包捕获机制它只提供了数量很少并且 功能有限的a p i 调用。p c a u s a 公司提供了一个商业的产品,该产品提供了包 捕获接口并且包括了一个b p f 兼容的过滤器。然而,用户接口过于低级并且该 产品不提供象过滤器生成函数那样的抽象函数。w i n p c a p ( v c m d o w sp a c k e t c a p t u r e ,w i n d o w s 包捕获器) 是w i n 3 2 上的一个用来捕获数据包的开放系统软 件包,它是一种新提出的强有力并且可扩展的框架结构。w m p c a p 包含了一系 列以前系统所没有的创新特性“” 论文所设计的网络监控系统将主要使用目前比较流行的w m p c a p 软件包来 提供捕获机制,因为w m p c a p 始终把性能放在首位,这样它就能支持十分苛求 的应用要求。 网络监听技术是不断发展的,目前的网络监听技术将主要朝三个方向发展, 其一是由有线网向无线网监听( w n e l e s ss m f f 盯) 的发展。另一个是向分布式监 听( d i s t d b u t e ds m f f 日) 发展。最后一个是由单一的文本数据格式监听向多种数 据格式( 如光学、声音、图象等) 监听的发展。下面将分别简略介绍这些新兴 技术: 无线监听通常根据i e e e 8 0 2 1 i b 的协同功能标准进行设计。无线监听同样 要完成网络监听,捕获,解码和过滤的功能。不同的是它是无线接入的。通过 在企业中使用无线监听,可以实时发现安全隐患,有效地确认网络问题的所在 2 硕士学位论文 第一章绪论 并且能降低网络经营成本 分布式s n i f f e r 是当整个企业扩展规模后对网络实旌管理的一种解决方案。 它提供了对整个网络中的各个关键部分的监听、协议分析等功能。通过一个中 心管理控制台,分布式s n i f f e r 就能实现对整个机构组织的自动远程监听 ( r m o n ) 和问题确认 光学监听( 0 p t i ls n i f f e r ) 为基于光学的光纤网络和传输设备提供了一个 灵活、易用的解决方案。它允许对宽带网络进行性能监听和分析。语音监听 ( v o i c c s n i f f c r ) 使得你可以对v o n s ( v o i c e - o v e r - n e t w o r k s ) 中出现的问题进行 监听和执行专家分析。它可以对导致语音质量降低的主要因素( 如包的延迟, 包序列号出错和包丢失) 进行追踪和提出建议,为v 0 妒网络管理者和技术人员 提供了保证语音网络的q o s 所需的解决方案翻。 1 3 研究目的与意义 网络监控系统目前已经在许多企业和一些重要的机关单位中得到广泛应 用,产生了一批比较成熟的网络监控软件产品。但是随蔚网络技术的发展,这 些软件系统都存在着一些不足与缺陷,尤其是对于那些基于新的应用层协议的 程序的检测监昕尤其明显。这就需要对其继续研究,不断的改进下面将介绍 对其研究的具体目的及意义。 1 3 1 研究目的 随着网络技术的普及和发展,人们在学习、生活和工作中不可避免地要与 网络打交道。尤其是在对信息化技术依赖较强的企事业单位中,网络已成为其 员工开展业务必不可少的条件。但与此同时一个不容忽视的问题网络信息 安全管理,正摆在我们面前。具体的问题体现在: ( 1 ) 非法资源的利用,如私自接入网络、扫描服务器或非法进入他人计算机 ( 2 ) 某些网络内部计算机由于使用不当,管理不慎,感染了木马、蠕虫。从 而对网络造成不良影响,如抢占消耗网络带宽、攻击他人计算机等。 ( 3 ) 网络上不良信息繁衍,色情、暴力、毒品、邪教等信息的网页充次网络, 很难杜绝对其的访问 ( 4 ) o i c q 等聊天工具风靡网络,企业员工可能需要它用来进行正当的业务 交流,但有些人利用聊天进行与本职工作无关的行为如聊天、交友等,甚至泄 硕士学位论文第一章绪论 漏公司的机密。 ( 5 ) 在网络内部使用e m u l e 、b i t c o m e t 等点对点的下载软件来下载私人的文 件,极大的浪费了网络带宽。 以上问题暴露得日益突出,已经严重干扰了企业正常的网络应用业务的开 展,我们必须对这些网络信息进行大力监管,净化内部网络。 目前国内软件市场上的网络安全监控软件品牌繁多,良莠不齐,但是目前 大多数传统的网络监控软件有两个突出的问题:其中之一是软件多是采用在每 台被监控终端上运行监控系统客户端程序的方式进行监控。这种方式不仅造成 了终端额外的负担,而且升级维护非常不便。尤其危险的是别有用心者可以通 过分析客户端的通讯信息从而实现破解其监控软件,安全性不高;其二是在数 据分析速率上存在着瓶颈网络监控系统监控过程中最花费时问的部分就是对 特征字符串的匹配,目前绝大多数的监控系统都采用模式匹配算法或者快速模 式匹配算法,在效率上难有提高“”。 论文的目的在于通过对嗅探技术的研究,以及对各种模式匹配算法的分析 比较。将其研究的结果运用于网络监控系统的设计中,并给出了主要功能模块 的实现,使其能弥补目前大多数网络监控软件的上述缺陷。 1 3 2 研究意义 当前计算机系统的性能得到了飞速的提高,同时网络的带宽也得到了显著 的改善。信息在网络的传输速度极快,可以在很短的时间内传输大量的信息。 内部人员可以通过互联网将敏感信息向外部快速传递。窃密者不仅可以通过内 部网络与外部网络的连接点与外界连接,还可以使用m o d e m 直接通过电话拨 号直接上网连接。即使内部人员主观上并没有泄露信息的企图,但在内部网络 与外部i n t e r n e t 网络的无意连接过程中,客观上给了外部人员窃取机密信息的可 能。为了保障内部网络中的一些绝密信息的安全,有的企业采用了切断大部分 内部终端与外部网络连接的硬性方式。但这种方式妨碍了员工与外部的交流, 也限制了i n t e r a c t 技术带来的巨大便利。 因此,在上述情况的企事业单位甚至机关中,迫切需要开发相应的软件产 品以保证网络内部敏感信息的安全,又充分保证网络的畅通。不影响充分利用 网络的开放性和灵活性。 网络监控系统作为信息化建设的安全保障,无论是重要的国家机关还是企 4 硕士学位论文第一章绪论 事业单位的核心技术部门对其应用的呼声很高。这些单位往往拥有大量的机密 信息,一旦泄密就会造成巨大的经济损失和负面影响,甚至对国家安全和社会 稳定构成威胁。以上就迫切要求在实现信息化的同时,提供高效的完备的信息 化安全保证。而基于嗅探技术的网络监控系统正好能满足这一需求 1 4 论文的组织结构 论文首先介绍了目前比较流行的网络监听技术,比较了各自的优缺点。同 时论述了监听技术的发展方向接着,提出了基于嗅探技术的网络监控系统的 研究目的和意义。在第二章详细叙述了该系统相关的三项核心技术:网络嗅探 与协议分析、异常特征匹配算法。在接下来的第三章中对系统进行了总体的设 计。并在第四章,给出了系统主要功能模块和改进的匹配算法的设计实现。在 第五章中对系统主要功能进行测试分析。最后对整个论文进行了总结和展望。 5 硕士学位论文第二章核心技术研究 第二章核心技术研究 实现对以太网的网络监控,至少需要实现两个基本功能:第一,对网络内 数据包的监听和过滤,即对网络数据包进行嗅探捕获,并确定其是否是对用户 有意义的数据包;第二,对网络数据流的解码分折,即对已经搪获的数据包进 行协议分析,了解其数据信息关键内容。本章将对这两个核心技术进行研究探 讨。 2 1 网络嗅探技术 要实现对网络的监控,首要的先决条件是要获得网络中传输的数据信息, 再对其进行分析过滤后提供给网络管理员。也就是要对网络进行“监听”。嗅探 技术正是实现网络监听的技术。它利用计算机的网络接口截获目的地为其它网 络计算机的数据包。实现这一技术的软件系统称为嗅探器( s n i f f e r ) i s e 2 2 1 嗅探流程 将数据包从共享网络中捕获,并将其提取到应用程序中,这个过程要依赖 于网络物理层到应用层以及操作系统本身各方面进行协调、设置。下面是以太 网络中数据包的通过流程: ( 1 ) 物理层:在一个以太局域网,数据在共享的网络介质( 网线、h u b ) 中 以广播的形式到达局域网每一个节点 ( 2 ) 数据链路层:数据链路层,节点的网络适配器( 网卡n i c ) 查看到来的 数据帧,通过一系列的检验,将到来的大量的数据帧中属于自己且正确合法的 数据帧重构成数据包送入操作系统的协议栈。 ( 3 ) 网络层至运输层,操作系统的协议栈通过这两层中的口、t c p 、u d p 等 协议判断到来的数据包是否属于本操作系统的接收范围( 根据口地址) ,是否 属于本操作系统上的应用程序的接收范围( 根据p o r t 端口号) ,如果所属范围 正确并且数据包合法,操作系统通过端口将数据包重构成报文送入应用程序。 为了嗅探到网络中的任意一个数据包,必须物理线路、网卡、操作系统进 行完全的配合,首先从网络构成上讲,嗅探技术并不是适合所有类型的网络, 不同传输奔质的网络的可监听性是不同的。嗅探技术一般应用于以太网中,因 为以太网是一个广播型的网络,在一个标准的以太网子网上,多台计算机通过 6 硕士学位论文 第二章核心技术研究 一条线路互联,且任何时刻,电缆上只有一个数据包存在,为了保证多台计算 机能共享同一线路,以太网使用了c s m a c d ( c a r r i e rs e n s e m u l t i p l ea c c e s s c o l l i s i o nd e t e c t i o n ) 载波侦听多路访问冲突检测,这样一来, 共享线路上的所有以太网卡及相关设备总是处于对线路上的信号进行监听的状 态中,这使得每一台机器都能够探知并接受线路上的数据流。也就是局域网内 的每台主机都在监听网内传输数据。以太网硬件将监听到的数据帧所包含的 m a c 地址与自己的m a c 地址相比较,如果相同则接收该帧,否则就丢弃它。 这就是以太网的。过滤”规则。 由上面事实了解到嗅探技术适用于基于广播包的网络,如利用广播技术来 分发数据包的连通网络( 或者使用令牌的网络,只不过因为令牌不一定经过本 机器,所以只能嗅探到网络中部分数据包) 。此外如果在在一个子网内部进行嗅 探,而子网顶部存在着诸如交换机这类有学习功能的设备,由于它能够阻止广 播,所以就不能够对子网内其他的机器进行监听,若想要对此子网进行监听, 就必须处于与此交换机同级的包交换网络中。例如从路由器到某一子网的共享 网络中安装一个h u b ,在将监听机器和子网交换机用此h u b 连接起来。其 网络拓扑结构图如图2 1 所示,这样,就能够对此子网进行监听了,另一种办 法就是在交换机上给监听机器做端口映射,指明让它接受经过交换机的所有数 据包。 图2 - 1 嗅探器的网络拓扑 7 硕士学位论文第二章核心技术研究 当网络的物理条件满足后,数据才会来到嗅探机器中,首先到达的地方就 是网卡,网卡将数据( b i t s 流) 变成数据帧的形式,开始进行判断。数据帧的 格式如图2 2 所示。 l 前同步码和开始 目的m a c 6 字节源端m a c 6 字节 数据类型数据 c r c i 帧分界符8 字节 2 字节 4 6 1 5 0 0 字节 4 字节 图2 - 2 以太网数据帧格式 下面列出网卡接受数据后的行为步骤: ( 1 ) 发送端以5 6 位( 1 0 1 0 1 0 1 0 ) 反复发送l 和0 信号,接受端收到此 信号后准备开始读取发送来的信号; ( 2 ) 首先读取8 位( 1 0 1 0 1 0 1 1 ) 帧分界符,之后读取m a c 地址等信息; ( 3 ) 将读取的信息分段变为数据帧,提取不同意义的部分; ( 4 ) 接受帧长度小于最小帧长度时( 6 4 b y t e ) ,网卡认为数据帧不完整从而丢 弃该帧; ( 5 ) 检查帧的目的m a c 地址是否与本机m a c 地址匹配,否则抛弃; ( 6 ) 进行c r c 校验,如果出错,则丢弃; ( 7 ) 检验帧长度,如不是8 的倍数,丢弃; ( 8 ) 最后,将帧交给高层处理。 从上面的过程可以看到:只要数据流能经过监听机器的网卡,上层的网卡 驱动程序就会负责删除属于它人的帧,这种行为属于驱动程序控制,被网络设 备厂商固化在硬件里,但是后来为了便于网络管理,许多厂商的网卡驱动程序 也提供了不删除属于其它主机的帧的功能,这种功能被称为网卡的混杂模式 ( p r o m i s c u o u s ) 。通过将网卡设置成混杂模式,网卡就可以接受网络中的所有的 帧,而各种不同的嗅探技术也正是基于此进行的。 当数据经过数据链路层后,就要通过操作系统协议栈的审核了,系统协议 栈在t c p i p 网络模型跨越的层次非常多,它们直接从位于系统的数据链路层 提取数据,通过在这一层的开发环境中设置混杂模式,就可以成功的接收从驱 动层来的各种数据包。大多数的操作系统在这一层使用的是s o c k e t 套接字技 术,它们通过函数i o c t l s o c k e t ( s o c k e t ,s i or c v a l l , & v a l u e ) 来实现混杂模式 接收数据包。通过s o c k e t 的处理,数据流( b i t s ) 已经变成了能识别的数据结 8 硕士学位论文 第二章核心技术研究 构,最后协议栈将数据信息传入应用层应用程序中最终,所有的数据变 成可以识别的文字、符号输出在监控系统的控制台界面中。 2 2 2 嗅探机制 在2 2 1 中,介绍了嗅探一个数据包的基本过程。数据嗅探的复杂性是由于 操作系统的分层机制所造成的,为了确保操作系统的稳定,内核的资源是不允 许用户直接使用的,用户只能位于被称为用户模式( u s e r - m o d e ) 层次上,使用 自己的内存及其它资源,用户的操作也要通过一定的转换,才能送达核心层 ( k e r n e l - m o d e ) ,这虽然保证了操作系统的稳定,但是却加大了c p u 和内存资 源的负荷。一个简单的嗅探系统结构如图2 3 所示 用户交互模块 一 协议分析模块 f “用户玉 。 数据包捕获函数库 b。 。 * 。二一。-# r 丽i 1 黔“ “ 5+1 :; !传输屡 一 = :习 已竺竺一 两络层 j 3 物瑾层 g 一4 k # 女* 图2 - 3 嗅探系统结构图 用户层 核心层 霸络 对网络内部数据进行数据包的采集,就是包捕获,它是协议分析和实施监 控的基础。操作系统体系不同,捕获过滤机制往往也存在差异,接下来将对u n i x 和w i n d o w s 系列操作系统各自的捕获过滤机制和原理进行介绍。 1 u n i x 系统下的数据包捕获过滤机制 在u n i x 类型的操作系统中比较有名的主要有三种数据包截获机制:b s d 9 硕士学位论文 第二章核心技术研究 类系统中的b p f 机制,s v r 4 中的d l p i 机制以及l i n u x 中的s o c k _ p a c k e t 类型套接字。除了它们之外,许多其它的u n i x 系统也包含了自己的 数据截获机制,如表2 - 1 所示“”。 表2 - 1 操作系统数据截获机制 包捕获机制系统平台 备注 b p fb s d 系列 b e r k e l e yp a c k e tf i l t e r d l p is o l a r i sh p u xs c od a t al i n kp r o v i d e ri n t e r f a c e o p c n s e r v e r n r rs u n 0 s 3n e t w o r ki n t e r f a c et a p s n o o pu x s n r rs u n o s 4s t r e a mn e t w o r ki n t e r f a c et a p s o c kp a c k e tl i n u xs o c k e t l s f = l i n u x2 1 7 5l i n u xi r i x 用于窃听系统丢弃的 d r a i n s o c k e tf i l t e r包 b p f 是基于b s d 系统的网络包过滤模型,它使用了新的基于寄存器的过滤 算法,效率比旧的算法提高了2 0 倍,它的缓存机制对整体效率的提高有很大作 用。 b p f 有两个主要部件,网络包监视( n e t w o r kt a p ) 和网络包过滤( p a c k e t f i l t e r ) 。网络包监视从网络设备驱动程序中搜集数据拷贝并转发给过滤器。过滤 器决定是否接收该数据包,以及接收该复制数据包的哪些部分 b p f 过滤器的过滤功能是通过虚拟机( p s e u d om a c h i n e ) 执行过滤程序来 实现的过滤程序( f i l t e rp r o g r a m ) 实际上是一组过滤规则。过滤规则由用户 定义,以决定是否接收数据包和需要接收多少数据过滤过程可描述如下;当 数据包到达网络接口时,链路层驱动程序将其提交到系统协议栈;如果b p f 正 在此接口监听,驱动程序将首先调用b p f ,b p f 将数据包发送给过滤器,过滤 器对数据包进行过滤,并将数据提交给过滤器关联的上层应用程序;然后链路 层驱动将重新取得控制权,将数据包提交给上层的系统协议栈处理。 b p f 的捕获过滤机制如图2 - 4 所示。系统大体由三部分组成:n e t w o r kt a p 、 b p f 和l i b p c a p 。n e t w o r kt a p 监视共享网络中的所有包,b p f 用过滤条件匹配 所有由n e t w o r kt a p 监视到的包,若匹配成功则将之从网卡驱动的缓冲区中复 制到核心缓冲区。 l o 硕士学位论文 第二章核心技术研究 n c t w o r kp - 妇 图2 - 4b p f 捕获过滤机制 核心缓冲区分为两部分:s t o r eb u f f e r 和h o l db u f f e r 。s t o r eb u f f e r 用于容纳 过滤后匹配成功的数据包,h o l d b u f f e r 用于将包从核心缓冲区复制到用户缓冲 区中。当s t o r e b u f f e r 缓冲区满而h o l d b u f f e r 空时,b p f 将两者互换。这样的缓 冲区设计使用户程序不需与网卡驱动程序交互:当用户读h o l d b u f f e r 时网卡驱 动写的是s t o r eb u f f e r 。用户缓冲区用来存储从核心发过来的包,并且由于在用 户级别上,它可以防止应用程序直接访问由核心管理的内存 2 w i n d o w s 系统下数据包捕获过滤机制 在w i n d o w s 操作系统下截获机制与在u n i x 操作系统下有所不同:首先, 因为w i n d o w s 系统没有提供对链路层直接操纵的接口,需要利用系统提供的 n d i s ( n e t w o r kd r i v e ri n t e r f a c es p e c i f i c a t i o n ) 机制开发中间驱动程序来完成对 数据包的截获;其次,由于w m d o w s 驱动程序提供的分层结构模式,可以将 用户驱动程序挂接到其它驱动程序上,因此可在w i n d o w s 协议栈驱动程序 t c p i p s y s 上挂接数据包截获驱动程序,也就是使用t d i ( t e s t d a t a i n p u t ) 接口; 最后,w i n d o w s 操作系统还为它基于传统s o c k e t s 技术发展起来的w m s o c k 2 套接字机制提供了一种服务提供者接口程序s p i ( s e r v i c ep r o v i d e ri n t e r f a c e ) 硕士学位论文第二章核心技术研究 w i n s o c k 的运行需要s p i 的支持,所以对w i n s o c k 的请求都会先发送到s p i 程序中嘲,因此利用s p i 就可以截获数据包了。 但是相比u n i x 操作系统,w i n o d w s 虽然提供了更多的数据包截获机制, 由于w i n d o w s 抓包不能访问到数据链路层( 离数据链路层越远的数据截获机 制,其效率越低) ,所以在相同的硬件支持下其嗅探效率是不如u n i x 系统的。 因为b p f 已被证明为一个强大稳定的结构模型,n p f ( n e t g r o u pp a c k e t f i l t e r , n e t g r o u p 包过滤) 作为b p f 在w i n d o w s 环境下的演化版继承了b p f 的以 下重要模块:过滤器,两级缓冲( 核心和用户) 以及用户级的一些函数库。n p f 的捕获过滤机制如图2 5 所示。 u s e r c o d e u s r c o d e c a l lw i n p c a pc a l lw i e p c a p u s d c o d e m o n i t c t lb lf l b u口i。 w p c al d l lw 跗,珊l i p 鹏k c “m 7 j l 军零 : 0 m 甘? p r o t o c o l ” ? s t 扯k s :南,由一回 琶,苴 c _ & 。 一 5 9 ,。 t,。 盏 图2 - 5h p f 捕获过滤机制 n p f 与b p f 之间的一个重要的结构上的差异是n p f 选择了循环的缓冲区 作为核心缓冲区。循环缓冲区已经被优化成每次可以拷贝几块数据包。这种缓 冲实现机制允许所有的核心内存都被用于存储网络中的数据包,而象b p f 那样 的靠两个缓冲区交换的工作机制只允许一半的内存用于存储网络数据包。 硕士学位论文第二章核心技术研究 n p f 中实现了一个核心级的可编程的统计引擎,该引擎不再是一个简单的 包过滤器,而具有强大的分类功能。应用程序可以命令这个模块监听网络活动 的任意方面( 例如网络流量,每秒请求w e b 数等) ,并且等待预先定义的间隔 后从核心接收统计结果。 2 2 3 嗅探函数库 对应于上述的b p f 和n p f 数据包捕获机制,分别有相应的函数库支持。它 们分别是:对应于b p f 的l i b p c a p 函数库和对应于n p f 的w i n p c a p 函数库。下 面将对其分别介绍。 1 l i b p c a p 函数库 l i b p c a p 是u n i x 或l i n u x 从内核捕获网络数据包的必备工具它是独立于 系统的a p i 接口,为底层网络监控提供了一个可移植的框架,可用于网络统计 收集、安全监控、网络调试等应用。很多u n i x 或l i n u x 下的网络程序都需要 l i b p c a p 才能够运行。 l i b p c a p 的结构并不复杂。主要函数模块如下。 ( 1 ) 打开、读取设备,设置过滤部分 这一部分集中了p c a p _ o p e nl i v e o ,p c a p _ s e t f i l t e r o 。文件形式为p c a p _ * c ( 2 ) 编译、优化、调试过滤规则表达部分 过滤机制采用了伪机器的方式,b p f 过滤器程序和实际机器语言由很多相 似之处 ( 3 ) 脱机方式监听部分 l i b l m a p 支持脱机监听即先将网络上的数据截获下来,存到磁盘上,在 以后方便时从磁盘上获取数据来做分析。主要函数为p e a p _ o p e n _ o m i n e o 和 p c a p _ _ o f l l i n e _ _ r e a d o 。 ( 4 ) 本地网络设置检测部分 包括检测网络用的p c a p j o o k u p d e v 0 、p c a p _ l o o k u l m e t o 等函数。它的主要 实现方式是打开套接口( s o c k e t ) ,然后调用一系列的原语来获取套接口状态, 以达到检测t c p i p 层网络设置的目的。各种系统的s o c k e t 接口已有统一的规 范,所以它是跨平台兼容的,而不必像对数据链路层的访问一样为不同的平台 编写不同的代码。 ( 5 ) 主控程序及版本部分 硕士学位论文 第二章核心技术研究 主控程序所在文件为p c a p c o 这一文件定义了读数据的对外统一接口 p c a p _ _ n e x t 0 ,获取当前错误消息的p c a p _ g c t e r r 0 等函数。用户无论是实时还是 脱机方式打开设备,都调用p c a p _ n e x t 0 获取下一个包的数据。 2 w i n p c a p 函数库 w i n p c a p “1 是由意大利人f u l v i or i s s o 和l o f t sd e 百o a n n i 等人提出并实现的。 它的主要思想来源于u n i x 系统中最著名的b s d 包捕获架构。开发w m p c a d 这 个项目的目的在于为w i n 3 2 应用程序提供访问网络底层的能力。 w i n p c a p 相对l i b p c a p 来说比较复杂,主要函数如下。 ( 1 ) l p p a c k e tp a e k e t a l l o e a t e p a e k e t ( v o i d ) :如果运行成功,返回一个 j i a c k e t 结构的指针,否则返回n u l l 。成功返回的结果将会传送到 p a c k e t r e e c i v e p a e k e t 0 函数,接收来自驱动的网络数据报。 ( 2 ) b o o l e a np a e k e t g e t a d a p t e r n a m e s ( l p s t rp s t r , p u l o n gb u f f e r s i z 0 : 返回可以得到的网络适配器列表及描述。 ( 3 ) b o o l e a n p a e k e t g c t n e t l n f o e x ( l p t s t r a d a p t e r n a m e s , n p fi pa d d r * b u f f , p l o n gn e n t r i e s ) :返回某个网络适配器的全面地址信息。 ( 4 ) b o o l e a np a c k e t g e t n e t t y p e ( l p a d a p t e r a d a p t e r o b j e c t , n e t t y p e t y p e ) - 返回某个网络适配器的m a c 类型。n e t t y p e 结构里包含了l i n k s p e c d ( 速 度) 和l i n k t y p e ( 类型) 。 ( 5 ) b o o l e a np a e k e t g e t s t a t s ( l p a d a p t e ra d a p t c r o b j e c t , s t r u c t b p f _ s t a t + s ) :返回几个关于当前捕获报告的统计信息。 ( 6 ) v o i dp a c k e t i n i t p a c k e t ( l p p a c k e tl p p a c k o , p v o i d b u f f e r , u i n t l e a g t h ) 初始化一个p a c k e t 结构。 ( 7 ) l p a d a p t e rp a c k e t o p e t a d a p t e r ( l p t s t ra d a p t e a n a m c ) :打开一个网络 适配器。 ( 8 ) b o o l e a np a c k e t r e c e i v e p a c k e t ( l p a d a p t e ra d a p t c r o b j e c t , l p p a c k e t l p p a c k e t , b o o l e a ns y n c ) 从n p f 驱动程序读取网络数据报及统计信息。 2 2 协议分析 协议分析是当捕获了网络数据包以后,为了了解数据包中的内容和正在进 行的服务而对数据包进行详细分析的过程。在开发网络监控系统的过程中,协 议分析在其中扮演着重要的角色它为监控提供了有意义的信息,是整个系统 1 4 硕士学位论文第二章核心技术研究 的另一核心模块。通过对m 1 _ p ,f t p ,t e l n e t ,o i c q ,s m t p 等应用层协议 的解码,可以获得网络内的监控终端目前是否运行了非法的程序、是否在与外 网进行敏感数据的传输等重要信息。 网络是分层的,每一层分别负责不同的通信功能。根据t c p i p 协议族它 通常被分为四层。t c p i p 协议族是一组不同的协议组合在一起构成的协议族。 尽管通常称该协议族为t c p i p ,但t c p 和口只是其中的两种协议而已。其 各层结构关系如图2 - 6 所示。 2 2 1 网络层协议分析 图2 - 6t c p i p 各层协议关系 应用层 运输层 月络层 链路层 p 协议是t c p i p 协议族中最为核心的协议。所有的t c p 、u d p 、i c m p 及 i g m p 数据都以口数据报格式传输口协议提供不可靠、无连接的数据报传 送服务“不可靠( u m e l i a b l e ) 的意思是它不能保证球数据报能成功地到达 1 5 硕士学位论文 第二章核心技术研究 目的地m 仅提供最好的传输服务,如果发生某种错误时,如某个路由器暂时 用完了缓冲区,口有一个筒单的错误处理算法:丢弃该数据报,然后发送 i c m p 消息报给信源端。任何要求的可靠性必须由上层来提供( 如t c p ) 。无 连接( c o n n c c t i o n l e s s ) 这个术语的意思是p 并不维护任何关于后续数据报的 状态信息。每个数据报的处理是相互独立的。这也说明,口数据报可以不按发 送顺序接收。如果一信源向相同的信宿发送两个连续的数据报( 先是a ,然后 是b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆西南大学附中2025-2026学年化学高一第一学期期中达标检测模拟试题含解析
- 互联网金融行业互联网金融服务
- 经济学毕业论文选题
- 存在的主要问题与对策建议
- 交大安泰MBA毕业论文汇报模板学术版29
- 人工智能下大学生就业现状及对策
- 浅析以人民为中心的重要性
- 2025-2025第二学期文学与传媒学院教学督导工作总结
- 研究生毕业论文导师评语
- 法医病理学死亡原因分类及死因分析探讨
- 幼儿园动火审批制度
- 冲压车间安全培训
- 肝血吸虫病超声
- 食品加工机械与设备题库+参考答案
- 【7上英WY】合肥市蜀山区2024-2025学年七年级上学期期中考试英语试卷
- 简约蓝色保安交接班记录表
- 债务重组垫资协议书范本
- 罻网络空间治理与法律法规
- 专题02 数轴上动点问题的三种考法(解析版)-2024年常考压轴题攻略(7年级上册人教版)
- 抑郁病诊断证明书
- SL+174-2014水利水电工程混凝土防渗墙施工技术规范
评论
0/150
提交评论