




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第35卷 p白正35 第12期No.12计算机工程Computer Engineering2009年6月 June 2009安全技术 文章编号:looo_3428(200912oll4_03文献标识码l A 中围分类号:TP309 Windows平台通用个人防火墙的分析与设计刘精远,孙宝林,桂超(湖北经济学院计算机学院,武汉430205妥:定义个人防火墙系统应具备的主要功能,其核心技术是网络数据包的过滤。给出Windows系统网络协议分层体系结构,在对OSI 参考模型和Windows网络体系结构对比分析的基础上给出实现包过滤的不同技术路线。对各技术路线进行评估,选择SPI作为实现方案, 给出使
2、用SPI进行包过滤的技术要点,个人防火墙系统的运行表明其具有较快的包过滤处理性能。关健诃:个人防火墙;包过滤;传输层没备接口过滤驱动程序Analysis and Design of Common Personal Firewallon Windows PlatformLIU Peng-yuan,SUN Bao-lin,GUI Chao(School ofComputer,Hubei University ofEconomy,Wuhan 430205AbstractThe main functional attributes of personal f'trewall system al
3、e defined.The core technology for realizing is packets filtering.The Architecture of WindowS Network(AWNis presented,and on the basis ofcomparison between OSI and AWN,several solutions ofpacket filteringare listed.The solution using SPI is selected after reviewing and its key realization points to f
4、ilter packets are offered.Thepersonal fwewall systemrealized using SPI shows good performance for filter network packets.Key wordspersonal firewall;packet filter;transport layer device interface filter driver1概述国外个人防火墙系统知名的品牌较多,如LOCKDOWN, NORTON,国内主要有天网防火墙和许多原来是防病毒软件 厂商开发的个人防火墙产品,如KV系列、KILL系列、金山 系列。
5、从外部功能行为上可将它们的功能归纳为以下7点: (1实时监控,根据应用程序规则对进出本机的网络封包 进行过滤;(2受到攻击时向用户报警指示;(3日志记录网络访问动作的详细信息;(4电子邮件监控,可以根据自定义的过滤规则对邮件实 施过滤;(5根据特征库进行入侵检测;(6在线升级特征库;(7将防毒、杀毒和个人防火墙集成在一起。防毒杀毒将病毒特征库的数据和包过滤数据进行对比, 判断是否是病毒从而干预;入侵检测和各种规则过滤(包括应 用程序规则和电子邮件规则基于包过滤结合自定义控管规 则分析判断是拦截还是放行,而特征库的定义和自学习不是 防火墙技术的研究内容。因此,防火墙软件技术的核心是包 过滤,即对
6、网络上流动的数据包过滤并分析,通过控管规则 决定放行或者禁止出/入。2Windows网络体系结构(AWN分析图1给出了OSI七层参考模型Izl与Window的网络体系 结构对比。由图可见,包过滤叮以发生在网卡驱动程序所在 的数据链路层至应用层的各层中,这提供了拦截网络数据包 的基本思路。Microsoft在Windows的各个网络协议层次上都 提供了一些公开规范或未公开的非常规方法,以方便开发者一114一 插入一层,因此,可以利用这些规范或非常规的方法在插入 的一层处理中进行数据包过滤¨。J。在用户态F进行网络数据 包拦截是指会话层和表示层的包过滤,利用Winsock SPl(Ser
7、vice Provider Interface或直接替换系统自带的 Winsock动态链接库来过滤包。这里的Winsock SPI编程并不 是指Windows上的套接字编程Winsock网络编程。另一个难 点是对各种网络协议的解析,可以使用一些嗅探器软件工具 (如著名的Sniffer来学习各种TCP/IP协议。OSI网络窗lJ模型 Windows的网络体系结构7.应用层 7应用程序fFx卜一5.会话层 5TDI客户(winsock仿真器等 一 一sysiF层l系统奢l传输驱动程J川协议驱动Tcpip.sys/.vxd3网络层3网络驱动程序(Ndis sys2.数据链路层 2网书驱动程序(.vx
8、d/.sys1.物理层 l网卡圈1OS!冈终参考校垂与Windows冈络体系结构传输层及以下底层的操作必须借助它提供的一些接口和 开发规范进行,操作系统工作在系统态保护模式下。在系统态 下的过滤要用到Windows DDK(Windows Device Developing Kit和TDI接I:1规范(Transport Layer Device Interface Filter Driver、NDIS接口规范(Network Driver Interface Specification。DDK是Windows下驱动开发的开发包,可以 基金项目:湖北省教育厅基金资助霞点项目(B20061900
9、1作者筒介:刘鹏远(1976一,男,高级工程师,主研方向:软件工程, 网络安全;孙宝林,教授、博七;桂超,副教授通过学习WIN DDK中的一些简单范例找到解决方法。在系统态下首先看最底层,从网络体系结构来看,过滤 可以发生在网卡驱动程序所在的数据链路层。但防火墙系统 需要从数据包过滤中得到的主要是IP地址、协议服务类型和 应用程序信息,在网络层进行过滤已足以获得这些信息,无 须对网卡MAC帧进行过滤分析。而且在网卡过滤适应各种 网卡硬件环境,实际上就是开发一个网卡驱动程序,这与防 火墙系统的开发目标不太吻合。从上向下看,系统态下的方案还可以利用TDI层E的过 滤驱动程序或网络层上的NDIS中间
10、层驱动程序达到目的, 前者是TDI接口规范,后者是NDIS接口规范。系统态的方 法就是开发驱动程序的方法,只不过这里是软件驱动程序而 不是直接和硬件打交道的硬件驱动程序。NDIS是微软提出的开发网络驱动及网卡驱动的接口规 范,NDIS为网络驱动的开发提供了一套标准的接口,从OSI 网络体系结构来看横跨了3层(数据链路层、网络层和传输 层。微软的NDIS规范允许在TDI传输驱动程序与NDIS驱 动程序(小端口驱动程序间插入分层驱动程序,这种分层驱 动程序称为NDIS中间层驱动程序。NDIS中间层驱动 (intermediate driver介于协议驱动程序和小端口驱动之间,因 此,直接收到和发往
11、网卡数据,能够在最靠近网卡的底层截 获所有的网络数据包(以太网该层的协议数据单元称为数据 帧,本文统称为数据包。中间层驱动程序在自己的上下晒端 分别开放一个Miniport(/J、端口接口和一个Protocol(协议接 口。对于NDIS小端口驱动程序,中间层驱动程序相当于传 输驱动程序;对于传输驱动程序,中问层驱动程序相当于小 端口驱动程序。系统中所有的网络通信都经过NDIS中间层 驱动程序,因此,可以用于网络数据包的拦截与过滤。3技术路线选择个人防火墙的工作是监控网络进出的数据流,对用户认 为危险或者有害的数据流向进行禁止或者监控,其核心功能 是网络数据包的监控与分析过滤。从底层看,NDIS
12、的中间驱 动由于在网卡驱动程序和传输驱动程序之间插入了一层,因 此可以过滤较为底层的封包,完成更低级(最底层的是在网卡 驱动程序层过滤,但前面阐述过在网卡驱动程序层做网络数 据包过滤没有实现价值的操作,不会有网络数据包从这里旁 路,因此,其最大的优点是安全系数高。需要指出的是,NDIS层次上的网络操作不采用标准的 I/O模式(IRP,因此,不能确定某个网络操作是由哪个进程 引起的。个人用户看不到网络数据源于哪个进程,就不容易 让用户自定义过滤包规则,这是个很大的缺陷。当然,越靠 近底层的驱动程序编写可移植性和健壮性越难保证,编码复 杂也是其一个缺点。对于TDI过滤驱动程序,由于采用标准的Win
13、dows I/O 请求(IRP,因此没有NDIS中间层的驱动就不能得到进程信 息,但由于它工作在传输驱动程序Tcpip.sys之上,因此由 Tcpip.sys接收后直接处理的数据包是不会传递到上层TDI过 滤驱动程序的,如ICMP协议的应答包。Ping和Tracert就是 利用ICMP来探测网络的可达性和跟踪路由。上才提供的方法。整个NDIS规范和TDI的概念是在Windows NT平台上提出和得到发展的,以后的Windows 2000, Windows XP都支持,但以前的Windows98和Windows Me 的个人防火墙软件,这2种方法是不合适的。网络通信的网络数据包。它工作在TDI客
14、户之上和所有的用 户进程之下,因此,对于用户进程交给它的网络请求和意图 非常清楚在经过底层的分段(IP分段之前,对用户进程 的行为、目的可以有更直观的了解,非常适合做内容过滤。 并且其过滤的所有Winsock调用被所有Windows平台支持。 另外编程相对简单,平台适应性好。其最大的缺点是有的网 络程序使用TDI接几提供的一些函数例程直接发起通信的发 送和接收,用户态的数据包过滤技术对此类程序无能为力。 另外,与TD!方法一样,对那些由Tcpip.sys接收后直接处理 的数据包,如利用ICMP协议的应答包进行探测网络町达性 的Ping和Tracert,由于它位于TDI的更上层,因此用户态 的数
15、据包过滤技术对此旁路无能为力。能够在前台监视进程界面得到进程访问网络的详细信息 对个人防火墙系统至关霞要这些进程信息有助于判定是商业个人防火墙产品如金山网镖的包过滤核心解决方案,但 从使用SPl个人防火墙系统来看,当在一白宿主机上同时安 装该SPI包过滤防火墙系统和金山网镖时,该SPI包过滤防 火墙对发送数据领先截获于金山阿镖,因此,可断定SPI包 过滤发生于金山网镖的更上层,金山网镖应该采用TDl方案 进行包过滤来获得访网进程信息。结合项目目标,要实现通用于Windows平台的个人防火 方案不适用于Window9x平台。另外,个人防火墙系统应能必须使用SPl进行包过滤。4技术要点前台访网进程
16、发出网络访问调用时,SPI后台进程进行+包过滤处理。本节给出包过滤处理的详细实现处理流程作为 技术要点分析。4.I 发送数据的Winsoek调用包过滤处理过程图2描述以WSPSend为例的包过滤处理流程,图中上下 层的箭头表示调用方向,同层中从左到右表示被上层调用的 顺序。圈2wsAsend(send的包过蠢处理滚程一115 本页已使用福昕阅读器进行编辑。当WSASend或Send调用被它过 滤后,首先调用CheckSend检查连接 权限,如果CheckSend没有返回 “PASS”,WSPSend就不转发给底 层函数。CheckSend其实是先设置调 用SetSessiou封包,然后调用 G
17、etAccesslnfo进行访问权限检查, GetAccesslnfo是直接调用GetAccess FromAcl进行检查。GetAccessFromAcl首先检查 MyFilter.exe前台用户界面进程是否 已启动,没有启动就直接放行过滤的 网络访问调用;然后检查进程名,如 无效也放行;检查当前封包的远端 IP,是自身也放行;然后GetAccess FromAcl调用GetACCeSS FromWork Mode检查工作模式是否为询问模 式,如果不是询问而是拒绝所有或放 行所有就直接返回PASS或DENY。 在询问的工作模式下,Get AccessFromAcl调用FindAcl按应用程序
18、路径和名称查找。FindAcl是根 据应用程序路径和名称从指定下标 开始在控管规则中查找与之相匹配 的记录,注意它只返回第1个满足的 下标。如果FindAcl第1次查找没有 找到,说明在控管规则中没有该应用 程序进程的控管规则,返回QUERY 表示需要调用QueryAccess向用户询 问后返回访问动作。如果FindAcl找到,还要继续判 断进出方向和当前连接是否一样;判 断协议类趔是否相同;判断端口是否 相同;判断当前连接封包的时间是否 在这条控管规则的允许访问时间段 内;判断当前连接封包的远端IP是 否在这条控管规则的允许访问网络 类型内。如果都相同,直接取这条控 管规则的访问动作PASS
19、或DENY。 这递进的几步中有一步不能推进时 说明不是第1次查找,再次调用 FindAcl从新的下标开始一次匹配查 找,并在找到后继续上面的递进步 骤。一旦不满足上面的做法 否否否否开始令 是 否 返l-1“PASS” 廷多>马匝0否 婴半笋一 。一 Q纛箩篙/在拄管规则中赉找、是否有戈于这个进程调用的控管规则记录(FindAcl?/+是一雨匡磊赢赢矿迥兰竺竺!旦=_一+是1癀弱丽磊赢赢蕊圈犷遥边望竺竺竺!兰翌望旦-0是丽赢1品蕊汆 当巡望竺竺兰!兰至塑眵是咱薹磊;藉淤时问足否在这条挫管规则的允许访问时蜘殿内?一是遛戮!箩 P地址楚西在这条控管胤则允i午访问的 >趔竺竺竺空:一越堡
20、竺竺竺譬/。一 +是厂二怎习FindAcl从新的下标开始一次匹配查找,直至FindAcl没 有找到或者完全满足。完全满足时就对该封包取该条控管规 则的访问动作,不是第1次调用FindAcl而没有找到时,直 接取上次找到的控管规则中的相反的访问动作。GetAccessFromAcl函数是CheckXxx管制函数的核心部 分,可以看到它具有自学习确定控管规则(当控管规则中没有 匹配的进程名时询问甩户进行定义,同时具有一定的智能, 当没有控管规则与当前封包完全匹配时,取最接近那条控管 规则的相反的访问动作。图3给出其算法流程。11仔一些苎:!竺:l;潍参然Ac瓮tion旭控管规则的>.。.竺婴
21、,。 、是否为Pss?/L竺2=二一 卫返回“PASS”坠L圈3GetAccessFromAcl函数算法藏程返l口l“DENY”4.2接收效据的Winsock调用被过滤处理漉程应用程序发出的访问网络的Winsock调用被过滤后的处 理流程一般如4.1节所述,但接收数据的Winsock调用被过 滤后的处理流程有所不同,更加复杂。对于应用程序发出的 Recv,RecvFrom,WSARecv,WSARecvFrom接收数据的 Winsock调用,由于在接收前不知接收到了多少数据,因此 要先调甩底层SPI函数完成接收。问题在于甩户进程可能是 使用莆叠I/O模型发出的接收调用,它定义了回调函数完成 例
22、程,实际完成接收后控制权转移到了完成例程函数fii不会 (下转第119页接收到的各个锚节点发来的定位消息包,在每个格点处共收 集50个定位消息包。第2个阶段是利用加入伪装攻击防御措 施的加权质心算法对未知节点进行安全定位。4.2实验结果及分析图3是在有攻击节点存在的环境下,加入防御措施和没 有防御措施的定位误差及无恶意节点时的定位误差比较。由 图中可以看出,在多数情况下,有伪装攻击节点时的定位误 差比没有时的定位误差扩大了许多,只有少数情况下定位误 差减小了。而在加入防御措施后,节点的定位误差和没有攻 击节点时基本相同。图4是对应的定位误差的累计概率分布。图3定位误差比较定位溟差,m图4定位误
23、差的累计概率分布由图4可以看出,在存在伪装攻击的环境中,节点的定 位误差在1m之内的概率在40%以下,而在加入防御措施后, 达到这种精度的概率在70%左右。5结束语本文针对无线传感器网络定位算法中存在的伪装攻击, 提出了一种基于对称密码加密的防御措施。实验结果表明, 在伪装攻击存在的环境中,该防御措施可以在不失算法定位 精度的情况F,对节点进行安全定位。由于传感器节点通常 分布在无人照看的环境下,一旦节点被攻击者捕获,存储在 节点上的所有信息都会被攻击者得到,因此如何在节点被捕 获的情况下仍能安全定位将是F一步工作研究的重点。参考文献【1】Bulusu N,Heidemann J,Estrin
24、 D.GPSless Low Cost Outdoor Localization for Very Small DevicesJ. IEEE Personal Communications Magazine,2000,7(5:28-34.【2】Shen Xingfa,Wang Zhi,Jiang Peng,et a1.Connectivity and RSSI Based Localization Scheme for Wireless Sensor NetworksC/Proe. of IEEE 2005International Conference on Intelligent Comp
25、uting. Berlin,Germany:Springer-Verlag,2005:578587.【3】Liu Donggang,Ning Peng。Du Wenliang.Detecting Malicious Beacon Nodes for Secure Location Discovery in5】Wang Haodong,Sheng Bo,Li Qun.Elliptic Curve Cryptography Based Access Control in Sensor NetworksJ.International Journal ofSecurity and Networks,2
26、006,1(3/4:127137.6】Karlof C,Sastry N。Wagner D.TinySec:A Link Layer Security Architecture for Wireless Sensor NetworksC/Proeeedings of ACM SenSys04.Maryland,USA:Is.n.】,2004.编辑张正兴(上接第116页返回到自定义的过滤接收函数。因此,要获得底层SPI的接 收数据大小的信息,如果用户进程是使用重叠I/O方法发出 的Winsock接收调用,需要先保存原来的Winsock调用传递 参数信息,定义自己的回调函数完成例程,再转发给底层处
27、 理。这样在转发给底层处理时就告诉了操作系统需要控制权 最终返回。5结束语本文目标是实现一个适用于所有Window平台的个人防 火墙系统,由于TDIS和NDIS的包过滤技术路线都不能适用 于所有Windows平台,因此从项目目标来看,选用SPI是合 适的。笔者使用SPI实现了一个人防火墙系统MyFilter 1.0, 实验表明其具有较好的包过滤处理性能。但可以看到,SPI 和TDI都有被“旁路”的可能,而只有NDIS能从底层截获 所有的网络通信数据包解决旁路隐患。因此,一个真正可商 业化的个人防火墙系统必须同时具备高层包过滤和NDIS底 层包过滤的“双截获”方案才能达到理想的效果,即既能在 高
28、层包过滤充分获取访网进程信息,又能在在底层采用NDIS 解决旁路的隐患。笔者正在对SPI+NIDS的复合技术路线进 行技术验证,但这样的个人防火墙系统不能适用于所有 Windows平台。参考文献【1】黄允聪,严望佳.计算机网络安全工具【M】.北京:清华大学出版 社,1999:35-41.【3】Gonealves M.Firewalls:A Complete GuideM.北京:机械工业出 版社,2000:7779.4】Zwicky E D,Cooper S,Chapman D B.Building the hatemet FirewallM.2nd ed.【S.1.】:McGraw-Hill,
29、2003:9095.【5】刘鹏远.Windows下个人防火墙的研究与实现【D】.昆明:云南大 学,2005.6】王树华,周利华.基于Windows 2000平台的防火墙技术研究与 实现J】.微机发展,2004:14(5:7880.编辑张正兴 Windows平台通用个人防火墙的分析与设计作者:刘鹏远 , 孙宝林 , 桂超 , LIU Peng-yuan, SUN Bao-lin, GUI Chao作者单位:湖北经济学院计算机学院,武汉,430205刊名:计算机工程 英文刊名:COMPUTER ENGINEERING年,卷(期:2009,35(12被引用次数:0次参考文献(7条1. 黄允聪 . 严
30、望佳 计算机网络安全工具 19992. Tanenbaum A S 计算机网络 20043. Goncalves M Firewalls:A Complete Guide 20004. Zwicky E D. Cooper S. Chapman D B Building the Internet Firewall 20035. 刘鹏远 Windows下个人防火墙的研究与实现 学位论文 20056. 王树华 . 周利华 基于Windows 2000平台的防火墙技术研究与实现 期刊论文-微机发展 2004(057. 戚鹏飞 Windows下的个人防火墙-网络数据包拦截技术概览 2007相似文献(1
31、0条1.学位论文 邵志强 智能包过滤个人防火墙设计与实现 2009随着互联网技术的迅速发展和信息化程度的加深,人们在工作、学习和日常生活中越来越多的感受到网络所带来的快捷,但是与此同时也应看到网 络发展所带来一些负面的影响,网络安全问题尤其突出。如果不很好地解决这个问题,必将阻碍信息化发展的进程。计算机网络在经济和生活的各个领 域正在迅速普及,整个社会对网络的依赖程度越来越大。了解网络面临的各种威胁,防范和消除这些威胁,实现真正的网络安全已经成了网络发展的重 要事情。论文以我校在研嵌入式软件开发平台项目为依托,从实际情况出发,重点研究平台的安全防护和异常处理机制。针对嵌入式软件平台可能存在的安
32、 全隐患,设计了基于Linux操作系统平台的个人防火墙应用软件,提高平台整体的安全性。论文在开发技术上,主要针对防火墙包过滤机制来进行研究,并且从项目实际情况考虑,选择Linux系统做为底层开发操作系统,采用Qt和KDevelop工具进行防火墙界面的开发和功能的实现。此外论文还分析了传统的包过滤匹配算法存在的不足,针对此不足作者对算法进行了优化,提出了 一种新型的防火墙包规则匹配算法,并给出了算法的实现和算法仿真结果。由于该算法能够通过函数调用的方式,对规则集中的规则进行分组和优化 ;同时在规则匹配的时候,又以分组的方式进行匹配,具备一定的智能性,所以称之为智能包过滤匹配算法;同时该应用软件提
33、供了可视化的规则配置 和管理界面,方便用户维护。在论文的最后章节,详细介绍了该算法和界面的开发步骤,同时给出了防火墙功能测试结果。论文的重点在于研究和分析防火墙Netfilter/Iptables框架的实现机制,在此基础上对算法进行优化改进,设计和开发了个人防火墙应用软件。2.期刊论文 谢辉 . 张群会 . Xie Hui. Zhang Qunhui 包过滤在个人防火墙中的应用研究 -煤矿现代化 2005(5本文重点分析了在目前网络环境建立基于个人电脑的个人防火墙的重要性,包过滤防火墙的过滤规则特征,并且给出了一种Windows下网络数据包的截 获算法,最后,用VC+语言实现了该算法的功能.3.学位论文 蒋祖国 封包过滤型Windows2000个人防火墙建模及实现 2004防火墙是可以在用户的计算机和Internet之间建立起的一道屏障,使用户的计算机在很大程度上避免受到来自Internet的攻击,而面向个人用户的防 火墙软件称为个人防火墙.个人防火墙可以根据用户的要求隔断或连通用户的计算机与Internet间的连接,用户可以通过设定规则来决定计算机与Internet间的数据传输.个人防火墙通常直接切入用户的个人操作系统,并接管用户操作系统对网络的控制,从而达到控制用户计算机和Internet之间的连 接的目的.防火墙两大主要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年关于完善合同法体系
- 2025茶叶的销售合同
- 一年级音乐课启蒙
- 2025年湖北省水果订购合同示范文本
- 应对寒潮的全方位策略
- 2025购房合同定金协议范本
- 艺术考级全攻略
- 医学硕士答辩全解析
- 2025标准版合同样本
- 2025物业管理委托合同前期物业服务合同
- 山水林田湖草生态环境调查技术规范DB41-T 1992-2020
- 大众旅游服务质量控制手册
- GB/T 44421-2024矫形器配置服务规范
- 大型活动策划与管理第八章 大型活动风险管理
- Q∕GDW 12165-2021 高海拔地区运维检修装备配置规范
- JGJ107-2016钢筋机械连接技术规程
- 妇科医生进修汇报课件
- 动态分析与设计实验报告总结
- 2024年江苏省泰州市海陵区中考一模数学试卷
- 从汽车检测看低空飞行器检测发展趋势
- DB32T 4740-2024 耕地和林地损害程度鉴定规范
评论
0/150
提交评论