CN115033854A - 一种数据处理方法、装置、电子设备及存储介质 - Google Patents
一种数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115033854A CN115033854A CN202210672507.6A CN202210672507A CN115033854A CN 115033854 A CN115033854 A CN 115033854A CN 202210672507 A CN202210672507 A CN 202210672507A CN 115033854 A CN115033854 A CN 115033854A
- Authority
- CN
- China
- Prior art keywords
- caller
- identity
- program
- certificate
- hash value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例适用于计算机技术领域,提供了一种数据处理方法、装置、电子设备及存储介质,其中,数据处理方法应用于易滥用驱动,该方法包括:在检测到易滥用驱动被调用者程序调用时,获取调用者程序的调用者凭证;基于调用者凭证,对调用者身份进行验证,得到身份验证结果;基于身份验证结果,确定是否允许易滥用驱动继续被调用。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
易滥用驱动是指提供敏感功能接口的驱动,这类驱动容易被攻击者恶意利用,因此需要对这类驱动进行防滥用处理。相关技术通过判断驱动的调用程序是否在安全产品的安装目录中,如果是则判定调用程序为合法程序。但是驱动单独安装使用时,并不具备安全产品的自保护功能,容易被滥用。
发明内容
为了解决上述问题,本发明实施例提供了一种数据处理方法、装置、电子设备及存储介质,以至少解决相关技术驱动单独安装使用时容易被滥用的问题。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据处理方法,应用于易滥用驱动,该方法包括:
在检测到所述易滥用驱动被调用者程序调用时,获取所述调用者程序的调用者凭证;
基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果;
基于所述身份验证结果,确定是否允许所述易滥用驱动继续被调用。
上述方案中,所述调用者凭证包括:调用者程序的第一哈希值;
所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
对所述调用者程序进行哈希计算,得到第二哈希值;
若所述第一哈希值与所述第二哈希值相同,得到所述调用者身份合法的身份验证结果;
若所述第一哈希值与所述第二哈希值不相同,得到所述调用者身份不合法的身份验证结果。
上述方案中,所述调用者凭证还包括:魔术数字;所述魔术数字为自定义数字;
所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
获取所述调用者凭证中的魔术数字;
若所述调用者凭证中的魔术数字与设定值不同,得到所述调用者身份不合法的身份验证结果。
上述方案中,所述调用者凭证包括:设定的验证方式;所述对所述调用者程序进行哈希计算,得到第二哈希值,包括:
在所述设定的验证方式包括第一验证方式的情况下,对磁盘中的调用者程序进行哈希计算,得到所述第二哈希值;
在所述设定的验证方式包括第二验证方式的情况下,对所述调用者程序对应的内存镜像文件进行哈希计算,得到所述第二哈希值。
上述方案中,所述调用者凭证包括:设定的验证方式;在所述设定的验证方式包括第三验证方式的情况下,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧;
确定所述栈帧对应的模块是否在设定模块列表中;
若不在所述设定模块列表中,得到所述调用者身份不合法的身份验证结果。
上述方案中,所述确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧,包括:
确定调用栈中位于***模块所处栈帧的上层栈帧;
相应地,所述确定所述栈帧对应的模块是否在设定模块列表中,包括:
确定所述上层栈帧对应的模块是否在设定模块列表中。
上述方案中,所述调用者凭证基于非对称加密密钥对中的私钥加密得到;
相应地,在所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果的步骤之前,还包括:
基于非对称加密密钥对中的公钥解密所述调用者凭证,得到解密后的调用者凭证;
相应地,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
基于所述解密后的调用者凭证,对调用者身份进行验证,得到身份验证结果。
上述方案中,所述调用者程序为可执行主程序,并非DLL模块。
第二方面,本发明实施例提供了一种数据处理装置,该装置包括:
获取模块,用于在检测到所述易滥用驱动被调用者程序调用时,获取所述调用者程序的调用者凭证;
验证模块,用于基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果;
确定模块,用于基于所述身份验证结果,确定是否允许所述易滥用驱动继续被调用。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本发明实施例第一方面提供的数据处理方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序。所述计算机程序被处理器执行时实现如本发明实施例第一方面提供的数据处理方法的步骤。
本发明实施例在检测到易滥用驱动被调用者程序调用时,获取调用者程序的调用者凭证,基于调用者凭证,对调用者身份进行验证,得到身份验证结果。基于身份验证结果,确定是否允许易滥用驱动继续被调用。本申请将防驱动滥用应用于易滥用驱动中,使得易滥用驱动自身就有调用者凭证检测机制来防止驱动被滥用,解决了驱动单独安装使用时,驱动容易被滥用的问题。并且在驱动中验证调用者凭证,相比安全产品自保护功能,驱动更加安全,防驱动滥用效果更好。
附图说明
图1是本发明实施例提供的一种数据处理方法的实现流程示意图;
图2是本发明实施例提供的一种调用者程序的生成方法的实现流程示意图;
图3是本发明实施例提供的另一种数据处理方法的实现流程示意图;
图4是本发明实施例提供的另一种数据处理方法的实现流程示意图;
图5是本发明实施例提供的另一种数据处理方法的实现流程示意图;
图6是本发明实施例提供的一种驱动接口集成类型的示意图;
图7是本发明实施例提供的一种生成调用者凭证的实现流程图;
图8是本发明实施例提供的另一种生成调用者凭证的实现流程图;
图9是本发明实施例提供的一种数据处理装置的示意图;
图10是本发明一实施例提供的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
易滥用驱动是指提供敏感功能接口的驱动,比如:提供穿透式访问接口的驱动,以及接受应用层提供的配置数据以影响***行为的驱动。穿透式访问不通过普通***应用程序编程接口(API,ApplicationProgramming Interface)访问***功能,通常会绕过正常的***安全检查机制,具备比普通***API更强大的功能。
一些需要穿透式访问***功能的产品,通常会有相应的驱动提供穿透式访问接口供上层产品调用。这些驱动提供的功能,可能会绕过***安全检查或违反***的正常行为,例如:通过***内部未公开函数直接访问注册表从而绕过***回调机制、无视文件锁强制删除文件、禁止特定进程被结束、读写内核内存接口被滥用等。另外还有驱动接受应用层提供的配置数据,并根据配置数据影响***行为,例如接受黑/白名单阻止/允许指定进程运行。对这类易滥用驱动必须进行防滥用处理,防止对计算机安全造成危害。
驱动的滥用有两种使用场景:驱动在安全产品内滥用和驱动作为独立工具时滥用。
在安全产品内,相关技术通过判断驱动的调用程序是否在安全产品的安装目录中,如果在安全产品的安装目录中则判定调用程序为合法程序。但是安全目录中的文件容易被攻击者恶意修改,所以这种方案必须搭配自保护功能,保护产品安装目录里的文件不被恶意修改和内存注入。相关技术有一种驱动防滥用方法是只允许打开一个实例,即只能有一个使用者,而此使用者即安装此驱动的产品本身。但此类做法并不健壮,若自保护功能不够全面,则比较容易被突破。例如可通过获取***中已存在的高权限进程句柄,对安全产品进程进行注入攻击,比如可以直接调用驱动接口,甚至在被保护目录放置攻击者的可执行文件。
而且上述相关技术并不适用于驱动独立使用场景,因为驱动是可以被单独安装使用的,此时不会有上述产品自保护功能,防驱动滥用效果差,驱动容易被滥用。
针对上述相关技术的缺点,本发明实施例提供了一种数据处理方法,能够解决驱动被单独安装使用时容易被滥用的问题。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1是本发明实施例提供的一种数据处理方法的实现流程示意图,所述数据处理方法应用于易滥用驱动,所述失陷主机检测方法的执行主体为电子设备,电子设备上安装有该易滥用驱动,电子设备包括台式电脑、笔记本电脑和服务器等。其中,所述服务器可以是实体的设备,也可以是部署在云端的虚拟化设备。参考图1,数据处理方法包括:
S101,在检测到所述易滥用驱动被调用者程序调用时,获取所述调用者程序的调用者凭证。
在本申请中,将防驱动滥用集成在易滥用驱动中,这样易滥用驱动单独安装使用时,易滥用驱动可以自动实现防驱动滥用。
这里,调用者程序指能够调用易滥用驱动的程序,攻击者通过调用者程序调用易滥用驱动能够对***造成危害。调用者凭证是由调用者***到调用者程序中的一段数据,调用者凭证主要由调用者程序的哈希值组成,还可以进一步包括魔术数字、验证方式和验证方式需要的数据等内容。根据调用者凭证可以验证调用者身份的合法性,不合法的调用者可能会滥用驱动。
在一实施例中,调用者程序为可执行主程序,并非动态链接库(DLL,Dynamic LinkLibrary)模块。DLL文件即动态链接库文件,是一种可执行文件,它允许程序由很多模块组成,这些模块分别完成相对独立的功能,这些模块称为DLL模块。
由于DLL本身容易被攻击,将调用者程序部署为可执行主程序,而非DLL模块,可以防止只针对DLL模块进行身份验证,导致恶意程序通过该DLL模块实现易滥用驱动的调用。
调用者凭证通常位于调用者程序中的固定位置,例如,可以通过获取调用者程序的静态PE文件,找出其最后一节(Section),从最后一节找到调用者凭证。
S102,基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果。
调用者凭证主要由调用者程序的哈希值组成,可以获取调用者凭证中的哈希值,以及对调用者程序进行哈希计算,然后将计算出的哈希值与调用者凭证中的哈希值进行比较,如果两个哈希值相同,则身份验证通过,得到调用者身份合法的身份验证结果。如果两个哈希值不相同,则身份验证失败,得到调用者身份不合法的身份验证结果。
S103,基于所述身份验证结果,确定是否允许所述易滥用驱动继续被调用。
例如,如果身份验证结果表征调用者身份不合法,则不允许易滥用驱动继续被调用;如果身份验证结果表征调用者身份合法,则允许易滥用驱动继续被调用。
本发明实施例在检测到易滥用驱动被调用者程序调用时,获取调用者程序的调用者凭证,基于调用者凭证,对调用者身份进行验证,得到身份验证结果。基于身份验证结果,确定是否允许易滥用驱动继续被调用。本申请将防驱动滥用应用于易滥用驱动中,使得易滥用驱动自身就有调用者凭证检测机制来防止驱动被滥用,解决了驱动单独安装使用时,驱动容易被滥用的问题。并且在驱动中验证调用者凭证,相比安全产品自保护功能,驱动更加安全,防驱动滥用效果更好。
在一实施例中,所述调用者凭证基于非对称加密密钥对中的私钥加密得到;
相应地,在所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果的步骤之前,还包括:
基于非对称加密密钥对中的公钥解密所述调用者凭证,得到解密后的调用者凭证;
相应地,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
基于所述解密后的调用者凭证,对调用者身份进行验证,得到身份验证结果。
本实施例的调用者凭证是基于非对称加密密钥对中的私钥加密得到的,参考图2,图2是本发明实施例提供的一种调用者程序的生成方法的实现流程示意图,该调用者程序的生成方法包括:
S201,基于源码生成调用者程序;所述源码表征调用驱动接口的代码。
对于不同的驱动接口,需要使用不同的调用者程序进行调用。针对需要调用的驱动接口,调用者编写源码,从源码编译出调用者程序。
S202,计算所述调用者程序的第一哈希值。
使用设定的哈希算法对调用者程序的代码进行计算哈希计算,得到第一哈希值。本发明实施例不限定计算调用者程序的第一哈希值的哈希算法,具体哈希算法可以由开发人员根据实际情况进行设置。
在实际应用中,第一哈希值可以指调用者程序的PE image hash,PE image hash是数字签名中用来验证PE文件是否被有效修改的hash值,此hash只计算PE文件中能影响执行流的部分,而忽略其它部分,如果PE文件有签名,则内嵌的数字签名证书部分不作hash计算。
S203,基于非对称加密密钥对中的私钥加密所述第一哈希值,得到所述调用者凭证。
对称加密算法在加密和解密时使用的是同一个秘钥,因此容易被逆向工程解密。而非对称加密算法需要两个密钥来进行加密和解密,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。使用非对称加密算法加密调用者凭证,攻击者即使逆向工程也无法生成调用者凭证。
在加密第一哈希值生成调用者凭证的时候,还可以打包第一哈希值、魔术数字、验证方式及验证方式需要的数据,得到打包数据,对打包数据进行加密,得到调用者凭证。
S204,将所述调用者凭证***所述调用者程序中。
将调用者凭证***到调用者程序中,具体实现时,可以解析调用者程序的静态PE文件,找出其最后一节(Section),将调用者凭证附加到该节,同时更新PE文件的checksum字段。checksum字段是调用者程序的校验和,用于校验调用者程序文件的完整性。
在实际应用中,可以使用凭证生成工具来完成上述S202至S203的步骤。凭证生成工具是用来计算调用者程序的第一哈希值,根据第一哈希值生成调用者凭证,并将调用者凭证嵌入到调用者程序中的工具。
本实施例使用了非对称加密算法加密第一哈希值,可以避免被逆向工程生成非法调用者凭证。由于攻击者没有非对称加密密钥对中的私钥,即使通过逆向工程也无法伪造正确的调用者凭证。如果攻击者随意伪造一个调用者凭证,通过非对称加密密钥对中的公钥解密调用者凭证,也容易检测出是伪造的调用者凭证。而正常的调用者是通过非对称加密密钥对中的私钥加密得到调用者凭证的,通过公钥可以解密调用者凭证完成身份验证,以达到根据调用者凭证访问驱动接口的目的。
在一实施例中,所述调用者凭证包括:调用者程序的第一哈希值;
参考图3,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
S301,对所述调用者程序进行哈希计算,得到第二哈希值。
S302,若所述第一哈希值与所述第二哈希值相同,得到所述调用者身份合法的身份验证结果。
S303,若所述第一哈希值与所述第二哈希值不相同,得到所述调用者身份不合法的身份验证结果。
如果调用者没有修改调用者程序,也没有拷贝其他调用者程序的调用者凭证,则计算出的第二哈希值是与第一哈希值相同的,说明调用者程序是合法的。而如果第一哈希值与第二哈希值不相同,说明调用者修改了调用者程序,或者是拷贝了其他调用者程序的调用者凭证,判定调用者程序是不合法的。对于不合法的调用者程序,不允许调用驱动接口。
相关技术通过验证调用者程序的数字签名来判断调用者身份是否合法,但是数字签名具有以下几点缺点:1、驱动层实现签名验证较困难,目前没有官方说明的接口。2、应用层程序不强制签名,而验证数字签名则要求调用者程序必须用合法证书签名。3、签名证书是需要购买的,一般组织使用有限个证书签名产品里的应用程序,这会产生大量潜在的调用者程序,如果这些调用者程序依赖一些非***DLL且被攻击者拿来单独运行,则容易受DLL劫持攻击。4、不方便实现更严格的验证方式,例如不方便指定需要验证的调用栈帧。
本实施例并不需要使用合法证书签名调用者程序,只需要验证哈希值是否相同即可,验证方式容易实现,而且可以指定需要验证的调用栈帧。
在一实施例中,所述调用者凭证包括:设定的验证方式;所述对所述调用者程序进行哈希计算,得到第二哈希值,包括:
在所述设定的验证方式包括第一验证方式的情况下,对磁盘中的调用者程序进行哈希计算,得到所述第二哈希值;
在所述设定的验证方式包括第二验证方式的情况下,对所述调用者程序对应的内存镜像文件进行哈希计算,得到所述第二哈希值。
在生成调用者凭证时,还可以在调用者凭证中添加验证方式,根据验证方式决定如何验证调用者程序的合法性。
如果是第一验证方式,则在对调用者程序进行哈希计算时,是对磁盘中的调用者程序进行哈希计算,得到第二哈希值,磁盘中的调用者程序即静态PE文件。第一验证方式可以防止攻击者通过任意程序调用驱动接口。
如果是第二验证方式,则在对调用者程序进行哈希计算时,是对调用者程序的内存镜像文件进行哈希计算,得到第二哈希值。调用者程序在运行时,***会将调用者程序加载到内存中,从而在内存中形成调用者程序的内存镜像文件。选择第二验证方式可以防止通过修改进程镜像文件代码的方式(例如Process Hollow和inline hook)调用驱动接口。在实际应用中,如果选择第二验证方式,需要消除地址重定位带来的影响。地址重定位就是操作***将逻辑地址转变为物理地址的过程,由于调用者程序从磁盘加载到内存中,调用者程序地址发生了变化,所以需要消除地址重定位带来的影响。应注意,如果调用者程序有修改自身代码的行为,例如加壳等,则不适合此方式验证。加壳指利用特殊的算法,对可执行文件里的资源进行压缩。
在一实施例中,上述第一验证方式和第二验证方式在实施时只能选择一种,不能同时进行。
在一实施例中,所述调用者凭证还包括:魔术数字;所述魔术数字为自定义数字。参考图4,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括
S401,获取所述调用者凭证中的魔术数字。
S402,若所述调用者凭证中的魔术数字与设定值不同,得到所述调用者身份不合法的身份验证结果。
魔术数字是程式设计中直接写在代码中的一段数字,魔术数字是编程者自定义的一段数字,比如可以为固定的4字节数字,魔术数字用于验证调用者凭证是否有效。
可以预先与合法调用者约定好魔术数字,在生成调用者凭证时,将约定好的魔术数字写入调用者凭证中。在验证调用者程序时,如果调用者凭证中的魔术数字与预先约定好的魔术数字不一致,可能是攻击者伪造的魔术数字,因此得到所述调用者身份不合法的身份验证结果。
上述图3实施例和图4所示实施例可以单独实施,也可以同时实施,比如可以先验证魔术数字,在魔术数字验证通过后,再验证哈希值是否相同。
在一实施例中,所述调用者凭证包括:设定的验证方式;参考图5,在所述设定的验证方式包括第三验证方式的情况下,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
S501,确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧。
调用栈(callstack)的主要功能是保存调用的返回地址,代码运行过程中会在栈上存放函数返回地址、参数、局部变量等数据,可以通过栈上数据取得函数调用层级关系。
栈帧(stackFrame):一次函数调用包括将数据和控制从代码的一个部分传递到另外一个部分,栈帧与某个过程调用一一映射。每个函数的每次调用,都有它自己独立的一个栈帧,这个栈帧中维持着所需要的各种信息。寄存器ebp指向当前的栈帧的底部(高地址),寄存器esp指向当前的栈帧的顶部(低址地)。
调用者程序在运行时,会在调用栈留下对应的栈帧,获取调用者程序在调用栈中对应的栈帧。
S502,确定所述栈帧对应的模块是否在设定模块列表中。
在编程语言中,通常把要实现的功能分成很多模块,每一个模块称为函数,每个函数承担某一功能,在使用过程中可能会经常使用这些函数,调用函数即可实现功能。
调用者程序在访问***资源时,需要调用***API,通过***API实现访问目的,这里***API也是一种函数。
栈帧会记录被调用的模块信息,通过查看栈帧,找到被调用的模块,确定被调用的模块是否在设定模块列表中。
例如,一个栈帧的信息包括ntdll!TppWorkerThread+0x194,其中ntall就是被调用的模块。
S503,若不在所述设定模块列表中,得到所述调用者身份不合法的身份验证结果
设定模块列表中存储的是能够被合法调用的模块,若栈帧对应的模块不在设定模块列表中,则说明调用者身份不合法。
本实施例通过验证调用栈中的栈帧,只有在设定模块列表中的模块能够调用驱动接口,可以防止攻击者通过代码注入方式(比如注入shellcode或DLL模块)调用驱动接口。
在一实施例中,所述确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧,包括:
确定调用栈中位于***模块所处栈帧的上层栈帧;
相应地,所述确定所述栈帧对应的模块是否在设定模块列表中,包括:
确定所述上层栈帧对应的模块是否在设定模块列表中。
很多安全产品会hook***模块(ntdll.dll,kernel32.dll,kernelbase.dll)的API,由于hook函数对应的模块并不在设定模块列表中,这样在运行调用者程序时,在调用栈上就会出现设定模块列表之外的一层栈帧,因此调用栈可能会受API hook的影响,导致合法hook被判为非法。API hook可能来自安全产品、***兼容机制或恶意软件。
与驱动交互的API被hook后,其栈帧通常位于***模块所处栈帧的下层栈帧,例如,调用栈包括:A->kernel32/kernelbase->0x194>驱动,其中,0x194为hookAPI对应的模块,0x194位于***模块所处栈帧的下层栈帧中。
本实施例将***模块所处栈帧的上层栈帧对应的模块(即调用者程序的发起模块)添加进设定模块列表中,在验证调用栈时检查***模块所处栈帧的上层栈帧,确定上层栈帧对应的模块是否在设定模块列表中,并不对***模块所处栈帧的下层栈帧进行检查。即只检查A模块所在栈帧,不检查0x194模块所在栈帧。这相当于无视了API被hook的影响,hook函数对应的模块不在设定模块列表中也不会被判为非法,所以能够避免合法hook函数被判为非法。例如,A->kernel32/kernelbase->0x194>驱动,其中A模块位于***模块所处栈帧的上层栈帧,在验证调用栈时,只会对A模块所处栈帧进行检查,不检查0x194模块所处栈帧。如果A模块在设定模块列表中,hook函数就不会被判为非法。如果A模块不在设定模块列表中,那么hook函数会被判为非法。
参考图6,在实际应用中,调用者程序可以通过静态库(lib)方式集成驱动接口或通过动态库(dll)方式集成驱动接口。一般来说,对易滥用驱动应尽量使用静态库方式集成驱动接口,以减少攻击面。此时将静态库中的模块加入设定模块列表中即可。其中,ntdll.dll,kernel32.dll,kernelbase.dll三个***模块默认是合法的,即默认加入设定模块列表中。
例如,一个合法的调用栈如下,Caller代表调用者程序:
Kernelbase!CreateFileW+0xXX
Caller+0xXXXX1
Caller+0xXXXX 2
Caller+0xXXXX 3
Kernel32!BaseThreadInitThunk+0x14
ntdll!RtlUserThreadStart+0x21。
其中,上述栈帧对应的模块分别为kernelbase.dll、kernel32.dll和ntdll.dll,因为这3个模块都位于设定模块列表中,因此判断调用者程序是合法的。
如果调用者程序通过动态库(dll)方式集成驱动接口,则还需要指定动态库DLL名,将动态库DLL名加入设定模块列表中。
本发明实施例提供的第三验证方式可以和第一验证方式或第二验证方式共存,比如第一验证方式和第三验证方式结合使用,或第二验证方式和第三验证方式结合使用。通过结合不同的验证方式,可以有效抵御进程镜像修改、代码注入等内存攻击手段,增强防驱动滥用的效果。
参考图7,图7是本发明实施例提供的一种生成调用者凭证的实现流程图。生成调用者凭证的流程包括:
第一步,从源码编译出调用者程序。
源码表征调用驱动接口的代码。对于不同的驱动接口,需要使用不同的调用者程序进行调用。针对需要调用的驱动接口,调用者编写源码,从源码编译出调用者程序。
第二步,用私钥生成调用者凭证。
第三步,调用者凭证***调用者程序。
基于凭证生成工具生成调用者凭证,并***到调用者程序中。
凭证生成工具计算调用者程序的第一哈希值,基于非对称加密密钥对中的私钥加密第一哈希值,得到调用者凭证,将调用者凭证***到调用者程序中。
在加密第一哈希值生成调用者凭证的时候,可以打包第一哈希值、魔术数字、验证方式及验证方式需要的数据,对打包数据进行加密,得到调用者凭证。
第四步,对调用者程序进行数字签名。
在本发明实施例中,数字签名为可选项。可以不进行数字签名,如果要进行数字签名,则必须在生成调用者凭证之后进行数字签名,否则会破坏数字签名。
在实际应用中,上层应用调用驱动接口做法可以如下:
先打开驱动设备句柄,一般是调用***模块Kernel32.dll的导出函数CreateFileW/CreateFileA,在驱动中对应的是IRP_MJ_CREATE例程。然后用上一步打开的设备句柄调用驱动接口,同样是调用kernel32.dll的导出函数DeviceIoControl,在驱动中对应的是IRP_MJ_DEVICE_CONTROL例程。因此验证调用者凭证的位置可以在驱动的IRP_MJ_CREATE例程或IRP_MJ_DEVICE_CONTROL例程,大多数情况在打开句柄处验证调用者凭证即可,即IRP_MJ_CREATE例程处。
参考图8,图8是本发明应用实施例提供的一种验证调用者凭证的实现流程图。验证调用者凭证的流程包括:
第一步,从调用者程序的最后一节取出加密的凭证。
解析调用者程序的PE文件,从最后一节中取出加密的调用者凭证。
第二步,用公钥解密加密凭证。
用非对称解密密钥对中的公钥解密调用者凭证,得到其中的hash值。如果调用者凭证中还有验证方式,还可以解密出验证方式。
第三步,计算调用者程序的PE Image Hsah。
计算调用者程序的PE image hash,注意这里要根据验证方式决定是基于静态文件还是基于进程内存镜像计算PE image hash,并且计算时只计算PE文件中能影响执行流的部分,而忽略其它部分,例如PE文件有签名,则内嵌的数字签名证书部分不作hash计算。
第四步,比较计算出来的hash与凭证中的hash。
比较计算出来的hash值和调用者凭证中的hash值,若相同调用者算法则为合法;若不同调用者算法则为非法。
第五步,如有需要则继续检查调用栈。
如果计算出来的hash值和调用者凭证中的hash值相同,还可以进一步检查调用栈中的栈帧,具体可以参考上述图5所示实施例。
本实施例通过在调用者程序中嵌入调用者凭证,并且调用者凭证通过非对称加密算法进行加密,攻击者没有私钥即使通过逆向工程也无法伪造调用者凭证,从而只能通过合法程序调用驱动接口。本实施例还可以结合不同的验证方式,例如验证调用栈中的栈帧,可以有效抵御进程镜像修改、代码注入等内存攻击手段。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
参考图9,图9是本发明实施例提供的一种数据处理装置的示意图,如图9所示,该装置包括获取模块、确定模块和验证模块。
获取模块,用于在检测到所述易滥用驱动被调用者程序调用时,获取所述调用者程序的调用者凭证;
验证模块,用于基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果;
确定模块,用于基于所述身份验证结果,确定是否允许所述易滥用驱动继续被调用。
在一实施例中,所述调用者凭证包括:调用者程序的第一哈希值;
所述验证模块基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
对所述调用者程序进行哈希计算,得到第二哈希值;
若所述第一哈希值与所述第二哈希值相同,得到所述调用者身份合法的身份验证结果;
若所述第一哈希值与所述第二哈希值不相同,得到所述调用者身份不合法的身份验证结果。
在一实施例中,所述调用者凭证还包括:魔术数字;所述魔术数字为自定义数字;
所述验证模块基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
获取所述调用者凭证中的魔术数字;
若所述调用者凭证中的魔术数字与设定值不同,得到所述调用者身份不合法的身份验证结果。
在一实施例中,所述调用者凭证包括:设定的验证方式;所述验证模块对所述调用者程序进行哈希计算,得到第二哈希值,包括:
在所述设定的验证方式包括第一验证方式的情况下,对磁盘中的调用者程序进行哈希计算,得到所述第二哈希值;
在所述设定的验证方式包括第二验证方式的情况下,对所述调用者程序对应的内存镜像文件进行哈希计算,得到所述第二哈希值。
在一实施例中,所述调用者凭证包括:设定的验证方式;在所述设定的验证方式包括第三验证方式的情况下,所述验证模块基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧;
确定所述栈帧对应的模块是否在设定模块列表中;
若不在所述设定模块列表中,得到所述调用者身份不合法的身份验证结果。
在一实施例中,所述验证模块确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧,包括:
确定调用栈中位于***模块所处栈帧的上层栈帧;
相应地,所述验证模块确定所述栈帧对应的模块是否在设定模块列表中,包括:
确定所述上层栈帧对应的模块是否在设定模块列表中。
在一实施例中,所述调用者凭证基于非对称加密密钥对中的私钥加密得到;
相应地,所述装置还包括:
解密模块,用于基于非对称加密密钥对中的公钥解密所述调用者凭证,得到解密后的调用者凭证;
相应地,所述验证模块基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
基于所述解密后的调用者凭证,对调用者身份进行验证,得到身份验证结果。
在一实施例中,所述调用者程序为可执行主程序,并非DLL模块。
实际应用时,所述获取模块、确定模块和验证模块可通过电子设备中的处理器,比如中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。
需要说明的是:上述实施例提供的数据处理装置在进行信息获取时,仅以上述各模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述信息获取装置可以是镜像文件形式,该镜像文件被执行后,可以以容器或者虚拟机的形式运行,以实现本申请所述的信息获取方法。当然也不局限为镜像文件形式,只要能够实现本申请所述的信息获取方法的一些软件形式都在本申请的保护范围之内,比如还可以为云计算平台中hypervisor(虚拟机监控器)中所实现的软件模块。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,易滥用驱动设置于电子设备中,上述易滥用驱动实现的方法由电子设备的处理器实现。图10为本申请实施例电子设备的硬件组成结构示意图,如图10所示,电子设备包括:
通信接口,能够与其它设备比如网络设备等进行信息交互;
处理器,与所述通信接口连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述电子设备侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器上。
当然,实际应用时,电子设备中的各个组件通过总线***耦合在一起。可理解,总线***用于实现这些组件之间的连接通信。总线***除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线***。
在本申请中,电子设备可以是单个硬件设备,也可以是多个硬件设备组成的集群,比如云计算平台。所谓云计算平台是把多个独立的服务器物理硬件资源组织成池化资源的一种集群设备,它对外提供所需要的虚拟资源和服务。
目前的云计算平台支持几种服务模式:
SaaS(Software as a Service,软件即服务):云计算平台用户无需购买软件,而改为租用部署于云计算平台的软件,用户无需对软件进行维护,软件服务提供商会全权管理和维护软件;
PaaS(Platform as a Service,平台即服务):云计算平台用户(此时通常为软件开发商)可以在云计算平台提供的架构上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器;
IaaS(Infrastructure as a Service,基础架构即服务):云计算平台通过互联网提供了数据中心、基础架构硬件和软件资源,IaaS模式下的云计算平台可以提供服务器、操作***、磁盘存储、数据库和/或信息资源。
本申请实施例中的存储器用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,CompactDisc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,RandomAccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static RandomAccess Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static RandomAccess Memory)、动态随机存取存储器(DRAM,Dynamic RandomAccess Memory)、同步动态随机存取存储器(SDRAM,Synchronous DynamicRandomAccess Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,DoubleDataRate Synchronous Dynamic RandomAccess Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic RandomAccess Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic RandomAccess Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus RandomAccess Memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例还提供了一种云计算平台,包括用于实现易滥用驱动的数据处理软件模块,所述数据处理软件模块用于实现如本发明实施例提供的数据处理方法的步骤。
云计算平台是采用计算虚拟化、网络虚拟化、存储虚拟化技术把多个独立的服务器物理硬件资源组织成池化资源的一种业务形态,它是一种基于虚拟化技术发展基础上软件定义资源的结构,可以提供虚拟机、容器等形态的资源能力。通过消除硬件与操作***之间的固定关系,依赖网络的连通统一资源调度,然后提供所需要的虚拟资源和服务,是一种新型的IT,软件交付模式,具备灵活,弹性,分布式,多租户,按需等特点。
目前的云计算平台支持几种服务模式:
SaaS(Software as a Service,软件即服务):云计算平台用户无需购买软件,而改为租用部署于云计算平台的软件,用户无需对软件进行维护,软件服务提供商会全权管理和维护软件;
PaaS(Platform as a Service,平台即服务):云计算平台用户(此时通常为软件开发商)可以在云计算平台提供的架构上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器;
IaaS(Infrastructure as a Service,基础架构即服务):云计算平台通过互联网提供了数据中心、基础架构硬件和软件资源,IaaS模式下的云计算平台可以提供服务器、操作***、磁盘存储、数据库和/或信息资源。
上述本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的程序,结合其硬件完成前述方法的步骤。
可选地,所述处理器执行所述程序时实现本申请实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器,上述计算机程序可由电子设备的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
另外,在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,应用于易滥用驱动,所述方法包括:
在检测到所述易滥用驱动被调用者程序调用时,获取所述调用者程序的调用者凭证;
基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果;
基于所述身份验证结果,确定是否允许所述易滥用驱动继续被调用。
2.根据权利要求1所述的方法,其特征在于,所述调用者凭证包括:调用者程序的第一哈希值;
所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
对所述调用者程序进行哈希计算,得到第二哈希值;
若所述第一哈希值与所述第二哈希值相同,得到所述调用者身份合法的身份验证结果;
若所述第一哈希值与所述第二哈希值不相同,得到所述调用者身份不合法的身份验证结果。
3.根据权利要求1所述的方法,其特征在于,所述调用者凭证还包括:魔术数字;所述魔术数字为自定义数字;
所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
获取所述调用者凭证中的魔术数字;
若所述调用者凭证中的魔术数字与设定值不同,得到所述调用者身份不合法的身份验证结果。
4.根据权利要求2所述的方法,其特征在于,所述调用者凭证包括:设定的验证方式;所述对所述调用者程序进行哈希计算,得到第二哈希值,包括:
在所述设定的验证方式包括第一验证方式的情况下,对磁盘中的调用者程序进行哈希计算,得到所述第二哈希值;
在所述设定的验证方式包括第二验证方式的情况下,对所述调用者程序对应的内存镜像文件进行哈希计算,得到所述第二哈希值。
5.根据权利要求1所述的方法,其特征在于,所述调用者凭证包括:设定的验证方式;在所述设定的验证方式包括第三验证方式的情况下,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧;
确定所述栈帧对应的模块是否在设定模块列表中;
若不在所述设定模块列表中,得到所述调用者身份不合法的身份验证结果。
6.根据权利要求5所述的方法,其特征在于,所述确定在调用所述易滥用驱动之前,在调用栈中对应的栈帧,包括:
确定调用栈中位于***模块所处栈帧的上层栈帧;
相应地,所述确定所述栈帧对应的模块是否在设定模块列表中,包括:
确定所述上层栈帧对应的模块是否在设定模块列表中。
7.根据权利要求1所述的方法,其特征在于,所述调用者凭证基于非对称加密密钥对中的私钥加密得到;
相应地,在所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果的步骤之前,还包括:
基于非对称加密密钥对中的公钥解密所述调用者凭证,得到解密后的调用者凭证;
相应地,所述基于所述调用者凭证,对调用者身份进行验证,得到身份验证结果,包括:
基于所述解密后的调用者凭证,对调用者身份进行验证,得到身份验证结果。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述调用者程序为可执行主程序,并非DLL模块。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至8任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672507.6A CN115033854A (zh) | 2022-06-14 | 2022-06-14 | 一种数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672507.6A CN115033854A (zh) | 2022-06-14 | 2022-06-14 | 一种数据处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115033854A true CN115033854A (zh) | 2022-09-09 |
Family
ID=83124811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210672507.6A Pending CN115033854A (zh) | 2022-06-14 | 2022-06-14 | 一种数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033854A (zh) |
-
2022
- 2022-06-14 CN CN202210672507.6A patent/CN115033854A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8213618B2 (en) | Protecting content on client platforms | |
JP4796340B2 (ja) | 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法 | |
EP2634959B1 (en) | Method and Apparatus for Incremental Code Signing | |
US6609199B1 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US7139915B2 (en) | Method and apparatus for authenticating an open system application to a portable IC device | |
US7243230B2 (en) | Transferring application secrets in a trusted operating system environment | |
JP5992457B2 (ja) | オペレーティングシステムのコンフィグレーション値の保護 | |
US7634661B2 (en) | Manifest-based trusted agent management in a trusted operating system environment | |
US7546587B2 (en) | Run-time call stack verification | |
JP2014513348A (ja) | 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法 | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
CN113190831A (zh) | 一种基于tee的操作***应用完整性度量方法及*** | |
US12032679B2 (en) | Apparatus and method for disk attestation | |
CN114651253A (zh) | 用于策略强制实施的虚拟环境类型验证 | |
CN117610083A (zh) | 文件校验方法、装置、电子设备及计算机存储介质 | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及*** | |
CN115033854A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111611551A (zh) | 一种基于国密算法的动态链接库保护方法及其*** | |
WO2024078159A1 (zh) | 完整性度量方法及装置 | |
CN115776405A (zh) | 面向智能电网的嵌入式设备终端安全防护方法、装置及*** | |
CN116866028A (zh) | 一种安全检测方法、***、设备及存储介质 | |
CN112131612A (zh) | 一种cf卡数据防篡改方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |