zcc1414

博客园 首页 联系 订阅 管理

一个内核漏洞的学习过程:  漏洞重现,漏洞分析,漏洞利用,漏洞总结

漏洞重现: 环境搭建,POC编译

漏洞分析:源码分析,反汇编分析,POC分析,补丁对比,内核调试跟踪,蓝屏分析

漏洞利用:特权提升,远程溢出,本地溢出,远程DOS,本地DOS

漏洞总结:根本原因,修补方法


编写安全驱动程序:

检查输入输出: 

KPROCESSOR_MODE PreviousMode = KeGetPreviousMode()

if(PreviousMode != KernelMode)

{

ProbeForWrite(Buffer,length,1);

}

验证驱动调用者::

检查调用者进程EPROCESS,进程文件MD5,用户态程序和驱动程序的通信加密,对于解密失败或非法通信数据的情况不予处理


白名单机制的挑战

只要白名单中的驱动存在漏洞,利用漏洞进行提权等操作,同样可以实现需要的功能

解决方法是对白名单设立 “准入制度” ,定期审计,发现该驱动的漏洞或外部公布的漏洞,需要第一时间通知用户,提供补丁升级服务






















posted on 2014-05-05 21:52  zcc1414  阅读(171)  评论(0编辑  收藏  举报