内核钩子函数保护方法、装置、设备以及存储介质制造方法及图纸

技术编号:20546322 阅读:27 留言:0更新日期:2019-03-09 19:14
本发明专利技术提供的一种内核钩子函数保护方法、装置、设备以及存储介质,该方法包括:根据针对钩子函数的访存指令中包含的访存信息,对访存指令进行检测,确定访存指令为非正常访问指令或者正常访问指令,若访存指令是非正常访问指令,则对访存指令进行报警。本方案减少了内核钩子函数保护的系统开销,且具有保护全面和难以绕开的特点。

Kernel hook function protection methods, devices, devices and storage media

The invention provides a method, device, device and storage medium for protecting core hook function. The method includes: according to the memory access information contained in the memory access instructions for hook function, the memory access instructions are detected, and the memory access instructions are determined to be abnormal or normal. If the memory access instructions are abnormal, the memory access instructions are alarmed. \u3002 This scheme reduces the system overhead of kernel hook function protection, and has the characteristics of comprehensive protection and difficult to bypass.

【技术实现步骤摘要】
内核钩子函数保护方法、装置、设备以及存储介质
本专利技术涉及计算机安全
,尤其涉及一种内核钩子函数保护方法、装置、设备以及存储介质。
技术介绍
目前,计算机安全受到越来越多的关注。由于计算机系统是复杂的软硬件系统,漏洞的存在几乎是不可避免的,针对各种漏洞的攻击行为为计算机系统带来很大的安全隐患。其中,内核钩子函数攻击就是攻击者利用Size漏洞覆盖内核中钩子函数结构中的钩子函数指针,从而导致恶意代码被执行引发提权。全反夹式(full-nelson)攻击就是一种典型内核钩子函数攻击,通过改变堆上的内核控制依赖数据(函数钩子),劫持了内核控制流,进而调用敏感函数完成提权攻击。目前,已有的内核钩子函数保护方法大致有3种,包括:基于纯软件的HookScout、基于虚拟机技术的HookSafe和利用英特尔(Intel)管态模式访问保护机制SMAP(Supervisormodeaccessprevention)的基于硬件的内核钩子函数保护方法。但是,现有技术针对内核钩子函数的保护方法存在保护方法系统开销大、保护不完备和易于被绕开的缺点。
技术实现思路
本专利技术提供一种内核钩子函数保护方法、装置、设备以及存储介质,拟克服现有技术中保护方法系统开销大、保护不完备和易于被绕开的缺点。第一方面,本专利技术提供一种内核钩子函数的保护方法,包括:接收访存指令;其中,所述访存指令用于对钩子函数执行访存操作,且所述访存指令中包含访存信息;根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令;所述内存访问控制区域为预先配置的存储区域,且所述内存访问控制区域用于存储所述钩子函数的指针;若所述访存指令是非正常访问指令,则对所述访存指令进行报警。进一步的,所述方法还包括:若所述访存指令是正常访问指令,则获取所述内存访问控制区域中存储的所述钩子函数的指针;根据获取的所述钩子函数的指针,对所述钩子函数进行访问。在一种具体的实现方式中,所述访存指令的信息包括:所述访存指令的操作码和要访存的地址,则根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令,包括:若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为正常访问指令;若所述地址不在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为非正常访问指令;若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令不是预设指令,则所述访存指令为非正常访问指令。具体的,所述预设指令包括特定读指令和特定写指令。具体的,接收访存指令之前,所述方法还包括:配置所述内存访问控制区域;在所述内存访问控制区域内分配预设大小的空间,并将钩子函数的指针存储在所述内存访问控制区域内分配的空间中,生成空间指针;其中,所述空间指针为指向所述内存访问控制区域内为所述钩子函数分配的空间的指针;在所述钩子函数的结构体中存入空间指针。第二方面,本专利技术提供一种内核钩子函数的保护装置,包括:接收模块,用于接收访存指令;其中,所述访存指令用于对钩子函数执行访存操作,且所述访存指令中包含访存信息;判断模块,用于根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令;所述内存访问控制区域为预先配置的存储区域,且所述内存访问控制区域用于存储所述钩子函数的指针;处理模块,用于若所述访存指令是非正常访问指令,则对所述访存指令进行报警。在一种具体的实现方式中,所述处理模块还用于:若所述访存指令是正常访问指令,则获取所述内存访问控制区域中存储的所述钩子函数的指针;根据获取的所述钩子函数的指针,对所述钩子函数进行访问。具体的,所述访存指令的信息包括:所述访存指令的操作码和要访存的地址,则所述判断模块具体用于:若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为正常访问指令;若所述地址不在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为非正常访问指令;若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令不是预设指令,则所述访存指令为非正常访问指令。具体的,所述预设指令包括特定读指令和特定写指令。在一种具体的实现方式中,所述接收访存指令之前,所述处理模块还用于:配置所述内存访问控制区域;在所述内存访问控制区域内分配预设大小的空间,并将钩子函数的指针存储在所述内存访问控制区域内分配的空间中,生成空间指针;其中,所述空间指针为指向所述内存访问控制区域内为所述钩子函数分配的空间的指针;在所述钩子函数的结构体中存入空间指针。第三方面,本专利技术提供一种电子设备,包括:存储器、处理器、以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行第一方面所述的内核钩子函数的保护方法。第四方面,本专利技术提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面所述的内核钩子函数的保护方法。本专利技术实施例提供的一种内核钩子函数的保护方法、装置、电子设备和存储介质,根据对钩子函数的访存指令的信息对访存指令进行检测,确定访存指令为非正常访问指令或者正常访问指令,若访存指令是非正常访问指令,则对访存指令进行报警,实现了通过内存访问控制区域的判断,检测出对内核钩子函数的攻击,能够完整的保护内核钩子函数且难以被绕开,不管攻击者修改钩子函数指向用户空间或者内核代码都能检测出来。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。图1为本专利技术实施例提供的一种内核钩子函数的保护方法实施例一的流程示意图;图2为本专利技术实施例提供的一种内核钩子函数保护方法实施例二的流程示意图;图3为本专利技术实施例提供的一种内核钩子函数的保护方法实施例三的流程示意图;图4为本专利技术实施例提供的一种处理器中支持内存访问控制区域的硬件模块设计示意图;图5为本专利技术实施例提供的一种内存访问控制区域的访问检测模块的控制逻辑的流程图;图6为本专利技术实施例提供的一种内核钩子函数攻击检测流程;图7为本专利技术实施例提供的一种内核钩子函数的保护装置的结构示意图;图8为本专利技术实施例提供的电子设备的硬件结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。现有技术中,对内核钩子函数的保护方法主要有基于纯软件的、基于虚拟机监视器和基于硬件的三种方法。现有基于纯软件的、基于虚拟机监视器的保护方法主要采用动态收集所有钩子函数的保存位本文档来自技高网...

