一种保护驱动程序的方法、装置及电子设备制造方法及图纸

技术编号:13510817 阅读:79 留言:0更新日期:2016-08-11 13:25
本发明专利技术的实施例公开一种保护驱动程序的方法、装置及电子设备。方法包括:在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。应用本发明专利技术,可以提升操作系统的安全防护效率。

【技术实现步骤摘要】
【专利摘要】本专利技术的实施例公开一种保护驱动程序的方法、装置及电子设备。方法包括:在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。应用本专利技术,可以提升操作系统的安全防护效率。【专利说明】一种保护驱动程序的方法、装置及电子设备
本专利技术涉及计算机网络通信安全技术,尤其涉及一种保护驱动程序的方法、装置及电子设备。
技术介绍
随着Windows操作系统内核层技术细节的逐渐公开,越来越多的木马病毒等恶意应用程序开始使用内核层驱动程序来保护自身的进程,受内核层驱动程序保护的恶意应用程序的进程,可以结束(杀死Windows操作系统中的其它进程,从而使得恶意应用程序的进程可以根据恶意应用程序提供者的意图,对用户的进程或系统进程进行恶意攻击,可能造成计算机运行不稳定,甚至可能给用户带来非常大的经济损失,例如,加载恶意应用程序对应的驱动程序,使得恶意应用程序可对操作系统进行攻击。其中,驱动程序一般指的是设备驱动(Device Driver)应用程序,是一种可以使计算机和设备通信的特殊应用程序,相当于硬件的接口,操作系统通过该接口控制硬件设备的工作,如果设备的驱动程序未能正确安装,该设备便不能正常工作。进程(Process)是计算机中的应用程序关于数据集合上的一次运行活动,是Windows操作系统进行资源分配和调度的基本单位,是Windows操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是应用程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。也就是说,应用程序是指令、数据及其组织形式的描述,进程是应用程序的实体。目前,加载驱动程序的方法是调用操作系统提供的内核NtLoadDriver函数,因而,恶意应用程序可以通过调用内核NtLoadDriver函数完成恶意驱动程序的加载,从而使得恶意应用程序可以运行并攻击操作系统。为了保护Windows操作系统不被非法攻击的方法是利用钩子(Η00Κ)技术,通过对加载驱动程序的内核NtLoadDriver函数进行钩子处理,SPHook加载驱动程序的内核NtLoadDriver函数,分析该内核NtLoadDriver函数中的预定参数,该参数用于配置待加载驱动程序的服务注册表信息,通过解析配置的服务注册表信息,可以获得文件路径信息,从而依据文件路径信息得到待加载驱动程序,判断得到的待加载驱动程序是否是需要拦截的驱动程序,如果是,则返回拒绝,从而拦截该待加载驱动程序的加载。但该保护驱动程序的方法,是通过Hook内核NtLoadDriver函数拦截成恶意驱动程序的加载,但在Windows操作系统中,通过统计分析,还存在另一隐蔽的加载驱动程序的方法,使得恶意应用程序可以通过该隐蔽的加载驱动程序的方法,实现恶意驱动程序的加载,从而对Windows操作系统进行攻击,导致Windows操作系统的安全防护效率较低,安全性不尚O
技术实现思路
有鉴于此,本专利技术实施例提供一种保护驱动程序的方法、装置及电子设备,提升操作系统的安全防护效率。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,本专利技术实施例提供一种保护驱动程序的方法,包括:在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。可选的,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。可选的,所述驱动程序加载函数为内核驱动加载函数,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:获取调用所述驱动程序加载函数时的内存地址;解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;利用所述进程句柄的内核对象获取文件路径信息。可选的,所述驱动程序加载函数为内核系统信息设置函数,所述提取调用所述驱动程序加载函数的应用层进程的文件路径信息包括:解析所述内核系统信息设置函数,获取第一参数以及第二参数;如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息。可选的,所述内核系统信息设置函数为内核NtSetSyStemInformat1n函数,所述预先设置的索引值为38。可选的,所述方法还包括:如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。可选的,所述驱动程序特征库由用户在本地进行设置,所述方法还包括:将拒绝的驱动程序信息上报至预先设置的网络服务器。第二方面,本专利技术实施例提供一种保护驱动程序的装置,包括:钩子模块、驱动程序提取模块以及操作处理模块,其中,钩子模块,用于在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;驱动程序提取模块,用于提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;操作处理模块,如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。可选的,所述驱动程序加载函数包括:内核驱动加载函数、内核系统信息设置函数、扇区创建函数以及扇区映射函数中的一种或其任意组合。可选的,所述驱动程序加载函数为内核驱动加载函数,所述驱动程序提取模块包括:内存地址获取单元、进程句柄获取单元、文件路径信息获取单元以及驱动程序获取单元,其中,内存地址获取单元,用于获取调用所述驱动程序加载函数时的内存地址;进程句柄获取单元,用于解析所述内存地址,得到调用所述驱动程序加载函数的应用层进程的进程句柄;文件路径信息获取单元,用户利用所述进程句柄的内核对象获取文件路径信息;驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。可选的,所述驱动程序加载函数为内核系统信息设置函数,所述驱动程序提取模块包括:参数解析单元、文件路径信息提取单元以及驱动程序获取单元,其中,参数解析单元,用于解析所述内核系统信息设置函数,获取第一参数以及第二参数;文件路径信息提取单元,如果第一参数中的操作系统信息的类型索引号值为预先设置的索引值,提取第二参数中包含的待加载驱动程序的文件路径信息;驱动程序获取单元,用于获取所述文件路径信息中包含的驱动程序。可选的,所述内核系统信息设置函数为内核NtSetSyStemInformat1n函数,所述预先设置的索引值为38。可选的,所述操作处理模块还用于如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序不相同,通知所述驱动程序加载函数执行所述应用层进程的驱动程序加载请求,以进行驱动程序加载操作。可选的,所述驱动程序本文档来自技高网
...
一种保护驱动程序的方法、装置及电子设备

【技术保护点】
一种保护驱动程序的方法,其特征在于,该方法包括:在预先注入到内核层中的钩子函数监测到应用层进程调用预先设置的驱动程序加载函数时,钩住所述驱动程序加载函数;提取调用所述驱动程序加载函数的应用层进程的文件路径信息,获取所述文件路径信息映射的驱动程序;如果获取的驱动程序与预先设置的驱动程序特征库中的任一驱动程序相同,拒绝所述应用层进程的驱动程序加载请求。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨峰
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1