(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机应用技术专业论文)基于winpcap的网络数据捕获分析系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 网络测量作为一种收集网络运行数据和分析网络协议运行状态的重要手段 之一,在帮助网络管理人员分析网络异常的原因方面发挥了重要的作用。由于 基于数据包捕获的被动流量监测可以提供网络不同协议层次的运行状况,因此 成为目前网络测量中最常用的方法。 本文针对存在于政府、部队、企事业单位、校园等单位中的大量中小型网 络系统缺乏快速、简捷、能够广泛推广应用的网络故障分析软件,设计并实现 了一个基于w i n p c a p 的实时网络数据包捕获和协议统计分析系统。该系统在 r t f m 流量测量框架体系结构上,采用w i n p c a p 网络数据包捕获机制,对流经 网络的数据包进行监测和统计分析,并通过多线程技术和读写缓冲技术,解决 了读取缓冲区中数据和网络数据到来之间的速度差异;在连续捕获数据包的同 时,对数据包进行同步地分析和归类,并进行应用级处理。系统使用了基于五 元组的f l o w 结构,并加入了h a s h 算法,添加了对t o p n 主机进行排序的数组, 从而提高了检索和监测效率。 系统完成了数据包级和流级的流量指标的统计和分析,包括t c p i p 各层协 议分布、包长度分布、不同聚集程度的流分布,以及流量排名靠前的口主机和 主机对分布等;系统提供了网络运行状态的告警指示,从而能够在一定程度上 帮助网络管理人员及时地发现和排除网络异常,提高了对网络可靠性的监控和 保障能力。 关键词:数据捕获;流量分析;被动网络测试;w i n p c a p :网络协议 a b s t r a c t a b s t r a c t a sam e a n so fc a p t u r i n gn e t w o r kt r a f f i ca n da n a l y s i so fn e t w o r kp r o t o c o l s o p e r a t i n gp e r f o r m a n c e ,n e t w o r ks u r v e yh a sp l a y e da ni m p o r t a n tr o l ei nh e l p i n g u st o c l a r i f yt h er e a s o nw h yt h en e t w o r kc o u l d n tw o r kn o r m a l l y t h ep a s s i v en e t w o r k m e a s u r e m e n tb a s e do np a c k e t sc a p t u r ec a ns u p p l yd i f f e r e n tg r a n u l a r i t yl e v e lo ft h e n e t w o r kt r a f f i c si n f o r m a t i o n , a n di th a sb e c o m et h em o s to x ) n l i n o nm e t h o di n n e t w o r ks u r v e y t h e r ea r el a r g en u m b e r so fs m a l l - m e d i u ms i z en e t w o r k si nt h eg o v e r n m e n t , m i l i t a r yu n i t s ,e n t e r p r i s e s ,s c h o o l s ,e t c a l lo ft h e ma r el a c k e do ff a s t , s i m p l ea n d w i d e l yp r o m o t eu s eo ft h en e t w o r kf a u l ta n a l y s i ss o f t w a r e ,t h i sp a p e rd e s i g n sa n d a c c o m p l i s h sar e a l t i m es y s t e mb a s e do nt h ew i n p c a p ,w i 也t h ef u n c t i o no fn e t w o r k t r a f f i cc a p t u r e a n dp r o t o c o l sa n a l y s i s u n d e rt h ef r a m e w o r ko fr t f m ,t h i ss y s t e m u s e st h ew i n p c a pa p it oc a p t u r et h et r a f f i cf l o w i n ga sw e l la ss t a t i s t i c sa n da n a l y s e o ft h ed a t ap a c k e t sp a s s e db y i ta l s oa d o p t sm u l t i t h r e a d i n ga n dr e a da n dw r i t eb u f f e r t e c h n o l o g y ,a n dr e s o l v e st h es p e e dd i f f e r e n c eb e t w e e mr e a d i n gd a t ab u f f e ra n dt h e a r r i v a lo fn e t w o r kt r a f f i cd a t a a sc a p t u r i n gd a t ap a c k e t si nc y c l e s ,t h es y s t e m a n a l y z e sa n dc a t e g o r i z e st h ec a p t u r e dd a t a a tt h es a n l et i m e ,w h i l e d o i n g a p p l i c a t i o n l e v e lp r o c e s s i n gf o rf u r t h e r t h es y s t e mu s e sf l o ws t r u c t u r ew h i c hi s b a s e do nt h ef i v et r i p l ei n c l u d i n gs o u r c ea d d r e s s ,d e s t i n a t i o na d d r e s s ,s o u r c ep o r t , d e s t i n a t i o np o r ta n dt y p eo fp r o t o c 0 1 a l s oi ti n t r o d u c e st h eh a s ha l g o r i t h ma n d a d d sa na r r a ys o r t i n gt o p nh o s t s ,t h e r e b ye n h a n c e st h ee f f i c i e n c yo fs e a r c ha n d m o n i t o r i n g t h i ss y s t e ma c h i e v e sa p a c k e t l e v e la n df l o w - l e v e lt r a f f i cs t a t i s t i c sa n da n a l y s i s , i n c l u d i n gt h ed i s t r i b u t i o no fv a r i o u sl a y e r so ft c p i p ,p a c k e ts i z e s ,d i f f e r e n t a g g r e g a t i o n l e v e lf l o w sa n dt o p nh o s t s i ta l s op r o v i d e st h ew a m i n gi n d i c a t o r so f n e t w o r kr u n n i n g , t h e r e f o r , i tc a l lh e l pu st od e t e c ta n de x c l u d en e t w o r ka n o m a l y i m m e d i a t e l y ,a n di m p r o v e st h er e l i a b i l i t yo f n e t w o r k s i i a b s t r a c t k e yw o r d s :p a c k e t sc a p t u r e ;n e t w o r kt r a f f i ca n a l y s i s ;p a s s i v en e t w o r km e a s u r e m e n t ; w i n p c a p ;n e t w o r kp r o t o c o l s i i i 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:砑苕曰f 8 年s 只) z - e l 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 解密时 间:年月日 各密级的最长保密年限及书写格式规定如下: 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年月日 第一章引言 第一章引言 第一节课题背景 对网络进行研究的最终目的是为了建立高效、稳定、安全、互操作性强、 可预测以及可控制的网络。网络测量是获得第一手网络性能指标和参数的最有 效的手段。网络测量和网络性能分析是高性能协议设计、网络设备开发、网络 规划与建设、网络管理与操作的基础,同时也是开发高效能网络应用的基础。 网络测量和网络行为分析可以为i n t c r n c t 的科学管理和有效控制,以及为i n t c m c t 的发展与利用提供科学的依据【l 】。 网络测量就是遵照一定的方法和技术,利用软件和硬件工具来测试或验证 表征网络性能指标的一系列活动的总和。 从不同的角度出发,可以对网络测量进行不同的分类。 1 ) 拓扑测量与性能测量 根据测量的对象,可以把网络测量分为拓扑测量与性能测量。 拓扑测量指的是测量网络的拓扑结构或者逻辑拓扑关系图,形成具有地理 信息的拓扑图。c a i d a ( t h ec o o p e r a t i v ea s s o c i a t i o nf o ri n t e r a c td a t aa n a l y s i s ) 开发的s k i t t e r 2 工具针对从几个源点到成千上万个目标点收集到的路径信息, 采用断层摄影技术,动态发现和跟踪i n t c m c t 拓扑结构,并将其可视化,绘制全 球i n t c r n c t 拓扑结构。 性能测量的主要内容包括时延、吞吐量、丢包率等。根据测试数据可以分 析网络的可靠性、稳定性和有效性;帮助对特定网络进行维护管理,以保障服 务质量;还可以预报网络性能,周期性地监视网络性能,通过数值模型预测下 一时段端到端的吞吐量、时延等。 2 1 主动测量与被动测量 根据测量的方式,可以把网络测量分为主动测量、被动测量。 主动测量是通过在现有的网络中注入测量数据,从而获取测量结果的一种 技术 3 】。如p i n g 发送i c m p 类型数据包,可以获得网络往返时延、丢包率与连 通性等参数。主动测量必须向网络中注入附加的流量,从而对网络的实际运行 第一章引言 状态造成影响,对其测量结果可能造成一定的偏差,即h e i s e n b e r g 效应【4 j 。在 进行网络测量的时候,必须考虑测量行为对于网络本身所造成的影响,并且将 这种影响减到最小。 被动测量通过在网络中的一个或多个网段上借助包捕获器获取数据的方式 记录网络流量,并对流量进行分析,被动地获知网络性能状况。被动测量不主 动发送测量包,不会对网络的正常流量带来影响,因此又被称为非侵扰式测量。 被动测量实现复杂度较高,而且其准确度依赖于包捕获器的性能。另外,由于 被动测量方式需要获取捕获点位置处的所有用户信息并进行分析处理,因此可 能会引发侵犯隐私和安全的问题。 在对网络进行测量的时候是采用主动测量还是采用被动测量,是一直在探 讨的问题。当前网络性能测量趋向于采用主动与被动测量相结合的方法,利用 主动测量确定网络的整体性能,而当网络发生异常时则采用被动测量方法确定 问题所在的位置,进行故障定位。 网络测量是收集和分析网络协议运行状态的主要手段,可以帮助网络管理 人员掌握网络实际运行状态,是网络管理中的重要技术。因此,网络测量已成 为网络研究的重要课题之一。 第二节论文的选题及研究现状 基于数据包捕获的被动流量监测由于可以提供不同协议层次的网络运行状 况信息,因而成为网络测量中最常用的方法。很多研究人员和硬件生产厂商试 图通过专用硬件实现被动流量监测分析。虽然基于硬件的监测平台展现了巨大 的性能优势,能够运行于高速网络环境,但通用平台上基于软件实现流量监测 分析仍然是最为常用的方法,例如t c p d u m p l i b p c a p ,s n i f f e r 和e t h e r e a l 等。软 件流量监测的基本原理是通过将网卡设置为混杂模式捕获流经链路的数据包, 对数据包解码获得统计分析结果。该方法被广泛应用到入侵检测( 如s n o r t , b r o 5 】) 和流量分析( 如n t o p ,t c p f l o w ) 中。 i e t f 相应的工作组定义了多种网络安全测量软件的标准构架,如实时流量 测量( r e a lt i m et r a f f i cf l o wm e a s u r e m e n t ,r t f m ) 等。但r t f m t 6 只定义了测 量程序的整体架构,没有对其中的关键部件流量测量器( m e t e r ) 的实现标准、 性能等指标进行详细的设计和定义,难以满足实际的流量分析需求。 2 第二章引言 在2 0 世纪9 0 年代初期就有人开始研究i n t e r n e t 的测量。1 9 9 5 年美国科学 基金会( n s f ) 系统地进行了i n t e m e t 通信量的较大规模测量。1 9 9 6 年初,美 国应用网络研究国家实验室( n i ,a n r ) 在n s f 支持下召开了有关i n t e r n e t 统计 与分析的研讨会i s m a 1 0 1 。此后,依托于美国加州大学圣地亚哥分校超级计算 中心的i n t e m e t 数据分析合作组织( c a d a ) 对网络测量的相关理论和方法展 开了系统性研究,i e t f 也成立了专门的工作组i p p m ( i pp e r f o r m a n c em e t r i c s ) t 1 1 】 来制定口网络的运行参数。1 9 9 7 年vp a x s o n 的博士学位论文“i n t e r n e t 的端到 端动态性能的测量与分析”成为网络测量领域中的经典文献【1 2 】。 在国际上,许多大型研究项目组和研究人员在网络测量领域已经开发出了 很多测量系统。美国从1 9 9 2 年开始着手i n t e m e t 特征的研究。其中比较著名的 项目包括u cb e r k e l e y 的科学家们对i n t e m e t 开展的两次长达三个月的大规模测 量,其改进平台n i m i ( n a t i o n a li n t e r n e tm e a s u r e m e n ti n f i - a s t r u c t u r e ) ,已经广泛 部署在许多国家,产生了非常深远的影响【1 3 1 。i e p m ( i n t e m e te n d t o e n d p e r f o r m a n c em e a s u r e m e n t ) 主要用来监视i n t e m e t 上的端到端性能【l 卅;i p m a ( i n t e m e tp e r f o r m a n c em e a s u r e m e n ta n d a n a l y s i s ) 主要研究局域网和广域网环境 中的网络性能和网络协议。 m o a to fn l a n r ( m e a s u r e m e n t & o p e r a t i o n sa n a l y s i st e a mo fn a t i o n a l l a b o r a t o r y f o r a p p l i e dn e t w o r kr e s e a r c h ) :主要研究高性能网络的行为特征,并 开发了一个网络测量平台【1 5 1 。测量平台的研究核心主要由两个项目组成:被动 测量分析项目组p m a ( p a s s i v em e a s u r e m e n ta n da n a l y s i sp r o j e c t ) 和主动测量测 量项目组a m p ( a c t i v em e a s u r e m e n tp r o j e c t ) 。 除美国外,其他国家也开展了对i n t e m e t 的大规模测量和研究,如加拿大的 t r i u m f 网络监视系统其主要目的是对该国家i n t e m e t 路径上的包丢失情况和 路由特征进行测量;新西兰的w a n d ( w a i k a t oa p p l i e dn e t w o r kd y n a m i c s ) 中 的被动测量子项目w i t s ( w a i k a t oi n t e m e tt r a f f i cs t o r a g e ) ,其主要目的是创建 用于统计分析和创建模拟模型的i n t e r n e t 流量模型。欧洲于1 9 9 5 年也开展了对 i n t e m e t 的测量,其中粒子物理网络协作组( p p n c g ) 是在这方面做得较为成功 的一个组织。 i n t e m e t 2m e a s u r e m e n tw o r k i n gg r o u p 1 6 】:正在开发一个i n t e m e t 2 的分布式 测量平台。该平台将用来分析端到端的网络性能,研究q o s 性能特征等;并采 用n e t f l o w ,m r t g ,s n m p 等技术提供每天,每周,每月及每年的流量和性能 3 第一章引言 分析报告。 国内清华大学提出的大规模互联网络性能监控模型( l a r g es c a l ei n t e r n e t p e r f o r m a n c em o n i t o rm o d e l ,l i p m ) 【1 7 1 ,借鉴i s o 的层次结构思想,将模型分 为数据采集、数据管理、数据分析、数据表示四个层次,融汇了t m n ( t e l e c o m m u n i c a t i o nm a n a g e m e n tn e t w o r k ) 在对象管理方面的方法,易于实现 和维护。西安交通大学提出了互联网应用性能测量系统( n e t w o r ka p p l i c a t i o n p e r f o r m a n c em e a s u r e m e n t ,n a p m ) 【1 8 1 ,提出了应用探针和区域探针的分布式 体系结构。 网络测量课题有着重要的理论研究价值与应用前景,对于保障网络系统的 正运行有着重要的意义。 第三节本文研究内容 本文针对存在于政府、部队、企事业单位、学校等单位中的大量中小型网 络系统缺乏快速、简捷、能够广泛推广应用的网络故障分析工具,研究与开发 一套用于中小规模网络系统的网络监控软件,重点考虑对网络故障的分析功能, 设计并实现了一个基于w i n p c a p 的实时网络数据包捕获和协议统计分析系统。 该系统在r t f m 流量测量框架体系结构上,采用w i n p c a p 网络数据包捕获机制, 对流经网络的数据包进行监测和统计分析,并通过多线程技术和读写缓冲技术, 解决了读取缓冲区中数据和网络数据到来之间的速度差异;在连续地捕获数据 包的同时,对数据包进行同步地分析和归类,并进行应用级处理。完成了数据 包级和流级的流量指标,包括t c p i p 各层协议分布,包大小分布,前n 名的 口主机和主机对分布等;并提供网络运行状态的告警指示,可以根据网络安全 管理员设定的特征信息,对具有特征信息的数据包进行分类解析、还原和预警。 系统使用了基于五元组的f l o w 结构,并加入了h a s h 算法,添加了对t o p n 主 机进行排序的数组,从而提高了检索和监测效率。有效地解决了目前根据r t f m 实现的网络测量系统,如n e t r a m e t 7 1 1 8 】【9 1 ,存在功能有限、性能不高,并且配 置麻烦的局限性。 本论文在了解了网络测量的内容及意义的前提下,结合了当前国内、国际 在网络测量方面的相关工作及成果,主要研究了如何提高网络数据包捕获能力, 和提高协议分析统计能力方面的内容。 4 第一章引言 1 提高网络数据包捕获能力。 针对提高网络数据包捕获能力方面,深入分析了基于w i n p c a p 的网络数据 包捕获机制,指出在影响数据包捕获的各种因素中,网卡硬中断对捕获性能的 影响最大。但在实际网络监测中,系统的总体性能和数据包处理能力上限是需 要考虑的第一要素。 在本系统中为提高系统的效率采用了如下的策略和技术: 1 ) 优化协议分析策略。在进行协议分析前需要根据应用功能的要求制定 对协议分析的具体策略。例如根据应用需求,先对数据包进行有目的的过滤, 仅将应用功能所需数据包发送给协议分析模块,而且有些数据包不需要进行校 验和检验,这就提高了处理速度,节约了协议分析的时间。 2 ) 采用多线程机制。实时监控网络并捕获数据包是一个工作线程,处理 用户界面并响应用户命令是一个u i 线程。在对数据进行高层协议分析时,不同 的应用功能运用不同的线程完成。例如,若网络上进行着h t t p 和f t p 通信, 网络监控系统则将捕获到的h t t p 数据交给h t t p 处理线程,将f t p 数据交给 f t p 线程进行处理,加快了应用程序的处理速度。 3 ) 采用读写缓冲,在w i n p c a p 中将缓冲区适当加大可以缓解应用程序读 取缓冲区中的数据和网络数据到来之间的速度差异。但仅仅利用这些技术并不 能完全解决处理速度和网络数据到来速度之间的差异问题。在很多地方需要进 行读写磁盘操作( 如读取配置文件、将统计结果存入数据库等) ,写磁盘操作需 要浪费大量的处理时间,如果不采取任何解决方案,对每一个处理后的数据包 都进行写磁盘操作,那么处理时间的浪费是惊人的。因此,在应用程序的处理 过程中添加相应的读写缓冲空间将更有助于解决这一问题。将处理好的数据包 存放在一定大小的缓冲区中,当存储长度达到一定的时候将数据一次性地写盘。 2 提高协议分析统计效效率。 在协议分析统计方面,详细分析t c p i p 分层体系结构,研究了网络数据封 装格式并作出了相应的数据结构。对捕获的数据包按照数据链路层( m a c ) 、 网络层( i p 、a r p r a r p ) 、传输层( t c p 、u d p 、i c m p ) 和应用层( h 订p 等) 。 的层次结构自底向上进行解析,最后将解析结果显示输出。研究了数据包长度 分布、协议端口分布、流量口分布的相关规律,设计了相应的统计模块。在 m a c 层上统计了a r p r a r p 、i p 协议的分布,便于在发生广播风暴、a r p 欺骗 等时的故障分析;在口层上统计了i c m p 、t c p 、u d p 的协议分布,便于发现 5 第一章引言 i c m p 攻击;另外还做了应用层协议分布统计,便于分析网络上运行的应用情 况。在做流量统计模块时,参考r t f m 体系中关于f l o w 的定义,对系统捕获 的数据包进行处理,建立基于5 元组( 源地址、目的地址、源端口、目的端口、 协议类型) 的流结构,使用h a s h 算法对流建立了检索,及大的提高了系统的分 析效率。 第四节论文结构 本文在结构上分为五个组成部分: 第一章阐述了研究网络测量的背景及研究现状,并介绍了网络测量方法的 分类,以及本文的研究内容和意义。 第二章讨论分析了网络数据捕获的基本工作原理,介绍了不同的网络开发 工具,对w i n p c a p 数据捕获原理进行了分析,指出包捕获提高性能的途径;介 绍了其主要功能模块、常用数据结构、主要函数。 第三章介绍系统的实现的功能与整体结构的设计。论述了数据捕获过程; 详细介绍了协议解析的原理及实现并给出了相应协议对应的数据结构;介绍了 协议统计模块的一些数据结构及算法。 第四章介绍了程序的开发环境及程序运行效果,并说明了程序的应用。 第五章对本文所阐述的内容进行总结,并指出需要进一步完善的功能。 6 第二章网络数据捕获基础及w m p c a p 相关知识 第二章网络数据捕获及w in p c a p 相关知识 第一节网络数据捕获 由于本论文主要目的是研究与开发一个应用于中小规模网络的网络监控系 统软件,而e t h e m o t 是目前应用最广泛的计算机连网方式。它是基于总线结构, 物理层采用广播方式,当一台主机向另一台主机发送数据时,发送主机会将包 含目的主机正确地址的数据帧发送到总线上,因此同一链路上所有活跃主机的 网卡都能接收到该帧。数据捕获器工作在网络环境中的底层,拦截所有正在网 络上传送的数据,并且通过相应的解析处理,可以实时分析这些数据的内容, 进而分析所处的网络状态。 2 1 1 网卡工作模式 正常情况下,网卡收到传输来的数据帧后,会先检查帧头的目的地址字段, 如果该地址不是本机的m a c 地址,则丢弃不管,因此只有具有该地址的主机 会接受这个数据帧。但是,如果某个程序能够修改网卡的接收模式,使其成为“混 杂( p r o m i s c u o u s ) ”模式,即一台主机可以接收网络上所有的数据帧而不理会帧 头的目的地址。 网卡具有如下的几种工作模式: 1 ) 广播模式( b r o a d c a s tm o d e l ) :数据帧可以发向网络中所有计算机,这 种帧的目的地址是0 x f f f f f f f f f f f f ,也称为帧的广播地址。任何设置为 广播模式的网卡都接收目的地址为广播地址的数据帧。通常所有的网卡被配置 为接收广播帧。 2 ) 多播传送( m u l t i c a s tm o d e l ) ;多播传送地址作为目的物理地址的帧可 以被组内的其它主机同时接收,而组外主机却接收不到。但是,如果将网卡设 置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员。 3 ) 直接模式( d i r e c tm o d e l ) :工作在直接模式下的网卡只接收目地址是自 己m a c 地址的帧。 4 ) 混杂模式( p r o m i s c u o u sm o d e l ) :工作在混杂模式下的网卡接收所有的 7 第二章网络数据捕获基础及w m _ p c a p 相关知识 流过网卡的帧,数据包捕获程序就是在这种模式下运行的。 2 1 2 共享环境下的网络数据捕获 在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的 或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但 却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不 引起响应,也就是说应用程序无法收取与自己无关的数据包,它只接收广播帧 和发给自己的帧。如果将网卡设置为混杂模式,它对遇到的每一个帧都产生一 个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。 。共享环境下的网络使用集线器连接各个网络节点,数据报到达集线器以后, 集线器会把数据报转发到集线器的每个端口,换句话说,集线器连接的每个网 络节点都会收到所有的数据报。这样,将一台主机的网卡设置成混杂模式,它 将会接收到同一网络内所有主机所发送的数据包,该主机就可以捕获到所有流 经网络的数据包,这样就可以到达对于网络信息捕获监视的目的。s n i f f e r 就是 一种能将本地网卡状态设成“混杂”状态的并对网络数据进行监听的软件。网络 硬件和t c p i p 堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为 了绕过标准的t c p i p 堆栈,网卡就必须设置为刚开始讲的混杂模式。同样道理, w i n p c a p 由于是基于b p f 的数据包捕获系统,它们在进行捕包前也要对网卡设 置,即以混杂模式打开网络接口设备。 2 1 3 交换环境下的网络数据捕获 交换环境的网络使用交换机( s w i t c h ) 连接各个网络节点。交换环境,通 过使用交换机代替共享环境下的集线器,能够解决集线器的几个安全问题,交 换机通过自己的a r p 缓存列表来决定把数据报发送到某个端口,这样就不是把 一个数据报转发到各个端口了,这样的做法一方面大大提高了网络的性能,另 一方面也提高了安全性,在交换环境下,即使网卡设置为混杂模式,也只能监 听本机的数据包,因为交换机不会把其他节点的数据包转发给嗅探主机了。所 以,在交换环境下必须想办法让被嗅探主机的数据报发到嗅探主机来,能够实 现这种目的方法主要有两种: 1 ) 在根节点使用带有镜像功能的交换机,这种功能的交换机可以设置为 8 第二章网络数据捕获基础及w i n p c a p 相关知识 把所有的数据报都转发到某一指定端口上,在该端口上可以连接运行s n i f f e r 的 主机。 2 ) 如果根节点交换机没有这种功能,那么可以在根节点上方添加一台集 线器,集线器一个端口连接交换机,另外一个端口就可以连接运行s n i f f e r 的主 机。 第二节网络开发工具 2 2 1 网络安全开发函数库 目前的网络安全程序、工具和软件大部分是基于s o c k e t 设计和开发的。由 于在安全程序中通常需要对网络通讯的细节( 如连接双方地址端口、服务类型、 传输控制等) 进行检查、处理或控制,数据包截获、数据包头分析、数据包重 写、甚至截断连接等,几乎在每个网络安全程序中都必须实现。为了简化网络 安全程序的编写过程,提高网络安全程序的性能和健壮性,同时使代码更易重 用与移植,最好的方法就是将最常用和最繁复的过程函数,如监听套接口的打 开关闭、数据包截获、数据包构造发送接收等,封装起来,以a p il i b r a r y 的 方式提供给开发人员使用。 在众多的a p il i b r a r y 中,对于类u n i x 系统平台上的网络安全工具开发而言, 目前最为流行的c 语言网络数据开发函数库有【19 】: 1 ) 网络数据包捕获函数库l i b p c a p ; 2 ) w i n d o w s 平台下数据包捕获函数库w i n p c a p ; 3 ) 网络数据包构造和发送函数库l i b n e t ; 4 ) 网络入侵检测函数库l i b n i d s ; 5 ) 通用网络安全函数库l i b d n e t 。 它们分别从不同层次和角度提供了不同的功能函数库。例如,使用数据包 捕获函数库就可以实现网络监视系统的最基本功能:用网络数据包生成函数库 就可以构造网络安全扫描系统的基本功能。这就使网络开发人员能够忽略网络 底层细节的实现,从而专注于程序本身具体功能的设计与开发。利用这些c 函 数库的接口,网络安全工具开发人员可以很方便地编写出具有结构化强、健壮 性好、可移植性高等特点的程序。现在这些基本的功能函数库几乎己经成了标 9 第二章网络数据捕获基础及w m p c a p 相关知识 准的编程接口,编程时直接调用就可以,为开发者节省了时间和精力。在系统 安全扫描、网络监测、防火墙、i d s 等领域都获得了极其广泛的应用。一些著 名的网络安全系统使用了这些函数库作为底层功能的驱动和实现。一般来说, 这些基本开发函数库是免费的甚至是开放源代码的,这更有利于通过诸多开发 者的不断的测试和完善日趋成熟,进而有更加广泛的应用。 2 2 2 数据包捕获工具 前面己经表述了网络数据包捕获的基本原理,从广义的角度上看,一个包 捕获机制包含三个主要部分:最底层是针对特定操作系统的包捕获机制,最高 层是针对用户程序的接口,第三部分是包过滤机制。不同的操作系统实现的底 层包捕获机制可能是不一样的,但从形式上看大同小异。数据包常规的传输路 径依次为网卡、设备驱动层、数据链路层、口层、传输层、最后到达应用程序。 而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做 过滤缓冲等相关处理,最后直接传递到应用程序。值得注意的是,包捕获机制 并不影响操作系统对数据包的网络栈处理。对用户程序而言,包捕获机制提供 了一个统一的接口,使用户程序只需要简单的调用若干函数就能获得所期望的 数据包。这样一来,针对特定操作系统的捕获机制对用户透明,使用户程序有 比较好的可移植性。包过滤机制是对所捕获到的数据包根据用户的要求进行筛 选,最终只把满足过滤条件的数据包传递给用户程序。l i b p c a p 和w i n p c a p 网 络数据包捕获函数库就是按照这样的原则设计的,其中w i n p c a p 函数库是为了 将l i b p c a p 移植到w i n d o w s 平台下而编写的,设计时参照了l i b p c a p 。 第三节w i n p c a p 相关知识 w i n p c a p ( w i n d o w sp a c k e tc a p t u r e ) 2 0 】是w i n d o w s 平台下一个免费、公共 的网络访问系统,为w i n 3 2 应用程序提供访问网络底层的能力。w i n p c a p 为程 序员提供了一套标准的网络数据包捕获接口,并且与l i b p c a p 兼容,使得原来 许多l i n u x 平台下的网络安全程序可以很快地移植到w i n d o w s 平台下。w i n p c a p 的效率很高,它充分考虑了各种性能和效率的优化,在内核层次实现了数据包 的捕获和过滤。这是由n p f ( n e t g r o u pp a c k e tf i l t e r ) 2 1j 来实现的,n p f 是w i n p c a p 1 0 第二章网络数据捕获基础及w i n p c a p 相关知识 的核心部分,它还实现了内核层次的统计功能,有利于设计网络流量的程序。 w i n p c a p 提供了以下的各项功能: 1 ) 捕获原始数据包,包括在共享网络上各主机发送接收的数据包以及相 互之间换的数据包: 2 ) 在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报 过滤掉: 3 ) 在网络上发送原始的数据报; 4 ) 收集网络通信过程中的统计信息。 2 3 1 网络驱动程序接口规范 在w i n d o w s 系列操作系统中,程序运行在不同的特权等级和内存环境下, 其中系统程序和各种驱动程序运行在最高特权等级黜n 9 0 ,而用户应用程序则 运行在m n # 。运行在r i n g o 特权等级下的程序可以对任意资源进行无限制地 访问。特权等级较低的应用程序只能访问到自己的内存空间,需要访问其他资 源时需要向系统申请。要实现网络原始数据截取,必须得到访问网卡的权限, 这在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 e s p e c i f i c a t i o n ) 是m i c r o s o f t 和3 c o m 公司联合制定的网络驱动规范,是一个构 建网络接口( n i c ) 驱动和协议驱动的规范,它解决了这两者之间的相互作用。 n d i s 位于网卡和协议层之间,通过一套基元指令为上层的协议驱动提供服务, 同时屏蔽了下层各种网卡技术上的差别。如图2 1 所示。 图2 1n d i s 在w i n d o w s 中的位置 n d i s 向上支持多种网络协议,比如t c p i p 、i p x s p x 、n e t b e u i 、a p p l e t a l k 等,向下支持不同厂家生产的多种网卡。 第二章网络数据捕获基础及w m p c a p 相关知识 n d i s 还支持多种工作模式,支持多处理器,提供一个完备的n d i s 库 ( l i b r a r y ) 。但库中所提供的各个函数都是工作在核心模式下的,用户不宜直接 操作。实际上,n d i s 最主要的目的是作为一个允许协议来驱动发送和接收网络 ( l a n 或w a n ) 上的数据包而不必关心特定的适配器或特定的w i n 3 2 操作系 统的封装。 n d i s 在数据链路层的媒体控制层( m a c ) 执行其功能。n i c 硬件实现过 程与媒体访问控制设备驱动程序紧密相关,这样利用通用编程接口,可以访问 同一媒体( 如以太网) 的所有网络接口卡。其次n d i s 还具有关于网络驱动程 序硬件的功能库,主要用于m a c 驱动和更高级的协议驱动( 如t c p 口) 。利用 功能库的各种功能支持,使得m a c 驱动和协议驱动的开发过程变得相对简单, 同时在某种程度上,掩盖了平台的依赖特性。此外通过n d i s ,也可以帮助网络 驱动程序维护状态信息和参数,包括联接或其它系统值中涉及的指针功能、旬 柄及参数块等田】。 n d i s 支持三种类型的网络驱动类型: 1 1 网络接口卡驱动( n e t w o r ki n t e r f a c ec a r dd r i v e r s ) 。n i c 驱动直接管理着 网络接口卡,下边与硬件连接,从上边表现为一个接口,该接口允许高层发送 数据包到网络上,处理中断,重置或停止n i c ,查询和设置驱动的运行特征【2 3 j 。 n i c 驱动可以是小端口或完全的n i c 驱动( 龟nn i c d r i v e r ) 。 2 ) 中间层驱动( i n t e r m e d i a t ed r i v e r s ) 。中间层驱动位于高层驱动( 例如协 议驱动1 和小端口驱动之间。它能够截获所有网络数据包,如以太帧。对于高层 驱动,中间层驱动看起来像是小端口;对于小端口,中间层驱动看起来像协议 驱动。开发中间层驱动的一个关键原因是在现存的遗留协议驱动( 1 e g a c y p r o t o c o ld r i v e r ) 和小端口之间形成媒体的转化。例如,中间层驱动可以将l a n 协议转换成a t m 协议。n d i s 中间层的应用很广泛,可以用于防火墙也可以用 来实现v p n 、n a t 、p p po v e re t h e r n e t 、v l a n 等。 3 1 传输驱动( t r a n s p o r td r i v e r s ) 或协议驱动( p r o t o c o ld r i v e l s ) 。协议驱动 实现了网络协议栈,例如i p x s p x 或t c p i p 。在一个或多个网络接口卡上提供 它的服务。在协议驱动的上面,它为应用层客户程序服务;在它的下面,它与 一个或多个n i c 驱动或中间层n d i s 驱动连接。 n d i s 驱动程序接口规范的结构如图2 2 所示。 1 2 第二章网络数据捕获基础及g r m p c a p 相关知识 应用层 l 自荔蘩荔灏沥彩黪缘澎絮貔缓罂囊缓:黪麓缓糍謦磐l 熬? 2 髟荔:7 勿 一一一一一一一一一一一l 一一一一一一一一一一一一一一 协议驱动程序 铹渤援缝|b 镌缪麓丝彩励蠹m 置麓z 黧醴塑毵嫩盈幺 , ( 二嚣釉 缓霆毳徽,二露:穗锄绕缀燃。: 1 i ( 网卡驱动 姆 、镞黝獬黝黝獭渤牛兹溯黝褫娥蹴熬女彩, ( 网卡 赢 2 3 2 主要功能模块 图2 2n d i s 驱动程序结构 w i n p c a p 是由一个核心的包过滤驱动程序n p f ,一个底层的动态连接库 p a c k e t d l l 和一个高层的独立于系统的动态连接库w p c a p d l l 组成。 1 n p f 模块 内核层的数据包过滤模块,它的功能是捕获和过滤数据包,同时还可以发 送、存储数据包以及对网络进行统计分析。这个底层的包捕获驱动程序实际为 一个协议网络驱动程序,通过对n d i s 中函数的调用为w i n 9 5 、w 抽9 8 、w i n n t 和w i n 2 0 0 0 等提供类似于u n i x 系统下b p f ( b e r k e l e y p a c k e tf i l t e r ) 幽】的捕获 和发送原始数据包的能力。这些功能依赖于w i n 3 2 系统内核中的设备驱动以及 一些动态链接库,比如w i n d o w s 9 5 9 8 m

温馨提示

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

评论

0/150

提交评论