掌桥专利:专业的专利平台
掌桥专利
首页

一种文件完整性检测方法、装置、设备及存储介质

文献发布时间:2024-04-18 19:58:30


一种文件完整性检测方法、装置、设备及存储介质

技术领域

本申请涉及网络安全技术领域,更具体地说,涉及一种文件完整性检测方法、装置、设备及存储介质。

背景技术

现有技术中,终端的应用程序的配置文件或者本地存储的文档文件等文件数据存储在终端的可读存储介质上,存储安全性较低,文件数据比较容易被黑客或病毒攻击,导致文件数据不完整,影响终端正常调用应用程序或文档文件。

通常在终端调用应用程序或功能时,需要对所述应用程序或功能对应的所有文件数据进行检查,以及时修复文件数据,但是目前对文件数据的检查仍存在检查不全面的问题,影响后续相关应用程序或功能的使用。

发明内容

有鉴于此,本申请提供了一种文件完整性检测方法、装置、设备及存储介质,用于解决现有文件检查不完整、不准确的问题。

为了实现上述目的,现提出的方案如下:

一种文件完整性检测方法,应用于终端,包括:

响应于接收到目标对象对所述终端的启动操作,获取所述终端在当前时刻的本地文件数据和目标对比文件数据,其中,所述目标对比文件数据为所述终端在上一次关闭所述终端时存储的本地文件数据,所述目标对比文件数据中至少包括由所述目标对比文件数据的目标文件列表转换的第一对比字符串和由所述目标对比文件数据的目标文件内容列表转换的第二对比字符串;

从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表;

将所述待检查文件列表转换成预设格式的第一待检查字符串,并对比所述第一待检查字符串与所述第一对比字符串是否相同;

如果所述第一待检查字符串与所述第一对比字符串相同,从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,以及与每一个所述目标类型文件对应的文件内容信息,生成待检查文件内容列表;

将所述待检查文件内容列表转换成所述预设格式的第二待检查字符串,并对比所述第二待检查字符串与所述第二对比字符串是否相同,确定所述本地文件数据和所述目标对比文件数据是否存在差异。

可选的,还包括:

如果所述本地文件数据与所述目标对比文件数据不存在差异,响应所述启动操作,启动所述终端;

如果所述本地文件数据与所述目标对比文件数据存在差异或所述第一待检查字符串与所述第一对比字符串不相同,获取所述本地文件数据中与所述目标对比文件数据存在差异的文件对应的文件修复包,基于所述文件修复包对所述终端进行修复,直至所述本地文件数据与所述目标对比文件数据不存在差异或所述第一待检查字符串与所述第一对比字符串相同。

可选的,所述获取所述本地文件数据中与所述目标对比文件数据存在差异的文件对应的文件修复包,基于所述文件修复包对所述终端进行修复,直至所述本地文件数据与所述目标对比文件数据相比不存在差异,包括:

基于所述第一待检查字符串与所述第一对比字符串,和/或所述第二待检查字符串与所述第二对比字符串的对比结果,确定存在差异的目标修复列表,所述目标修复列表至少包括所述待检查文件列表和所述待检查文件内容列表中的一个;

基于所述目标修复列表,从所述目标对比文件数据中确定目标对比列表,所述目标对比列表为所述目标对比文件数据的目标文件列表或目标文件内容列表;

对比所述目标对比列表和所述目标修复列表中的每一个文件对应的所述文件名称、所述调用路径或所述文件内容信息是否相同,确定存在差异的文件;

获取所述存在差异的文件的文件修复包;

基于所述文件修复包对所述存在差异的文件进行修复,得到修复后的与所述终端对应的本地文件数据;

基于所述修复后的与所述终端对应的本地文件数据,执行所述从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表及之后的步骤,直至所述修复后的与所述终端对应的本地文件数据与所述目标对比文件数据不存在差异。

可选的,所述从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表,包括:

获取所述本地文件数据中属于预设文件包类型的目标文件包的时间标识;

判断所述时间标识对应的时间是否晚于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间;

如果不低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,从所述目标文件包中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表;

如果低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,获取与所述目标文件包对应的最新时间标识的更新文件包,并基于所述更新文件包对所述目标文件包进行更新处理,得到更新后的目标文件包,使得所述目标文件包的时间标识为最新时间标识,从所述更新后的目标文件包中提取所述预设文件目录中每一个文件的所述文件名称和所述调用路径,生成所述待检查文件列表。

可选的,所述从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表,包括:

从所述本地文件数据中读取预设文件目录以及所述预设文件目录的子目录下的每一个文件的文件类型、文件名称,并记录每一个所述文件的调用路径;

