jinyuwei 发表于 2017-6-1 13:34:44

内核驱动漏洞与攻击预防-MJ0011


总结:
1. 不要使用MmIsAddressValid函数,这个函数对于校验内存没有任何意义
2. 一定要保证在try_execpt内完成你所有对于用户态内存的任何操作
3.留心长度为0的缓存、为NULL的缓存指针和缓存对齐
4.不正确的内核函数调用引发的问题
5.给驱动提供的功能性接口必须小心
6.设备控制尽量使用BUFFERED IO,而且一定要使用SystemBuffer,如果不能用BUFFERED IO,对于UserBuffer必须非常小心地Probe
7.QA使用verifier和Fuzz工具
Verifier
自动检测(驱动卸载后,资源是否释放,内存使用与IRQL,SPINLOCK使用等)
IRQL检测(不同IRQL与分页内存的访问)
低资源模拟
POOL跟踪内存泄露
死锁检测
安全检测(内核访问用户态地址等)
ioctl fuzzer/BSOD HOOK

原文档:内核驱动漏洞与攻击预防–by MJ0011
页: [1]
查看完整版本: 内核驱动漏洞与攻击预防-MJ0011