编写安全的驱动程序之验证驱动的调用者
验证驱动的调用者
有很多驱动程序加载后,会在驱动程序入口函数DriverEntry中创建驱动设备,并创建符号链接,同时还会指定派遣例程。这样一来,所有用户态程序都可以通过DeviceIoControl函数,调用该驱动的派遣例程。即存在Ring3恶意调用Ring0驱动派遣例程的问题,对于这种调用Ring0程序应进行验证和过滤。
作为不够健壮的第三方驱动程序,更容易因为这种恶意调用被干扰,发生逻辑错误,甚至触发可能存在的内核漏洞。因此需要考虑驱动程序的通信对象和调用来源,在派遣例程中对此进行必要的安全验证和过滤。
验证和过滤的方法有很多,例如检查调用者进程的PEPROCESS,进程文件的MD5,等等。除此之外,还可以考虑用户态程序和驱动程序的通信加密,对于解密失败或非法通信数据的情况可以不予处理。
本文节选自《0day安全:软件漏洞分析技术(第2版)》一书。
图书详细信息:http://blog.csdn.net/broadview2006/article/details/6596921
编写安全的驱动程序之验证驱动的调用者相关推荐
- Android驱动(1)---Ubuntu中为Android系统上编写Linux内核驱动程序实现方法
Ubuntu中为Android系统上编写Linux内核驱动程序实现方法 本文主要介绍在Ubuntu 上为Android系统编写Linux内核驱动程序, 这里对编写驱动程序做了详细的说明,对研究Andr ...
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...
- 怎么编写PCIe设备驱动程序
怎么编写PCIe设备驱动程序 文章目录 怎么编写PCIe设备驱动程序 参考内核文件: 一. PCI总线设备驱动模型 二. 获得PCIe设备的资源 2.1 获得内存/IO空间 2.2 获得中断号 2.2 ...
- 如何编写Linux 下的 USB 键盘驱动
如何编写Linux 下的 USB 键盘驱动 1. 指定 USB 键盘驱动所需的头文件: #include <linux/kernel.h>/*内核头文件,含有内核一些常用函数的原型定 ...
- 编写USB鼠标驱动程序
编写USB鼠标驱动程序 文章目录 编写USB鼠标驱动程序 参考资料: 1. 目标 2. 编程 2.1 驱动框架 2.2 实现usb_driver 2.2.1 id_table 2.2.2 probe函 ...
- html编写程序常用的,html编写简洁页面表单验证程序.doc
html编写简洁页面表单验证程序.doc html编写简洁页面表单验证程序 "-//W3C//DTD XHTML 1.0 Transitional//EN" "1/DTD ...
- java编写邮箱地址、邮箱验证
一.java编写邮箱地址.邮箱验证 例如: 编写一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因 温馨提示:邮箱地址不合法的因素: (1)邮 ...
- tl-wn821n linux驱动程序,tl wn821n驱动下载
适用于TL-WN821N V4.0版本网卡的驱动程序,本驱动适用于TL-WN821N V1.0和v2.0无线网卡,增加了PSP XLink功能. 支持32位windows2k/xp/win7,也支持6 ...
- 编写最简单的字符设备驱动
编写最简单的字符设备驱动 1 编写驱动代码 2 编写makefile 3 编译和加载驱动 4 编写应用程序测试驱动 参考文章: linux驱动开发第1讲:带你编写一个最简单的字符设备驱动 linux驱 ...
- Linux 驱动程序之字符驱动
Linux 驱动程序之字符驱动 系统调用.内核.驱动程序的关系 主要驱动类型: -> 字符设备 ( c) -> 块设备 (b) -> 网络设备 (ifconfig) 字符设备和块设备 ...
最新文章
- Apache搭建多个站点方法详解
- error: C3861: “pcap_open”: 找不到标识符
- echarts x和数据对应_echarts 折线图动态x轴及数据
- Oracle查看死锁 .
- 报错:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
- mediastream2使用指南(转载)
- java清理语句,java – 如何在不使用准备语句的情况下对SQL进行清理
- UI组件-UITabbarController
- 麒麟810处理器_何刚口中第二颗7nm处理器麒麟810曝光:将搭载自研NPU
- 苹果官宣!iOS 16正式定档了 刘海屏MacBook Air或亮相
- php自带解压缩,PHP自带ZIP压缩、解压缩类ZipArchiv使用指南_PHP教程
- vc 6.0添加c文件 fatal error C1010解决办法
- 关于keystore 文件生成PK8+PEM文件
- 目标检测之FPN网络详解
- 大数据使用的5种主要数据挖掘技术
- 机器学习之SMOTE算法
- 安卓Android问卷调查系统app
- TOMCAT假死分析
- the OCD JTAG adapter was detected ,but there is...
- 跟着小哈一起读AHT20温湿度传感器驱动源码