(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机应用技术专业论文)校园网用户上网行为分析系统的研究与实现.pdf.pdf 免费下载

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

文档简介

华北电力大学硕士学位论文摘要 摘要 新的网络协议的不断涌现以及网络流量成指数倍的增长 使得网络流量监测十分困 难 有些i n t e r n e t 应用使用若干个端口或为其子事务动态分配端口号 而有些i n t e r n e t 应用程序使用相同的端口号 这就意味着传统的基于熟知端口号的流量监测方法是不够 可靠和精确的 为此 本文研究了一种基于签名匹配的方法来鉴别p 2 p 和多媒体应用程 序 首先用l i b p c a p 捕获流经监测主机的全部数据包 然后用回调函数p c a p l o o p 0 分 析t c p 和u d p 协议 得到应用程序的熟知端口号 最后用签名匹配的方法解析数据包的 有效载荷 为数据流的合并提供依据 系统采用在一个八口交换机上连接一个h u b 装 有本监测系统的主机和h u b 相连 统计出的流量以w e b 方式反馈给网络管理员 关键词 网络监测 l i b p c a p 有效载荷 签名匹配 a b s t r a c t n e wn e t w o r kp r o t o c o l se m e r g i n ga n dn e t w o r kt r a f f i ce x p o n e n t i a lg r o w t hm a k ei n t e m e t t r a f f i cm o n i t o r i n gv e r yd i f f i c u l t s o m ea p p l i c a t i o n su s ear a n g eo fp o r tn u m b e r so r d y n a m i c a l l ya l l o c a t e do n e sf o rt h e i rs u b t r a n s a c t i o n s a n ds o m es e v e r a li n t e r n e ta p p l i c a t i o n s u s et h es a m ep o r tn u m b e r t h i sm e a n st h a tt h et r a d i t i o n a lt r a f f i cm o n i t o r i n gm e t h o db a s e do n t h ew e l l k n o w np o r t si sn o ts u f f i c i e n t l yr e l i a b l ea n da c c u r a t e t h i sp a p e rd e s c r i b e sa s i g n a t u r e b a s e dm a t c h i n gm e t h o dt oi d e n t i f yp e e r t o p e e ra n dm u l t i m e d i aa p p l i c a t i o n s f i r s t w eu s el i b p c a pt o c a p t u r ea l ld a t ap a c k e t sp a s s i n gt h em o n i t o rm a i n f r a m e t h e nw eu s e c a l l b a c kf u n c t i o np c a p l o o p 0t oa n a l y z et c pa n du d pa n dg e tt h ew e l l k n o w np o r t n u m b e r so fa p p l i c a t i o n s f i n a l l y w eu s es i g n a t u r e m a t c h i n gm e t h o dt op a r s et h ep a y l o a do f d a t ap a c k e t t h er e s u l t so f p a r s i n gp r o v i d et h eb a s i sf o rm e r g i n gd a t af l o w s t h em o n i t o r m a i n f r a m ei sc o n n e c t e dt oah u bw h i c hi sc o n n e c t e dw i t ha ne i g h t p o r ts w i t c h t h es t a t i s t i c s r e s u l t sa r ep r e s e n t e dt ot h en e t w o r ka d m i n i s t r a t o rw i lw e bb r o w s e r l i uj i n c o m p u t e ra p p l i e dt e c h n o l o g y d i r e c t e db yp r o f w a n gz h e n q i k e yw o r d s n e t w o r k m o n i t o r l i b p e a p p a y l o a d s i g n a t u r e m a p p i n g 华北电力大学硕士学位论文摘要 摘要 新的网络协议的不断涌现以及网络流量成指数倍的增长 使得网络流量监测十分困 难 有些i n t e r n e t 应用使用若干个端口或为其子事务动态分配端口号 而有些i n t e r n e t 应用程序使用相同的端口号 这就意味着传统的基于熟知端口号的流量监测方法是不够 可靠和精确的 为此 本文研究了一种基于签名匹配的方法来鉴别p 2 p 和多媒体应用程 序 首先用l i b p c a p 捕获流经监测主机的全部数据包 然后用回调函数p c a p l o o p 0 分 析t c p 和u d p 协议 得到应用程序的熟知端口号 最后用签名匹配的方法解析数据包的 有效载荷 为数据流的合并提供依据 系统采用在一个八口交换机上连接一个h u b 装 有本监测系统的主机和h u b 相连 统计出的流量以w e b 方式反馈给网络管理员 关键词 网络监测 l i b p c a p 有效载荷 签名匹配 a b s t r a c t n e wn e t w o r kp r o t o c o l se m e r g i n ga n dn e t w o r kt r a f f i ce x p o n e n t i a lg r o w t hm a k ei n t e m e t t r a f f i cm o n i t o r i n gv e r yd i f f i c u l t s o m ea p p l i c a t i o n su s ear a n g eo fp o r tn u m b e r so r d y n a m i c a l l ya l l o c a t e do n e sf o rt h e i rs u b t r a n s a c t i o n s a n ds o m es e v e r a li n t e r n e ta p p l i c a t i o n s u s et h es a l t l ep o r tn u m b e r t h i sm e a n st h a tt h et r a d i t i o n a lt r a f f i cm o n i t o r i n gm e t h o db a s e do n t h ew e l l k n o w np o r t si sn o ts u f f i c i e n t l yr e l i a b l ea n da c c u r a t e t h i sp a p e rd e s c r i b e sa s i g n a t u r e b a s e dm a t c h i n gm e t h o dt oi d e n t i f yp e e r t o p e e ra n dm u l t i m e d i aa p p l i c a t i o n s f i r s t w eu s el i b p c a pt oc a p t u r ea l ld a t ap a c k e t sp a s s i n gt h em o n i t o rm a i n f r a m e t h e nw eu s e c a l l b a c kf u n c t i o np c a p l o o p 0t oa n a l y z et c pa n du d pa n dg e tt h ew e l l k n o w np o r t n u m b e r so fa p p l i c a t i o n s f i n a l l y w eu s es i g n a t u r e m a t c h i n gm e t h o dt op a r s et h ep a y l o a do f d a t ap a c k e t t h er e s u l t so f p a r s i n gp r o v i d et h eb a s i sf o rm e r g i n gd a t af l o w s t h em o n i t o r m a i n f r a m ei sc o n n e c t e dt oah u bw h i c hi sc o n n e c t e dw i t ha l le i g h t p o r ts w i t c h t h es t a t i s t i c s r e s u l t sa r ep r e s e n t e dt ot h en e t w o r ka d m i n i s t r a t o rw i t hw e bb r o w s e r l i uj i n c o m p u t e ra p p l i e dt e c h n o l o g y d i r e c t e db yp r o f w a n gz h e n q i k e yw o r d s n e t w o r k m o n i t o r l i b p e a p p a y l o a d s i g n a t u r e m a p p i n g 声明尸只月 本人郑重声明 此处所提交的硕士学位论文 基于p e e r t o p e e r 网络的资源搜索研 究 是本人在华北电力大学攻读硕士学位期间 在导师指导下进行的研究工作和取得 的研究成果 除了文中特别加以标注和致谢之处外 论文中不包含其他人已经发表或撰 写过的研究成果 也不包含为获得华北电力大学或其他教育机构的学位或证书而使用过 的材料 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意 移 学位论文作者签名 型l 兰蒌 日期 丝22 主 f 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留 使用学位论文的规定 即 学校有权保管 并向有关部门送交学位论文的原件与复印件 学校可以采用影印 缩印或其它复制手 段复制并保存学位论文 学校可允许学位论文被查阅或借阅 学校可以学术交流为 目的 复制赠送和交换学位论文 同意学校可以用不同方式在不同媒体上发表 传播 学位论文的全部或部分内容 涉密的学位论文在解密后遵守此规定 作者签名 导师签名 亘撅逸 华北电力大学硕士学位论文 1 1 选题背景和意义 第一章引言 近年来 随着校园网事业的飞速发展 在其上开展了多种i n t e m e t 服务和应用 并且新的i n t e m e t 应用和技术不断产生 在这种情况下 对校园网用户上网行为的 监测变得越来越重要 目前己有各种网络监测系统 以一个校园网为例 在学校的 出口处安装了各种昂贵的防火墙 入侵检测系统等 基本具备了对网络进行监测的 能力 一些安全意识比较强的用户也安装了单机版的各种软件以对自己使用网络的 情况进行监测 这样存在两个问题 一是过多的网络监测任务都放在大型网络出口 处对整个网络的性能存在不容忽视的影响 二是并不是所有的用户都有很强的安全 意识 完全依赖大型网络出口处的监测系统并不能保证网络中所有用户安全健康地 使用网络 因此有必要在中间层 即针对小型l a n 建立一个简单的网络监测系统 1 网络流量监测系统会将各种流量分门别类 并且标识出各种流量占总流量的比 例 使人们对网络中传送的信息一目了然 流量监测 t r a f f i cm o n i t o r i n g 是网络性能 测量领域中的一个分支 流量测量方法分为两种 主动测量和被动测量卜1 主动测量是 通过在现有的网络中注入测量数据从而获取测量结果的一种技术 主动测量可以很好地 测量如往返时间 r y r r o u n dt r i pt i m e 和丢包率等性能指标 由于主动测量额外增加了 网络的流量 如果这些额外增加的流量导致了网络拥塞 那么测量出来的结果是不准确 的 被动测量是基于现有的网络 使用网络设备或其它辅助设备对网络中的流量采样收集 然后再进行统计分析 使用被动测量最大的优点是可以避免在网络中注入额外的流量 f 1 传统的流量监测方法是基于登记在i a n a 端口表上的熟知端口号p 1 通过熟知 端口 我们能很容易地判定相应的应用程序 然而 随着一些新的应用程序 如p 2 p 流媒体和网络游戏的出现 互联网的这一特性已经发生了改变 这些应用程序使用 一系列的端口号或为其子事务动态分配的端口号r 1 而且一些应用程序还使用相同 的端口号 鉴于互联网发展的高度动态性 单纯依靠这种传统流量监测方法已经不 能完成鉴别i n t e m e t 应用程序的任务 为此 需要研究一种新的协议分析方法来鉴 别i n t e m e t 应用程序 1 2 采样测量技术现状 当今 主流的被动采样测量技术主要有 基于s n m p 或r m o n 的采样测量技术 基于 n e t f l o w 采样测量技术以及基于网络监听的采样测量技术 华北电力大学硕士学位论文 1 2 1 基于s n m p 或r m o n 的采样测量技术 s n m p l a j 是简单网络管理协议的简称 管理员可以使用该协议方便快捷地管理 维护正在运行的网络设备 s n m p 使用m i b 来保存网络设备的各种信息 如接口 的状态 每个接口收发的数据包的大小等信息 s n m p 远端管理站通过轮询取得这 些信息 并对收集到的数据进行统计分析 最后图形化输出 r m o n 是对s n m p 的最 重要的增强 通过扩展基本的m i b 以及管理功能可以实现对网络的监视 r m o n 探测器在设备内部轮询并记录数据 而管理站只等到需要统计数据时才与探测器通 信 可以从根本上减少管理站与代理之间的通信量 这种方法的优点是 网络结构简单 不必增加另外的硬件设备 对网络的性能 影响不大 能充分利用路由器和主交换机的资源 其缺点是 会定时或不定时地占 用一些网络资源 增加了路由器和主交换机的负载 1 2 2 基于n e f f lo w 的采样测量技术 r f l 1 9 9 7 年c i s c o 在高性能的路由器中提供了n e t f l o w 技术一1 把流经路由器的数据 包按照源 目的地 协议域 源 目的端口 通常称为f l o w 的五元组 组成单向的 数据流 i e t fr t f m r e a l t i m et r a f f i cf l o wm e a s u r e m e n t 组织在f l o w 的定义方面 有比较详细的规定 f l o w 在路由器中具有 1 活动状态 a c t i v e 2 失效 e x p i r e d 状态 一个f l o w 处于活动状态 就会一直记录着数据通讯的统计信息 如数据包 传送的多少以及总的字节数等信息 一旦f l o w 失效时 就会把这个信息通过u d p 协议发送到专门的f l o w 收集装置 使用n e t f l o w 技术可以方便地收集f l o w 信息 并且使用流分析软件进行统计分析 n e t f l o w 技术只是极少数路由设备厂商的专有 技术 因此在实施的过程中受网络设备应用的影响非常大 1 2 3 基于网络监听的采样测量技术 r 1 网络监听 1 是网络上使用非常广泛的一种技术 从网络安全角度 黑客通常就是 使用网络监听软件 如s n i f f e r 或t c p d u m p 等工具窃听流经网络上的数据包 并通过对 数据包的分析获取有用信息 为下一步的攻击做准备 从网络管理的角度 网络管 理员经常使用这些软件抓取一段时间的网络通讯数据 并通过直观分析帮助判断网 络故障以及网络中异常行为 这些软件的基本原理是利用以太网广播传输的特性 通过把主机的网卡设置为混杂模式接收所有流过网卡所连接的线路上的数据包 这 种技术不增加网络的负载 不占用网络资源 且实施起来简单易行 1 3 本选题的主要研究内容 本文主要的工作集中在以下几个方面 2 华北电力大学硕士学位论文 1 高性能的网络监听 数据报捕获技术 这是许多网络安全工具的基础 利用 它可以监视网络的状态 数据流动情况以及网络上传输的信息 2 模块化的协议分析技术 通过网络监听技术捕获到的数据报都是一些二进制 的b i t 流 这时需要利用t c p i p 协议中数据封装过程的逆过程 数据还原来重现 这些b i t 流的真实意义 由于t c p i p 协议族包括了许多具体的协议类型 本论文以 模块化的形式实现了部分常用协议的分析 3 灵活而强大的实时网络监测系统 包括对网络用户获取的信息和网络使用行 为的监测 网络流量的统计分析 对监测内容做日志记录并加以必要的分析等 1 4 本选题的主要研究价值 本选题的主要研究价值体现在以下三个方面 1 应用价值 本论文实现的系统具有很强的现实意义和应用价值 可以使用在公 司的局域网 家庭网络 网吧网络 校园网 小区宽带 大楼宽带等领域 具有成 本低 部署简单等特点 2 技术价值 本论文所使用的技术一一网络监听和协议分析是许多其它网络工 具 比如网络计费 网络审计 入侵检测 网络管理等的基础 同时也有助于透彻 地理解底层网络的工作原理及t c p i p 协议的实现细节 3 社会价值 网络如同一把双刃剑 在使人们可以便利地获取各种有用信息的同 时也使人们可以更容易地接触一些不健康的和违法的信息 这对个人 对社会都显 然是不利的 因此 一个良好的网络监测系统无疑具有很大的社会意义 1 5 本章小结 本章阐述了监测校园网主机上网行为的重要性和对小型l a n 进行网络监测的 必要性 介绍了流量监测的两种方法 主动测量和被动测量 说明了被动测量的优 越性 提出了传统流量监测方法已经不能满足鉴别i n t e r n e t 应用程序的需要 本章 还介绍了三种被动采样测量技术 通过比较得出了基于网络监听的采样技术的优越 性 最后阐述了本选题的主要研究内容和价值 华北电力大学硕士学位论文 2 1 网络监听概述 第二章网络监听 监听特指 s n i f f e r 通常直译为嗅探或窥探 即利用计算机网络接口截获目的地 址为其他计算机的数据包的一种工具p j s n i f f e r 的通用意义是网络协议分析仪 在 合理的网络中 s n i f i e r 的存在对网络管理人员是十分重要的 系统管理员通过s n i f f e r 可以诊断出大量的不可见的模糊问题 这些问题涉及两台乃至多台计算机之间的异 常通信 有些还与各种协议有关 借助于s n i f f e r 系统管理员可以方便的确定出多 少的通信量属于哪个协议 占主要通信协议的主机是哪一台 大多数通信目的地是 哪台主机 报文发送占用多少时间 或是相互主机的报文传送间隔时间等 这些信 息为管理员判断网络问题 管理网络区域提供了非常宝贵的信息 但是 如果 有心 之人 非系统管理员 使用了s n i f f e r 那么他同样可以获得和管理员一样多的信息 同样也可以对整个网络做出判断 2 2 以太网网络监听原理 要想了解以太网中的监听系统如何有效地截获网上传送的数据 首先需要了解 局域网设备的一些基本概念 2 2 1 网络技术与设备简介 数据在网络上是以很小的称为帧 f r a m e 的单位传输的 帧由几部分组成 不 同的部分执行不同的功能 帧通过特定的称为网络驱动程序的软件进行成型 然后 通过网卡发送到网线上 通过网线到达它们的目的机器 在目的机器的一端执行相 反的过程 接收端机器的以太网卡捕获到这些帧 并告诉操作系统帧已到达 然后 对其进行存储 就是在这个传输和接收的过程中 嗅探器会带来安全方面的问题 每一个在局域网 l a n 上的工作站都有其硬件地址 这些地址惟一地标识了 网络上的机器 这一点与i n t e r n e t 地址系统比较相似 当用户发送一个数据包时 这些数据包就会发送到l a n 上所有可用的机器 在一般情况下 网络上所有的机 器都可以 听 到通过的流量 但对不属于自己的数据包则不予响应 换句话说 工 作站a 不会捕获属于工作站b 的数据 而是简单地忽略这些数据 如果某个工作 站的网络接口处于混杂模式 关于混杂模式的概念会在后面解释 那么它就可以 捕获网络上所有的数据包和帧 4 华北电力大学硕士学位论文 2 2 2 网卡的工作原理及模式 网卡收到传输来的数据 网卡内的单片程序先接收数据头的目的m a c 地址 根据计算机上的网卡驱动程序设置的接收模式判断该不该接收 认为该接收就在接 收后产生中断信号通知c p u 认为不该接收就丢弃不管 所以不该接收的数据网卡 就截断了 计算机根本就不知道 c p u 得到中断信号产生中断 操作系统就根据网 卡驱动程序中设置的网卡中断程序地址调用驱动程序接收数据 驱动程序接收数据 后放入信号堆栈让操作系统处理 r n l 网卡的4 种工作模式 广播模式 多播模式 直播模式和混杂模式p 1 广播模式 目的物理地址是o x f f f f f f 的帧为广播帧 工作在广播模式的网卡 接受广播帧 多播模式 组内广播 d 类i p 地址是用于组内广播的 也就是一个人发出的 包可以同时被其他多个有资格的人接受 这个人和那些有资格的人就形成了一个 组 他们在组内的通信是广播 或多播传送 以多播传送地址作为目的物理地址 的帧可以被组内的其它主机同时接受 而组外主机却接受不到 但是 如果将网卡 设置为多播传送模式 它可以接受所有的多播传送帧 而不论它是不是组内成员 直播模式 工作在直播模式下的网卡只接受目的地址是自己地址的帧 混杂模式 监听模式 工作在混杂模式下的网卡接收所有流过网卡的帧 网卡的缺省模式包括广播模式和直播模式 即它只接收广播帧和发给自己的帧 所以在实现中为了监听所有的包 网络适配器应该被设置成混杂模式 2 2 3 网络监听的工作原理 网络底层信息监听 即包捕获 可以利用以太网的广播特性实现 以太网在进 行数据传输时 通常在同一个共享局域网的所有网络接口都有访问在物理媒体上传 输的所有数据的能力 但是在系统正常工作时 应用程序只能接受到本主机为目标 主机的数据包 其它数据包过滤后将被丢弃不作处理 要监听到流经网卡的不属于 自己主机的数据 必须绕过系统正常工作的处理机制 直接访问网络底层 首先将 网卡工作模式置于混杂模式 当网络接口处于这种混杂模式时 该网络接口具备 广 播地址 他对所有接收到的帧都产生硬件中断以提醒操作系统处理流经该物理媒体 上的每一个报文 绝大多数的网络接口具备置成混杂模式的能力 操作系统直接 访问数据链路层 截获相关数据 有应用程序而非上层如i p 层 t c p 层协议对数据 过滤处理 这样就可以监听到流经网卡的所有数据p 华北电力大学硕士学位论文 2 3s nif f f e r 的分类及作用 s n i f f e r 分为软件和硬件两种 软件的s n i f f e r 有n e t x r a y p a c k e t b o y n e t m o n i t o r 等 其优点是物美价廉 易于学习使用 同时也易于交流 缺点是无法抓取 网络上所有的传输 某些情况下也就无法真正了解网络的故障和运行情况 硬件的 s n i f f e r 通常称为协议分析仪 一般都是商业性的 价格也比较贵 实际上本文中所 讲的s n i f f e r 指的是软件 它把包抓取下来 然后打开并查看其中的内容 s n i f f e r 一般是抓取一个物理网段内的包 就是说 和监听的目标中间不能有路由或其他屏 蔽广播包的设备 这一点很重要 所以 对一般拨号上网的用户来说 是不可能利 用s n i f f e r 来窃听到其他人的通信内容的 r 1 1 s n i f f e r 在网络管理中应该完成的功能 s n i f f e r 在网络管理中的主要功能 实时网络捕获 s n i f f e r 能通过设置过滤 条件实时捕获用户定义的网络数据包 给出一个详细的 逐包的统计信息 d 网络 实时监测 s n i f f e r 以表格 图形等形式 实时监测网络运行情况 如协议分布 流 量分布 带宽利用率 错误率等 对协议进行解析 一般的监听软件都能对捕获 到的数据包进行详细分析 d 统计历史数据和发出警报 s n i f f e r 提供几十种长期 数据报告 以便将来的历史查询和分析 并可根据预先设定的阈值通过s n m pt r a p 等方式发出警报 报文发送 通过设置目的地址 发送次数 发送延迟和报文大 小 形成报文并发送 可实现网络流量模拟 2 4 监听系统框架 网络监听提供给管理员管理工具 使得管理员可以监视网络的状态 数据流动 情况以及网络上传输的信息等 这些信息为管理员判断网络问题 管理网络区域提 供了非常宝贵的信息 一般网络监听系统框架如图2 1 所示 一个简单的监听程 序大体结构分为两个部分 1 内核空间部分 负责从网络中捕获以及过滤数据包 2 用户空间部分 负责处理用户界面 格式化 协议分析 此外如果核心层没有 进行过滤的话 还必须负责过滤 监听系统一般包含的组件 1 硬件大部分的s n i f f e r 都是在标准的网络适配器之上工作 而不需要特别 的硬件 但某些产品可能需要特别的硬件与之配合 s n i f f e r 甚至可以分析硬件错误 例如c r c 错误 电平问题 电缆问题 网络抖动 帧前导码等 2 捕获驱动程序这是最为重要的组件 它直接控制网络硬件 如网卡或特 殊硬件 从网络上捕获数据 并把数据存入缓冲器 6 华北电力大学硕士学位论文 3 过滤器只将用户关心的敏感数据向上层提交 以提高系统的工作效率 4 缓冲器用来存放捕获的数据 由于缓冲器的容量有限 它的工作方式通 常有以下两种 缓冲器一满就停止捕获 缓冲器满了还继续捕获 但是新的数据会 覆盖原有的数据 5 协议分析模块通过对网络数据报的实时或事后的解码分析 可以了解网 络上运行的协议和服务 数据帧的源地址和目的地址 数据的帧格式等 用户交鳖模蜓l 翻甲 系统无关捕获ll 三 竺 函数痒li 包捕获 用户程序 强户鼷 瞧核层 传输层 网络屡 物理层 网络 图2 一l 一般监听系统框架 网络监听依靠专用的一系列原语来捕捉分组 这些原语由内核层组件提供 在 诸多内核层分组管理工具中最著名的当属b p f b e r k e l e yp a c k e tf i l t e r 它在b s d u n i x 环境下工作 是较完整 性能较好的网络分析组件 为显示 监测捕捉到网 络通信 u n i x 系统还提供了几种用户层程序包 其中最著名的是l i b p c a p 它提 供一个强大的用户捕捉函数库 用以选择和存储捕捉到的分组 内核模块与网络接口卡n i c n e t w o r ki n t e r f a c ec a r d 驱动程序进行交互 完成 捕捉分组 监视通信等任务 而用户层函数库则为网络编程人员提供了一系列强大 的a p i 函数 它可以隐藏网络细节 简化了网络分析器的编程工作 u n i x 拥有完整强大的内核模块用以捕捉分组 而w i n d o w s 虽然内核中也有一 些a p i 但都有其严重的局限性 一般网络分析任务都是由u n i x 工作站来完成 而随着p c 及w i n d o w s 的普及 这方面的缺陷显得越来越突出 虽然也有一些基 于w i n d o w s 的应用程序如f i r e w a l l s s n i f f e r 等等 但仍没有出现一个像u n i x 中 的那样 具有一个内核层组件 一个用户层函数库的完整体系 因此程序员仍要面 7 华北电力大学硕士学位论文 对底层网络原语 仍要进行内核层编程 如要编制一个自己的s n i f f e r 就不得不创 建网络驱动程序完成那些底层系统调用 r 1 意大利都灵p o l i t e c n i c o 学院开发的w i n p c a p 川 就是创建一个基于w i n 3 2 平 台的进行底层分组管理的体系结构 w i n p c a p 包括一个与b p f 兼容的内核层驱动 程序是n p f n e t g r o u pp a c k e tf i l t e r 和一个用户层函数库 其中用户层函数库与 u n i x 的l i b p c a p 函数库完全兼容 不仅支持全部其原有的系统调用 而且还增加 了新的功能 这使得原来基于u n i x 的应用程序很容易移植到w i n d o w s 上 因此 w i n 3 2 不仅获得了一系列新的系统调用 而且只要进行一些简单的修改工作就立即 新增了不少应用程序 2 5 本章小结 本章首先介绍了网络监听的概念 然后从局域网设备的一些基本概念入手 介 绍了网络监听技术的原理 分类和作用 最后详细介绍了一般网络监听系统的框架 华北电力太学硕士学位论文 31b p f 模型概述 第三童网络数据包捕获机制 许多版本的u n i x 都提供用户级别的网络监听功能 通常监听程序以用户级别 进程工作 数据包的拷贝必须跨越内核 用户保护界限 这就需要使用名为包过滤嚣 p a c k e t f i l t e r 的内核代理程序 同样的功能用不同的系统或结构实现会提供不同 的结果 包捕获应该提供内核级别的功能使用户程序可以访问未处理的原始网络流 量数据 b s dp a c k e tf i l t e r b p f 机制可以说是系统中最优的截获方式 它是由当时 洛仑兹伯克利试验室的研究人员于1 9 9 3 年在u n i x 9 3 会议上 下式提出的一种用于 u n i x 内核数据包过滤体制 很多开源嗅探工具也基于它而开发 b p f 主要由两部分组成 一是网络转发部分n e t w o r kt a p 二是数据包过滤部分 p a c k e tf i l t e r 网络转发部分从链路层中捕获数据包 并把它们转发给数据包过滤部 分 数据包过滤部分从接收到的数据包中接受过滤规则决定的网络数据包 其他的 数据包就被抛弃 b p f 的架构如图3 1 所示 川 图3 一lb p f 的架构 b p f 的过滤过程如下 当一个数据包到达网络接口设备时 链路层设备驱动器 通常把它传给系统协议堆栈进行处理 但是 当b p f 也在该网络接口上监听时 驱 动器首先调用b p f b p f 会将数据包传递给每个监测进程的过滤器 这些用户自定 华北电力大学硕士学位论文 义的过滤器将决定一个数据包是否被接受以及数据包中的哪些内容应该被保存下 来 对于每一个决定接受数据包的过滤器 b p f 将所需的数据拷贝到与之相连的缓 存中 并提交给上层应用程序 然后 设备驱动程序重新获得控制权 此时 如果 数据包的目标地址不是本机地址 则驱动程序从中断过程返回 否则 将进行正常 的网络协议处理过程 b p f 的这两部分都是在操作系统内核层实现的 它提供给应用层的数据包是过 滤后的数据包 所以捕获数据包和过滤数据包都是在内核中完成的 效率是非常高 的 另外 b p f 使用了缓存机制 使捕获数据包缓存在内核中达到一定量时就传递 给应用程序 这样也提高了处理的效率 3 2 网络数据包捕获开发包lib p c a p 3 2 1lib p c a p 概述 r f 1 网络数据包捕获开发包l i b p c a p t i o j t h ep a c k e tc a p t u r el i b r a r y 是一个著名的 专门用来捕获网络数据的编程接口 它在很多网络安全领域得到了广泛的应用 很 多著名的网络安全系统都是基于l i b p c a p 而开发的 如著名的网络数据包捕获和分 析工具t c p d u m p l i b p c a p 几乎成了网络数据包捕获的标准接口 l i b p c a p 中使用了 b p f 过滤机制 这部分是基于内核的过滤模块 它使l i b p c a p 具有捕获特定数据包 的功能 可以过滤掉网络上不需要的数据包 而只捕获用户感兴趣的数据包 使用 l i b p c a p 可以把从网络上捕获到的数据包存储到一个文件中 还可以把数据包信息 从文件中读出 读出的结果与从网络上捕获数据包的结果是一样的 l i b p c a p 是由b e r k e l e y 大学的v a nj a c o b s o n c r a i gl e r e s 和s t e v e nm c c a n n e 编写 的 该数据库支持l i n u x s o l a r i s 和b s d 系统平台 l i b p c a p 的应用非常广泛 几乎 只要涉及到网络数据包的捕获功能 都可以使用l i b p c a p 开发包 3 2 2lib p c a p 的作用 l i b p c a p 的最主要的作用就是捕获网络数据包 它把捕获网络数据包的功能进行 了封装 使其使用起来非常方便 在捕获数据包的过程中 可以对捕获模式进行限 制 例如 可以设置捕获的过滤规则 只捕获感兴趣的网络数据包 还可以对捕获 的对象进行限制 而且限制的精度很高 灵活性很好 利用l i b p c a p 捕获网络数据包的功能 可以实现其他很多的功能 例如 对网 络数据包进行分析 读出所有网络数据包的详细信息 有名的软件t c p d u m p 就是完 成此项功能的 当然 还可以做很多其他的事情 如网络流量分析 网络入侵检测 网络安全监测等 这些都是在捕获数据包的基础上操作的 所以都可以使用l i b p c a p 来实现 例如 著名的网络入侵检测系统s n o r t 就是使用l i b p c a p 来实现的 1 0 华北电力大学硕士学位论文 总结起来 l i b p c a p 的作用主要有以下三个方面 1 捕获各种网络数据包 开发包l i b p e a p 的最大功能就是捕获网络数据包 它是一个专业的网络数据包 捕获函数库 使用l i b p c a p 可以方便地对网络上的数据包进行捕获 且操作过程简 单 效率也非常高 使用l i b p c a p 捕获网络上的数据包之后 就可以对捕获到的数 据包进行各种各样的分析 例如 对它进行协议分析 或进一步进行网络流量统计 以及在协议分析的基础上进行入侵检测分析等 2 过滤网络数据包 在l i b p c a p 使用的b p f 捕获机制中 有一个网络数据包过滤模块 使用它可以 过滤各种各样的网络数据包 它使用了一个非常简单的过滤规则 该规则与t c p d u m p 的过滤规则是一样的 由于过滤模块是在内核层中实现的 所以效率非常高 而且 b p f 过滤规则还进行了优化处理 3 分析网络数据包 使用l i b p c a p 捕获数据包后 可以对数据包进行各种各样的分析操作 另外 在l i b p e a p 中提供了很多辅助功能 帮助开发者实现对网络数据包的分析 虽然使 用l i b p c a p 捕获的数据包是一个字节流 但是也提供了此信息的基本信息 如捕获 时间 数据包的长度等 开发者可以在此基础上进一步分析数据包的内容 这也是 开发者所要做的主要事情 4 存储网络数据包 在从网络上捕获数据包时 可以不马上对其进行分析 而只是存储起来 留到 以后进行分析 开发包l i b p c a p 提供了存储网络数据包的功能 它把从网络上捕获 到的网络数据包存储到文件中 然后使用l i b p c a p 从文件中读取数据包的内容 以 便进行进一步分析 3 2 3lib p c a p 体系结构 l i b p c a p 是用户态的数据包截获a p i 函数接口 具有独立性和可移植性 它支 持b p f 过滤机制 可以从任何u n i x 内核平台上截取数据包 而不考虑什么芯片类 型的网卡和驱动程序 l i b p c a p 库只支持b p f 接口的内核过滤 如果主机上没有b p f 机制 则所有的数据包都必须读取到用户空间后 再在l i b p c a p 库中进行过滤处理 这样就会增加额外的处理负担 导致性能的下降 图3 2 描述了包捕获的体系结构 1 7 u s e rc o d e c a l ls s e rc o d ec a l l s t ol i b p c a p t ol i b p c a p il f s e rb u f f e r l1 匝囹 u b p e 却千l i b r a 盯l 1 b p c n p 1 b 瑚 y u a u u i 1 u 血 h 6 n i n c l u d e d u 雄n id r c o p i h t i o c m l 岫t i o n e r n e l 崮 褪萝歹 p r o t o c d l e v a l 甲 气 b e r i 曲万p 口k e r 嘣h t w r kt 1 一n e t v o r ki n t e r f a c ec a r d 憎i c l v 图3 2 包捕获的体系结构 此模块由三部分组成 i 网络分接头 n e t w o r k t a p 网络分接头负责从网络设备驱动程序处收集 数据包拷贝 并传递给正在监听的应用程序 2 伯克利数据包过滤器 b e r k e l e y p a c k e tf i l t e r b p f 即伯克利数据包过滤器 它是一种用于u n i x 内核的数据包过滤体制 b p f 使用了一种重新设计的基于寄存 器的 过滤器虚拟机 能够在基于寄存器的r 1 s c 处理器上高效率地实现 b p f 使 用了一种简单的非共享的缓存模型 能大大提高数据包的截获性能 3 核心缓冲器 k e r n e lb u f f e r 核心缓冲器用于暂存所截获的数据包 以便 于进一步的处理 核心缓冲区分为两部分 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 db u f f e r 用于将包从核心缓冲区复制到用户缓 冲区 当s t o r eb u f f e r 缓冲区满而h o l db u f f e r 空时 b p f 将两者互换 这样的缓冲 区设计使用户程序不需与网卡驱动程序交互 当用户读h o l db u f f e r 时刚卡驱动写的 足s t o r eb u f f e r 这两块缓冲区的缺省大小为3 2 k b 从丌发者的角度来看系统中培主要的部分是l i b p c a p 因为它隐藏了用户程序合 操作系统内核交互的细节 它完成了如下工作 向用户程序提供了强大的抽象 接几 根据用户要求 k 成过滤指令 管理用户缓冲区 用户程序不可见 负 责用户程序与内核的交互 另外 山于软件在捕获数据包的同时 需要接收用户的 华北电力大学硕十学位论文 响应 因此考虑建立线程机制 将包捕获等实时性要求高的模块放在服务端主线程 来完成 3 2 4lib p c a p 函数库 编写l i b p c a p 库中a p i 函数的最初目的就是为了统一不同系统上所提供的用于 数据包截获的不同类型接口 并使得类似的高层应用程序的编写和移植工作变得简 单有效 不再需要对每一个应用都使用不同的依赖于具体系统的数据包截获模块 同时 该a p i 函数接口在保持基本稳定的基础上 还在不断地进行更新和升级 3 2 4 1 网络接口函数 1 c h a r p c a p l o o k u p d e v c h a r 幸e r r b u f 函数返回值 返回网络接口的名字 参数描述 参数c r r b u f 表示错误信息 此函数的功能是获得本机的网络接口 2 i n tp c a p l o o k u p n e t r e g i s t e rc o n s tc h a r 牛d e v i c e r e g i s t e rb p fui n t 3 2 宰n e t p r e g i s t e r b p fui n t 3 2 木m a s k p r e g i s t e rc h a r 幸e r r b u f 函数返回值 函数操作成功就返回0 失败就返回 1 参数描述 参数d e v i c e 是网络接口名字 参数n e t p 是网络地址 参数m a s k p 表示 网络掩码 参数e r r b u f 表示错误信息 此函数功能是获取网络地址和网络掩码 3 p c a p t 宰p c a p o p e n l i v e c o n s tc h a r 枣d e v i c e i n ts n a p l e n i n tp r o m i s e i n tt o m s c h a r 木e b u o 函数返回值 返回一个l i b p c a p 句柄 参数描述 参数d e v i c e 表示网络接口名字 参数s n a p l e n 表示捕获数据包的长度 参数p r o m i s e 表示是否设置混杂模式 如果赋值为1 就表示设置为混杂模式 参数t om s 表示等待的时间 参数e b u f 表示存储错误信息 此函数的功能是打开一个网络接口进行数据包捕获 打开的模式由p r o m i s e 表示 如果是1 就表示以混杂模式打开此网络接口 否则 以非混杂模式打开网络接口 3 2 4 2 规则函数 1 i n tp c a p s

温馨提示

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

评论

0/150

提交评论