论文部分内容阅读
随着互联网技术越来越深入人们的工作和生活的各个方面,人们在享受互联网带来的便利的同时,不得不面对日益严峻的网络安全问题,计算机网络被黑客攻击而发生的网络安全问题导致的后果将会非常严重。近年来,通过网络对个人计算机进行的攻击、入侵事件层出不穷,泄密事件也不断增加。个人防火墙能过有效的保护计算机网络安全而日益受到人们的重视。网络数据包拦截是当前开发个人防火墙的核心技术。在windows平台下,对网络数据包的拦截可在用户模式和内核模式两个层面上进行。用户模式采用的关键技术是APIHOOK、WinsookSPI等。然而,这些技术都存在着一个致命的缺点:就是这些技术队数据包的拦截只能在Winsock层次上进行,一些木马和病毒程序很容易绕开winSOck而直接通过TDI调用TCP/1P发送和接收数据。内核模式拦截网络数据包的主要技术是用网络驱动程序。这也是大多数个人防火墙所采用的主要技术。但是这种技术也存在着对平台依赖性比较大的缺点。采用这种技术需要开发人员利用各种调试工具来发掘这些结构的详细定义,这样比较繁琐也容易出错。根据对这两种模式优缺点的分析,本研究课题设计和实现的个人防火墙采用内核模式的TDI过滤驱动程序和NDIS中间驱动程序技术相结合的方式进行开发。TDI过滤驱动程序可以得到访问网络的进程的详细信息,并能够拦截网络协议栈中底层协议的数据包,可以很容易地拦截一些木马和后门程序。NDIS中间驱动程序工作在数据链路层,拦截的数据包是数据链路帧。这样,不但可以拦截IP数据包而且还能拦截非IP数据包,扩大了数据包过滤的范围,因此采用这种技术开发的个人防火墙更为安全。本论文讲述了基于Windows系统的网络防火墙的设计与实现。介绍了Windows环境下网络数据包的过滤技术,包括Winsock Layered Service Provider (LSP); Windows包过滤接口;TDI过滤驱动程序(TDI Filter Driver); NDIS中间层驱动程序(NDIS Intermediate Driver); Win2k Filter-Hook Driver; NDIS Hook Driver。重点介绍了中间层驱动以及LSP技术。除此之外,将上述理论知识上升为实践,开发了软件防火墙并使用双面过滤既在核心层和应用层分别过滤数据包。另外系统通过数据挖掘技术将对数据库日志的分析挖掘反馈给系统,找出潜在的威胁,优化防火墙规则。