将所述文件类型属于预设检查文件类型的文件确定为待检查文件;

基于预设排序规则,对所有的所述待检查文件的所述文件名称进行排序,得到所述待检查文件列表,所述待检查文件列表包含与每一个所述待检查文件对应的所述调用路径。

可选的,所述从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,以及与每一个所述目标类型文件对应的文件内容信息,生成待检查文件内容列表,包括:

从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,得到内容检查文件列表;

读取所述内容检查文件列表中每一个所述目标类型文件对应的文件内容信息;

基于所述文件内容信息与所述目标类型文件的对应关系,生成所述待检查文件内容列表。

可选的,所述将所述待检查文件列表转换成预设格式的第一待检查字符串,包括:

对所述待检查文件列表进行序列化,得到与所述待检查文件列表对应的字符串;

基于散列算法,将所述待检查文件列表对应的字符串转换成所述第一待检查字符串。

一种文件完整性检测装置,应用与终端,包括:

文件获取单元,用于响应于接收到目标对象对所述终端的启动操作,获取所述终端在当前时刻的本地文件数据和目标对比文件数据,其中,所述目标对比文件数据为所述终端在上一次关闭所述终端时存储的本地文件数据,所述目标对比文件数据中至少包括由所述目标对比文件数据的目标文件列表转换的第一对比字符串和由所述目标对比文件数据的目标文件内容列表转换的第二对比字符串;

文件列表获取单元,用于从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表;

第一对比单元,用于将所述待检查文件列表转换成预设格式的第一待检查字符串,并对比所述第一待检查字符串与所述第一对比字符串是否相同;

文件内容列表获取单元,用于如果所述第一待检查字符串与所述第一对比字符串相同,从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,以及与每一个所述目标类型文件对应的文件内容信息,生成待检查文件内容列表;

第二对比单元,用于将所述待检查文件内容列表转换成所述预设格式的第二待检查字符串,并对比所述第二待检查字符串与所述第二对比字符串是否相同,确定所述本地文件数据和所述目标对比文件数据是否存在差异。

一种文件完整性检测设备,包括存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现任一项所述文件完整性检测方法的各个步骤。

一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现任一项所述文件完整性检测方法的各个步骤。

本申请实施例选择以上一次关闭终端时存储的本地文件数据作为文件检查的对比标准,对待检查文件列表和待检查文件内容列表进行检查。其中,所述待检查文件列表统计了每一个文件的文件名称和调用路径,所述待检查文件内容列表中包含预设类型文件的文件内容信息,通过与目标对比文件数据对比可以检查出当前文件数据的文件名称、调用路径是否被篡改,并且更深层次地确定当前文件内容是否存在已被篡改或缺失的情况。

进一步地,将上述列表转换成相对较短的字符串进行对比,只要字符串中字符出现不同,则证明本地文件数据与目标对比文件数据存在差异,可以避免由于列表中文件内容繁杂,而导致的列表顺序错位、对比不准确的问题。

基于此,本申请能够从文件数量、文件名称、文件路径、文件内容多个方面对终端的文件数据进行检查,并且简化文件对比的过程,综合提升文件检查的全面性和准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的实现文件完整性检测方法的一种流程示意图;

图2为本申请实施例提供的文件完整性检测装置的一种结构示意图;

图3为本申请实施例提供的文件完整性检测设备的一种结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,随着社会经济的发展,黑客技术水平也随之提升,金融、个人信息等信息安全也愈发受到威胁,而用于处理金融业务、存储个人信息的终端是被黑客供给的重要目标之一。攻击端或者攻击病毒可能以删除终端文件、修改终端配置文件等形式,影响终端的业务进行,从而达到盗取终端信息,威胁终端的数据安全的目的。

并且对于使用终端的用户来说,终端接收被删除文件或修改配置文件等对终端文件的操作,均会影响终端调用相应应用程序或执行应用指令的过程。而目前对于终端文件是否被删除、修改、增加等外部操作的检查,通常是在终端选择调用目标应用程序时,才会对所述目标应用程序对应的配置文件进行检查,如存在缺失、篡改的痕迹,再进行更新,此方式会影响终端业务的及时处理,耗费终端用户大量的等待时间。

因此,从信息安全以及文件应用的两方面考虑,对文件的完整性检查是非常必要的。本申请实施例提出了一种应用于终端的文件完整性检测方法,实现在启动终端之前,从文件数量、文件名称、文件路径以及文件内容等多方面对终端的文件进行检查,提升对终端文件检查的完整性和准确性。并且,本申请实施例在开启终端前对文件进行检查,可以避免终端调用应用程序时,再检查文件,减少终端用户等待检查的时间,不影响应用程序的及时调用。另外,本申请还可以在检查出本地文件数据存在被删除或篡改等情况时,及时对本地文件数据进行修正,不影响终端开启后,目标对象对终端的使用。

参照图1,为本申请实施例提供的实现文件完整性检测方法的一种流程示意图,终端对文件进行完整性检查的过程可以包括:

步骤S110,响应于接收到目标对象对终端的启动操作,获取所述终端在当前时刻的本地文件数据和目标对比文件数据。

所述终端可以以电脑、移动电话、服务器等作为终端,并对终端所存储的本地文件数据进行检测,保证终端信息的安全性。

通常对于安全性较高的终端,在目标对象确定启动终端或者启动终端的特定系统时,会弹出需要目标对象确定启动的链接或功能键等标识,待目标对象基于所述标识确认后,才会进入启动流程,该方式也是提升终端系统安全性的方法之一。而对于普通终端来说,本方式可以响应于接收到目标对象对硬件启动按键的操作,开启对终端本地文件数据的检查。

其中,所述目标对比文件数据为所述终端在上一次关闭所述终端时存储的本地文件数据,所述目标对比文件数据中至少包括由所述目标对比文件的目标文件列表转换的第一对比字符串和有所述目标对比文件数据的目标文件内容列表转换的第二对比字符串。

在本申请实施例中,在每一次完成对本地文件数据的检查后,根据检查结果对本地文件数据进行更新或修复,使得终端完成启动后,本地文件数据中相应的文件符合最新应用和检查的标准。

因此,在每一次关闭终端时存储的本地文件数据均满足当前终端的完整性检查标准,以上一次关闭终端时存储的本地文件数据作为完整性检测对比标准的目标对比文件数据,以此为参照量,由于所述目标对比文件实际为终端完整的本地文件数据,在于本地文件数据进行对比检测时,使得对本地文件数据的检测标准更具象化,提升本申请实施例对文件检测的准确性。

步骤S120,从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表。

在本申请实施例中,可以通过遍历本地文件数据,统计本地文件数据中每一个文件的文件名称、文件属性,同时记录每一个文件的存储路径或者调用路径。但是对本地文件数据的检测并不一定是检测所有的文件,可能存在一些文件的数据是实时变化的,例如管理终端启动的文件,每一次终端启动都会改变,但并不会影响终端程序或者应用功能的调用。

因此本申请实施例可以预先设定需要接收检测的文件属性或类型,如配置文件、脚本文件等,还可以通过限定目标检测文件目录的方式,确定待检测的文件,生成待检查文件列表,具体生成待检查文件列表的过程可以包括:

从所述本地文件数据中读取预设文件目录以及所述预设文件目录的子目录下的每一个文件的文件类型、文件名称,并记录每一个所述文件的调用路径;将所述文件类型属于预设检查文件类型的文件确定为待检查文件;基于预设排序规则,对所有的所述待检查文件的所述文件名称进行排序,得到所述待检查文件列表,所述待检查文件列表包含与每一个所述待检查文件对应的所述调用路径。

其中,可以设定多个所述预设文件目录,遍历预设文件目录下的所有子目录,或者在所述预设文件目录下设定目标检查子目录。获取预设文件目录下的子目录中每一个文件的文件名称和文件类型(或文件属性),并记录对应的调用路径,所述调用路径至少应该包括该文件对应的预设文件目录以及子目录。

在本申请实施例中,可以按照每一个文件的文件名称的首字母进行排序,得到待检查文件列表。并将每一个文件对应的文件属性、调用路径对应匹配到文件在所述待检查文件列表中的位置,保证文件名称、调用路径、文件属性之间正确的对应关系,以保证在进行对比时出现错位对比的情况。

所述待检查文件列表同时可以实现统计文件数量的效果,在与目标对比文件数据进行对比时,可以先对比文件数量,如果文件数量不对应,再进行列表内容对比,确定缺失的是哪个文件。

另外,在本申请实施例中,在获取待检查文件列表时,可以同时对终端的文件版本进行检查并更新,避免出现在调用终端的应用程序时,应用程序对应的文件完整性并无问题,但存在功能更新或bug修复等情况,影响终端正常使用的情况。

本申请实施例对终端文件版本的检查并更新的过程可以包括:获取所述本地文件数据中属于预设文件包类型的目标文件包的时间标识;判断所述时间标识对应的时间是否晚于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间。

如果不低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,从所述目标文件包中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表。

如果低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,获取与所述目标文件包对应的最新时间标识的更新文件包,并基于所述更新文件包对所述目标文件包进行更新处理,得到更新后的目标文件包,使得所述目标文件包的时间标识为最新时间标识,从所述更新后的目标文件包中提取所述预设文件目录中每一个文件的所述文件名称和所述调用路径,生成所述待检查文件列表。

在本申请实施例中,所述预设文件包类型可以为全量包,所述全量包通常为应用程序系统进行升级或下载的增量包或补丁包,所述全量包会存在对应的时间标识,用于表征终端上一次使用全量包进行更新的时间。

可以将所述时间标识对应的时间与目标对比文件数据中全量包的时间标识对应的时间进行对比,也可以直接从服务端获取所述全量包对应的应用程序的更新时间标识并进行对比,当对比结果为所述时间标识对应的时间晚于所述目标对比文件数据时间标识对应的时间或者所述更新时间标识对应的时间,证明当前终端需要更新全量包。

进一步地从服务端获取与所述终端的全量包对应的最新时间标识的全量包,并基于所述最新时间标识的全量包对终端进行合并、安装等操作,完成对终端的更新。更新后的终端的本地文件数据为最新版本的文件,进一步执行后续对文件完整性的检查。

步骤S130,将所述待检查文件列表转换成预设格式的第一待检查字符串,并对比所述第一待检查字符串与所述第一对比字符串是否相同。

如果对比结果为所述第一待检查字符串与第一对比字符串相同,则执行步骤S140及之后步骤。如果对比结果为所述第一待检查字符串与第一对比字符串不相同,则可以对所述本地文件数据进行修正。

可以理解的是,终端中存在大量的文件数据,如果根据待检查文件列表中文件的文件名称、文件属性、调用路径等文件数据,与目标对比文件中的目标文件列表中的文件数据进行一一对比,会耗费大量的时间在对文件的逐个对比上,并且如果存在文件缺失,则必定会存在列表文件排序错位的问题,会导致进行对比的两个文件不属于同一文件,导致后续文件相应错位,即使完成列表中文件的对比,得到的文件对比结果与实际文件对比结果存在较大差异,反而会耗费大量的时间在比较错位文件上。

为解决上述问题,本申请实施例将所述待检查文件转换成相较于待检查文件列表内容或字符较少的第一待检查字符串,以此第一待检查字符串进行对比更加快速。

将所述待检查文件列表转换成第一待检查字符串的过程可以包括:对所述待检查文件列表进行序列化,得到与所述待检查文件列表对应的字符串;基于散列算法,将所述待检查文件列表对应的字符串转换成所述第一待检查字符串。

首先将所述待检查文件列表以及列表为文件相应数据,如文件属性、文件名称、调用路径,进行序列化,得到所述待检查文件序列化后的字符串。进一步地将所述待检查文件序列化后的字符串基于散列算法,转换成哈希值(或hash值)作为第一待检查字符串。所述目标对比文件数据中目标文件列表转换得到的第一对比字符串与所述第一待检查字符串属于同一类型数据,所述目标文件列表等同于所述待检查文件列表。

基于所述第一对比字符串和所述第一待检查字符串进行对比,确定所述待检查列表的文件和所述目标对比文件列表的文件的对比结果,是否存在差异。根据hash值的属性,只有所述第一对比字符串和所述第一待检查字符串完全相同时,才可证明所述待检查列表的文件和所述目标对比文件列表的文件完全相同,否则证明所述待检查列表的文件存在缺失或错误,则需要对待检查列表的文件与目标对比文件列表中的文件逐一对比,确定缺失或是出错的是哪一个文件,并对其进行修正。

步骤S140,如果所述第一待检查字符串与所述第一对比字符串相同,从所述本地文件数据中提取属于预设文件类型的所有目标类型文件以及对应的文件内容信息,生成待检查文件内容列表。

步骤S130确定本地文件数据中文件版本(或时间标识)、文件数量、文件名称、调用路径均无问题后,进一步对文件内容进行检查,避免出现文件名称、属性、路径均未被篡改,但是文件内容被篡改,在终端启动后依旧无法调用对应文件。针对上述问题,本申请实施例可以通过对文件内容的检查,避免或减少上述情况的发生。

在本申请实施例中,与步骤S120相似,可以获取所有文件的文件内容进行检查,也可以预先设定需要进行检查的文件类型或文件名称等,对部分文件进行检查。具体地,生成待检查文件内容列表的过程可以包括:

