您现在的位置: 通信界 >> 通信终端 >> 技术正文  
 
基于WINDOWS 2000的主机防火墙
[ 通信界 / 冯爱娟   王蔚然 / www.cntxj.net / 2006/11/29 10:55:43 ]
 

冯爱娟   王蔚然 (电子科技大学电子工程学院, 成都 610054)


  摘要:主机防火墙在分布式防火墙体系结构中承担了重要的角色,其把安全策略延伸到网络的各个主机。本文介绍了几种利用驱动程序来实现基于Windows2000的嵌入式主机防火墙的方法,比较了其中的优劣,并对其中的NDIS HOOK实现防火墙技术给出了一个具体例子。
  关键词:分布式防火墙; 主机防火墙; NDIS; NDIS  HOOK


  随着网络的广泛使用 ,网络安全问题成为人们关注的焦点 。以往采用的安全保护中使用得最多的是传统的防火墙机制 ,但是由于它对网络拓扑结构的依赖,随着不断扩大的网络互连,传统防火墙的缺陷也日益突出,由此分布式防火墙应运而生。分布式防火墙在保留传统防火墙优势的同时,减小甚至去除了它对网络拓扑结构的依赖性。分布式防火墙可以认为是由3部分组成的立体防护系统:一部分是网络防火墙,它承担着传统边界防火墙看守大门的职责;一部分是主机防火墙,它解决了边界防火墙不能解决的问题(例如来自内部的攻击和结构限制等);还有一部分是集中管理,它解决了由分布技术而带来的管理问题。分布式防火墙最重要的优势在于它能够保护物理拓扑上不属于内部网络、但位于逻辑上的"内部"网络的那些主机。
  分布式防火墙技术增加了针对主机的入侵检测和防护功能,加强了对来自内部攻击防范,对用户网络环境可以实施全方位的安全策略,并提供了多层次立体的防范体系。在分布式防火墙的组成里,主机防火墙是最有特色的部分。主机防火墙驻留在被保护的主机上,用户可以针对该主机上的具体应用和对外提供的服务设定个性化的安全策略。主机防火墙对分布式防火墙体系结构的突出贡献是,使安全策略不仅仅停留在网络与网络之间,还把安全策略推广延伸到每个网络的各个主机上。
1   主机防火墙技术
  主机防火墙运行于宿主机操作系统内核,通过替换或挂接操作系统网络协议堆栈完成数据包过滤,因此与主机操作系统及网络协议有莫大的关系。其主要手段是分析主机操作系统网络协议,在适当的位置插入拦截点,所有的网络数据包通讯都要经过这些拦截点,再根据安全策略制定的规则对经过拦截点的网络信息进行监控和审查,过滤掉不符合安全规则的信息,以保护主机不受外界的非法访问和攻击。目前在绝大多数内部网的主机运行的是Windows操作系统,也是主机防火墙最重要的系统运行平台。下面主要阐述在Windows2000中主机防火墙的关键技术及其实现。
1.1  Windows操作系统的总体构架
  Windows操作系统的总体构架分为两个层次,上面的为应用层(用户态),下面的为核心层(核心态)。其结构如图1所示。


  应用程序位于上层,处于用户态,工作在Ring-3级,受到Windows保护机制的严格限制,例如不能直接操作硬件,不能直接操作其他应用程序的内存缓冲区等。而核心层的驱动程序则不一样,它处于核心态,工作在Ring-0级,可以执行任何特权指令,几乎可以对所用资源进行直接读写操作,Windows 不为它提供任何保护,它具有与操作系统核心同等级别的权限。由于操作系统自身存在许多安全漏洞,运行在其上的应用软件无一不受到威胁。主机防火墙运行在该主机上,所以其运行机制是主机防火墙的关键技术之一。为了自身的安全和彻底堵住操作系统的漏洞,主机防火墙嵌入操作系统内核的形态运行,直接接管网卡,把所有数据包进行检查后再提交给操作系统,从操作系统最底层实现对非法访问的阻截。本文介绍的基于Windows2000的主机防火墙采用核心层数据包过滤技术。
1.2  NDIS的基本概念
  Windows的网络模型最主要的包括一个NDIS(网络驱动程序接口规范)的管理库,它不仅抽象了底层硬件驱动程序的接口,也抽象了上层协议的接口和协议之上的传输设备接口。NDIS为网络驱动的开发提供了一套标准的接口,给数据交换提出了一个灵活的环境,使得网络驱动程序的跨平台性更好,传输协议可用它与网卡驱动程序进行通信。所有的网络通信最终必须通过 NDIS 完成,所以这是网络数据拦截的良好位置。其模型如图2所示。
  NDIS支持下列几种类型的驱动程序:
  1. 小端口驱动程序(Miniport drivers)。小端口驱动可以通过NDIS接口来管理网络接口卡(NIC),并且开放Miniport接口供高级驱动程序调用。
  2. 中间驱动程序 (Intermediate drivers,简称IM Driver)。中间层驱动处于驱动程序层级的中间位置,能够截获所有的Protocol 驱动程序通信。
  3. 协议驱动程序(Protocol drivers)。协议驱动程序,处于驱动程序层级的最高层,开放Protocol接口供底层驱动调用,实现与Protocol与Miniport接口的对接。
