支持卸载的微型端口驱动程序安全指导原则概述

为提高性能,Microsoft TCP/IP 传输可将任务或连接卸载到具有相应 TCP/IP 卸载功能的网络接口卡 (NIC) 上。 卸载的 TCP/IP 网络通信任务由 NIC 硬件进行处理。 微型端口驱动程序向操作系统播发 NIC 硬件的各种卸载功能,并配置 NIC 硬件。 NIC 硬件会在发送和接收调度处理程序中对传出和传入数据包执行已播发的卸载任务。 硬件执行计算 IP 标头校验和等操作。

为了确保安全的环境,微型端口驱动程序应只播发 NIC 硬件可以提供的卸载功能,而不播发其他功能。 微型端口驱动程序应配置硬件以卸载符合播发条件的数据包上的播发任务。 在发送路径上,操作系统不需要驱动程序卸载微型端口驱动程序未播发的任务。 在接收路径上,微型端口驱动程序和 NIC 不应执行微型端口驱动程序所播发的 NIC 硬件功能中未包含的任何任务。

如果微型端口驱动程序或 NIC 无法对接收到的数据包执行卸载任务,则微型端口驱动程序应将此类数据包指示到驱动程序堆栈上而不采取任何操作。 在这种情况下,上层驱动程序会将该数据包作为普通数据包进行处理。

微型端口驱动程序绝不应播发 NIC 硬件不支持的功能。 微型端口驱动程序绝不应使用发送或接收调度处理程序来执行硬件无法提供的卸载操作的软件模拟。 如果微型端口驱动程序提供类似的软件模拟,则驱动程序必须在软件中检查数据包数据。 如果驱动程序在软件中检查数据包数据,则计算机可能会遭到安全攻击。

以下主题提供了有关安全攻击以及如何避免 NDIS 驱动程序中的安全问题的详细信息:

在 NDIS 驱动程序中的安全漏洞攻击

NDIS 驱动程序中的性能下降和拒绝服务攻击

测试有漏洞 NDIS 驱动程序所增加的成本

NDIS 驱动程序的安全清单