微过滤驱动(minifilter)是windows内核层拦截文件操作的首选方案,通过注册回调函数拦截创建、读写等操作,支持热加载卸载;需绑定卷设备对象,在irp_mj_write/read预处理阶段加解密,配合fsrm实现策略治理。
直接在内核层拦截和控制文件操作,是提升 windows 存储安全最底层也最有效的手段之一。它不依赖用户行为或应用软件,而是从文件系统入口处介入,实现加密、隐藏、监控或阻止等策略。
微过滤驱动(MiniFilter)是当前首选方案
相比传统过滤驱动,MiniFilter 架构由微软官方推荐,具备模块化、易维护、支持热加载卸载等优势。它通过注册回调函数拦截关键操作(如创建、读写、删除、重命名),无需修改底层文件系统驱动。开发时可基于 Windows-driver-samples 中的 filesys/miniFilter 示例(如 avscan 或 change)快速起步,避免重复造轮子。
加密与访问控制必须在驱动层透明实现
应用层加密工具容易被绕过,而驱动层加解密让文件在磁盘上始终以密文存储,内存中才还原为明文。用户无感操作,但离开授权环境(如未加载对应驱动或缺少密钥)就无法正常打开文件。关键点包括:
- 绑定到卷设备对象(FILE_DEVICE_DISK_FILE_SYSTEM),跳过识别器(\FileSystem\Fs_Rec)
- 在 IRP_MJ_WRITE 和 IRP_MJ_READ 的预处理阶段完成加解密
- 利用 FAST I/O 路径优化性能,失败时自动回落至标准 IRP 流程
配合 FSRM 实现策略级文件治理
驱动层负责“技术执行”,FSRM(文件服务器资源管理器)负责“策略定义”。在 Windows Server 上启用 FSRM 后,可配置硬性筛选(Active Screening)阻止高危扩展名(如 .exe、.ps1、.scr),并设置例外路径、邮件告警或自动脚本响应。日志统一记录在 应用程序和服务日志 → File Server Resource Manager,便于审计追踪。
规避常见风险与兼容性陷阱
开发或部署过滤驱动需注意:
- 必须使用匹配目标系统的 DDK(如 Win10/Win11 对应 WDK 22H2),避免调用低版本不支持的内核接口
- 避免在完成例程中长时间阻塞,防止 IRP 超时或系统卡顿
- 区分目录与文件操作:通过 IO_STACK_LOCATION->Parameters.Create.Options 中的 FILE_DIRECTORY_FILE 标志判断,而非事后查询属性
- 不建议在生产环境自行开发完整加密驱动;优先选用经验证的商业方案或基于 MiniFilter 的成熟开源框架