从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,得到内容检查文件列表;读取所述内容检查文件列表中每一个所述目标类型文件对应的文件内容信息;基于所述文件内容信息与所述目标类型文件的对应关系,生成所述待检查文件内容列表。

假设本申请实施例设定的预设文件类型为配置文件的文件作为目标类型文件进行检查,则需要从本地文件数据中获取类型为配置文件的文件,具体确定文件类型可以根据文件后缀确定,如将文件后缀为xml和config的文件确定为配置文件。将确定的所有配置文件作为目标类型文件,并根据每一个目标类型文件的文件名称首字母进行排序,以便在对比文件时可以有序对比。

进一步读取与每一个目标类型文件对应的文件内容信息,生成待见检查文件内容列表,使得所述待检查文件内容列表中包括以目标类型文件为单元的文件名称以及文件内容信息。

又或者在步骤S120生成待检查文件列表时,可以预先根据文件的文件类型或文件属性,在所述待检查文件列表中生成以文件类型划分的子列表。基于此在步骤S140时,可以直接从待检查文件列表中获取属于预设文件类型的子列表,而所述子列表中的每一个文件则为步骤S140中的目标类型文件,并且根据所述子列表中每一文件对应的文件路径,读取与每一个文件对应的文件内容信息。基于与每一个文件对应的文件内容信息以及所述子列表,生成待检查文件内容列表。

步骤S150,将所述待检查文件内容列表转换成所述预设格式的第二待检查字符串,并对比所述第二待检查字符串与第二对比字符串是否相同。

步骤S160,确定所述本地文件数据和所述目标对比文件数据是否存在差异。

本申请实施例中,可以将待检查文件内容列表中的目标类型文件对应的文件名称、调用路径、文件内容信息组成字典后,将所述字典序列化成字符串,对其字符串基于散列算法转换成hash值,作为第二待检查字符串。具体地,转换待检查文件内容列表为第二待检查字符串的过程与步骤S120限定的,转换待检查文件列表为第一待检查字符串的过程相同,在此不再赘述。

与第一对比字符串相似,所述第二对比字符串为目标对比文件数据中目标对比文件内容列表转换序列化后转换得到的hash值,将所述第二待检查字符串与第二对比字符串进行对比,可以确定所述待检查文件内容列表与所述目标文件内容列表是否完全相同,从而判断所述本地文件数据与所述目标对比文件数据之间是否存在差异。

不同的判断结果,终端对应的后续处理步骤也有所不同,具体可以包括:如果所述本地文件数据与所述目标对比文件数据不存在差异,响应所述启动操作,启动所述终端;如果所述本地文件数据与所述目标对比文件数据存在差异或所述第一待检查字符串与所述第一对比字符串不相同,获取所述本地文件数据中与所述目标对比文件数据存在差异的文件对应的文件修复包,基于所述文件修复包对所述终端进行修复,直至所述本地文件数据与所述目标对比文件数据不存在差异或所述第一待检查字符串与所述第一对比字符串相同。

如果完全相同,结合以上所有步骤,可以确定所述本地文件数据与所述目标对比文件数据,在文件数量、文件名称、调用路径、文件内容多个方面的检查结果为完全相同,所述本地文件数据并未被篡改,可以正常启动运行。

如果在步骤S130中确定所述第一待检查字符串与所述第一对比字符串不相同,或在当前步骤S140确定所述第二待检查字符串与第二对比字符串不相同,所述本地文件数据与所述目标对比文件数据存在差异,则需要对本地文件数据与目标对比文件数据之间存在差异的文件进一步修正,所述差异可以包括缺失、名称篡改、路径变换、内容篡改等情况。修正前,首先需要确定所述目标对比文件缺失的文件或者篡改内容的文件,基于此进行修正。

具体地,对所述本地文件数据进行修正的过程可以包括:基于所述第一待检查字符串与所述第一对比字符串,和/或所述第二待检查字符串与所述第二对比字符串的对比结果,确定存在差异的目标修复列表,所述目标修复列表至少包括所述待检查文件列表和所述待检查文件内容列表中的一个;基于所述目标修复列表,从所述目标对比文件数据中确定目标对比列表,所述目标对比列表为所述目标对比文件数据的目标文件列表或目标文件内容列表。

对比所述目标对比列表和所述目标修复列表中的每一个文件对应的所述文件名称、所述调用路径或所述文件内容信息是否相同,确定存在差异的文件;获取所述存在差异的文件的文件修复包;基于所述文件修复包对所述存在差异的文件进行修复,得到修复后的与所述终端对应的本地文件数据;基于所述修复后的与所述终端对应的本地文件数据,执行所述从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表及之后的步骤,直至所述修复后的与所述终端对应的本地文件数据与所述目标对比文件数据不存在差异。

