摘 要:文章介绍了一款基于windows构架采取应用层进行网络数据的拦截的winsock 2 spi编程技术,适用于个人的防火墙。该防火墙具有小巧方便,操作简洁,功能齐备,完全满足个人防火墙要求。
关键词:windows构架;防火墙;网络封包拦截技术
引言
随着网络技术的迅速发展,网络安全问题日益突出,个人防火墙得到广泛应用。文章通过介绍防火墙的发展、防火墙种类及windows构架下个人防火墙技术,提出了基于windows构架网络数据包拦截的个人防火墙设计。
1 防火墙介绍
1.1 防火墙的发展
防火墙是实现内外网络的隔离,以保护内网免受外部网络的非法入侵而造成损害。防火墙发展共经历了四个阶段:
第一个阶段:静态包过滤防火墙。采用包过滤技术,网络访问和数据过滤完全依赖于路由器,且过滤规则完全由路由器提供。这类防火墙处理快速,但过滤规则简单不能够拦截到较低层的数据,但实现了数据包过滤[1]。
第二个阶段:防火墙用户化,提供给用户可实现数据过滤功能的套件。相比第一代防火墙,它是工作在电路层的防火墙,仍采用包过滤技术。用户需要做系统的配置,对用户提出较高的要求[2]。
第三个阶段:应用层防火墙,采用纯软件的方式实现,安全性大有提高。它提供了很好的操作界面,不需要用户进行复杂的系统配置,因此这类防火墙深受用户喜欢[3]。
第四个阶段:具有安全操作系统的防火墙,防火墙本身就具有自己的操作系统,尽管它的核心技术仍然是数据包过滤技术,但是它采用自适应的代理技术,使防火墙有一定的自我适应能力,在安全性上较前面各阶段的防火墙有了进一层的突破[4]。
防火墙的四个发展阶段从本质上讲就是静态包过滤和动态包过滤两个主要阶段。
1.2 防火墙种类
防火墙为实现对内部网络的保护,工作在以太网与内部网之间,通过过滤和阻挡有害的网络数据,进而保护内部网络免损害。
从技术上运用上防火墙可分为包过滤技术、应用代理网关技术及状态检测技术三类[1],下面分别介绍这三类防火墙技术:
1.2.1 包过滤技术
第一、二代防火墙均采用这种技术,核心在于对数据包的处理分析以及应用程序处理规则的设置。工作时将网络数据包进行拦截后与静态的安全规则进行对比分析,判断是否应该对此程序或数据包放行。
1.2.2 应用代理网关技术
防火墙将内网与internet直接通信桥梁彻底隔断。只要设置好过滤规则,危险的数据包是不可能传到内网中去。此类防火墙需用户进行系统配置,且其安全策略的设置相当繁琐,处理速度较慢。
1.2.3 状态检测技术
状态检测技术采用对数据包动态的过滤完成对传输层数据通信的控制。传输的所有数据包,先按照静态规则进行比对分析,如放行,防火墙仍保持对数据包跟踪,此后如发现数据包内容与之前拦截数据包记录的状态表内容不一致时,系统自动将这个数据包丢弃。此类技术实现对数据包全程跟踪,多次安全考核。较前面两种应用范围更广,但存在处理较慢的毛病。
2 windows个人防火墙及与网络封包拦截
2.1 windows个人防火墙简介
windows个人防火墙是根据windows网络协议架构,通过在操作系统中插入hook程序的方式,对所有网络通信的数据进行检查分析,并将危险的信息过滤掉。windows个人防火墙的由防火墙进程、驱动程序和过滤规则集组成。驱动程序是防火墙核心,实现对网络数据的拦截、分析及应用程序的询问等工作;过滤规则集则定义一些安全规则,实现数据包过滤放行与否的原则[3]。
2.2 windows网络封包拦截技术
网络封包拦截技术是windows构架系统的个人防火墙的技术核心。windows系统构架下数据拦截只能在应用层和核心层上进行。应用层网络封包拦截有基于winsock 2 spi技术,核心层网络封包拦截有基于ndis中间层驱动程序、基于ndis-hook钩子驱动和基于tdi过滤驱动程序。下面对这四种采取不同技术的防火墙作比较:
2.2.1 基于winsock2spi技术:spi技术程序能够获得winsock进程通信的详情,通过嵌入自己的处理函数来完成数据流加密等用户程序自定义的处理,但由于spi仅实现对基于winsock的数据包进行拦截,对传输层的通信数据包无能为力无法拦截tcp/ip数据包,因而有一定的局限性。
2.2.2 基于tdi过
滤驱动程序:通过tdi接口数据封包拦截,同时拦截应用程序通信交互的接口中所要发送的通信数据包。对通讯数据包的分析,可以防止不明应用程序对本机的攻击。但系统中tdi接口位于第四层,对网络层的数据通信无法实现拦截。
2.2.3 基于ndis过滤钩子程序:通过编写钩子程序将自己的处理函数嵌入microsoft的ndis接口规范中,实现网络数据拦截。仅能实现“钓鱼”拦截,安全性较差。
2.2.4 基于ndis中间层驱动程序:此拦截技术可以截获所有的网络通信数据包,在底层上完成数据包的交互,但截获的数据包分析复杂,可读性差,实际应用少。这种技术却具有较高的安全性。
拦截技术各有长短,单靠某一种拦截技术设计出来的防火墙往往达不到需要的安全级别。如费尔个人防火墙采用了spi、ndis-hook驱动程序两种拦截技术。尽管windows构架下网络封包拦截技术多样,要想研究出更为理想的个人防火墙就须在拦截技术上扬长避短,多种技术相结合方式进行。
4 个人防火墙设计
基于windows系统的国外比较出色的pc防火墙有卡巴斯基、麦咖啡、诺顿等等;我们国家比较出色的有瑞星、江民、天网、360等。下文个人防火墙设计进行描述。4.1 系统功能分析
文章所设计防火墙是在应用层进行封包截获,基于winsock 2 spi技术,主要实现以下功能:
(1)实现计算机实时保护,免被非法程序的攻击;(2)完成应用程序的处理具有记忆功能,对同一个或同一类型的应用程序处理动作统一;(3)实现应用程序的入网操作进行分析过滤;(4)记录应用程序联网动作及处理方案、数据通信等详情的日志记录文件;(5)即时通报非法外在攻击,并做出处理动作;总的说来,此系统是基于windows 用户封包截获技术的基础下提出的,其核心功能是应用层网络封包拦截。
4.2 系统流程图
防火墙系统包括三个方面:防火墙进程(.exe)、防火墙驱动程序(.vxd或者.sys)及防火墙安全控制规则集。工作流程如图1所示。
由上述工作流程图可知,系统详细功能模块如图2所示。
主模块实现应用程序安装(包括卸载)、用户注册、安全规则编辑、安全规则设置、防火墙系统工作模式设置、日志读写、日志记录及其文件处理及显示功能;控管规则文件实现与主模块中的安全规则编辑进行交互;日志文件模块实现与主模块中的读写日志文件进行交互;驱动程序模块是实现系统的核心。它由主模块引导执行,包含:网络数据包封包过滤模块、安全控管规则模块、工作模式模块及生成日志模块。这些模块与主模块交互以完成相应的工作。
4.3 监控界面
个人防火墙系统应用程序监控界面如图3所示,用户可以看到当前正在与互联网连接访问的应用程序的进程,可以清楚的此进程的路径、远端ip及端口、本机端口等信息。
图3 监控界面
5 结束语
文章首先对防火墙的发展和种类进行了介绍,并对在各阶段其实现技术上的差异进行分析比较结合windows个人防火墙原理和网络封包拦截技术,提出了一种基于windows构架下网络数据包拦截技术的个人防火墙的实现方案。
参考文献
[1]陈琪,屈光,高传善.windows单机版防火墙包过滤多种方案比较与实现[j].计算机应用与软件,2005(5):114-116.
[2]谢辉.包过滤技术在个人安全防御系统的研究与实现[d].西安:西安科技大学计算机学院,2006.
[3]蔡思飞.包过滤主机防火墙技术的研究[d].太原:太原理工大学,2006.
[4]殷肖川,等.网络编程与开发技术[m].西安:西安交通大学出版社,2009.