ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 验证驱动的调用者

验证驱动的调用者

原创 Linux操作系统 作者:broadviewbj 时间:2011-07-11 19:21:50 0 删除 编辑

验证驱动的调用者

有很多驱动程序加载后,会在驱动程序入口函数DriverEntry中创建驱动设备,并创建符号链接,同时还会指定派遣例程。这样一来,所有用户态程序都可以通过DeviceIoControl函数,调用该驱动的派遣例程。即存在Ring3恶意调用Ring0驱动派遣例程的问题,对于这种调用Ring0程序应进行验证和过滤。

作为不够健壮的第三方驱动程序,更容易因为这种恶意调用被干扰,发生逻辑错误,甚至触发可能存在的内核漏洞。因此需要考虑驱动程序的通信对象和调用来源,在派遣例程中对此进行必要的安全验证和过滤。

验证和过滤的方法有很多,例如检查调用者进程的PEPROCESS,进程文件的MD5,等等。除此之外,还可以考虑用户态程序和驱动程序的通信加密,对于解密失败或非法通信数据的情况可以不予处理。

 

 

本文节选自《0day安全:软件漏洞分析技术(第2版)》一书。

图书详细信息:http://space.itpub.net/?uid-13164110-action-viewspace-itemid-701890

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13164110/viewspace-701892/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-22

  • 博文量
    1030
  • 访问量
    1617724