当在步骤S130时就确定所述第一待检查字符串与所述第一对比字符串不相同,则可以确定非文件内容信息存在被篡改、删除等情况,导致待检查文件列表与目标对比文件列表不同。则可以在步骤S130确定对比结果为不相同后,就对所述本地文件数据执行修正的步骤。

当在步骤S150确定所述第二待检查字符串与所述第二对比字符串不相同,则证明所述本地文件数据不存在文件缺失的情况,但是存在文件内容被篡改的情况。因此对本地文件数据进行修正的步骤可以在步骤S130或S150对比后执行,但是由于字符串即hash值的特殊性,无法确定进行对比的两个列表之间的不同点,因此可以调用与所述第一待检查字符串或所述第二待检查字符串对应的待检查文件列表或待检查文件内容列表,进一步确定不同点。又或者可以对所述第一待检查字符串或所述第二待检查字符串对应的序列化的字符串,对所述字符串进行反序列处理,得到目标修复列表。

如果在步骤S130确定所述第一待检查字符串与所述第一对比字符串不同,则确定所述待检查文件列表为目标修复列表;如果在步骤S150确定所述第二待检查字符串与所述第二对比字符串不同,则确定所述待检查文件内容列表为目标修复列表。进一步地,根据所述目标修复列表确定进行对比的目标对比列表,所述目标对比列表为目标对比文件数据中的目标文件列表或目标文件内容列表。

将所述目标修复列表和目标对比列表按照排列顺序,逐一对比在同一位置的文件的文件名称、调用路径或者文件内容信息是否相同,对存在不同的文件进行记录,确定存在差异的文件。

在本申请实施例中,可以从服务端或者资源站点中心下载所述存在差异的文件,得到文件修复包,所述文件修复包可以包括与所述存在差异的文件对应的完整文件等,将所述文件修复包可以为增量包的形式,基于此,终端可以与所述增量包对终端的本地文件数据进行修复。

为避免修复后的本地文件数据仍存在差异,可以继续对修复后的本地文件数据执行以上文件完整性检测步骤,直至得到的检查结果为所述本地文件数据与目标对比文件数据不存在差异,结束对本地文件数据的检查,正式启动终端,供用户使用。

可以理解的是,启动后终端的本地文件数据为最新版本号(或时间标识)的文件数据,并且文件的数量、名称、调用路径、文件内容信息等均是完整无错的。则如果在本次完成启动后,接收到关闭终端的操作,需要对当前终端的本地文件数据进行存储,作为下一次对终端启动时进行文件完整性检测的目标对比文件数据,作为检测标准。而下一次终端启动时,正常情况下,所述目标对比文件数据已经是最新版本的文件数据,如果本地文件数据与所述目标对比文件数据存在差异,则可证明在上一次关闭终端到本次启动终端的过程中,终端被恶意访问并进行了恶意篡改,具有一定的安全隐患。

综上所述,本申请实施例选择以上一次关闭时存储的本地文件数据作为文件检查的对比标准,对待检查文件列表和待检查文件内容列表进行检查,可以初步对上述安全隐患进行识别。

其中,所述待检查文件列表统计了每一个文件的文件名称和调用路径,通过与目标对比文件数据对比可以检查出当前文件数据的文件名称、调用路径是否被篡改,或者是否文件数量存在缺失。所述待检查文件内容列表中包含预设类型文件的文件内容信息,通过与目标对比文件数据进行对比,可以更深层次地确定当前文件内容是否存在已被篡改或缺失的情况,避免出现文件名称无改变但文件内容已被篡改的情况。

进一步地,由于待检查文件列表和待检查文件内容列表中文件相关信息复杂且内容较多,如果逐一进行对比容易出现列表顺序错位、对比混乱、对比不准确的问题,因此本申请实施例将上述列表转换成相对较短的字符串进行对比,只要字符串中字符出现不同,则证明本地文件数据与目标对比文件数据存在差异。

基于此,本申请能够从文件数量、文件名称、文件路径、文件内容多个方面对终端的文件数据进行检查,并且简化文件对比的过程,综合提升文件检查的全面性和准确性。

目前计算机和互联网以普及应用到各个行业领域,各个行业领域的计算机终端都面临着文件信息安全性的问题。

