编写设备驱动程序

自上而下请求的威胁

针对有缺陷的硬件为系统提供保护的同时,您还需要针对驱动程序误用提供保护。尽管驱动程序可以假定内核基础结构始终正确(受信任的核心),但传递给它的用户请求可能具有破坏性。

例如,用户可以请求对用户提供的数据块 (M_IOCTL) 执行某一操作,该数据块小于消息的控制部分所指示的块大小。驱动程序绝不应该信任用户应用程序。

请考虑您的驱动程序可以接收的每种类型的 ioctl 的构造以及 ioctl 可能引起的潜在危害。驱动程序应执行检查,以确保它不处理格式错误的 ioctl