Windows筛选平台(Windows Filtering Platform,缩写WFP;也译Windows过滤平台)是微软操作系统中的一套系统服务和应用程序接口,于2006年至2007年在Windows Vista中首次引入。
简介Windows筛选平台允许应用程序绑定到包处理环节,过滤下一代TCP/IP协议栈的流水线。它提供集成通信等功能,管理员可以将其配置为在每个应用程序的基础上调用处理逻辑。微软预期WFP将被防火墙及其他数据包处理或连接监控组件使用,如杀毒软件和家长控制软件。另外,WFP也被用于实现网络地址转换(NAT)和存储IPSec策略配置。1
组件该筛选平台包含下列组件:
垫片(shims),它将网络数据包的内部结构暴露为属性。不同层次的协议存在不同的垫片。WFP配有一整套垫片;用户可以使用API注册其他协议的垫片。内置的垫片包括:
应用层执行(ALE)垫片
传输层模块(TLM)垫片
网络层模块(NLM)垫片
远程过程调用(RPC)运行时垫片
互联网控制消息协议(ICMP)垫片
流垫片
自Windows 8和Windows Server 2012开始,WFP允许在TCP/IP第二层进行过滤。
筛选引擎,其跨越内核模式与用户模式,提供基本的筛选功能。它根据筛选规则匹配数据包中的数据(由垫片暴露),并阻止或允许数据包。可以根据需要用callout实施任何其他操作。筛选器在每个应用程序的基础上运作。为缓解筛选器之间的冲突,它们被赋予权重(优先级),并且被分组成具有权重的子层。筛选器和callout可以被与提供者关联,其可以赋予名称和描述,并在本质上是与特定应用程序或服务关联。
基本筛选引擎,管理筛选引擎的模块。它接受筛选规则并施行应用程序的安全模型。它还维护WFP的统计信息和记录其状态。
callout,一个由筛选驱动程序公开的回调函数。筛选驱动程序提供除默认阻止/允许之外的过滤功能。管理员在注册筛选器规则时指定一个callout函数。当筛选器匹配时,系统调用该callout,由它处理指定的操作。1
诊断Windows 7中的netsh命令中新增了功能,可以对WFP的内部状态进行丰富的诊断。此功能对于调试和找出问题的根本原因(如丢包问题)非常有用。2
内存泄漏和竞态条件MS KB#979223记录了严重的内存泄漏,通过Windows 7影响Vista。由于此问题以及其他一些问题,所有WFP部署应包括MS修补程序汇总#981889。Windows 7 SP1或Vista SP3(当它出来)或更新不需要修复。
请注意,有关使用多个网络缓冲区列表的其他问题依然存在。2
本词条内容贡献者为:
陈红 - 副教授 - 西南大学