因此本发明提供的文件完整性检测方法可用于金融领域或其他领域,例如,可用于金融领域中的客户身份信息管理端、客户收支管理端的应用场景。其他领域为除金融领域之外的任意领域,例如,软件开发领域。上述仅为示例,并不对本发明提供的文件完整性检测方法的应用领域进行限定。

假设将本申请实施例的文件完整性检测方法应用于银行柜台的电脑端,电脑端存储有大量银行客户的个人身份信息、存款信息等重要文件,以及实现柜员业务处理的文件数据,需要保证电脑端文件的完整性,避免出现客户信息泄露、柜台业务处理失败的情况。

由于每次柜台的柜员在营业或者轮岗时,需要重新启动电脑,并且每次启动电脑时可以首先弹出柜员密码输入或者确定启动的链接,避免出现直接从电脑端恶意篡改文件的情况发生。

进一步地,在确认启动后,从服务端获取上一次关闭电脑端时存储的目标对比文件,所述目标对比文件不仅可以作为对比标准,也可以在电脑端被恶意攻击崩溃后作为备份文件,避免文件彻底丢失。

同时,获取电脑端的本地文件数据,从本地文件数据中提取待检查文件列表和待检查文件内容列表,与目标对比文件数据中的目标对比文件列表和目标对比文件内容列表进行对比。对比时,基于上文描述,将待检查文件列表和待检查文件内容列表转换成对应的第一待检查字符串和第二待检查字符串,进行后续的对比。

根据对比结果,确定是否可以直接启动电脑端,如果不能直接启动电脑端,则证明电脑端在上次关闭后,有被恶意篡改的情况发生,进一步修正本地文件数据,以便柜员在开启电脑端后可正常应用文件信息,进行业务处理。

下面对本申请实施例提供的文件完整性检测装置进行描述,下文描述的文件完整性检测装置与上文描述的文件完整性检测方法可相互对应参照。

首先,结合图2,对应用于终端的文件完整性检测装置进行介绍,如图2所示,该文件完整性检测装置可以包括:

文件获取单元100,用于响应于接收到目标对象对所述终端的启动操作,获取所述终端在当前时刻的本地文件数据和目标对比文件数据,其中,所述目标对比文件数据为所述终端在上一次关闭所述终端时存储的本地文件数据,所述目标对比文件数据中至少包括由所述目标对比文件数据的目标文件列表转换的第一对比字符串和由所述目标对比文件数据的目标文件内容列表转换的第二对比字符串;

文件列表获取单元200,用于从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表;

第一对比单元300,用于将所述待检查文件列表转换成预设格式的第一待检查字符串,并对比所述第一待检查字符串与所述第一对比字符串是否相同;

文件内容列表获取单元400,用于如果所述第一待检查字符串与所述第一对比字符串相同,从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,以及与每一个所述目标类型文件对应的文件内容信息,生成待检查文件内容列表;

第二对比单元500,用于将所述待检查文件内容列表转换成所述预设格式的第二待检查字符串,并对比所述第二待检查字符串与所述第二对比字符串是否相同,确定所述本地文件数据和所述目标对比文件数据是否存在差异。

本申请实施例选择以上一次关闭时存储的本地文件数据作为文件检查的对比标准,对待检查文件列表和待检查文件内容列表进行检查。其中,所述待检查文件列表统计了每一个文件的文件名称和调用路径,所述待检查文件内容列表中包含预设类型文件的文件内容信息,通过与目标对比文件数据对比可以检查出当前文件数据的文件名称、调用路径是否被篡改,并且更深层次地确定当前文件内容是否存在已被篡改或缺失的情况。

进一步地,将上述列表转换成相对较短的字符串进行对比,只要字符串中字符出现不同,则证明本地文件数据与目标对比文件数据存在差异,可以避免由于列表中文件内容繁杂,而导致的列表顺序错位、对比不准确的问题。

基于此,本申请能够从文件数量、文件名称、文件路径、文件内容多个方面对终端的文件数据进行检查,并且简化文件对比的过程,综合提升文件检查的全面性和准确性。

可选的,所述装置还可以包括:

终端启动单元,用于如果所述本地文件数据与所述目标对比文件数据不存在差异,响应所述启动操作,启动所述终端;

终端修复单元,用于如果所述本地文件数据与所述目标对比文件数据存在差异或所述第一待检查字符串与所述第一对比字符串不相同,获取所述本地文件数据中与所述目标对比文件数据存在差异的文件对应的文件修复包,基于所述文件修复包对所述终端进行修复,直至所述本地文件数据与所述目标对比文件数据不存在差异或所述第一待检查字符串与所述第一对比字符串相同。

