防火墙的数据包拦截方式小结.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
防火墙的数据包拦截方式小结

防火墙的数据包拦截方式小结 网络防火墙都是基于数据包的拦截技术之上的。在 Windows 下,数据包的拦截方式有很多种, 其原理和实现方式也千差万别。总的来说,可分为“用户级”和“内核级”数据包拦截两大类。 用户级下的数据包拦截方式有: * Winsock Layered Service Provider (LSP)。 * Win2K 包过滤接口 (Win2K Packet Filtering Interface)。 * 替换 Winsock 动态链接库 (Winsock Replacement DLL)。 内核级下的数据包拦截方式有: * TDI过滤驱动程序 (TDI-Filter Driver)。 * NDIS中间层驱动程序 (NDIS Intermediate Driver)。 * Win2K Filter-Hook Driver。 * Win2K Firewall-Hook Driver。 * NDIS-Hook Driver。 在这么多种方式面前,我们该如何决定采用哪一种作为自己项目的实现技术?这需要对每一种 方式都有一个大致的了解,并清楚它们各自的优缺点。技术方案的盲目选用往往会带来一些技术 风险。以自己为例,我需要在截包的同时得到当前进程文件名,也就是说,需向用户报告当前是 哪个应用程序要访问网络。在选用 Win2K Filter-Hook Driver 这一方案之后(很多小型开源项 目都采用这一方案),便开始编码。但之后发现 Win2K Filter-Hook Driver 的截包上下文处于内 核进程中,即 IRQL = DISPATCH_LEVEL,根本无法知道当前应用程序的名字。相比之下, TDI-Filter Driver 和 NDIS-Hook Driver 则可以得知这些信息。其中 TDI-Filter Driver 比 NDIS-Hook Driver 更能准确地获知当前应用程序文件名,后者的接收数据包和少数发送数据 包的场景仍然处于内核进程中。 下面列出了各种截包方式的特点: * Winsock Layered Service Provider (LSP) ? 该方式也称为 SPI (Service Provider Interface) 截包技术。SPI是由 Winsock2 提供的一个 ? 接口,它需要用户机上安装有 Winsock 2.0。Winsock2 SPI 工作在 API 之下的 Driver 之上, ? 可以截获所有基于 Socket 的网络数据包。 ? 优点: ? * 以DLL形式存在,编程方便,调试简单。 ? * 数据封包比较完整,未做切片,便于做内容过滤。 ? 缺点: ? * 拦截不够严密,对于不用 Socket 的网络通讯则无法拦截 (如 ICMP),木马病毒很容易绕过。 * Win2K Packet Filtering Interface ? 这是 Win2K 中一组 API 提供的功能 (PfCreateInterface, PfAddFiltersToInterface, ...)。 ? 优点: ? * 接口简单,实现起来没什么难度。 ? 缺点: ? * 功能过于简单,只能提供IP和端口的过滤,可能无法满足防火墙的复杂需求。 ? * 处于 API 层,木马病毒容易绕过。 ? * 只能在 Win2K 以上(含)系统中使用。 * Winsock Replacement DLL ? 这种方法通过替换系统 Winsock 库的部分导出函数,实现数据报的监听和拦截。 ? 缺点: ? * 由于工作在 Winsock 层,所以木马病毒容易绕过。 * TDI-Filter Driver ? TDI 的全称是 Transport Driver Interface。传输层过滤驱动程序通过创建一个或多个设备对象 ? 直接挂接到一个现有的驱动程序之上。当有应用程序或其它驱动程序调用这个设备对象时,会首 ? 先映射到过滤驱动程序上,然后由过滤驱动程序再传递给原来的设备对象。 ? 优点: ? * 能获取到当前进程的详细信息,这对开发防火墙尤其有用。 ? 缺点: ? * 该驱动位于 tcpip.sys 之上,所以没有机会得到那些由 tcpip.sys 直接处理的包,比如ICMP。 ? * TDI驱动需要重启系统方能生效。 * NDIS Intermediate Driver ? 也称之为 IM Driver。它位于协议层驱动和小端口驱动之间,它主要是在网络层和链路层之间对 ? 所有的数据包进行检查,因而具有强大的过滤功能。它能截获所有的数据包。 ? 可参考DDK中附带的例子 Passthru。 ? 优点: ? * 功能非常强大,应用面广泛,不仅仅是防火墙,还可以用来实现VP

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档