已阅读5页,还剩67页未读, 继续免费阅读
(计算机应用技术专业论文)分布式网络行为监控系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西北工业人学硕一l 论文 摘要 摘要 随着网络技术应用的普及,越来越多的企业、政府单位都在构建自己的内部 网络,因此内部网安全越来越成为网络信息安全的焦点。内部网具有“半封闭性” 的特点,外网主机是无法主动和内部网主机进行通信的,因此,发生在内部网中 的安全事件是由内向外渗透的。因此对内部网主机的网络行为进行监管能够有效 解决内部网安全问题,提高内部网的安全性。 现有的网络行为监控系统大多数是作为企业管理软件应用在内部网中,企业 管理者通过监控系统来限制约束内部网人员的网络行为,但是,现有系统缺少对 病毒木马程序的监控,或者监控力度不足。网络行为监控系统作为安全产品,必 须对内部网使用者、病毒木马程序实行全面的监控,才能保证内部网的安全、避 免安全事故的发生和信息的泄漏,对内部网使用者的监控主要是针对其网络应用 的监控,对病毒木马程序的监控主要就是针对木马行为的特点进行的监控。 本文根据当前网络行为监控技术和木马技术的发展现状,针对现有网络行为 监控系统对病毒木马程序防范力度不足,提出了一种分布式网络行为璐控系统。 该系统采用集中式管理、分布式监控结构,系统由控制台中心和若干监控代理组 成;控制台中心完成安全策略制定分发和日志审计等管理功能;监控代理采取三 层过滤框架模型,分别从应用层、传输层、网络层,按照各层的安全策略对主机 网络行为进行监控,监控的网络行为包括:w e b 访问、邮件收发、系统进程用户 进程访问网络请求等,具备防卸载、防病毒木马等功能,有效保证了内部网的安 全。 本文的研究工作主要有以下几个方面: ( 1 ) 研究分析了网络行为监控技术及木马技术的发展现状。 ( 2 ) 研究了所涉及的相关技术,包括:w i n d o w s 操作系统的网络体系结构、 常用的数据包过滤技术、进程与远程线程的创建机制、程序的自启动技术以及防 卸载技术等。 ( 3 ) 提出并实现了一种分布式网络行为监控系统,对系统的框架设计、功能 设计、通信协议、核心模块的实现原理和技术进行了详细的论述。 ( 4 ) 对系统进行了测试和分析。 ( 5 ) 最后对研究工作进行了总结和展望。 关键字:网络行为,数据包过滤技术,分布式监控,三层过滤 西北t 业大学硕士论文 a b s t r a c t a b s t r a c t a l o n gw i t hn e t w o r kt e c h n o l o g ya p p l i c a t i o np o p u l a r i z a t i o n ,m o r ea n dm o r e e n t e r p r i s e sa n dg o v e r n m e n tu n i t sh a v eb u i l tt h e i ri n n e rl a n t h ei n n e rl a n i s ”h a l f s e a l e d ”,s ot h en e t w o r ks e c u r i t ye v e n t sh a p p e n e di nt h ei n n e rl a n a r ep e r v a d i n g f r o mt h ei n s i d et ot h eo u t s i d e t h em a j o re x i s t i n gn e t w o r kb e h a v i o rm o n i t o r i n gs y s t e m sa r eu s e da st h e m a n a g e m e n tt o o li ni n n e rl a n ,t h em a n a g e r su s et h i ss y s t e mt om a n a g ea n dr e s t r i c t t h ew o r k e r s sn e t w o r kb e h a v i o r , b u tl a c kt ot h ev i r u sa n dt r o yh o r s e sm o n i t o r i n g ,o r m o n i t o r i n gi n s u f f i c i e n t t h en e r w o r kb e h a v i o rm o n i t o r i n gs y s t e ma s an e t w o r k s e c u r i t yp r o d u c tm u s tb ea b l et om o n i t o rt h ei n n e rl a n su s e r sa n d t h ev i r u sa n dt r o y h o r s e t h en e t w o r kb e h a v i o rm o n i t o r i n gs y s t e mm o n i t o r i n gt h ei n n e rl a nu s e r s m a i n l ya i m sa tt h e i rn e t w o r kb e h a v i o r ;m o n i t o r i n gt h ev i r u sa n dt r o yh o m e sm a i n l y a i m sa tt h e i rb e h a v i o rf e a t u r e 。 b a s e do nt h ec u r r e n tn e t w o r kb e h a v i o rm o n i t o r i n gt e c h n o l o g ya n dt h et r o y h o r s e sd e v e l o p e m e n ts i t u a t i o n ,t h i sp a p e rh a v ed e s i g n e da n di m p l e m e n t e d a d i s t r i b u t e dn e t w o r kb e h a v i o rm o n i t o r i n gs y s t e m t h er e s e a r c hw o r km e n t i o n e di nt h ep a p e ri sm a i n l ya b o u t : ( 1 ) r e s e a r c h e dt h ed e v e l o p m e n to ft h en e t w o r kb e h a v i o rm o n i t o r i n gt e c h n o l o g y a n dt r o yh o r s et e c h n o l o g y ( 2 ) s t u d i e dt h ew i n d o w so p e r a t i n gs y s t e mn e t w o r ks y s t e ms t m c t u r e ,t h en e t w o r k d a t af i l t e r i n gt e c h n o l o g y , t h ep r o c e s sa n dr e m o t et h r e a dc r e a t i n gm e c h a n i s m , p r o c e d u r ea u t o m i cs t a r t i n ga n d t h ea n t i r e m o v e dt e c h n o l o g y ( 3 ) i td e s c r i b e st h ed e s i g na n di m p l e m e n t i o no f t h ed i s t r i b u t e dn e t w o r kb e h a v i o r m o n i t o r i n gs y s t e m ,d e t a i l e dd e s c r i b e st h et h es y s t e mf r a m ed e s i g n , t h ef u n c t i o n d e s i g n ,t h ec o m m u n i c a t i o np r o t o c o l ,t h ep r i n c i p l ea n dm e t h o do fc o r e m o d u l e s i m p l e m e n ta n dt h es y s t e mf u n c t i o nt e s t s ( 4 ) c a r r i e do n t ot h es y s t e mt e s t sa n da n a l y z e s ( 5 ) a tl a s tp r o p o s e df u r t h e rg o a la n dd i r e c t i o n k e y w o r d s :n e t w o r kb e h a v i o r ,d a t af i l t e r i n gt e c h n o l o g y , d i s t r i b u t e dm o n i t o r , t h r e e l e v e lf i l t e r i n g i i 西北工业大学硕士论文 绪论 1 1 网络行为概述 第一章绪论 网络行为是指与现实社会中人们的社会行为相对应的网络社会中的行为。 它是伴随着现代网络科学技术出现的,我们可以把它定义为:行为主体为实现某 种特定的目标,采用计算机网络作为行为对象和行为载体而进行的有意识的活 动,它并不是虚拟的,而是具有社会行为的一般特征和基本要素,是实实在在的 行为。 网络行为与社会行为在很多方面有着类似的方面,存在着规范的网络行为和 失范的网络行为,但是网络是虚拟的,它缺乏一套严格的体系制度去保证行为的 规范性。失范的网络行为包括:网络入侵、网络欺骗、网络垃圾、网络犯罪、网 络破坏等等。这些失范的网络行为同样会对社会、企业、个人带来非常严重的损 失,大到国家的金融贸易、企业商业机密泄漏、小到个人隐私曝光。 失范的网络行为的是如何造成的呢? 首先,网络由于物理上的散落,缺少统 一的管理,自身的安全性不高;其次,操作系统存在着可以被用来攻击的漏洞, 存在着潜在的安全威胁;再次,失范行为的发起者能够利用以上因素,进行有目 的行为活动;最后,受害者缺乏足够的安全意识。 失范的网络行为带来的负面影响已经到了不得不重视的地步。人们在享用网 络技术带来便利快捷的同时,也越来越重视网络安全的问题,并利用各种安全技 术手段去防范失范的网络行为。 1 2 网络行为监控技术发展现状 防火墙是实现网络信息安全最重要的技术之一,其主要功能就是控制对受 保护的网络进行非法访问。虽然防火墙已经历了“基于包过滤”方式、“基于应 用层代理”方式和“基于状态检测”方式三代的变迁,但总体上来说防火墙还是 一种被动的防护,而且防火墙难以防范来自网络内部的攻击,其安全控制只能作 用于外对内或内对外,对外可屏蔽内部网的拓扑结构,封锁外部网上的用户连接 内部网上的重要站点或某些端口,对内可屏蔽外部危险站点,但它很难解决网 络内部人员的安全问题。另外防火墙难以管理和配置,易造成安全漏洞。一般来 说,由多个系统( 路由器、过滤器、代理服务器、网关、堡垒主机) 组成的防火墙, 西北- 【业大学颤十论文 管理上有所疏忽是在所难免的。根据美国财经杂志统计资料表明,3 0 的入侵发生 在有防火墙的情况下。最后,防火墙只实现了粗粒度的访问控制,且一般不能与 网络内部使用的其它安全机制( 如访问控制) 集成使用“。 入侵检测系统具有监视分析用户和系统的行为、审计系统配置和漏洞、评估 敏感系统和数据的完整性、识别攻击行为、对异常行为进行统计等功能,使系统 管理员可以较有效地监视、审计、评估自己的系统。但由于网络新技术的不断涌 现,入侵检测技术也逐渐暴露出其不足,入侵检测系统不能很好地检测所有的数 据包,数据包截获和分析的速度已经跟不上网络带宽的发展速度;检测分析方法 单一;在攻击方法越来越复杂的今天,攻击方法也趋向于协同式攻击,单一的基 于模式匹配或统计的分析方法已经难以发现某些攻击;入侵检测系统在检测内部 网络的非法行为上同样显得能力有限”。 针对防火墙与入侵检测技术在内部网防护上的不足,网络行为监控技术应运 而生。随着网络安全信息技术的发展,网络行为监控技术经历了从最初的作为防 火墙的附属模块,发展到今天成为一个独立的系统产品,目前安全市场上已经存 在多款网络行为监控系统产品,比较成熟的有a n y v i e w 网络监控系统软件、宝 龙汉景网络行为监控系统、远东网安网络行为监控系统、s a f e 2 一网络行为安全 监控审计系统等。 a n y v i e w g 日络监控系统由两个部件组成,s e r v e r 端与c l i e n t 端。s e r v e r 端安装 在与i n t e m e t 相连的主机上,c l i e n t 端安装在管理主机上。s e r v e r 端对网络中所有 主机的网络行为进行集中监控过滤,对整个网段进行监控;c l i e n t 端作为管理中 心软件完成安全策略的制定等管理功能。该系统软件实现的功能包括:网络行为 和内容监视:包括网站浏览、邮件收发、聊天行为、游戏行为等;可制定通用的 端口级别的安全策略,可制定i p 地址黑名单,可进行严格的对整个网络段的端口 级别的控制;不需要在被监视和管理电脑上安装任何软件,一机运行,整网管理 c 4 h 三。 宝龙汉景网络行为监控系统也p i a n y v i e w 系统包括两个组件,该系统可以按 人、组或部门进行互联网访问的控制;可以设置允许访问互联网的时间段;可以 对访问互联网的每日总时间量进行限制;可以根据不同的服务协议进行分类控 制;可以屏蔽不良网站和游戏网站;可以控制用户可以访问的i p 地址或端口号; 限制聊天、流媒体等的应用:采用多级用户管理系统,真正管理和监控好内部人 员访问i n t e m e t 的行为,使组织更有效地发挥和利用网络资源,使得互联网真正 为组织的生产和经营活动服务。”。 远东网安网络行为监控系统采用客户端和服务端的c s 分布式的设计结构, 实现了对被控对象的i n t e r n e t 上网行为,包括网页、邮件;实现了对被控主机的 西北工业犬学硕士论文 应用程序、进程和网络端1 2 1 的监控;实现了对被控主机基于桌面级的行为监控, 实时监控屏幕上出现的每个窗口;实现了完备的实时日志记录,详细提供事件的 分析和上网跟踪、统计、查询等功能1 。 s a f e 2 - - 网络行为安全监控审计系统具有网页邮件记录、电子邮件记录、文 件传输记录、网页浏览记录和远程登陆记录等功能。s a f e 2 系统应用在大型网络 系统,具有三层分布式的系统架构,分别为:传感器、数据采集器和控制台。传 感器负责数据包采集、分析、过滤:数据采集器负责内容还原和数据库作业;控 制台负责管理整个系统的运作“。 通过对以上几种网络行为监控系统的对比和研究,得出网络行为监控技术的 发展现状具有以下几个特点: ( 1 ) 网络行为监控系统侧重对内部网使用者网络行为的监管,包括网页、 邮件、以及其他网络应用行为。 ( 2 ) 网络行为监控系统对整个网络的主机采取集中式监管,所有被监控主 机的网络访问安全策略都由管理中心软件统一制定。 ( 3 ) 多数系统采取单点集中过滤的方式,将关键过滤模块部署在网络边界、 网络进出口处。 ( 4 ) 单点过滤的部署,能够从宏观上制定针对整个网络中所有主机的安全 策略,也能够针对每个主机制定其相关的安全策略,策略制定灵活,方便:能够 实时地对整个网络进出的数据流量进行测控。 ( 5 ) 由于单点监控的部署结构,多数系统对桌面级的应用程序访问网络的 监控是基于该应用程序所使用的网络端口地址。 ( 6 ) 现有网络行为监控系统在实际的应用中,多作为企业的管理工具投入 到使用中,企业管理者通过监控系统来限制约束内部网人员对网络的使用。 同时,网络行为监控系统作为- - o e 网络安全产品,在安全方面现有系统主 要存在着以下几个缺点: ( 1 ) 单点监控,集中过滤的部署存在着瓶颈和安全问题,监控节点部署在 网络出口计算量大,影响了整个网络的性能,一旦关键节点出现问题,整个网络 将失去监控。 ( 2 ) 现有网络行为监控系统在对网络数据包的过滤处理上,主要是基于数 据包内容的过滤,如w e b 、邮件、f t p 等,对桌面应用程序的监控主要是基于该 应用所使用的网络端口。因此就存在着监控力度不足,监控范围有限的缺点。 ( 3 ) 网络行为监控系统作为网络安全产品,不应当仅仅充当内部网络的管 理工具,对内部网络使用者的网络行为进行约束和限制,而且应当承担保护内部 网网络安全的责任,加之现有系统对桌面级应用的不能实施有效的监控,因此缺 西北工业夫学硕士论文 少对网络病毒木马的防范或者在该方面的防范力度不足。 1 3 研究背景和研究内容 1 3 1 研究背景 随着计算机网络技术的发展与普及,网络安全已经成为个国际化的问题。 2 0 0 3 年美国计算机安全协会( c s i ) 和i f b i 计算机入侵小组共同开展的“计算机 犯罪和安全调查”指出,有近一半的安全破坏源自组织的网络内部,已经超过了来 自外部的攻击。除数据破坏以外,信息外泄也成为网络安全需要解决的一个重要 问题,由于网络的复杂性和隐蔽性,使得组织内部的机密信息更加容易透过网络 泄露出去,其造成的危害和损失不亚于有时甚至大大高于直接的数据破坏。如何 对局域网内主机的行为进行控制是解决问题的基础和关键所在”。 对内部网的“外部攻击”主要包括病毒、木马,其目的就是获取内部网的信 息,攻击的方式主要有两种:利用i e 漏洞将病毒木马植入内网机器;通过邮件来 传播病毒木马,这种木马通常作为邮件的附件。木马技术随着安全技术的发展而 发展,现已具有能够突破内网的反向连接功能,能够嵌入系统进程空间,隐藏进 程名、隐藏通信端口、甚至能够隐藏木马文件、替换系统文件、多重备份,因此 越来越难以查杀。 对内部网的“内部攻击”就是由内部人员发起,主要包括信息的泄漏、窃取 等,其发生的途径主要包括使用移动存储设备或发送电子邮件等。目前的网络行 为监控系统主要针对的就是这种内部“攻击行为”。 网络行为监控并不仅仅是简单的对网络行为进行监管,更重要的是对内部网 主机的保护,对内部信息的保护。它只有对上述“外部攻击”与“内部攻击”进 行全面监控,才能保证内部网络的安全,实现对信息的保护。 目前市场上存在的网络行为监控系统,能够对w e b 页面访问、邮件收发、f t p 等网络行为进行监控,能够对系统中访问网络的用户程序( ! t 1 q q ,m s n 等) 进 行控制,但是在安全方面存在着漏洞,缺少对上述外部攻击的防范或者防范力度 不足。由于采用传统的集中监管模式,将监控节点部署在网络的进出口。存在着 瓶颈问题和安全威胁,已经暴露出了很多问题和弊端。 1 3 2 研究内容 网络行为监控的安全功能主要就是实现对网络的访问控制。访问控制是实现 既定安全策略的系统安全技术,它对所有资源访问进行仲裁,即根据安全策略的 西北工业大学硕七论文 绪论 要求,对每个资源访问请求作出是否许可的判断,能有效地阻止非法用户访问系 统资源和合法用户非法使用资源。t c s e c ( 可信计算机系统评估准则) 把访问 控制作为评价系统安全地主要指标之一,具有不可替代地作用。 本课题的研究内容主要包括以下部分: ( 1 ) 研究分析了网络行为监控技术及木马技术的发展现状。 ( 2 ) 研究了w i n d o w s 操作系统的网络体系结构以及常用的数据包过滤技术, 包括传输服务提供者( s p i ) 、传输驱动接口( t d i ) 和n d i s 中间驱动。 ( 3 ) 研究了进程与远程线程的创建机制、程序的自启动技术、防卸载技术 等。 ( 4 ) 研究了当前网络行为监控系统与防火墙的安全策略设置模式,对传统 的闭开策略设置模式进行了改进。 ( 5 ) 提出并实现了一种分布式网络行为雎控系统,对系统的框架设计、功 能设计、通信协议、核心模块的实现原理和技术进行了详细的论述。 ( 6 ) 对系统的功能和性能进行了测试,测试结果表明该系统运行正常,达 到了系统设计的目标。 1 4 论文组织安排 第一章介绍了网络行为的基本概念、网络行为监控技术的发展现状、本课题 研究背景和内容。 第二章讲述了系统的实现关键技术,包括w i n d o w s 网络体系结构、n d i s 中 间驱动规范、w i n d o w ss p i 服务提供者接口、t d i 传输驱动接口。 第三章论述了系统的总体设计、包括框架设计、功能设计、监控代理端过滤 框架模型过滤、通信协议设计、防木马设计、防卸载设计。 第四章给出了系统主要模块的详细设计与实现技术,包括应用层数据内容过 滤模块、传输层访问请求控制模块、网络驱动层数据包过滤模块、注册表监控过 滤模块、进程远程线程创建监控模块。 第五章提供了系统部分测试用例。 第六章从不同角度总结论文工作与所实现的监控系统,并提出了进一步的研 究内容。 西北t 业大学顾十论文 关键技术分析 第二章关键技术分析 本系统网络数据包的过滤和处理模块是按照w i n d o w s 操作系统的网络体系 结构及其构件结构而部署的,系统的网络数据包过滤和处理模块从上而下,从用 户态到内核模式分别采用了w i n s o c k 2 服务提供者( s p i ) 、传输驱动程序接口 ( t d i ) 、n d i s 中间驱动( n d i si m ) 这三种滤包技术来实现的。在下面的小节 分别介绍了w i n d o w s 网络体系结构及这三种数据包过滤实现技术。 2 1w i n d o w s 操作系统网络体系结构 w i n d o w s 操作系统的网络体系结构也是一个分层模型,如图2 一l 所示。 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 链路层 1 物理层 7 网络应用程序 6 + 网络a p id l l 5 网络a p i 驱动程序- - t d i 客户 4 3 协议驱动程序一 t d i 传输驱动程序 2 网络适配器驱动程序 1 网络适配器 图2 1w i n d o w s 络协议架构与o s i 参考模型的对应关系 为了与o s i 参考模型比较,本文将w i n d o w s 操作系统的网络体系结构按照上 图所示从上到下也划分为7 个层次,但是它们各层之间并非严格一一对应。 w i n d o w s 操作系统网络体系结构的3 ,4 层已合并为一层,这样的合并和简化主要 是出于性能的考虑。在这里,之所以将w i n d o w s 网络体系结构划分为七层是为了 将抽象的概念与实体联系起来,帮助理解。 事实上,o s t , n w i n d o w s 网络各层之间并不存在严格的一一对应关系。 n d i s ( 网络驱动接i :1 规范) 横跨传输层、网络层和数据链路层三层,为网络驱动 提供接口。t d i 层的t c p i p s y s 一个驱动程序里实现了传输层的t c p 、u d p 协议和 网络层的l p 协议。 w i n d o w s 网络体系结构中最高层的网络应用程序就是o s i 模型中应用层的 w i n d o w s 实现。 西北工业大学硕士论文 关键技术分析 网络a p id l l 是网络应用程序的用户模式接口。w i n d o w s 为网络应用程序提 供了协议无关的编程接口。常用的应用程序接e l n e t b i o s ,w i n s o c k 等。利用 n e t b i o s 开发的应用程序既可以运行在底层协议为n e t b e u i 的网络中也可以运 行在底层协议为t c p i p 的网络中。 网络a p i 驱动程序,又称为t d i 客户,它是网络应用程序的内核模式接口。 w i n d o w s 网络a p id l l 并不与底层的协议直接交互,而是通过内核模式接口进行 中转。w i n d o w s 之所以这样做是为了将应用程序的网络请求纳入到操作系统标准 的i 0 模型下,实现的原理是网络内核模式接口将应用程序的网络请求转化为标准 的i o 请求,再由i o 管理器将i 0 请求交给底层协议。 协议驱动程序,又称为t d i 传输驱动程序,它是网络协议( t c p i p 、n e t b e u i 、 i p x s p x ) 的w i n d o w s 实现。在w i n d o w s2 0 0 0 中,t c p i p 协议中传输层和网络层 的核心协议( i p 、t c p 、u d p 、a r p ) 通过驱动程序t e p i p s y s 来实现。在网络a p i 驱动和协议驱动程序之间,微软定义了一个标准的接口,即传输驱动程序接口 ( t d i ) 。在w i n d o w s2 0 0 0 中,这个接口由驱动程序t d i s y s 实现。t d i 简化了开发 协议驱动程序的工作。协议驱动程序只需实现t d i 接口而不必考虑数据链路层和 物理层的细节。同时协议驱动程序输出标准的接口给上层的t d i 客户( 网络a p i 驱 动) 。操作系统内置的t d i 客户有w i n s o c k 仿真器( a f d s y s ) ,n e t b i o s 仿真器 ( n e t b i o s s y s ) 等。t d l 支持两种t d i 客户与协议驱动程序交互的方式,一种是上面 提到标准的“0 请求方式,创建网络连接就采用的这种方式。另一种是t d i 客户利 用t d i 接口在协议驱动程序中注册回调函数,数据发送和接收采用的就是这种方 式,显然这种方式的效率更高。 当一个协议驱动程序想从网络读或向网络写用它的协议格式封装的信息时, 这个驱动程序必须访问网络适配器。市场上的网络适配器数以千计,每个网络适 配器的性能也不尽相同,并且都有各自专用的设备驱动程序。因此。协议驱动程 序与网络适配器驱动程序直接通信是不可行的。1 9 8 9 年,微软$ 3 c o m 联合开发 了网络驱动程序接口规范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 ) ,它可以 以设备无关的方式实现协议驱动程序与网络适配器驱动程序的通信。遵循n d i s 规范的网络适配器驱动程序称之为n d i s 驱动程序或n d i s d 、端口驱动程序。实际 上,n d i s 充当了协议驱动程序与网络适配器驱动程序之间的通信接口。在 w i n d o w s2 0 0 0 中,这个接口由驱动程序n d i s s y s 实现。协议驱动程序与网络适配 器驱动程序可以向n d i s 注册用于发送、接收数据的回调函数。当发送数据时, 协议驱动程序调用n d i s 的接口函数向下层发送数据,n d i s 然后调用网络适配器 驱动程序注册的回调函数来进行真正的数据发送。当接收数据时,网络适配器驱 动程序通知n d i s ,n d i s 然后调用协议驱动程序注册的回调函数来让协议驱动接 西北工业大学硕士论文 关键技术分析 收数据。因此,协议驱动、n d i s 、网络适配器驱动之间的通信不是通过标准的 i o 模式来完成的 1 0 1 。 2 2 用户模式下的数据包过滤技术 在用户模式下拦截网络数据包可采用网络a p ih o o k ,a p ih o o k 是 w i n d o w s 系统下拦截应用程序调用的动态链接库输出函数的一种方法。a p i h o o k 技术涉及至l j w i n d o w s 下的进程、p e 文件结构、汇编语言等方面的知识,编 程复杂,系统稳定性差。微软在w i n d o w s2 0 0 0 中提供了一个用户模式的包过滤 接口用于数据包的拦截过滤,但该接口限制较多,不易扩展。目前,最常用的用 户模式数据包拦截技术是w i n s o c ks p i ,即服务提供者接口。s p i 是w i n s o c k 2 0 引入的一种新的接口,下面本文将对s p i 做进一步介绍。 2 2 1w i n s o c ks p i 简介 2 o 版本以前的w i n s o c k 是为t c p i p 协议服务的,为了增加对更多协议的支 持,w i n s o c k2 o 在用户模式引入了s p i 。s p l 支持两种服务提供者一传输服务提 供者和名字解析服务提供者,本节仅讨论传输服务提供者。w i n s o c ks p i 结构如 图2 2 所示。 r 1 w i n s o c k2 【 i 应用程序l w i n s o c k 系统组件 w s 23 2 d l l 传输服务 提供者 传输服务 提供者 名字解析服 务提供者 图2 - - 2 w i n s o c ks p i 结构图 名字解析服 务提供者 w i n s o c k 2 。0 中的传输服务提供者有两类:基础服务提供者和分层( l a y e r e d ) 服务提供者。基础服务提供者和分层服务提供者都开放相同的s p i 接口,所不同 的是基础服务提供者位于提供者的最低层。所以编写基础服务提供者和分层服务 提供者基本相同,但安装时却需要将基础服务提供者安装在服务提供者加载顺序 链的最底端,而分层服务提供者则根据需求安装在加载顺序链的中间。 西北工业大学硕士论文 关键技术分析 基础服务提供者承担着执行网络传输协议( 吏n t c p ) 具体细节的工作,包括在 网络上收发数据之类的核心功能。分层服务提供者只负责执行高级的自定义通信 功能,并依靠下面的基础服务提供者,在网络上进行真正的数据交换。分层服务 提供者可以用来扩展基础服务提供者的功能。 2 2 2w i n s o c k 服务提供者实现原理 操作系统中可以安装多个传输服务提供者,它们存放在个数据库中。 w s 23 2 d l i 按照从前到后的顺序搜索这个数据库来查找符合要求的传输服务提 供者。因此。应将开发者自己编写的传输服务提供者安装在数据库的前面。w s 2 3 2 d 1 1 中提供了用来安装服务提供者的函数w s c i n s t a l l p r o v i d e r 和调整加载顺序 的函数w s c w r i t e p r o v i d e r o r d e r 。 传输服务提供者是以动态链接库的形式存在的。每一个传输服务提供者都必 须输出一个入口函数w s p s t a r t u p 供w s 2 3 2 d l l 调用。w s p s t a r t u p 的原型如下: i n tw s p s t a r t u p ( w o r dw v e r s i o n r e q u e s t e d , l p w s p d a t a wi p w s p d a t a , l p w s a p r o t o c o l - i n f o w1p p r o t o c o l l n f o , w s p u p c a l l t a b l eu p c a l l t a b l e , l p w s p p r o c j a b l el p p r o c t a b l e , ) : w v e r s i o n r e q u e s t e d :调用者可以使用的、传输服务提供者支持的最高版本。 l p w s p d a t a :一个指向w s p d a l a 数据结构的指针,用来接收关于传输服务 提供者的详细信息。 l p p r o t o c o l i n f o :指向w s a p r o t o c o li n f o w 结构的指针,用来描述该传 输服务提供者的协议特征。 u p c a l l t a b l e :w s 23 2 d l l 提供给传输服务提供者的上调函数表。 l p p r o c t a b l e :指向传输服务提供者实现的服务函数的分配表。 在该函数里,参数l p p r o c t a b l e 返回传输服务提供者实现的3 0 个服务函数的 指针。l p p r o c t a b l e 实际上是一个分配表,每一个表项存放一个服务函数的指针。 铡如: l d p r o c t a b l e - - l p w s p s e n d = m y w s p s e n d 在w s p s t a r t u p q u ,开发者必须加载系统自带的基础传输服务提供者。当开发 者编写的传输服务提供者是个分层服务提供者,可以通过参数l p p r o t o c o l i n f o 的p r o t o c ( 1 l c h a i n 字段来得到下层的服务提供者,然厝加载它并调用它的 9 西北t 业大学硕 论文 关键技术分析 w s p s t a n u p 函数,得到它实现的服务函数分配表。当开发者编写的传输服务提供 者是一个基础服务提供者,可以调用w s 2 3 2 d l l 的函数w s c e n u m p r o t o c o l s 来搜 索传输服务提供者数据库,找到紧邻它的下面的一个服务提供者,然后加载它并 调用它的w s p s t a r t u p i 函数,得到它实现的服务函数分配表。这样在实现开发者的 服务函数时就可以调用系统的服务函数来完成底层的功能了1 1m 3 。 2 3 内核模式下的数据包过滤技术 由2 1 节介绍的w i n d o w s 操作系统网络协议架构可知,在内核模式下拦截网 络数据包可在t d i ( 传输驱动程序接口) 和n d i s ( 网络驱动接口规范) 两个层面 上进行,本节将就这两个层面涉及到的技术作详细论述。 2 3 1 传输驱动程序接口( t d i ) 在w i n d o w s 中,网络协议栈的核心协议由t d i 传输驱动程序( 协议驱动程序) 实现,t d i 传输驱动程序通常创建设备对象来代表特定的协议,上层的t d i 客户 能够获得一个代表协议的文件对象并且通过i r p 与协议进行网络i o ,这些i r p 在 传输驱动程序的d i s p a t c h 侈o 程中处理。因此,在t d i 层面上拦截网络数据包可以 采取h o o k 技术,即通过一个驱动程序来h o o k 传输驱动程序中的d i s p a t c h 例程。 事实上,在t d i 层面上拦截网络数据包,可以采用分层驱动程序技术,即将一个 驱动程序挂接至i j t d i 传输驱动程序之上,当t d i 客户向协议发出请求时,这个驱 动程序先于传输驱动程序得到这个请求,当协议t d i 客户传输数据时,这个驱 动程序先于t d i 客户得到数据。这种驱动程序通常被称为t d i 过滤驱动程序。 传输驱动程序t c p i p s y s 是w i n d o w st c p i p 协议的内核模式实现,它通过创建 三个设备对象d e v i c e t c p ,_ d e v i c e u d p 和m e v i c e i p 来实现t c p i p 协议中的t c p 、 u d p 、i p 、a r p 、i c m p 等核心协议。基于t c p i p 协议的应用程序的网络数据 操作都是通过访问这几个设备来进行的。图2 - - 3 描述了t d i 过滤驱动程序挂接 t c p i p s y s 的结构。 1 0 西北工业大学硕士论文 关键技术分析 图2 - - 3t d l 过滤驱动挂接t c p i p s y s 示意图 f i l t e r 设备的创建和加载( 以t c p f i l t e r 设备为例) 过程如下: 1 通过调用i o g e t d e v i c e o b j e e t p o i m e r ( ) 函数获得指向t c p 设备对象的指针。 2 调用i o c r e a t e d e v i e e 0 函数仓0 建与t c p 设备具有相同类型和特性的 t c p f i l t e r 设备。t c p 设备的类型和特性可以通过指向t c p 设备对象的指针间接获 得。 3 调用 p l o w e r d e v i c e o b j e c t 2 l o a t t a c h d e v i c e t o d e v i c e s t a c k ( p f i l t e r d e v i c e o b j e c t , p t a r g e t d e v i e e o b j e c t ) 函数把t c p f i l t e r 设备挂接到t c p 设备上。p f i l t e r d e v i c e o b j e c t 是调用 l o c r e a t e d e v i c e 0 函数得到的指向t c p f i l t e r 设备对象的指针。p t a r g e t d e v i c e o b j e c t 是调用i o g e t d e v i c e o b j e c t p o i n t e r ( ) 函数得到的指 t c p 设备对象的指针。 l o a t t a c b _ d e v i c e t o d e v i e e s t a c k ( ) 函数返回后,如果p l o w e r d e v i e e o b j e c t 等于 p t a r g e t d e v i c e o b j e c t ,说明t c p f i l t e r 设备已经直接挂接到了t c p 设备上;如果 p l o w e r d e v i c e o b j e c t 等于n u l l ,说明挂接失败;如果p l o w e r d e v i c e o b j e c t 不等于 p t a r g e t d e v i c e o b j e c t 且p l o w e r d e v i c e o b j e c t 不等于n u l l ,说明t c p 上设备已经挂 西北丁业大学硕十论文 关键技术分析 接了其他设备,t c p f i l t e r 设备间接挂接到t t c p 设备上。 t d i 客户与传输驱动程序通过一系列i r p 通信,这些i r p 的功能码包括: i r p m j c r e a t e 、 i r p m j c l e a n u p 、 i r p m j c l o s e 、 t d i _ a s s o c i a t e 4 d d r e s s ,t d id i s a s s o c i a t 置0 d d r e s s , t d l c o n n e c t 、t d d i s c o n n e c t 、t d i _ l i s t e n 、t d i _ a c c e p t 、t d i s e n d _ d a t a g r a m 、t d i _ r e c e i v e _ d a t a g r a m 、t d i s e n d 、t d i r e c e i v e 、 t d is e te v e n th a n d l e r 等。t d i 传输驱动程序支持面向连接和非连接的通 信,上面的i r p 有的用于面向连接的通信,有的用于非连接的通信。例如, t d ls e n d 用于面向连接的数据发送,而t d is e n dd a t a g r a m 用于面向无连 接的数据发送。t d i 过滤驱动程序必须在它的d i s p a t c h 例程中处理这些i r p 。通过 解析这些1 r p ,t d i 过滤驱动程序可以获得通信双方的i p 地址、端口号、在端口上 发送和接收了多少数据等信息。处理后需要调用i o c a l l d r i v e r 将i r p 传递给被挂接 的设备。在上面的i r p 中,t d is e te v e n th a n d l e r 比较特殊。通过这个 i r p ,t d i 客户可以向传输驱动程序注册事件回调函数。t d i 基于事件的回调特性 允许传输驱动通知客户某个网络事件发生了,依靠事件回调的客户在接收数据时 不必事先分配资源。例如,当传输驱动程序收到网络数据时,它可以调用客户注 册的接收回调函数来指示客户接收数据,t d i 客户根据指示的数据大小来分配相 应的存储接收数据。t d i 客户可能通过i r p 来接收数据,也可能在回调函数中接 收数据,或者同时采用这两种方式来接收数据。在t d i s e t e v e n t h a n d l e r 这个i v , v 中,包含了一个t d i _ r e q u e s t _ k e r n e l s e t e v e n t 结构,这个结构 给出了t d i 客户要注册的事件类型、回调函数的地址等信息。t d l 过滤驱动程序 需要创建一些过滤回调函数,在处理t d l s e te v e n t _ h a n d l e r 这个i r p 时用 这些函数替换原来的事件回调函数,并保存原来事件回调函数的地址。当有网络 事件发生时,过滤回调函数将先于事件回调函数被调用。过滤回调函数应该调用 事件回调函数来让t d i 客户处理网络事件。需要指出的是,一个t d i 过滤驱动程 序可能挂接在另一个t d i 过滤驱动程序之上,也可能被另一个t d i 过滤驱动程序 挂接 1 33 。 2 3 2n d i s 中间层驱动 微软的n d i s 模型允许在t d i 传输驱动程序与n d i s 驱动程序( 小端口驱动程 序) 间插入分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 儿童新文具使用适应课件
- 2026长春市护士招聘考试题库及答案
- 护理讲课资源库介绍
- 母婴护理学产后恢复
- 新生儿胀气如何进行配方奶喂养技巧
- 护理人力资源管理创新
- 梅毒患者合并心血管疾病护理
- 术后并发症的个案管理
- 护理老年护理培训计划
- 储能项目管理组织机构设置
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 2026年考研数学一模拟单套试卷(含解析)
- 【时政解读】从美式斩杀线看中国温度与制度力量 课件
- 2026年广州市黄埔区事业单位招聘笔试参考题库及答案解析
- 旅馆防偷拍工作制度
- 2026贵州贵阳市信昌融合实业发展有限公司招聘16人笔试备考试题及答案解析
- 2026年四川发展控股有限责任公司校园招聘笔试参考题库及答案解析
- 2026年辽宁省公务员省考《行政职业能力测验》真题解析
- TCCIIA 0004-2024 精细化工产品 分类
评论
0/150
提交评论