【技术保护点】
1.一种内核钩子函数的保护方法,其特征在于,包括:接收访存指令;其中,所述访存指令用于对钩子函数执行访存操作,且所述访存指令中包含访存信息;根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令;所述内存访问控制区域为预先配置的存储区域,且所述内存访问控制区域用于存储所述钩子函数的指针;若所述访存指令是非正常访问指令,则对所述访存指令进行报警。

【技术特征摘要】
1.一种内核钩子函数的保护方法,其特征在于,包括:接收访存指令;其中,所述访存指令用于对钩子函数执行访存操作,且所述访存指令中包含访存信息;根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令;所述内存访问控制区域为预先配置的存储区域,且所述内存访问控制区域用于存储所述钩子函数的指针;若所述访存指令是非正常访问指令,则对所述访存指令进行报警。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述访存指令是正常访问指令,则获取所述内存访问控制区域中存储的所述钩子函数的指针;根据获取的所述钩子函数的指针,对所述钩子函数进行访问。3.根据权利要求2所述的方法,其特征在于,所述访存信息包括:所述访存指令的操作码和要访存的地址,则所述根据所述访存信息和内存访问控制区域,对所述访存指令进行检测,判断所述访存指令为非正常访问指令或者正常访问指令,包括:若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为正常访问指令;若所述地址不在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令是预设指令,则所述访存指令为非正常访问指令;若所述地址在所述内存访问控制区域内,且根据所述访存指令的操作码确定所述访存指令不是预设指令,则所述访存指令为非正常访问指令。4.根据权利要求3所述的方法,其特征在于,所述预设指令包括特定读指令和特定写指令。5.根据权利要求1至4任一项所述的方法,其特征在于,所述接收访存指令之前,所述方法还包括:配置所述内存访问控制区域;在所述内存访问控制区域内分配预设大小的空间,并将钩子函数的指针存储在所述内存访问控制区域内分配的空间中,生成空间指针;其中,所述空间指针为指向所述内存访问控制区域内为所述钩子函数分配的空间的指针;在所述钩子函数的结构体中存入所述空间指针。6.一种内核钩子函数的保护装置,其特征在于,包括:接收模块,用于接收访存指令;其中,所述访存指令用于对钩子函数执行访存操作,且所述访存指令中...

【专利技术属性】
技术研发人员:章隆兵王剑肖俊华
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

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

1