发明内容
本发明是为解决上述现有技术中存在的不足之处,提供一种通用、可靠的文件复制操作识别方法,以提高文件复制操作识别方法的可靠性和通用性。
本发明通用、可靠的文件复制操作识别方法,包含以下步骤:
a.捕获文件的基本操作:利用文件微过滤驱动捕获文件的基本操作以及基本操作携带的数据;
所述文件的基本操作包括:打开、查询扩展属性、创建、关闭;
所述文件的基本操作携带的数据包括:文件打开分类、进程ID、查询扩展属性操作发生时间、关闭操作发生时间、文件大小、文件名、文件路径;
所述文件打开分类包括:打开、创建、创建并覆盖;
b.存储文件的基本操作:将捕获到的文件的基本操作以及基本操作携带的数据存储在内存中;
以哈希表作为数据结构,以文件路径和文件名为索引,如果所述哈希表中不存在该文件,则将该文件的基本操作以及基本操作携带的数据添加到哈希表中;如果所述哈希表中存在该文件,则更新哈希表中的该文件的基本操作以及基本操作携带的数据;
c.分析文件的基本操作:分析存储在内存中的文件的基本操作以及基本操作携带的数据,识别文件是否发生了复制操作。
所述步骤c中,进一步包括以下步骤:
c1.根据文件的基本操作进行判断,如果基本操作是关闭,则继续执行步骤c2;如果基本操作不是关闭,则结束,即没有发生文件复制操作;
c2.获取当前系统时间;
c3.根据文件的打开分类进行判断,如果文件的打开分类是创建或者是创建并覆盖,则继续执行步骤c4;如果文件打开分类是打开,则结束,即没有发生文件复制操作;
c4.遍历哈希表中的节点,获取与所述文件的文件大小、进程ID相同,且查询扩展属性操作发生时间不为零的节点,生成节点列表;
c5.将所述节点列表中的每个节点的文件关闭操作发生时间与步骤c2获取的当前系统时间进行比较,如果二者之差小于2秒,则继续执行步骤c6;如果二者之差大于或等于2秒,则结束,即没有发生文件复制操作;
c6.根据节点的文件路径进行判断,如果文件路径指向的文件存在,则所述文件发生复制操作;如果文件路径指向的文件不存在,则没有发生文件复制操作。
本发明的有益效果体现在:与现有技术相比,本发明的文件复制操作识别方法与发起复制操作的具体应用程序和实现复制文件的技术手段无关,通过分析文件过滤驱动捕获到的操作以及数据,快速准确地识别出哪些文件发生了复制操作,不但可以识别本地路径之间的复制操作还可以识别网络路径与本地路径之间的复制操作,实现了文件复制操作识别的通用性和可靠性,为有效保护文件数据安全,防止通过非法文件复制操作泄露技术秘密和重要数据提供了防范机制。
具体实施方式
下面将结合附图及实施例,对本发明做进一步详细描述。
本发明提供了一种通用、可靠的文件复制操作识别方法,其应用场景为局域网环境或通用的互联网环境。本实施例为局域网环境,如图3所示,该局域网包括服务端计算机301、客户端计算机302。在客户端计算机302上发生的文件复制操作,可以在服务端计算机301上显示出识别结果。
例如,在客户端计算机302上,发生了把一个文件路径为C:\用户\Administrator\桌面\、文件名为“新春快乐.doc”、文件大小为130k的文件,复制到网络\\192.168.0.2\public\的路径下的操作。
如图1所示,本发明的文件复制操作识别方法,具体工作步骤如下:
a.捕获文件的基本操作101:客户端计算机302利用文件微过滤驱动捕获文件的基本操作以及基本操作携带的数据;
所述文件微过滤驱动程序捕获本地文件的基本操作以及该基本操作携带的数据和网络文件的基本操作以及该基本操作携带的数据包括:
本地文件的基本操作:打开;
该基本操作携带的数据:文件名:“新春快乐.doc”、文件路径:C:\用户\Administrator\桌面\、文件大小:130k、进程ID:1202、文件打开分类:打开;
本地文件的基本操作:查询扩展属性;
该基本操作携带的数据:文件名:“新春快乐.doc”、文件路径:C:\用户\Administrator\桌面\、查询扩展属性操作发生的时间:16:28:20:05(16时28分20秒5毫秒);
本地文件的基本操作:关闭;
该基本操作携带的基本数据:文件名“新春快乐.doc”、文件路径:C:\用户\Administrator\桌面\、关闭文件操作发生时间:16:28:21:10;
所述文件微过滤驱动程序捕获网络文件的基本操作以及该基本操作携带的数据和网络文件的基本操作以及该基本操作携带的数据包括:
网络文件的基本操作:创建;
该基本操作携带的数据:文件名:“新春快乐.doc”、文件路径:\\192.168.0.2\public\、文件大小:130k、进程ID:1202、文件打开分类:创建;
网络文件的基本操作:关闭;
该基本操作携带的数据:文件名:“新春快乐.doc”、文件路径:\\192.168.0.2\public\、关闭文件操作发生时间:16:28:21:50;
b.存储文件的基本操作102:客户端计算机302将捕获到的本地文件的基本操作以及该基本操作携带的数据和网络文件的基本操作以及该基本操作携带的数据存储在内存中;
存储本地文件的基本操作:客户端计算机302以哈希表作为数据结构,以C:\用户\Administrator\桌面\新春快乐.doc为索引,如果哈希表中不存在该文件,则将该文件的基本操作以及基本操作携带的数据添加到哈希表中;如果所述哈希表中存在该文件,则更新哈希表中的该本地文件的基本操作以及基本操作携带的数据;
存储网络文件的基本操作:客户端计算机302以哈希表为数据结构,以\\192.168.0.2\public\新春快乐.doc为索引,如果哈希表中不存在该文件,则将该文件的基本操作以及基本操作携带的数据添加到哈希表中;如果所述哈希表中存在该文件,则更新哈希表中的该网络文件的基本操作以及基本操作携带的数据;
c.分析文件的基本操作103:客户端计算机302分析存储在内存中的本地文件的基本操作以及该基本操作携带的数据和网络文件的基本操作以及该基本操作携带的数据,识别文件“新春快乐.doc”是否发生了复制操作。
所述步骤c中,如图2所示,进一步包括以下步骤:
分析本地文件的基本操作如下:
步骤201A:根据本地文件C:\用户\Administrator\桌面\新春快乐.doc的基本操作进行判断,该基本操作是关闭,那么该文件可能发生文件复制操作,继续执行步骤202A;(如果基本操作不是关闭,则结束,即没有发生文件复制操作;)
步骤202A:获取当前系统时间16:28:20:13;
步骤203A:根据所述本地文件的打开分类进行判断,该文件的打开分类是打开,不是创建或创建并覆盖,则结束,即没有发生文件复制操作;
分析网络文件的基本操作如下:
步骤201B:根据网络文件\\192.168.0.2\public\新春快乐.doc的基本操作进行判断,该基本操作是关闭,那么该文件可能发生文件复制操作,继续执行步骤202B;(如果基本操作不是关闭,则结束,即没有发生文件复制操作;)
步骤202B:获取当前系统时间16:28:21:53;
步骤203B:根据所述网络文件的打开分类进行判断,该文件的打开分类是创建,那么该文件可能发生文件复制操作,继续执行步骤204B;(如果该文件打开分类既不是创建也不是创建并覆盖,则结束,即没有发生文件复制操作;)
步骤204B:遍历哈希表中的节点,获取与所述网络文件的文件大小130k、进程ID:1202相同,且查询扩展属性操作发生时间不为零的节点,生成节点列表;
步骤205B:将所述节点列表中的每个节点的本地文件关闭操作发生时间16:28:21:10与步骤202B获取的当前系统时间16:28:21:53进行比较,二者之差为43毫秒,即小于2秒,那么该文件可能发生文件复制操作,继续执行步骤206B;(如果二者之差大于或等于2秒,则结束,即没有发生文件复制操作;)
步骤206B:根据节点的文件路径进行判断,本地文件路径C:\用户\Administrator\桌面\新春快乐.doc指向的文件存在,网络文件路径\\192.168.0.2\public\新春快乐.doc是由本地文件路径C:\用户\Administrator\桌面\新春快乐.doc复制产生的,所述文件发生复制操作;(如果文件路径C:\用户\Administrator\桌面\新春快乐.doc指向的文件不存在,则没有发生文件复制操作;)。
客户端计算机302通过TCP协议将文件复制操作识别结果发送至服务端计算机301,在服务端计算机301上能够显示出识别结果为复制,从而实现文件复制操作的识别。
通过以上步骤完成了由本地路径到网络路径的文件复制操作识别过程。
本发明的识别方法也适用于从网络路径复制到本地路径的文件复制操作识别过程,或者本地路径之间的文件复制操作识别过程。本发明的识别方法可以适用于不同的操作系统版本,因为不依赖于发起复制操作的API函数,从而实现了文件复制操作识别的通用性与可靠性。