内核驱动漏洞与攻击预防-MJ0011
2016-03-31 16:06
288 查看
总结:
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. 不要使用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
相关文章推荐
- gcc visibility hidden 与 static
- Office_Web_App_Server安装配置纪实
- Qt技巧:QProcess与外部程序的调用
- thinphp下拉获取更多瀑布流效果
- unity, inspector listview
- MATLAB中size函数的用法
- 51 node 1050循环数组最大子段和
- 在window中net user administrator /active:no的解决策略
- Linux系统引导过程
- 基于java mail.jar邮件发送,最详细代码和讲解
- 跟我一起写 Makefile
- Aspose.Cells 使用汇总
- 基站定位(Google API)
- Android小练习:过渡动画,引导页,判断是否第一次启动App
- 【问题】eclipse创建app时多出appcompat_v7
- YJX_Driver_016_为DDK_HelloWorld添加默认派遣例程
- Linux系统级别能够打开的文件句柄的数file-max命令
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- 格式化持续时间转换
- Android 数据操作之SQLiteDatabase