可选的,所述终端修复单元,包括:

修复列表确定子单元,用于基于所述第一待检查字符串与所述第一对比字符串,和/或所述第二待检查字符串与所述第二对比字符串的对比结果,确定存在差异的目标修复列表,所述目标修复列表至少包括所述待检查文件列表和所述待检查文件内容列表中的一个;

目标对比列表确定子单元,用于基于所述目标修复列表,从所述目标对比文件数据中确定目标对比列表,所述目标对比列表为所述目标对比文件数据的目标文件列表或目标文件内容列表;

文件对比子单元,用于对比所述目标对比列表和所述目标修复列表中的每一个文件对应的所述文件名称、所述调用路径或所述文件内容信息是否相同,确定存在差异的文件;

修复文件获取子单元,用于获取所述存在差异的文件的文件修复包;

文件修复子单元,用于基于所述文件修复包对所述存在差异的文件进行修复,得到修复后的与所述终端对应的本地文件数据;

文件检查子单元,用于基于所述修复后的与所述终端对应的本地文件数据,执行所述从所述本地文件数据中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表及之后的步骤,直至所述修复后的与所述终端对应的本地文件数据与所述目标对比文件数据不存在差异。

可选的,所述文件列表获取单元200,包括:

时间标识获取子单元,用于获取所述本地文件数据中属于预设文件包类型的目标文件包的时间标识;

时间判断子单元,用于判断所述时间标识对应的时间是否晚于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间;

列表生成子单元,用于如果不低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,从所述目标文件包中提取预设文件目录中每一个文件的文件名称和调用路径,生成待检查文件列表;

时间标识更新子单元,用于如果低于所述目标对比文件数据中所述预设文件包类型的对比文件包的时间标识对应的时间,获取与所述目标文件包对应的最新时间标识的更新文件包,并基于所述更新文件包对所述目标文件包进行更新处理,得到更新后的目标文件包,使得所述目标文件包的时间标识为最新时间标识,从所述更新后的目标文件包中提取所述预设文件目录中每一个文件的所述文件名称和所述调用路径,生成所述待检查文件列表。

可选的,所述文件列表获取单元200,包括:

文件读取子单元,用于从所述本地文件数据中读取预设文件目录以及所述预设文件目录的子目录下的每一个文件的文件类型、文件名称,并记录每一个所述文件的调用路径;

待检查文件确定子单元,用于将所述文件类型属于预设检查文件类型的文件确定为待检查文件;

文件排序子单元,用于基于预设排序规则,对所有的所述待检查文件的所述文件名称进行排序,得到所述待检查文件列表,所述待检查文件列表包含与每一个所述待检查文件对应的所述调用路径。

可选的,所述文件内容列表获取单元400,包括:

目标类型文件提取子单元,用于从所述本地文件数据中提取属于预设文件类型的所有目标类型文件,得到内容检查文件列表;

文件内容读取子单元,用于读取所述内容检查文件列表中每一个所述目标类型文件对应的文件内容信息;

列表生成子单元,用于基于所述文件内容信息与所述目标类型文件的对应关系,生成所述待检查文件内容列表。

可选的,所述第一对比单元300,包括:

列表序列化子单元,用于对所述待检查文件列表进行序列化,得到与所述待检查文件列表对应的字符串;

字符转换子单元,用于基于散列算法,将所述待检查文件列表对应的字符串转换成所述第一待检查字符串

本申请实施例提供的文件完整性检测装置可应用于文件完整性检测设备。

图3示出了文件完整性检测设备的结构示意图,参照图3,文件完整性检测设备的结构可以包括:至少一个处理器10,至少一个存储器20,和至少一个通信总线30至少一个通信接口40;

在本申请实施例中,处理器10、存储器20、通信总线30、通信接口40的数量为至少一个,且处理器10、存储器20、通信接口40通过通信总线30完成相互间的通信;

处理器10可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器20可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于实现前述文件完整性检测方案中的各个处理流程。

本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于实现前述文件完整性检测方案中的各个处理流程。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种非法文件的检测方法、装置、设备及存储介质
  • 一种液位检测装置和包含其的设备以及液位检测方法、电子设备及计算机可读存储介质
  • 一种存储系统的状态检测方法、装置、设备及存储介质
  • 一种文件复制方法、装置、设备及存储介质
  • 一种测试语言文件的转换方法、装置、设备及存储介质
  • 文件完整性检测方法、装置、设备及存储介质
  • 一种文件完整性的检测方法、系统、电子设备及存储介质
技术分类

06120116504910