(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf_第5页
已阅读5页,还剩55页未读, 继续免费阅读

(计算机应用技术专业论文)基于ndis中间驱动的防火墙的研究与实现.pdf.pdf 免费下载

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

文档简介

基于n d i s 中间驱动的防火墙的研究与实现 摘要 随着网络技术的飞速发展,网络安全问题日益突出,防火墙是目前广泛使 用的一种网络安全技术。由于当前基于w i n d o w s 的包过滤防火墙一般建立在网 络层之上,不能拦截所有数据包。另外,宽带技术的发展对防火墙的性能要求 越来越高。因此,如何高效地拦截和过滤所有的数据包是当前的一个重要的课 题。 本文首先介绍了网络安全现状、防火墙技术的基本概念和类型、包过滤技 术,分析了数据包拦截技术和实现方法,研究了w i n d o w s 网络体系结构、n d i s 功能、中间驱动程序的工作原理和机制。在此基础上,设计并实现了基于n d i s 中间驱动的包过滤防火墙。 该防火墙在数据链路层截获m a c 帧,对数据包进行多层次过滤,提高了网 络的安全性和运行效率;在应用层中运用多线程、完成端口和自动调节包缓冲 区大小等技术有效地解决了丢包难题。本文提出的防火墙实现方案对于应用 w i n d o w s 系统的计算机或网络的网络安全有着广泛的实用性。 关键词:n d i s 中间驱动程序包过滤防火墙网络安全 r e s e a r c ha n d i m p l e m e n t a t i o n o fah r e w a l l b a s e do nn d i si n t e r m e d i a t ed r i v e r a b s t r a c t a l o n gw i t ht h ef l y m gd e v e l o p m e n to f n e t w o r kt e c t m o l g y , n e t w o r ks e c u r i t yi s b e c o m i n gm o r ea n dm o r ei m p o r t a n t f i r e w a ui sa h n do fn e t w o r k s e c u r i t yt e c h n o l g y b e i n ga p p l i e dw i d e l y a tp r e s e n t h o w e v e gt h ec u r r e n tp a c k e t f i l t e r i n gf i r e w a l lb a s e d o nw i n d o w sa r eb u i l tc o m m o n l ya b o v en e t w o r kl a y e r , s ot h e yc a n t c a p t u r e a l l p a c k e t s i na d d i t i o n ,t h ed e v e l o p m e n to fb r o a db a n dt e c h n o l o yd e m a n d sh i g h p o w e r e df i r e w a l l t h u s ,h o wt oc a p t u r ea n df i l t e ra l lp a c k e t sr a p i d i yi sc u r r e n t l ya n i m p o r t a n t r e s e a r c hi s s u e a tf a s t ,t h i st h e s i si n t r o d u c e st h e a c t u a l i t y o fn e t w o r ks e c u r i t y , t h eb a s i c c o n c e p ta n dt y p eo ff i r e w a na n dp a c k e tf i l t e r i n gt e c h n o l o g y , a n a l y z e st h en e t w o r k p a c k e tc a p t u r i n gt e c l m o l o g i e sa n di m p l e m e n t a t i o n s 。,a n dt h e nr e s e a r c h st h en e t w o r k a r c h i t e c t u r eo fw i n d o w s ,n d i sf u n c t i o n ,w o r k i n g p r i n c i p l e a n dm e c h a n i s mo f i n t e r m e d i a t ed r i v e r o nb a s i so ft h e s e ,ap a c k e tf i l t e r i n gf i r e w a l lb a s e do nn d i s i n t e r m e d i a t ed r i v e ri sd e s i g n e da n d i m p l e m e n t e d t h i sf i r e w a l lc a r lc a p t u r ea i l cf l a m e si nd a t a1 i n kl a y e r , s oi tc a nf i l t e r p a c k e t s i nm a n y l a y e r s a n d i m p r o v e t h en e t w o r k s e c u r i t ya n de f f i c i e n c y i ts o l v e st h e d i f f i c u l tp r o b l e mo f l o s i n gp a c k e t sb ym u l t i t h r e a d i n g ,c o m p l e t i o np o r t sa n dc h a n g i n g a u t o m a t i c a l l yt h es i z e o fp a c k e t sb u f f e r 啊搪r e a l i z a t i o nm e t h o do ft h i sf f r e w a l l b r o u g h tf o r w a r di n t h i st h e s i sh a sab r o a dp r a c f i c a b i l i t yt on e t w o r ks e c u r i t yo f c o m p u t e r s o rn e t w o r kb a s e do nw i n d o w s k e yw o r d s :n d i s ,i n t e r m e d i a t ed r i v e r , p a c k e tf i l t e r i n g ,f i r e w a l l ,n e t w o r ks e c u r i t y 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写 过的研究成果,也不包含为获得金壁王业太堂 或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示谢意。 籼姗签名:互欠再灵签字日期显形绎钥日 学位论文版权使用授权书 本学位论文作者完全了解盒目b 工业盘堂有关保留、使用学位论文的规定,有权保留 并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权金 月b 王业太堂可以将学位论文的全部或部分内容编人有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名 签字日期如钆轩 学位论文作者毕业后去向: 工作单位: 通讯地址: 名:f 蝴 签字日期:0 唯6 月f 日 电话 邮编 孵日 夏, 乃口 月 ,扩 致谢 衷心感谢我的导师侯整风副教授。本人在三年的硕士研究生课程班学习和 撰写学位论文的过程中,自始至终得到了侯老师的悉心指导。无论从课程学习、 论文选题,还是到收集资料、论文成稿,都倾注了侯老师的心血。侯老师广博 的学识、严谨的治学作风、诲人不倦的教育情怀深深地影响了我,必将使我终 身受益。 感谢在研究生课程班授课的全体老师,以及学院负责研究生工作的王新生 老师和负责课程班学习的束海明老师,他们对我的学习付出了许多劳动。感谢 所有的同学给予的帮助。 感谢安徽省地质勘查局的领导和同仁们,在我课程学习和论文撰写期间, 给予我的大力支持。 最后要感谢的是我的妻子和亲友,他们为我的学习付出了很多,使我能集 中精力完成课程学习和学位论文撰写。 作者:王文联 2 0 0 4 年5 月2 0 日 1 1 网络安全概况 第一章引言 随着计算机技术和通信技术的飞速发展,i n t e r n e t i n t r a n e t 应用迅速普 及。计算机网络已日益成为各行各业的重要信息交换手段,渗透到社会生活的 各个领域。全球信息化已成为人类发展的大趋势,以网络方式获得信息和交流 信息已成为现代信息社会的一个重要特征。 一方面,计算机网络分布范围广,具有开放式的体系结构,提高了资源共 享性;但另一方面也带来了网络安全的脆弱性和复杂性“1 。网络技术的发展在 给人们带来便利的同时也带来了巨大的安全隐患,尤其是因特网的飞速发展对 网络安全提出了前所未有的挑战。无论是在局域网还是在广域网中,都存在着 自然和人为等诸多因素的脆弱性和潜在威胁。目前,全世界每年由于信息系统 的脆弱性而导致的经济损失逐年上升,计算机网络安全问题日益严重,已成为 广泛关注的焦点和国际化的问题。因此,认清网络的脆弱性和潜在威胁,采取 强有力的安全策略,对于保障网络的安全性将变得十分重要,研究网络安全有 着十分重要的意义。 网络安全包括很多方面的内容“1 ,国际标准化组织( i s o ) 在其网络安全体 系的设计标准( i s o 一7 4 9 8 2 ) 中定义了五大安全服务功能:身份认证服务、访 问控制服务、数据保密服务、数据完整性服务和不可否认服务。作为五大服务 之一的访问控制服务在网络安全体系结构中具有不可替代的作用,它可以限制 对关键资源的访问,防止非法用户的侵入或合法用户的越权操作所造成的破坏。 从广义上来讲,计算机网络安全主要有两个方面的问题”1 :如何保证在网 络上传输的信息私有性,防止被非法窃取、篡改、伪造;如何限制网络上用 户( 或程序) 的访问权限,防止非法用户( 或程序) 的侵入。现阶段,可以通过采 用信息加密技术解决第一个问题,而解决第二个问题比较困难,但又是关键, 主要的途径是网络访问控制技术,普遍采用的方法是防火墙技术。 从一定意义上讲,防火墙实际上就是一种被动式防御的访问控制技术。防 火墙是访问控制的核心技术和实施网络安全政策的主要工具,是网络安全防护 的一个最为重要也是首要的安全手段,已经成为大部分网络中必不可少的安全 设备。 1 2 防火墙技术概述 1 2 1 防火墙概念 按美国n i s t ( 美国国家标准和技术研究所) 的解释,防火墙的主要目的是 控制受保护网络的出入口,它采用强使连接经过防火墙的网络接入策略,在防 火墙内对连接进行审查和评估。防火墙有几大优点,包括有控制的工作站系统 入口、增强型保密、安全策略实施及网络接入和网络使用登记。 防火墙位于内外网络之间,构成了内部网络与外部网络( i n t e r n e t ) 之间的 一道安全保护屏障,阻止外界对内部资源的非法访问,防止内部对外部的不安 全访问。防火墙作为最早出现的网络安全产品和使用量最大的安全产品,也受 到用户和研发机构的青睐。防火墙是一种被动式防御的访问控制技术,防火墙 的主要功能是控制内部网络和外部网络的连接。利用它既可以阻止非法的连接、 通讯,也可以阻止外部的攻击。通常防火墙被设计成通过预先设定好的规则对 所有出入报文进行控制,从而达到逻辑上隔离内外网的作用。从逻辑上来讲, 防火墙是起分隔、限制、分析的作用,其最基本的工作就是隔离网络,采用规 则集来增强网络安全,并且能够实现数据流的监控、过滤、记录和报告功能。 主要技术有:包过滤技术、应用网关技术和代理服务技术。 防火墙作为一种网络安全技术具有简单实用的特点,可以在不改动原网络 应用系统的情况下达到一定的安全度。 设置防火墙的耳的有四点“1 : 限制访问者进入一个被严格控制的点; 防止进攻者进入防御设备; 限制访问者离开一个被严格控制的点; 检查、筛选、过滤和屏蔽信息流中的有害服务,防止对计算机系统进 行蓄意破坏。 最普通的防火墙特性包括”1 : 控制所有的网络输入、输出连接,通过预先定义的规则过滤数据; “认证”用户和应用程序,以确保允许他们访问内部网; 为安全审记的目的记录行为,在可疑事件发生时积极发出通知。 1 2 2 防火墙类型 根据i s o o s i 参考模型,防火墙技术主要分为两大类:建立在网络层上的 基于包过滤技术的防火墙;建立在应用层上的基于代理技术的防火墙。前者 以以色列的c h e c k p o i n t 防火墙和c i s c o t z 司的p i x 防火墙为代表,后者以美国n a i 公司的g a u n t l e t 防火墙为代表。防火墙系统可以是路由器,也可以是个人机、主 系统或者是一批主系统。 防火墙技术是目前广泛使用并且行之有效的网络安全技术,主要有以下类 型: 1 包过滤型防火墙 设置在网络层和传输层,可以在路由器上实现包过滤,也可以在p c 机上安 装过滤软件。这种防火墙可以用于禁止外部不合法用户对内部的访问,也可以 2 用来禁止访问某些服务类型。其优点是简单、方便、速度快、透明性好,恰当 放置的数据包过滤器有助于保护整个网络,对网络性能影响不大。但在机器中 配置包过滤较难。由于是一种基于i p 认证,因此不能识别相同i p 地址的不同用 户,不具备身份认证功能。过滤规则的配置进行测试也较麻烦。 2 应用网关防火墙 在应用层上建立协议过滤和转发功能。它针对特定的网络应用服务协议使 用制定的数据过滤规则,并且在实施数据过滤的时候进行必要的审计,生成报 告。 3 代理服务器型防火墙 又称链路层网关,也有人将它归类到应用层网关。它由代理服务器和过滤 路由器组成,是目前较流行的一种防火墙。代理服务器型防火墙是内外网络的 隔离点,起着监视和隔离内外网络通信的作用。由于内外网络不是直接建立联 系,而是通过代理服务器,所以这种防火墙的安全陛要高一些,不足之处是无 法快速支持一些新出现的业务。 4 双穴主机防火墙 用主机来执行安全控制功能。一台双穴主机配有多个网卡,分别连接不同 的网络,它还可以充当与之相连的网络之间的路由器。双穴主机的内外网络之 间不能直接通信,其数据流被双穴主机切断。因而,双穴主机可以对网络访问 实施高度控制。网络服务由双穴主机上的服务代理来提供。 5 子网过滤型防火墙 在内外网络之间有两层隔断,这是通过堡垒主机和一个参数网络实现的。 参数网络通过内、外部路由器分别与内外网络相连,而且堡垒主机连接到参数 网络上。堡垒主机是外部网络服务于内部网络的主节点。 防火墙的结构大致可分三类:单一主机防火墙、路由器集成式防火墙和分 布式防火墙。 防火墙系统的实现手段有多种,从协议层次上看,可以分别运行在数据链 路层、网络层、网络层或应用层,还可以运行在一个以上的层次上,形成混合 型防火墙”1 。 防火墙既可以用硬件实现”1 ,也可以用软件实现。硬件实现处理速度快、 可靠性高、费用较贵,而软件实现则相对价格较低,同时便于版本升级和维护。 目前,各种通用的防火墙基本上是基于软件方法的。 防火墙有许多种形式,有以软件形式运行在普通计算机之上的,也有以硬 件形式设计在路由器之中的;可以是非常简单的过滤器,也可能是精心配置的 网关,但它们的原理是一样,都是监测并过滤所有通向外部网和从外部网传来 的信息。 当前防火墙的功能也越来越复杂,从快速路由、过滤、地址翻译、v p n 、h a ( 高性能) 到各种应用代理、七层协议分析,以及与i d s 系统、反病毒系统和安 全管理系统的互动等。 随着网络攻击手段和信息安全技术的发展,新一代防火墙功能更强大,安 全性更强。目前防火墙已经超过传统意义上的防火墙的范畴,演变成一个全方 位的安全技术集成系统,称为第四代防火墙。同时,新一代防火墙技术采用了 一些主动的网络安全技术,比如网络安全性分析、网络信息安全检测等等,因 此可以抵御目前常见的网络攻击手段:i p 地址欺骗、特洛伊木马攻击、i n t e r n e t 蠕虫、口令探寻攻击、邮件攻击等等。 1 3 包过滤技术 在网络上传输的数据的最小单位是数据包,不管是哪种形式的网络服务, 其最终的实现机制都是通过数据包在网络上的传输来实现的。 防火墙安全技术的最低起点是基于“包过滤”( p a c k e tf i l t e r i n g ) 技术, 也称网络层防火墙或过滤网关。包过滤技术是防火墙最传统、最基本的过滤技 术。防火墙的产生也是从这一技术开始的,最早是于1 9 8 9 所提出的。包过滤是 实现网络安全的主要机制之一,其目的是:在不影响合法访问的条件下,拒绝 非授权的非法访问。网络安全防范中,包过滤是其中的一个重要手段,网络安 全防范设计的重点和难点就在于包过滤机的设计。 包过滤技术核心是对流经防火墙的每个数据包进行审查,分析其包头中所 包含的源地址、目的地址、封装协议、t c p i p 源端口号和目的端口号等信息, 确定其是否与系统预先设定的安全策略相匹配,以决定或拒绝该数据包通过, 从而起到保护内部网络的作用”1 。 包过滤是防火墙最基本、最核心的技术,通过对包过滤规则的合理制订可 以有效地保护内部网络。它的优点是简单、方便、透明性好、对网络性能影响 不大。 包过滤是一个网络安全保护机制,它允许拒绝那些“被怀疑”的包,“被 怀疑”的包是那些与网络安全策略相悖的包。一般包过滤是基于以下信息来进 行操作的“1 : 1 地址过滤:根据m a c 地址或i p 地址筛选出一个工作站或服务器的数据; 2 协议过滤:根据传输层和网络层中的特性过滤,如选择t c p 数据而非u d p 数据或选择某一特定i p 层协议数据; 3 服务过滤:根据端口筛选特定类型服务; 4 通用过滤:根据数据包中某一偏移处的1 6 进制值选择特定数据包。 同时根据过滤的时间,可以分为两种过滤方式;捕获前过滤和捕获后过滤。 出于效率因素考虑,包捕获和过滤模块通常在内核层。 在整个防火墙技术的发展过程中,包过滤技术出现了两种不同版本,称为 4 “第一代静态包过滤”和“第二代动态包过滤”。 目前,大多数路由器均具有数据包过滤功能,用户也可以利用i p c h a i n s 等 免费工具自行组建过滤型防火墙,因此,运用数据包过滤技术建立i n t e r n e t 防 火墙的费用低廉。此外,它还具有很高的效率,对网络的性能几乎没什么影响。 因此,建立包过滤防火墙对保护网络安全,尤其是经费相对有限的中小型网络, 不失为一种理想的选择”1 。 1 4 包过滤防火墙实施方案 包过滤防火墙可以在主机、网关路由器或在两者之问同时实施。至于在网 络协议堆栈的哪一层实施,则由用户根据实际情况而定。通常可以采用以下两 种实施方案”“: 1 操作系统集成实施方案( o s 集成方案) 本方案主要针对开发源代码的操作系统,其基本思想是在操作系统网络层 将包过滤防火墙功能作为操作系统网络功能的一部分来实现,从而实现包过滤 防火墙功能和操作系统的无缝连接,如图1 1 所示。其主要优点为:包过滤 防火墙功能和操作系统的无缝集成,更有利于分段、包最大传输单元以及用户 场景等网络服务的有效实施;密钥管理、i p s e c 协议与网络层的无缝集成, 可以更容易地为每个数据流提供安全服务,可以支持所有的i p s e c 模式。 2 “协议堆栈中的肿块( b u m pi nt h es t a c k ) ”实施方案( b i t s 方案) b i t s 方案是指将包过滤防火墙功能作为“楔子”在协议堆栈的网络层和数 据链路层之间实施,如图1 2 所示。该方案可以提供完整的网络安全解决方案。 图1 1o s 集成宴施方案图1 2b i t s 实旅方案 综合上述两种方案,可以在源代码开放的操作系统中采用o s 集成方案,而 在w i n d o w s 操作系统中采用b i t s 方案实施包过滤。 1 5 本文研究内容 随着网络技术的飞速发展,网络安全问题日益突出,防火墙是目前广泛使 用的一种网络安全技术,已成为企业内部与公共网络之间的一道必备的屏障, 5 个人用户也纷纷安装了个人防火墙软件。然而,由于当前基于w i n d o w s 的包过 滤防火墙一般建立在网络层之上,不能拦截所有的数据包。而宽带技术的迅猛 发展,使防火墙系统的性能越来越受到人们的关注,这意味着防火墙要能够以 非常高的速率处理数据。另外,今后多媒体应用将会越来越普遍,它要求数据 穿过防火墙所带来的延迟要足够小。 目前防火墙一个很大的局限性是速度不够,真正达到线速的防火墙少之又 少。防火墙往往放在网络的出口,成为一个信息流量的阻塞点,如造成网络 堵塞,再安全的防火墙也无法应用。在实现中需要解决的主要问题是如何提高 包过滤的性能。 数据包过滤是最早的、也是最简单的防火墙系统。数据包过滤防火墙一般 采用包过滤技术,作用在网络层和传输层,通常由路由器来实现。随着网络和 软硬件技术的不断发展,利用软件方法实现简单而实用的防火墙是完全能办得 到的“”。 本文研究目标是通过软件实现一种基于w i n d o w s 的供个人和小型l a n 使用 的包过滤型防火墙。其核心问题是如何在w i n d o w s 内核中截获所有的数据包, 并提高包过滤的性能。 通过对数据包拦截技术和w i n d o w s 操作系统网络功能的深入研究,最终选 择在n d i s 中间驱动程序中拦截和过滤数据包,实现包过滤型防火墙功能。这样 做的优势非常明显,首先,在驱动级别上做过滤,无须组包,速度快,效率自 然就高;其次,能截获经过网卡的所有数据包,避免了用户级无法得到所有数 据包的缺点。 本文设计和实现的基于n d i s 中间驱动的包过滤型防火墙的技术特点: 1 通过在数据链路层截获m a c 帧,并允许上层应用程序对其进行控制,实 现对数据包进行多层次过滤,包括m a c 地址、最底层网络协议和基于内容的过 滤,提高了网络的安全性和运行效率。 2 在应用层程序中应用多线程、完成端口和自动调节包缓冲区大小等技术 提高系统性能,有效地解决了捕获数据包时的丢包难题。 3 由于包过滤驱动程序以嵌入操作系统内核的形态运行在系统的底层,所 以具有最高特权级,在实现对包过滤的同时对于所有上层应用程序均是透明的。 而实现底层的包过滤是实现网络安全的最直接、最方便的途径。 4 实现了r i n g 与r i n 9 3 的相互调用,用户在应用级直接操作r i n g 层的 数据结构,具有良好的开放性和可扩张性。 本文开发的基于n d i s 中间层过滤驱动程序的应用范围十分广泛,可用于开 发多种高性能网络应用程序,如: 防火墙 v p n 网关v p n 客户端程序 6 通用包过滤程序 网络层加密程序 链路分析仅、网络监视器、网络嗅探器 网络测试程序 p p p 、p p p o e 或p p t p 程序 数据包分析程序 通讯审计程序等 本文提出的实现方案对于应用w i n d o w s 系统的计算机或网络的信息过滤和 网络安全有着广泛的实用性。 1 6 本文组织 本文的以下部分组织结构如下: 第二章介绍了w i n d o w s 系统下数据包拦截技术,探讨了不同操作系统下数 据链路层包拦截实现方法,研究了m a c 帧和t c p i p 数据报结构,比较了w i n d o w s 系统中几种数据包拦截技术的优缺点。 第三章研究了w i n d o w s2 0 0 0 网络体系结构、n d i s 功能和组成以及中间驱 动程序的工作原理和机制。在中间驱动程序能截获所有进出系统的数据包,从 而解决数据包过滤的核心问题。深入研究和分析了n d i s 中间驱动例程p a s s t h r u 的软件功能设计和工作机制。 第四章介绍了基于n d i s 中间驱动的包过滤防火墙的设计,包括该防火墙 系统的总体框架,各主要功能模块的设计以及驱动程序和应用程序通信的机制。 第五章介绍了基于n d i s 中间驱动的包过滤防火墙的实现。该防火墙它具 有数据包截获、过滤、转发以及网络监控、协议分析等功能,并利用它设计了 一个网络安全控制模型,在w i n d o w s2 0 0 0 x p 操作系统中构造了一个适合于小 型网络的具有一般i n t e r n e t 访问要求的包过滤型防火墙,通过双穴主机方式监 视和隔离内外网络通信。 第六章结束语。对本次研究和开发工作进行了总结,并指出了以后的工作 方向。 7 第二章数据包拦截技术与实现方法概述 数据包拦截技术是包过滤的基础,不同的操作系统有不同的包拦截技术和 实现方法,本文研究基于应用最为广泛的w i n d o w s 操作系统。 对于包过滤防火墙的开发,重要的一点是要从数据链路层截获到数据包, 然后通过一定的规则对它进行处理和分析。因此,在本章中探讨了在链路层截 获数据包的实现方法,并介绍了m a c 帧和t c p i p 数据报格式,它们是协议分析 的基础。 2 1w i n d o w s 下数据包拦截技术 从防火墙的应用角度来看基本上可以分为两种:网络级的防火墙和个人防 火墙。w i n d o w s 操作系统作为使用最为广泛的p c 操作系统,因此在w i n d o w s 操作系统下开发的个人防火墙产品数不胜数。国外比较著名的有a t g u a r d 、 o u t p o s tf i r e w a l l 、n o r t o np e r s o n a lf i r e w a l l 以及s y g a t ep e r s o n a lf i r e w a l l 等,国内 用的比较多的有天网防火墙等产品。所有基于w i n d o w s 操作系统的个人防火墙 核心技术点在于w i n d o w s 操作系统下数据包拦截技术“”。 从图3 1 中可以很清楚地看到网络驱动的分层结构,这就提供了拦截数据 包的基本思路。如果要截获数据包,依据其截获点的不同,可以有不同的方法 3 。总的来说,要拦截w i n d o w s 下的数据包可以在两个层面进行:用户态 ( u s e r - m o d e ) 和内核态( k e r n e l m o d e ) 。 w i n s o c k 是w i n d o w s 网络编程接口,它工作于w i n d o w s 应用层,它提供与 底层传输协议无关的高层数据传输编程接口。在w i n d o w s 系统中,使用w i n s o c k 接口为应用程序提供基于t c p i p 协议的网络访问服务,这些服务是由 w s o c k 3 2 d l l 动态链接库提供的函数库来完成的。 在用户态下进行数据包拦截有以下几种方法”: 1 w i n s o c kl a y e r e ds e r v i c ep r o v i d e r ( l s p ) 这种方法的好处是可以获得调用w i n s o c k 的进程详细信息。这就可以用来 实现q o s ,数据流加密等目的。但是,这种包过滤安全措施并不是很好,因为 很多建立在t d i 上面的数据传输并不会受到s p i 的影响,如果应用程序直接通 过t d i 调用t c p i p 来发送数据包,这种方法就无能为力了。对于一些木马和病 毒来说要实现通过t d i 直接调用t c p i p 是一件很容易的事情。因此,大多数的 个人防火墙都不使用这种方法。国内也有使用该方法实现的个人防火墙,例如 x f i l t e r ( w w w x f i l t e r c o m ) 。 2 w i n d o w s2 0 0 0 x p 包过滤接口 w i n d o w s2 0 0 0 x pi p h l pa p i 提供了安装包过滤器的功能。但是,包过滤 的规则有很多限制不灵活而应用不多,对于个人防火墙来说是远远不够的。 3 替换系统自带的w i n s o c k 动态连接库 将原来的d l l 库改名( 如将w i n s o c k e t 库w s o c k 3 2 d l l 改为w i n s y s d l l ) ,新 建一个d l l 库( w s o c k 3 2 d l l ) ,在新的d l l 库中再进一步调用旧的d l l 库 ( w i n s y s d l l ) 中相应的函数,实现截获w i n s o c k e t 。 用户态的拦截有其优势,实现方便、便于移植、通用性强。但是,在用户 态下进行数据包拦截最致命的缺点就是只能在w i n s o c k 层次上进行,而对于网络 协议栈中底层协议的数据包无法进行处理。对于一些木马和病毒来说很容易避 开这个层次的防火墙。另外,从包处理效率考虑也不宜在用户态拦截数据包。 大多数个人防火墙都是利用网络驱动程序在内核态来实现。利用驱动程序 拦截数据包可以在网络栈的不同位置实现,主要有以下几种方法”: 1 挂接n d i s 库函数 这是目前大多数个人防火墙所使用的方法,是一种比较高级,比较危险, 非常规的做法。h o o k 的概念在w i n d o w s g x 下非常流行,而且实现也很容易。在 w i n d o w s g x 下,驱动程序( v x d ) 通过使用h o o kd e v i c e s e r v i c e 可以挂接n d i s 所提供的所有服务。在w i n d o w sn t 2 0 0 0 x p 下面实现h o o k 有两种方法:通过 修改n d i s s y s 的e x p o r tt a b l e ,这种方法要修改n d i s s y s 就不得不通过写驱动 程序来实现,也就要求开发者对p e 文件格式有比较深入的了解;向系统注册 假协议( f a k ep r o t o c 0 1 ) ,这种方法对平台的依赖性比较大,需要在程序中判断 不同的操作系统版本而使用不同的结构定义。 2 编写中间驱动程序 中间驱动程序位于小型端口驱动程序和协议驱动程序之间,由于其位置上 的独特性,不论是上层协议驱动程序需要发送到网络上的数据,还是下层小型 端口驱动程序需要指示上层接收的数据都得先经过中间驱动程序。因此,在中 间驱动程序中不仅可以拦截所有的数据包,还可以实现防火墙、n a t 、加密等功 能。不过,编写中间驱动程序是一件比较复杂的事情。 目前个人防火墙的产品还很少用到这种技术,主要的原因在于中间驱动的 安装过于复杂,尤其是在w i n d o w sn t 下。w i n d o w s2 0 0 0 x p 下可以通过程序实现 自动安装,但是如果驱动没有经过数字签名的话,系统会提示用户是否继续安 装。 3 编写i pf i l t e rh o o k 驱动程序 测k w i n d o w s2 0 0 0 开始系统所提供的一种驱动程序,该驱动程序主要是 利用i p f i l t d r v s y s 所提供的功能来拦截数据包。f i l t e r h o o kd r i v e r 在结构非 常简单,易于实现。但是正因为其结构过于简单,并且依赖于i p f i l t d r v s y s , m i c r o s f o t 并不推荐使用f i l t e r h o o kd r i v e r 。 4 编写t d i 过滤驱动程序 9 当应用程序要发送或接收数据包的时候,都是通过与协议驱动所提供的接 口来进行的。协议驱动提供了一套系统预定义的标准接口来和应用程序之间进 行交互。在w i n d o w sn t 2 0 0 0 x p 下,i p 、t c p 和u d p 是在一个驱动程序里实现的, 叫做t c p i p s y s ,这个驱动程序创建了几个设备:d e v i c e r a w i p ,d e v i c e u d p , d e v i c e t c p ,d e v i c e i p ,d e v i c e m u l t i c a s t 。应用程序所有的网络数据操作都是 通过这几个设备进行的。因此,只需要开发一个过滤驱动来截获这些交互的接 口,就可以实现数据包的拦截。t d i 层的网络数据拦截还可以得到操作数据包的 进程详细信息,这也是个人防火墙的一个重要功能。 上述方法中,中间驱动程序和t d i 过滤驱动程序通常用做包过滤,也是防火 墙和v p n 萄( 件使用的技术,但二者截获数据包的层次不同。中间驱动程序在数据 链路层对所有的数据包都进行检查,功能比较强大,但编程接口复杂,自动化 安装困难。而t d i 过滤驱动程序属于u p p e rd r i v e r ,位于t c p i p s y s 之上,t d l 只 对高层协议进行操作,这就意味着由t c p i p s y s 接收并直接处理的数据包就不会 传送到上面,从而无法过滤某些接收的数据包,典型的就是i c m p ,i c m p 的应答 包直接由t c p i p s y s 生成并回应,上面的过滤驱动程序全然不知。 数据包拦截技术是包过滤的基础,它不仅仅可以用来开发包过滤防火墙, 还可以用来开发其它的产品( 如:i d s 、v p n 等) ,与网络安全密切相关。 综上所述,数据包拦截技术很多,基本上网络架构上的任何一层都可以拦 截,效率不一而定,通常说来,拦截的层次越低,效率越高;n d i s 中间驱动程 序能处理的协议最为广泛,而其它方法则仅限于i p 协议”。 2 2 链路层包拦截实现方法 在u n i x 世界里,包过滤功能和i p 转发功能都是系统内核的内置功能,在 同一台主机上把它们结合起来使用是再正常不过的事情了。目前,u n i x 系统中 有3 种常见的数据链路层访问设备,可以用来捕获和过滤链路层上的数据包, 它们分别为: b s d 系统中采用的b s d 分组过滤 s v r 4 中的数据链路层接口( d l p i ) l i n u x 系统的s o c k e t _ p a c k e t 接口 l i n u x 采用了与p o s i x 一致的方式“”,融合了u n i x 系统v 和b s d 的特性, 继承了u n i x 经验中许多最好的特性。用户可以重新编译系统内核,能够使内核 与防火墙系统有机地成为一个整体;也可按需添加功能模块,增强防火墙系统 的功能。 目前,u n i x l i n u x 环境下数据包拦截的开发包有很多,常用的有以下两种: 1 l i b p c a p l o 实质上是一个系统独立的a p i 接口函数,用于用户层次的数据包截获工作。 它为底层网络监控编程通过了一个易于移植的应用框架,这些底层网络应用包 括网络数据收集、安全监控和网络调试等。l i b p c a p 接口支持基于b s d 数据包 过滤机制“。 2 n e t f i l t e r n e t f i l t e r 是一个优秀防火墙架构,大多国内防火墙借鉴了n e t f i l t e r 的结 构。n e t f i l t e r 位于l i n u x 网络层( i p 层) 和防火墙内核功能模块之间,在内核 中通过n e t f i l t e r 结构将防火墙对数据包的处理引入i p 层中实现,防火墙的代 码与实现i p 层的代码完全分离,从而构成不同的模块“”。 在w i n d o w s 中访问数据链路层信息的机制 基于n d i s ) 与在u n i x 中截然不 同”3 。w i n 3 2 平台不提供直接的网络底层访问接口“,必须通过中间层设备驱动 程序提供应用程序和网卡之间的接口。因此,在w i n d o w s 系统中可以开发底层 网络驱动程序拦截和过滤所有数据包,从而实现对网络的实时监控和访问控制, 保障网络安全。 w i n d o w s 环境下的开发包很少,因为w i n d o w s 的封装性强,开发困难大, 用户很难直接对网络底层进行编程“”。v x d ( v i r t u a ld e v i c ed r i v e r ) 驱动程 序和w d m ( w i n d o w sd r i v e rm o d e ) 驱动程序是w i n d o w s 提供给用户的w i n 3 2 环 境下的n d i s 与用户监听程序之间的接口。在w i n d o w s9 x m e 中支持v x d 驱动程 序和w d m 驱动程序,w i n d o w sn t 中支持k e r n e ld r i v e r 即内核式驱动程序, w i n d o w s2 0 0 0 及以后版本的w i n d o w s 使用w d m 驱动程序。w i n d o w sn t 的内核式 驱动程序与w d m 驱动程序很相似,只是少了部分功能,而v x d 式驱动程序基本 被淘汰。 澳大利亚的c a n b e r r a 大学信息科学与工程系1 9 9 7 年在w i n d o w sn t 环境下 研制了一个网络开发包p a c k e t 3 2 v x d ”,应用程序通过它可以设置网卡的工作 模式、直接在网卡上读写数据。 基于w i n d o w s 的w i n p c a p 是一个系统无关、采用分组捕获机制的分组捕获 函数库,用于访问数据链路层,大多数的网络监听程序都使用它和内核部分进 行通信“i 。 2 3m a c 帧和t c p i p 数据报格式 从数据链路层截获到的数据包是m a c 帧,在以太网中又称为以太帧。我们 现在接触最多的就是以太网,因此研究数据包是离不开以太帧的。在以太网中, 数据是以被称为帧的数据结构为单位进行交换的。常用的以太网帧的格式有两 种标准,一种是d i xe t h e r n e tv 2 标准,另一种是i e e e 的8 0 2 3 标准。现在最 常用的m a c 帧是v 2 格式,如图2 。1 所示: l 前同步码目标地址 源地址帧类型帧中数据嘎c 校验和 i ( 8 字节) ( 6 字节)( 6 字节)( 2 字节)( 4 6 _ 1 5 0 0 字节)( 4 字节) 图2 1 以太网帧格式 以太网的地址由4 8 位的二进制来表示,即m a c 地址或硬件地址。在m a c 帧 前还有8 字节的前同步码和帧的开始定界符,之后才是地址等报头信息。接收 端和发送端的地址之后是2 字节的类型字段,存放帧中传送数据的上层协议类 型,如下所示: 帧类型( 1 6 进制) 协议 8 0 0i p 8 0 6a r p 8 0 3 5r e v e s ea n 8 0 9 b a p p l et a l k 8 1 3 7 8 1 3 8 n o v e l 8 1 4 cs n m p 帧的数据部分长度为4 6 1 5 0 0 字节,当小于4 6 时,会在后面加入一个整 数字节的填充字段。f c s ( f r a m ec h e c ks e q u e n c e ) 在以太网常用循环冗余校检 ( c r c ) 。 i p 协议为网络层协议,网络层的数据结构体被称为i p 数据报,其格式如 图2 2 所示。 图2 2i p 数据报格式 数据包在运输层还有两个重要的协议,即t c p u d p 。t c p u d p 中使用端口的 概念,以区别计算机上不同的程序。t c p 数据报格式如图2 3 所示。因为u d p 是一种非可靠、非连续型的传输协议,因此不需象t o 那样提供额外的数据位 来控制传输可靠性。与t o 相比,u d p 的报头精简得多,其格式如图2 4 所示。 图2 3t c p 数据报格式 图2 4u d p 数据报格式 局域网中协议的上下层关系。2 “”1 如图2 5 所示。从链路层截获到的m a c 帧 中除了应用层的数据外,还包括m a c 帧头、i p 数据报头、以及i p 层之上的t c p 或u d p 数据报头,并且应用层还有可能也定义了头结构。 卜下c p 新辊搬+ 口数据报+ _ _ m a c 帧 图2 5 局域网协议的上下层关系 应用层 t c p 层 口层 链路层 综上所述,在数据链路层、网络层和传输层可以分别截获m a c 帧、i p 数据 包、t c p 和u d p 数据包。由于n d i s 中间驱动程序中能在数据链路层截获m a c 帧, 因此可以实现对数据包进行多层次过滤。 2 4 w in d o w s 下防火墙包过滤技术比较 随着计算机的普及应用,个人用户的运行环境大多基于w i n d o w s 平台,而基 于此平台的防火墙软件可以采用多种方法来实现。 目前,许多在p c 机上运行的包过滤软件是基于w i n d o w s 操作系统提供的i p f i l t e ra p i 函数来编写的”,用户态下的i pf i l t e ra p i 功能有限,只能通过i p 包头标准域信息来决定i p 包的取舍。因此,这些软件只能根据i p 地址、协议类 型、协议端口等信息进行过滤,对包含计算机病毒及有害信息的i p 包没有防火 功能。要阻止病毒的入侵,滤除有害信息,必须实现基于内容的i p 包过滤。在 w i n d o w s 操作系统下,实现基于内容的i p 包过滤程序位于系统内核态。 另外,现行的各类防火墙虽利用h o o k 技术加载自己的驱动,处理收发的报 文,但都是根据过滤表在系统级进行处理,用户无法直接获得报文对它进行自 由处理。为此

温馨提示

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

评论

0/150

提交评论