1.3 利用驱动程序实现数据包过滤技术
  利用驱动程序来拦截网络数据包一般有以下几种方法来实现:
  1、 NDIS中间层驱动程序 (IM Driver)。由于IM Driver所处的特殊位置,所以它可以拦截所有的数据包(如果是以太网就是以太帧)。利用NDIS IM Driver可以在网卡驱动程序和传输驱动程序之间插入一层自己的处理,从而用来拦截所有的数据报并完成重新组包、加密、网络地址转换以及过滤等操作。这样速度非常快,效率也非常高。但是中间层驱动过滤技术编程接口复杂,而且与操作系统版本关心密切,与硬件联系大,移植性低,而且自动安装太困难。由于以上原因,市面上还没有基于IMD的防火墙。
  2、 TDI过滤驱动程序(TDI Filter Driver)。当应用程序要发送或接收网络数据包的时候,都是通过与协议驱动所提供的接口来进行的。协议驱动提供了一套系统预定义的标准接口来和应用程序之间进行交互。因此,我们只需要开发一个过滤驱动来截获这些交互的接口,就可以实现网络数据包的拦截。TDI层的网络数据拦截还可以得到操作网络数据包的进程详细信息,这也是个人防火墙的一个重要功能。但是TDI 过滤驱动器位于TcpIp.sys之上,那些由TcpIp.sys接收并直接处理的数据包(比如ICMP)就不会传到上面,从而无法过滤这些数据包。
  3、 NDIS HOOK 解决了IM Driver和TDI Filter Driver具有的问题,是较为常用的数据包过滤技术。NDIS HOOK 的工作原理是直接替换NDIS的函数库中函数地址,这样只要向NDIS发出的请求,就会先经过自己编写的函数处理,这些函数可以过滤掉特定的网络数据包再转发给系统函数。NDIS HOOK安装前后的结构示意图分别如图3和图4所示。NDIS HOOK可以完成NDIS函数和TDI函数所能完成的功能,而且拦截的是较为底层的数据包,不容易被渗透。

2 使用NDIS HOOK实现主机防火墙
  Windows2000的驱动程序流程,如图5所示,其主要挂接过程如下:
  1、 在操作系统加载了NDIS驱动程序之后,通过自定义函数HookFunction替换NdisSend函数入口为MyNdisSend,并保存原函数指针为NdisSendAddr。与Windows 9x/Me不同,Windows2000下的协议驱动一般不再通过NdisSend发送数据,而是通过协议驱动与网卡绑定后NDIS为其分配的SendHandler来进行数据的发送,必须HOOK这个SendHandler才能真正截获发送的数据包。
  2、 通过HookFunction函数替换NdisRegisterProtocol函数入口为MyNdisRegisterProtocol,并保存函数指针为NdisRegisterProtocolAddr。
  3、 在MyNdisRegisterProtocol函数替换TCP/IP协议驱动的接收函数ReceiveHandler指针为MyReceriveHandler, 截获接收到的ICMP、IGMP、TCP、UDP等数据包,对它们依据防火墙过滤规则进行检验,对允许通过的数据包,将调用原来的函数处理;否则丢弃数据包。MyNdisRegisterPro还替换了OpenAdapterCompletehandler函数指针为MyOpenAdapterComplete。
  4、 通过HookFunction函数替换了完成协议与网卡的绑定的函数NdisOpenAdapter为MyNdisOpenAdapter,再利用MyNdisOpenAdapter或者MyOpenAdapterComplete HOOK TCP/IP协议驱动数据包发送函数SendHandler,截获待发送的ICMP、IGMP、TCP、UDP等数据包,对它们依据防火墙过滤规则进行检验,对于允许通过的数据包,将调用原来的函数处理;否则丢弃数据包。
  5、 驱动程序卸载时,卸载函数PacketUnload还原被HookFunction替换的系统函数。
3 小结
  Windows平台使用NDIS HOOK 实现主机防火墙是比较合适的技术,这种方法在实验室中投入运行(运行环境:Windows 2000)。实践证明采用这种技术实现的主机防火墙安装方便,而且能过滤所有的网络数据包,必将在网络防范中起重要作用。

作者简介:
  冯爱娟,女,1979出生,电子科技大学硕士研究生,主要研究方向网络安全。王蔚然,电子科技大学教授、博导,电子学会会士,主要研究方向为网络安全信息获取、传输、处理等。

 

作者:冯爱娟   王蔚然 合作媒体:四川省通信学会 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管