




已阅读5页,还剩68页未读, 继续免费阅读
(计算机应用技术专业论文)windows2000平台下个人防火墙的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
w i n d o w s 2 0 0 0 平台下个人防火埔的设计与实现 摘要 无论是对企业还是个人,信息安全都日益成为被广泛关注的问题,同时网络 安全产品也被重视起来。防火墙作为最早出现的网络安全产品和使用量最大的安 全产品,也受到用户和研发机构的青睐。个人防火墙是保障桌面系统安全的一种 有效手段,它可以对个人电脑与网络问相互传送的数据包进行监视,并按预先确 定的标准来判断让数据包通过或者阻断,解决了那些对安全级别要求较高的个人 用户在上网漫游时的后顾之忧。 w i n d o w s2 0 0 0 是进行h t e m e t 商务和学习网络编程的最佳操作系统,它建立 于w i n d o w sn t 技术之上,在兼容方面是n t 家族兼容性最好的系统( 许多n t 程 序都是基于2 0 0 0 系统上开发出来的) 。不过w i n d o w s 2 0 0 0 漏洞不少,很多攻击 是针对它的,因此,在w i n d o w s2 0 0 0 平台下保护p c 机上网的安全是一个值得研 究的问题。 本文在简单的叙述了网络安全和防火墙的相关知识后,介绍了开发本文防火 墙需要的理论知识,继而阐述了防火墙的总体结构及功能。本文系统从总体上可 以分为三个主要模块:主程序、应用程序访问网络监控、网络数据包过滤。主程 序是一个用户模式的应用程序,相当于一个用户界面接口,提供用户与防火墙之 间的对话;应用程序访问网络监控模块是工作在用户模式的动态链接库,可以对 应用层网络数据包进行截获,获得调用w i s o c k 2s p i 的进程详细信息:网络数 据包过滤模块是工作在操作系统内核模式的n d i s 中间层驱动程序,可以对底层 的数据包全部进行截获,对于用户态的数据包则可以不加关心。采用双层过滤的 方法克服了单方面从用户态或核心态截获数据包的缺点,极大地提高了系统的安 全性能。目前开发个人防火墙的关键在于网络数据包的拦截,所以本文重点研究 了使用n d i s 中间驱动程序技术和s p i 技术的两个拦截模块的实现,并对这两个 模块进行了安装和测试,结果表明安装和拦截成功。另外,本文对已完成的应用 程序连网动作进行了测试,测试结果表明系统基本完成了应用程序连网动作过滤 的要求。 关键词:个人防火墙,n d i s ,中问驱动程序,s p i ,网络安全 w i n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 d e s i g na n dr e a h z a t i o no fp e r s o a lf j r e w a w o r k i n g o n w i n d o w s 2 0 0 0p i a t f o r m a b s t r a c t : i n f 0 柚a t i o ns e c u r i t yi si n c r e a s i n 班yb e c o m i n gi s s u e st h a tw h e t h e ro fc o r p o m t i o n a n di n d i v i d u a lp a va t t e n t i o nt o f i r e w a l la sn e t w o r ks e c u r j t yp r o d u c to fm ee a r l i e s t a p p e a r a n c ea n dt h em o s tu s e si st h ef a v o u ro fu s e ra i l dr e s e a r c hi n s t j t u t i o n p e r s o n a l 疥r e w a ui se f 托c t i v em e a s u r et h a te n s u r ed e s k t o ps y s t e ms e c l l r i t y nc a ns c o u tp a c k e t s t h a ta r ep a s s e db e t w e e nc o m p u t e ra n dn e t w o r k nc a na l s od e d d ep a c k e t st op a s so r i n t e r d i c tb vp r e d e f i n es t a n d a r d f i r e w a us o l v e sw o 玎i e sw h e np e r s o n a lu s e r sw h o r e q u i r eh i g h e rs e c u r i t yl e v e lc o n n e c tt oh l t e m e t w i n d o w s2 0 0 0i st h eb e s to s ( o p e r a t i i l gs y s t e m ) f o rh l t e m e tb u s j n e s sa n d l e a m i n gn e t w o r kp m 掣a m m e ,w h i c hi s b a s e do nw i n d o w sn tt e c h n o l o g y i t s c o m p a t i b i l i t vj st h eb e s tj nn tf a m j l v b u tw i n d o w s 2 0 0 0 sl e a kj sm a n va n dm a n v a t t a c k sa i ma ti t w h e np ci su s i n 2w i n d o w s2 0 0 0o st oc o n n e c tw i mi n t e m e t ,i ti s w o n h w h i l et ot a k ct h ep r o b l e mo fh o wt op r o t e c ti t ss e c u r i t vi n t oa c c o u n t a f t e rs j m p l yr e c i t j n gc o r f e l a t i v ek i l o w l e d g eo fn e “o r ks e c u r i t ya n df i r e w a l l t h i s p a p e ri n t r o d u c e sn e e d e dt h e o r yo fd e v e l o p i n gt h i sf i r e w a l l _ 7 n l e nt h ew h o l es t r u c t u r e a n df l l n c t i o ni se x p a t i a t e d a saw h o l et h es y s t e mm a yc 呻p a nt h r e em o d u l e s :m a i n p r o 掣a m 、m o n i t o r i n ga p p l i c a t i o np r o 蓼a m sw h oa c c e s sn e t w o r k 、f i l t e r i n gn e 咐o r k p a c k e t s m a i np r o 掣a mj sa 印p l i c a t i o np r o 铲a mw o r k i n g0 nu s e rm o d e i ti sau s e r i n t e a c ea n dp m v i d e sd i a l o g sb e t w e e nu s e ra n df j r e w a u t h em o d u l eo fm o n i t o r j n g a p p l i c a t i o np r o 掣a m sw h oa c c e s sn e t 、v o r ki sd y n a m i cl j n kl i b r a r yi nu s e rm o d e d l l w o r k i n go n 印p l i c a t i o nl c v e lc a nc a p t u r en e m o r kp a c k e t si na p p l i c a t i o nl e v e la n d m a yo b t a i nd e t a i l e di n f 0 瑚a t i o no f 哪c e s st h a ta c c e s sw i n s o c k 2s p i t 1 l em o d u l eo f f i l t e “n gn e t w o r kp a c k e t si sn d i si n t e r i n e d i a t ed “v e ri nk e m e lm o d e n d i s i n t e 咖e d i a t ed r i v e rc a nj n t e r c e p ta ub o t t o md a t ap a c k a g e sa n dd o n tn e e dt ot a k ec a r e o fp a c k a g e si nu s e rm o d e t h e f e b yw eo v e r c o m et 王l es h o n c o m i n gd u r i n gc a p u t u r i n g p a c k e tb yk e m e lm o d eo ru s e rm o d eo n l yg r e a t l yj m p r o v et h es y s t e ms e c u r i t yn a t u r e a tp r e s e n t ,t h ec o r ct e c h n o l o g yo fd e v e l o p i n gp e r s o n a lf i r e w a l li st h ei n t e r c e p t i n g t e c h n o l o g yo fn e 咖r kd a t ap a c k a g e s ,s ot h i sp 印e rm a i n l yr c s e a r c hr e a l i z a t i o no ft w o i n t e r c e p t i n gm o d u l e so fn d i sd r i v e ra n ds p l a t l a s tt h i sp a p e ri n t r o d u c e si n s t a l l a t i o n a n dt e s to ft h et w om o d u l e s t h et e s ta c h i e v e sm ya i m s i na d d i t i o nt t l ep a p e rt e s t st h e a p p l i c a t i o np r o 铲a m sa n dt h er e s u l ti st h e i ra c t i o n sa r er i g h t k e yw o r d s :p e r s o n a lf i r e w a l l ,n d i s ,i n t e n e d i a t ed “v e r ,s p i ,n e t w o r ks e c u r i t y 3 麟鸸嗍鞠辩带静攀母赢戮蔑 畿酶瓣静豫獬獬 徽爨黪镶 漆轰憋渗瀵恣黧蕊蕊漆簿黪簿擎黧凝鬻瓣窥燃黪,擎瀵谶冀渗褥蒸瀚;黪 镳簿遴籁黎麓漆穗,攀案糕拣黢熬黢蓊辫。鬻瓣。零是鬻懑虢瓣蹶髓黪懿蕊一瀚 波拣爨题靼浚撩蕊攥;黪髓簿爨澎鲻。 ;l 漆蕊德黧裕浠然懑赫器l “ w m d o 、s 2 0 0 0 平台下个人防火墙的设计与实现 第一章绪论 1 1 选题的背景及意义 1 _ 1 1 网络安全概述 互联网如今已覆盖世界各地,为更多用户提供了多样化的网络与信息服务。 在信息化社会中,网络信息系统将在政治、军事、会融、商业、交通、电信、文 教等领域发挥越来越大的作用。社会对网络信息系统的依赖也越来越强,互联网 己成为促进经济发展的全新力量。 各种各样完备的网络信息系统,使得秘密信息和财富高度集中于计算机中, 而这些系统又依靠计算机网络接收和处理信息。随着网络开放性、共享性及互连 程度的扩大特别是互联网的出现,使得网络与信息系统的安全与保密问题显得越 来越重要。自雅虎被攻击以来,国内几大网站相继被入侵,一时谈“黑”色变, 网络安全问题更是引起了人们的极大关注。 网络信息既有存储于网络节点上的资源,即静态信息,又有传播于网络节点 间的信息,即动态信息。而这些静态信息和动态信息中有些是开放的,如广告、 公共信息等,有些是保密的,如:私人间的通信、政府及军事部门、商业机密等。 网络信息安全一般是指网络信息的机密性( c o n f i d c n t i a l i t y ) 、完整性( i n t e 西t y ) 、 可用性( a v a i l a b i l i t y ) 、真实性( a u t h e n t i c i t y ) 、实用性( u t i l i t y ) 及占有性 ( p o s s e s s i o n ) 。 1 1 2 防火墙概述 以“防火墙”这个来自建筑行业的名称,来命名计算机网络的安全防护系 统,显得非常恰当,因为两者之间有许多相似之处。首先,从建筑学来说,防火 墙必须用砖石材料、钢筋混凝土等非可燃材料建造,并且应直接砌筑在建筑物基 础或钢筋混凝土的框架梁上。如打开门窗时,必须用非燃烧体的防火门窗,以切 断一切燃烧体。而在计算机系统上,防火墙本身需要具有较高的抗攻击能力,应 设置于系统和网络协议的底层,访问与被访问的端口必须设置严格的访问规则, 以切断一切规则以外的网络连接。其次,在建筑学上,建筑物的防火安全性,是 由各相关专业和相应设备共同保证的。而在计算机系统上,防火墙的安全防护性 能是由防火墙、用户设置的规则和计算机系统本身共同保证的。另外在建筑学上, 原有的材料和布置的变化,将使防火墙失去作用,随着时间的推移,一些经过阻 燃处理的材料,其阻燃性也逐步丧失。在计算机系统上也是如此,计算机系统网 络的变化,系统软硬件环境的变化,也将使防火墙失去作用,而随着时间的推移, 防火墙原有的安全防护技术开始落后,防护功能也就慢慢地减弱了。 在网络安全中防火墙是指一个或一组实旅访问控制策略的系统。它在内部网 w i i l d o w s 2 0 0 0 平台下个人防火墙的设计与实现 络( 呵信任网络) 与外部网络( 不可信任网络) 之间形成一道安全保护屏障,以防止 非法用户访问内部网络上的资源和非法向外传递内部信息,同时也防止这类非法 和恶意的网络行为导致内部网络的运行遭到破坏。防火墙的基本思想,不是对内 部网络中的每台主机系统进行保护,而是提供一个瓶颈来安装安全和监听部件, 让所有对网络的访问都通过它,并尽可能地对外界屏蔽保护网络的信息和结构。 它就像在网络周围挖了一条护城河,在唯一的桥上设立了安全哨所,进出的行人 都要接受安全检查,如防火墙作为内部网络和外部网络之间的一个保护层,使所 有的信息流都必须通过它,并通过监测、限制、更改所有流进流出防火墙的数据 流,达到保护内部网络免受非法入侵的目的。 因此从总体上看,防火墙的主要功能有以下几部分: ( 1 ) 过滤进出网络的数据 防火墙是任何信息进出网络的必经之路,它检查所有数据的细节,并根据事 先定义好的策略允许或禁止这些数据进行通信。这种强制性集中实施安全策略的 方法,简化了管理,提高了效率。 ( 2 ) 站点访问控制 这一方面是指防火墙限定外部网络只能访问内部网络的某些主机,另一方面 是指防火墙对内部用户访问外部网络的控制,禁止用户访问一些违反规定或有问 题的站点。 ( 3 ) 网络连接的同志记录及使用统计 当防火墙系统被配置为所有内部网络与外部网络连接均需经过的安全系统 时,防火墙系统就能够对所有的访问做出日志记录。日志是对- 一些可能的攻击进 行分析和防范的十分重要的情报。防火墙还能提供网络使用情况的统计数据,当 发生可疑现象时,防火墙能进行适当地告警并提供网络是否受到监测和攻击的详 细信息。 ( 4 ) 封堵某些禁止的服务 网络数据的传输更多是通过不同的网络访问服务而获取的,只要对这些网络 访问服务加以限制,就可以大大降低内部网络的暴露度,提高网络的安全度。让 只有那些授权的协议和服务通过防火墙,禁止存在安全脆弱性的服务进出网络, 从而使内部网络免于遭受来自外界的基于某协议或某服务的攻击。 ( 5 ) 强化站点资源的私有属性 防火墙通过对一些服务的封堵,防止攻击者获得可利用的信息,如使外部主 机无法获取站点名、i p 地址等。 1 1 3 个人防火墙研究的意义 目前,大多数的网络个人用户采用微软的操作系统,微软的操作系统虽然易 2 w i n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 用,但不够安全。因此我们除了要改变一些网络设置关掉的服务来减少漏洞以外, 还应安装个人防火墙来保障自己的网络安全。个人防火墙以软件形式安装在最终 用户计算机上,阻止由外到内和由内到外的威胁。个人防火墙不仅可以监测和控 制网络级数据流,而且可以监测和控制应用级数据流。 个人防火墙通过监测应用程序向操作系统发出的通信请求,来进行应用控 制。个人防火墙将每个应用程序与它发出的数据流建立关系。然后,个人防火墙 根据最终用户定义的规则,允许或拒绝数据流。这样可以防止未经许可的应用建 立与本地网或i n t e r n e t 的输出连接。个人防火墙可以在间谍软件、特洛伊木马 和病毒试图传播时捕获它们。 恶意软件设计者通过哄骗或劫持获得批准的程序进行恶意通信,来避免被发 现。个人防火墙通过应用程序认证来防止这些伎俩。个人防火墙不仅根据文件名 来检查应用程序,同时还利用执行程序的m d 5 函数、动态链接库和其他组件来检 查应用程序。如果应用程序引发报警,在未经用户批准时个人防火墙不允许与外 界联系。个人防火墙还可以提供额外的保护:在启动过程中,个人防火墙防止赢 接攻击;通过缺省设置提供直接的保护;通过执行相应的安全政策,提供自动的 网络检测;以及提供响应或纠正安全事件的知识库。 总之,个人防火墙提供了一条抵御人工和自动攻击的有效防线,能够阻止攻 击在内部网络中传播。 1 2 国内外防火墙研究现状和未来发展趋势 国外对防火墙研究和应用已经开始多年,美国、英国、加拿大、澳大利亚、 日本等国都十分重视防火墙的开发和应用系统的建设。以美国为例,政府成立了 基于w i n d o w s2 0 0 0 个人防火墙的设计与实现联邦指导委员会,对其提供政策、法 规、标准等方面的指导。在这些政策的影响下,防火墙技术的研究取得了长足的 进步。国外网络安全厂商则凭借其领先的技术和知名度在各个应用领域罩长驱直 入。随着国内网络安全防护意识的兴起,我国政策规定,政府、军工、重点投资 项目等必须采用中国企业的网络安全产品,给了国内企业网络安全产品特有的市 场空间。w i n d o w s 操作系统作为使用最为广泛的p c 操作系统,在其平台下丌发的 个人防火墙产品数不胜数。 1 2 1 个人防火墙技术现状 下面是个人防火墙采用的基本技术: ( 1 ) 基于应用网关 典型的个人防火墙属于应用网关型。相当于一个简单的代理,它随时检测用 户应用程序的执行情况,可以对特定的应用阻塞或允许,这取决于用户的安全策 3 w i d o w s 2 0 0 0 平台下个人防火墙的设计与实现 略。比如,当用户执行一个f t p 程序时,可以允许文件的上传,但其他的功能, 诸如浏览和删除文件等,代理就会阻塞这些服务。由于代理可以彻底检测包的内 容,因此对于恶意的脚本,只要用户的策略定义的合适,是可以防范的。 ( 2 ) 基于l p 地址和端口的安全规则 在个人防火墙上容易实现,适合个人用户。它可以轻易的实现基于i p 的限制 或通过对端口的限制来拒绝或允许某些服务。比如阻塞所有的f t p 服务,而只允 许w e b 的浏览服务。这对个人用户来说无疑增强了安全性,当然这是安全性和服 务限制之间的取舍了,是需要用户来决策的。 ( 3 ) 端口“隐蔽” 这是个人防火墙针对端口扫描及特洛伊木马攻击所采用的主要方法。严格意 义上来讲,它是违背标准的t c p i p 协议规则的,通常当端口收到连接请求时,他 的反应是发拒绝应答,表示端口关闭。发送请求方就知道他的请求已被接收,并 且知道端口已关闭,就不再继续发送连接请求。但同时这种端口的“拒绝”应答 也会让发送方知道收方系统的存在,这样无形中就会给那些试图侵入你的系统的 黑客以可乘之机。而端口“隐蔽”用来描述将一个端口完全隐蔽起来,而不发送 任何拒绝应答给试图打开他们的请求方。由于不发送应答,所以它是一个非标准 的连接行为。在网络系统中,这种行为是必须通过防火墙系统来强制创建和执行 的。 ( 4 ) v p n 技术 通过v p n 连入公司内部网的远程用户,如果他的计算机遭到入侵,则很可能 会暴露公司内部网,使攻击者有机可乘。而通过将i p s e c 技术内置在个人防火墙 中,在防火墙中建立一套v p n 机制,同时和企业级的防火墙相配合,可以大大提 高v p n 的安全性。 ( 5 ) n a t 技术 n a t ( n e ta d d r e s st r a n s l a t i o n ,网络地址转换) 网络地址转换的主要功能就 是通过将i 时艮头上的未经注册的i p 地址替换为合法的、已经注册的i p 地址,使整 个局域网上的所有主机都可以访问i n t e r n e t 。网络地址转换技术能透明地对所有 内部地址进行转换,使外部网络无法了解内部网络的结构,也不能访问内部主机 的资源。使黑客很难对内部网的一个用户发起攻击,同时允许内部网络使用自己 设定的i p 地址,以解决i p 地址短缺问题。 ( 6 ) 状态检测技术 网络状态检测技术( s t a t e f u li n s p e c t i o n ) 普遍被认为是新一代防火墙的核 心技术,与传统的包过滤技术类似,状态检测对新建的应用连接,检查预先设置 的安全规则,允许符合规则的连接通过,并在内存中记录下该连接的相关信息, 生成状态检测表,对该连接的后续数据包,只要符合状态表,就可以通过。这种 4 w i n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 方法的好处在于:不需要对每个数据包进行规则检查,而是一个连接的后续数据 包通过哈希算法,直接进行状念检测。而且,由于状态是动态的,因而,可以有 选择地、动态地开通1 0 2 4 号以上的端口,使得安全性得到进一步的提高。此外, 部分状态检测防火墙还支持多种用户认证方式,提供了应用级的安全认证手段, 增加了某些应用的代理功能,使得安全控制粒度更为细致。 防火墙虽然是一项比较成熟的防火墙产品,但是也在不断地完善和发展,主 流防火墙产品中相继出现了一些新的技术,具体包括流过滤技术、智能防火墙技 术、双盾防火墙技术、高性能防火墙技术和n p 技术等。 1 2 2 个人防火墙的功能特点和设计目标 1 、个人防火墙的功能特点 ( 1 ) 实时监测和保护 个人防火墙对所有内外部提出的服务请求进行过滤,发现非法授权请求后立 即拒绝,时刻注意保护用户信息系统的安全。 ( 2 ) 基于规则的安全策略 个人防火墙的保护规则包括主机和服务两部分。它允许接受特定主机的相应 服务,而将其他主机的服务要求或特定主机的其他服务要求拒绝。用户可根据自 身实际情况,添加、删除、修改出入站的规则,从而保护本机的安全。 ( 3 ) 完整的访问记录 个人防火墙可显示过去2 4 小时内所有被拒绝的、允许的和当前的连接情况。 用户可以确定安全规则是否按设计要求工作,是否有入侵者试图在用户不知道的 情况下连接用户的系统。根据这些信息用户可以确定自己的安全规则是否合理、 有效,以便制定出更有效的安全规则。 ( 4 ) 可视化统计 提供大量的用户关心的网络情况统计资料,包括网络流量统计、最大数据会 话、被拒绝的入站地址、被拒绝的出站地址。最积极的入站服务( 按数据量计) 、 最积极的出站服务( 按数据量计) 、访问最多的入站地址、访问最多的出站地址等。 2 、个人防火墙的设计目标 根据个人计算机的安全管理目标,个人防火墙主要包括以下三方面的功能: ( 1 ) 数据包过滤,该功能主要完成: 对数据包的截获。 允许用户设置管控规则。 将截获的数据包与管控规则进行比较,然后做出相应的处理( 放行或丢 弃) 。几乎每一种个人防火墙都实现了数据包过滤的功能。 ( 2 ) 内容过滤,该功能主要完成: 允许用户设置过滤规则。 w i n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 在数据包过滤之后对数据包进行重组,分离出数据段,然后与过滤规则进 行比较,做出相应的处理( 丢弃或放行) 。 ( 3 ) 流量监控,该功能主要完成: 允许用户设置流量管控规则。 对截获的数据包,按照数据包类型、时间、大小、状态、来源( 端口) 等 进行统计或监控。 1 2 3 个人防火墙的发展趋势 随着市场的不断需求,今后个人防火墙的发展趋势主要表现在以下几个方 面: ( 1 ) 智能化的发展 个人防火墙将从目前的静态防御策略向智能化方向发展。未来智能化的个人 防火墙会具有更高的智能来分析网络数据,从而能迅速的对攻击产生响应,而不 是仅仅进行数据包的检查。 ( 2 ) 速度上的发展 随着网速的不断提高,个人防火墙必须在运算速度上做相应的升级,这样才 能在市场上站稳。 ( 3 ) 功能上的发展 在安全方面,能防止各种类型的被动和主动攻击,使用户可以安全方便地 访问信息,而不会将本机的信息暴露在潜在非法入侵者面前。 在管理方面,将采用更加友好的图形化管理界面,并具备强大的审计功能 和自动日志分析功能。 在性能方面,将从目前的数据包过滤发展到对数据内容过滤,并将逐步具 备病毒过滤的功能。 总的来说,未来的个人防火墙将更加智能、速度更快、成本更低、功能更加 完善、管理更加人性化。 w l n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 第二章开发个人防火墙需要的理论知识 2 1w i n d o w s 网络协议构架 2 1 1w i n d o w s 操作系统的总体构架 w i n d o w s 操作系统的程序实现结构分为两个层次,上面的为用户层,下面的 为核心层。其结构如图2 1 所示。 应用程序汹e ) 应用程序( e x e ) 用户层动态链接库( d 1 1 ) 核心思驱动程序扣t a ,s y e ) 硬件 图2 1w i n d d 啪操作系统的程序实现结构 应用程序( e x e ) 和动态链接库( d 1 1 ) 都位于用户层,它们是两种工作方式不同 的应用程序。应用程序是一个独立且可以直接执行的模块,受w i n d o w s 进程保护 机制的保护,其它程序无权直接使用这个程序的模块和数据。动态链接库是一个 共享的函数库,它提供标准的接口供其它程序调用,本身却不能单独运行。 在用户层下面,还有一层叫核心层。w i n d o w s 9 5 9 8 下核心层的程序扩展名 为v x d w i i l d o w sn r r 佐0 0 0 下核心层的程序扩展名为s v s ,这些程序叫做驱动程序。 驱动程序为上层应用程序提供底层的支持。 这种分层结构可以实现代码共享。以协议驱动程序为例,一个系统里会有许 多程序使用相同的网络协议,把协议驱动程序单独调用出来就可以实现代码共 享。这样,操作系统就可以使协议对应用程序透明,应用程序不用关心协议的实 现方法,只要按提供的接口函数做相应的操作即可。 这种分层结构还可以实现安全保护。因为像协议驱动程序之类的程序对程序 的执行效率和代码的严谨性、强壮性要求都非常高,一旦程序出问题就可能使系 统瘫痪,因此将操作系统分为两层,可以分别赋予它们不同的操作权限。应用程 序位于上层,一个应用程序质量不会影响整个操作系统的运作,所以对于用,层 的程序要求较低,授予它的权限也较低。在w i n d o w s 保护机制的作用下,应用程 序受到许多限制。例如,应用程序无权直接操作c p u ,不能直接操作其它应用程 序的内存缓冲区等。核心层的驱动程序就不一样了,它具有与操作系统同等级别 的权限,驱动程序几乎可以对所有资源进行直接读写操作,包括硬件。 2 1 2t c p i p 协议在w i n d o w s 操作系统中的实现 t c p i p 是t m n s m i s s i o nc o n 仃0 lp r o t o c o l 和i l l t e r n e tp m t o c o l 的缩写。t c p l p 是j n t e m e t 主干网络的核心组成部分。它描述了一个四层模型,即网络接口层、 网络层、传输层、应用层。 7 w i n d o w s 2 0 0 0 平台下个人防火埔的设计与实现 网络的根本是实现不同主机之间的通信。为了实现这种通信而制定了各种协 议,只要双方履行协议,就可以正常通信。常见的网络协议有早期制定的,但现 在仍一直沿用的开放系统互连模型o s i ( o p e ns y s 衙ni n t e r 。0 n n e c t j o n ) ,即网络七 层协议。随着i i l t e m e t 的发展,t c m p 协议已成为事实上的广域网通信标准。不 同于最初的o s i 模型,t c p ,口更加注重对互连设备之间的数据传输,而o s i 模 型则更加注重于对各个设备之问通信原理的描述,也就是说,t c p i p 是一个严 格的市场标准,而o s l 模型则是一个学术标准( 实际上,t c p l p 的通讯也遵循 o s i 模型描述的原理) 。t c p i p 是一组完整的网络协议,它不需要o s i 模型的 支持,不过可以用其与o s i 模型的映射关系来帮助理解t c p i p 。图2 2 说明了 0 s i 七层模型与t c m p 协议以及w i n d o w s 程序之间的映射关系。 0 s i 七层协议t 时,i p 协议 w i h d w = 程序 广二 i i i 一 层 丑桃屡 e 司 匝囝 困 幽2 2o s i 、t c p m 与w i n d o w s 程序的映射 2 2win d 洲s 操作系统网络数据包的拦截方案 要实现个人防火墙的功能,必须能够在网络体系结构中的某个些层次实现 对数据包的拦截。如果数据包的拦截没有实现,那么分析、过滤、加密以及重新 封装传送就是空谈了。在n t 内核的w i n d o w s 操作系统中,网络数据包的捕获分 为两个层次,一个层次是在用户态( u s e 卜m o d e ) ,另一个层次是在核心态 ( k e m e l m o d e ) 。 2 2 1 用户态数据包拦截 用户态下的网络数据包捕获,包括通过s p i ( 服务提供接口) ,w i n d o w s 2 0 0 0 包过滤接口和替换系统的w i n s o c k 动态链接库三种方式。 l 、w i n s o c ki 五y e r e ds e r v i c ep r o v i d e r ( i - s p ) 这种方法在m s d n 里有很详细的文档,并且给出了一个例子( s p l c p p ) 。这种 嚣 w i d o w s 2 0 0 0 平台下个人防火墙的设计与实现 方法的好处是可以获得调用w i n s o c k 的进程详细信息。这就可以用来实现q o s , 数据流加密等目的。 ( 1 ) s p i 的优点 工作在应用层,以d l l 的形式存在,可以获得调用w i n s o c k 的进程详细信 息,编程、调试方便。 跨w i n d o w s 平台,可以直接在w 曲d o w s 9 8 伍圩叮2 0 0 0 ,x p 上通用,w i n d o w s 9 5 只需安装上w i n s o c k2f o r9 5 ,也可以正常运行。 效率高,由于工作在应用层,c p u 占用率低。 数据包还没有按照下层i p 协议进行分片,所以比较完整,很容易做内容过 滤。 做基于内容检测之类的软件,不用根据具体的浏览器进行分别编程,既简 单又安全。 ( 2 ) s p i 的缺点 不用s o c k e t 的网络通信无法拦截,比如:使用n e t b l 0 s 的网上邻居,和使用 i c m p 协议的p i n g 。 微软对s p i 设计的问题,导致如果安装顺序出错很容易造成网络瘫痪。这 意味着如果同时安装几个使用s p i 技术的软件,而且有使用非标准安装方式的软 件,很容易有的被绕过或者不能正常网络通信。所以编写s p i 程序一定要用标准 的安装方式。 如果应用程序直接通过t d i ( r r r a i l s p o nd r i v e r i n t e r f a c c ) 调用t c p i p 来发送 数据包,这种方法就无能为力了。而对于一些木马和病毒来说要实现通过t d i 直 接调用t c p i p 是一件很容易的事情。 所以,单独使用s p i 来实现网络数据包拦截是不够的,问题之关键是它可能 被旁路,这样,个人防火墙就失效了。 2 、w i n d o w s 2 0 0 0 包过滤方式 在w i n d o w s 2 0 0 0 系统中,w i n s o c k 2 o 引入了s i or c v a l 工套接字控制命令, 指定套接字接收网络接口上所有的i p 分组。建立套接字时,必须指定类型为 s o c k _ r a w ,地址家族为a f 矾e t ,协议是i p p r o t o l i p 。绑定该套接字至本 地端口后,还要指定套接宇选项s i o _ r c v a l l 为t r u e 。调用w s a r e c v 捕获i p 分 组,捕获的数据存储在数据结构w s a b u f 中,并利用循环处理捕获的i p 分组。该 数据结构包含捕获数据结构的长度和相应的数组的地址指针,该地址指针必须分 配有足够的空间以容纳捕获的i p 数据分组。但是,包过滤的规则有很多限制,对 于个人防火墙来说是远远不够的。 3 、替换w i n s o c k 动态链接库的方式 9 w j n d o w s 2 0 0 0 平台下个人防火墙的设计与实现 将系统中的w i n s o c k d l l 文件替换成开发者自己编写的动态链接库文件,这样 系统对于s o c k c t 的处理都会经过开发者的过滤和处理规则,达到对s o c k e t 数据传 输规范的目的。 在引入l s p 之前,扩展w i n s o c k 的唯一方法,就是用自己的动态链接库替换 掉微软提供的w i n s o c k 动态链接库。如果正确地实现这种方法,那么新的动态链 接库可以过滤特定的w i n s o c k a p i 调用,从而实现网络数据包过滤;同时可以调 用原来的w i n s o c k 动态链接库来实现w i l l s o c k 的基本功能。 但是用这种方式来实现防火墙功能有很多困难。最大的障碍在于微软实现 w i n s o c k 是封闭的,里面有很多未被文档化的私有函数,对于这些函数,新的动 态链接库很难处理。而且,新的w i n d o w s 系统结构加入了很多增强功能例如系统 文件保护功能,这样也使这种方式难以实现。 很显然,在用户态下进行数据包拦截最致命的缺点就是只能在w i n s o c k 层次 上进行,而对于网络协议栈中底层协议的数据包无法进行处理。对于一些木马和 病毒来说很容易避开这个层次的防火墙。 2 2 2 核心态数据包拦截 与用户态的包拦截方式不同,核心态的网络数据包拦截技术通过编写网络体 系结构各个层次的驱动程序在操作系统的核心层进行数据包的拦截。 1 、t d i r r r a i l s f e rd r i v e ri n t e r f a c e ) 过滤驱动程序 在w i l l d o w s 系统中,数据包进入网卡后传递到应用层之前必然要通过t d i 。 当应用程序要发送或接收网络数据包的时候,都是通过与协议驱动所提供的接口 来进行的。协议驱动提供了一套系统预定义的标准接口与应用程序进行交互。在 w i n d o w s2 0 0 嘣t 下,驱动程序t 印s y s 实现了i p ,t 印,u d p 的三个协议功能。它创建 了几个设备:d e v i c c r a w i p ,d e v i c c u d p d c v i c e t c p ,d e v i c e i p ,d e v i c e m u l j i c a s t 。 应用程序所有的网络数据操作都是通过这几个设备进行的。过滤驱动程序通过创 建一个或多个设备对象( d e v i c e o b i e c t ) 直接挂接到一个现有的驱动程序上,然后 由过滤驱动程序再传递给原来的设备对象。一个设备驱动程序允许挂接多个过滤 驱动程序,它们按安装的先后顺序从下到上依次排列。如果编写一个过滤驱动程 序来截获这些交互的接口,就可以实现网络数据包的拦截。t d i 层的网络数据拦 截还可以获得与网络数据包相关的进程详细信息。 2 、w i n 2 kf i l t e r h o o kd r i v e r w i n d o w s 2 0 0 0 系统提供的一种新的驱动程序,它主要是利用i p f i l t d s y s 所提 供的功能来拦截网络数据包。f i l t e r - h 0 0 kd 曲e r 结构非常简单,易于实现。但正 因为其结构过于简单,并且依赖于i p f i l t d r v s y s ,m i c r o s o f t 并不推荐使用 f 订t e r h o o kd r j v e r 。 w i n d o 邺2 0 0 0 平台下个人防火墙的设计与实现 3 、n d l sh o o kd r i v e r 目前大多数防火墙使用的主流方法,在w i n d o w 9 x 中h o o k 的概念非常流行, 实现起来也不是很困难。在w i n d o w s 9 k 下,驱动程序( v x d ) 通过使用h o o kd e v i c e s e n r i c e 可以挂接n d i s 所提供的所有服务。在w i n d o w sn r 2 0 0 0 中同样能够实现 h o o k 挂接开发者自己的处理钩子程序。 n d i s 为协议驱动程序和小端口驱动程序提供了一些接口函数,协议驱动程 序和n d i s 小端口驱动通过调用这些函数完成它们之间的数据传递。这些函数由 一个库导出,如在w i n d o w s2 0 0 0 中,这个库是n d j s s y s 。n d i sh o o k 的工作原理 是开发者编写一些函数来替换n d i s 函数库中的一些关键输出函数,这样只要向 n d i s 请求就会被开发者的函数拦截。n d i sh o o k 安装前后的结构示意图如图 2 3 所示。 安装前安装后 图2 3n d i sh o o k 安装前后的结构小意图 n d i s s y s 是一个p e 格式的文件。它有一个导出表( e x p o nt a b l e ) ,协议驱动程 序和小端口驱动调用的接口函数地址都保存在这个导出表。因此可以通过修改 n d i s s y s 的导出表来实现对关键n d l s 输出函数的替换。 由于协议驱动程序在系统启动的时候会调用n d i s r e 西s t e r p r o t o c o l 来向系统 进行协议注册,因此n d i sh o o k 的关键在于修改n d i s s v s 所提供的 n d i s r e g i s t e r p r o t o c 0 d i s d e r e g i s t e r p r o t o c o l n d i s o p e l l a d a p t e 州d i s c l o s e a d a p t e r n d i s s e n d 函数的起始地址。此外,在用户态模式修改p e 文件格式可以用一些a p i 来实现,而n d i s s y s 位于系统的核心内存区,因此要修改n d i s s y s 就不得不通过编 写驱动程序来实现。采用这种方法需要注意驱动程序的加载次序,显然h 0 0 k 驱动 程序必须在n d i s s y s 被加载之后,而在协议驱动程序如t c p i p s y s 被加载之前加载。 另外,w i n d o w s 还提供了系统文件保护机制,因此在修改n d i s s v s 的输出表时还 需要想办法屏蔽掉系统文件保护机制。 w m d o w s 2 0 0 0 平台下个人防火墙的设计与实现 4 、n d i s 中间层驱动程序 中间层驱动介于协议层驱动和小端口驱动之间,它能够截获所有的网络数据 包( 如果是以太网那就是以太帧) 。利用n d i s 中间驱动程序可以在网卡驱动程序 和传输驱动程序之间插入一层自己的处理,从而可以用来拦截网络封包并重新进 行封包、加密、网络地址转换以及过滤等操作。由于n d i s 中间层驱动程序位于网 卡和传输驱动程序之间,所以它可以拦截较为底层的封包。 n d i s 中间层驱动的应用很广泛,不仅仅是个人防火墙,还可以用柬实现v p n , n a t ,p p p o v e r e t h e r n e t 以及v l a n 。中间层驱动的概念是在w i n d o wn ts p 4 之后才 有的,因此对于w i n d o w s 9 x 来说无法直接利用中间层驱动的功能。目前个人防火 墙的产品还很少用到这种技术,主要的原因在于中间层驱动的安装过于复杂,尤 其是在w i n d o w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年航空企业航空机务员安全生产知识考试试题及答案
- 高校代理合作合同模板(3篇)
- 高空作业施工合同模板(3篇)
- 高空施工合同注意事项(3篇)
- 2025后浪公务员面试题及答案
- 时尚街区店面股份转让及经营管理合同
- 演艺公司导演艺人培养合同
- 互联网广告代理服务协议
- 信科专业面试题及答案
- 水下电磁探测技术-洞察及研究
- 骨关节健康氨糖氨糖疗法
- 面向航空制造过程排产的关键参数智能感知计算研究
- YS/T 921-2013冰铜
- GB/T 28121-2011非热封型茶叶滤纸
- 2023年廊坊市投资控股集团有限公司招聘笔试模拟试题及答案解析
- 苹果栽培学完整版课件
- 湿性愈合和新型敷料选择课件
- 【教师必备】部编版二年级语文上册 第二单元【集体备课】
- 软件生命周期与开发模型课件
- 实验动物从业人员上岗证考试题库(含近年真题、典型题)
- 印制电路板(PCB)的设计与制作课件
评论
0/150
提交评论