CN112035833B - 一种文件拷贝监控方法和系统 - Google Patents
一种文件拷贝监控方法和系统 Download PDFInfo
- Publication number
- CN112035833B CN112035833B CN202010849945.6A CN202010849945A CN112035833B CN 112035833 B CN112035833 B CN 112035833B CN 202010849945 A CN202010849945 A CN 202010849945A CN 112035833 B CN112035833 B CN 112035833B
- Authority
- CN
- China
- Prior art keywords
- file
- copy
- record
- reading
- monitoring
- 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.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 98
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000006870 function Effects 0.000 claims description 36
- 230000000694 effects Effects 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种文件拷贝监控方法和系统。首先启动文件拷贝监控;然后监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文;监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及一种文件拷贝监控方法和系统。
背景技术
在信息化社会中,确保数据安全已经成为人们的共识。无论是个人还是企业、政府,在数据安全上的投入越来越多。而计算机上的文件作为数据载体之一,无疑也是数据安全的重要保护对象。众多的DLP(Data Leak Protection)产品也在文件保护上施展了十八般武艺,但是都是基于应用层进行的监控,容易被强制结束,而且无法实现对映射到本地网盘的拷贝过程;另外,基于应用层进行的监控只能监控单个文件夹的活动,不能进一步监控到文件的拷贝活动。
发明内容
为了解决上述问题,有必要提供一种文件拷贝监控方法和系统,以实现监控本地计算机与外部存储介质之间的文件拷贝动作。
本发明第一方面提出一种文件拷贝监控方法,所述方法包括以下步骤:
步骤1,启动文件拷贝监控;
步骤2,监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文,以保存相应文件对象的文件信息;
步骤3,监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;
步骤4,监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;
步骤5,监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
进一步的,上述步骤2,具体包括:
步骤2-1,调用PostCreate回调函数;
步骤2-2,基于PostCreate回调函数文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文;
步骤2-3,分别获取打开操作的文件对象和创建操作的文件对象的文件大小、文件名信息;
步骤2-4,将打开操作的文件对象的文件大小、文件名信息保存在打开操作的文件对象的流上下文中,将创建操作的文件对象的文件大小、文件名信息保存在创建操作的文件对象的流上下文中,以使其它回调函数读取。
进一步的,上述步骤3,具体包括:
步骤3-1,调用PostRead回调函数;
步骤3-2,基于PostRead回调函数监控文件读取操作,获取读取操作的文件对象的流上下文;
步骤3-3,判断读取操作的文件对象的流上下文中的文件大小是否为0,当文件大小为0时,则直接结束文件读取监控流程,当文件大小大于0时,则进入步骤3-4;
步骤3-4,从PostRead回调函数参数中获取当前读取位置readPos;
步骤3-5,将当前读取位置readPos与读取操作的文件对象的流上下文中的文件大小比较,若当前读取位置readPos等于所述文件大小,则判定读到文件末尾,进入步骤3-6;否则,判定未读到文件末尾,结束当前文件读取监控流程;
步骤3-6,获取当前读取时间readTime,并计算读取操作的文件对象的哈希值readMD5;
步骤3-7,将当前读取时间readTime、读取操作的文件对象的哈希值readMD5、读取操作的文件对象的文件名readFile以及读取操作的文件对象的文件大小readEof打包成一条读取记录并保存到读文件链表readList中。
进一步的,上述步骤4,具体包括:
步骤4-1,调用PostWrite回调函数;
步骤4-2,基于PostWrite回调函数监控文件写入操作,获取写入操作的文件对象的流上下文;
步骤4-3,从PostWrite回调函数参数中获取当前写入位置writePos以及写入时间writeTime;
步骤4-4,基于当前写入位置writePos以及写入时间writeTime在读文件链表readList中查找出对应的读取记录,如果未找到,结束本次文件写入监控流程,如果找到,则进入步骤4-5;
步骤4-5,计算当前写入操作的文件对象的哈希值writeMD5,并在写入操作的文件对象的流上下文中设置写标志;
步骤4-6,判断写入操作的文件对象的哈希值writeMD5是否与所述读取记录中的读取操作的文件对象的哈希值readMD5相一致,如果否,则结束本次文件写入监控流程,如果是,则进入步骤4-7;
步骤4-7,将读取操作的文件对象的文件名readFile、写入操作的文件对象的文件名writeFile以及写入操作的文件对象的文件大小writeEof打包成一条拷贝记录并保存到文件拷贝记录链表copyList中。
进一步的,上述步骤4-4,具体包括:
步骤4-4-1,获取当前写入位置writePos以及写入时间writeTime;
步骤4-4-2,从读文件链表readList中取出一条读取记录;
步骤4-4-3,判断当前写入位置writePos与所述读取记录记载的读取操作的文件对象的文件大小readEof是否一致,如果一致,则进入步骤4-4-4,如果不一致,则返回步骤4-4-2继续取下一条读取记录;
步骤4-4-4,计算当前写入时间writeTime与所述读取记录记载的读取时间readTime之间的时间差;
步骤4-4-5,判断所述时间差是否小于第一阈值,如果是,则进入步骤4-4-6,如果否,进入步骤4-4-7;
步骤4-4-6,成功查找到对应的读取记录;
步骤4-4-7,判断所述时间差是否大于等于第二阈值,且第二阈值大于第一阈值,如果是,从读文件链表readList中清除本条读取记录,并返回步骤4-4-2继续取下一条读取记录,如果否,则直接返回步骤4-4-2继续取下一条读取记录。
进一步的,上述步骤5,具体包括:
步骤5-1,调用PostClose回调函数;
步骤5-2,基于PostClose回调函数监控文件关闭操作,获取关闭操作的文件对象的流上下文;
步骤5-3,判断所述关闭操作的文件对象的流上下文是否为写标志,如果是,则进入步骤5-4,如果否,则结束本次文件关闭监视流程;
步骤5-4,分别获取关闭操作的文件对象的的文件大小closeEof以及文件名closeFile;
步骤5-5,基于关闭操作的文件对象的的文件大小closeEof以及文件名closeFile在文件拷贝记录链表copyList中查找出对应的拷贝记录;
步骤5-6,将拷贝记录上报至应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
进一步的,上述步骤5-5,具体包括:
步骤5-5-1,从所述文件拷贝记录链表copyList中取出一条拷贝记录;
步骤5-5-2,判断所述拷贝记录的读取操作的文件对象的文件名readFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果一致,则清除本条拷贝记录并返回步骤5-5-1,如果不一致,则进入步骤5-5-3;
步骤5-5-3,判断所述拷贝记录的写入操作的文件对象的文件大小writeEof是否与关闭操作的文件对象的的文件大小closeEof相一致,如果是,则进入步骤5-5-4,如果不是,则返回步骤5-5-1;
步骤5-5-4,判断所述拷贝记录的写入操作的文件对象的文件名writeFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果是,则进入步骤步骤5-5-5,如果不是,则返回步骤5-5-1;
步骤5-5-5,基于所述拷贝记录的读取操作的文件对象的文件名readFile和写入操作的文件对象的文件名writeFile,判断读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,若在,则执行步骤5-6,否则,返回执行步骤5-5-1。
本发明第二方面还提出一种文件拷贝监控系统,所述系统包括:存储器及处理器,所述存储器中包括一种文件拷贝监控程序,所述文件拷贝监控程序被所述处理器执行时前述文件拷贝监控方法的步骤。
进一步的,所述系统使用minifilter文件过滤框架,在其回调函数中进行文件对象的活动特征提取与识别,并将文件对象的相关活动信息上报至应用层的监控软件。
本发明第三方面还提出一种计算机可读存储介质,所述计算机可读存储介质中包括一种文件拷贝监控程序,所述文件拷贝监控程序被处理器执行时,实现如上述的文件拷贝监控方法的步骤。
本发明通过在内核层监视Create、Read、Write、Close四种IPR请求的操作,实现了对文件以及文件夹的拷贝进行监控,且监控活动不会被强制结束;根据其文件拷贝的特征最终可以获取包括源文件、目的文件、文件大小、操作时间等元素的拷贝记录,然后将拷贝记录上报给应用层的监控软件,以便于管理人员通过查看监控软件追查相关文件的拷贝信息,限制了文件拷贝的随意性,健全了文件拷贝的管理制度;
本发明通过判断当前写入位置writePos与所述读取记录记载的读取操作的文件对象的文件大小readEof是否一致,以及判断当读取记录里记录的读取时间与写入时间的时间差是否位于预设时间差阈值内,来判断读取操作的文件对象与写入操作的文件对象属于同一次拷贝过程,并进一步通过判断写入操作的文件对象的哈希值writeMD5是否与所述读取记录中的读取操作的文件对象的哈希值readMD5相一致,来过滤前期文件大小、时间阀匹配出现的漏洞,进一步确保读取操作的文件对象与写入操作的文件对象属于同一次拷贝过程;
本发明在监控关闭操作时,只需要监控写入关闭操作,而无需监控读取关闭操作,简化了文件拷贝监控的步骤;同时通过判断所述拷贝记录的读取操作的文件对象的文件名readFile是否与关闭操作的文件对象的的文件名closeFile相一致,来过滤对同一个文件的读写监控,减少非必要的监控步骤。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明一种文件拷贝监控方法的流程图;
图2示出了本发明文件打开和创建的监控流程图;
图3示出了本发明文件读取操作的监控流程图;
图4示出了本发明文件写入操作的监控流程图;
图5示出了本发明查找读文件链表readList的流程图;
图6示出了本发明文件关闭的监控流程图;
图7示出了本发明查找文件拷贝记录链表copyList的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了本发明一种文件拷贝监控方法的流程图。
如图1所示,本发明第一方面提出一种文件拷贝监控方法,所述方法包括以下步骤:
步骤1,启动文件拷贝监控;
步骤2,监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文,以保存相应文件对象的文件信息;
步骤3,监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;
步骤4,监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;
步骤5,监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
如图2所示,上述步骤2,具体包括:
步骤2-1,调用PostCreate回调函数;
步骤2-2,基于PostCreate回调函数文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文;
步骤2-3,分别获取打开操作的文件对象和创建操作的文件对象的文件大小、文件名信息;
步骤2-4,将打开操作的文件对象的文件大小、文件名信息保存在打开操作的文件对象的流上下文中,将创建操作的文件对象的文件大小、文件名信息保存在创建操作的文件对象的流上下文中,以使其它回调函数读取。
如图3所示,上述步骤3,具体包括:
步骤3-1,调用PostRead回调函数;
步骤3-2,基于PostRead回调函数监控文件读取操作,获取读取操作的文件对象的流上下文;
步骤3-3,判断读取操作的文件对象的流上下文中的文件大小是否为0,当文件大小为0时,则直接结束文件读取监控流程,当文件大小大于0时,则进入步骤3-4;
步骤3-4,从PostRead回调函数参数中获取当前读取位置readPos;
步骤3-5,将当前读取位置readPos与读取操作的文件对象的流上下文中的文件大小比较,若当前读取位置readPos等于所述文件大小,则判定读到文件末尾,进入步骤3-6;否则,判定未读到文件末尾,结束当前文件读取监控流程;
步骤3-6,获取当前读取时间readTime,并计算读取操作的文件对象的哈希值readMD5;
步骤3-7,将当前读取时间readTime、读取操作的文件对象的哈希值readMD5、读取操作的文件对象的文件名readFile以及读取操作的文件对象的文件大小readEof打包成一条读取记录并保存到读文件链表readList中。
如图4所示,上述步骤4,具体包括:
步骤4-1,调用PostWrite回调函数;
步骤4-2,基于PostWrite回调函数监控文件写入操作,获取写入操作的文件对象的流上下文;
步骤4-3,从PostWrite回调函数参数中获取当前写入位置writePos以及写入时间writeTime;
步骤4-4,基于当前写入位置writePos以及写入时间writeTime在读文件链表readList中查找出对应的读取记录,如果未找到,结束本次文件写入监控流程,如果找到,则进入步骤4-5;
步骤4-5,计算当前写入操作的文件对象的哈希值writeMD5,并在写入操作的文件对象的流上下文中设置写标志;
步骤4-6,判断写入操作的文件对象的哈希值writeMD5是否与所述读取记录中的读取操作的文件对象的哈希值readMD5相一致,如果否,则结束本次文件写入监控流程,如果是,则进入步骤4-7;
步骤4-7,将读取操作的文件对象的文件名readFile、写入操作的文件对象的文件名writeFile以及写入操作的文件对象的文件大小writeEof打包成一条拷贝记录并保存到文件拷贝记录链表copyList中。
需要说明的是,一次读取操作的数据量,可能需要分多次写入操作,例如:最后一次读取操作的数据量分成4次写入操作,第1次写入操作只完成最后一次读取数据量的一部分,在第1次写入操作后并未实现将最后一次读取操作的数据量全部拷贝至写入操作的文件对象,因此使用当前获取写入位置writePos并不会从读文件链表readList中查找出对应的读取记录,即不会进行后续的时间差、哈希值的比对,且不会形成拷贝记录。然后继续进行第2次、第3次写入操作,直到进行到第4次写入操作,且第4次写入操作已将最后一次读取操作的数据量全部拷贝至写入操作的文件对象,此时即可进行后续读写时间差、哈希值的比对过程,且如果在时间差和哈希值均符合条件时,即可形成一条拷贝记录,并保存至文件拷贝记录链表copyList中。
如图5所示,上述步骤4-4,具体包括:
步骤4-4-1,获取当前写入位置writePos以及写入时间writeTime;
步骤4-4-2,从读文件链表readList中取出一条读取记录;
步骤4-4-3,判断当前写入位置writePos与所述读取记录记载的读取操作的文件对象的文件大小readEof是否一致,如果一致,则进入步骤4-4-4,如果不一致,则返回步骤4-4-2继续取下一条读取记录;
步骤4-4-4,计算当前写入时间writeTime与所述读取记录记载的读取时间readTime之间的时间差;
步骤4-4-5,判断所述时间差是否小于第一阈值,如果是,则进入步骤4-4-6,如果否,进入步骤4-4-7;
步骤4-4-6,成功查找到对应的读取记录;
步骤4-4-7,判断所述时间差是否大于等于第二阈值,且第二阈值大于第一阈值,如果是,从读文件链表readList中清除本条读取记录,并返回步骤4-4-2继续取下一条读取记录,如果否,则直接返回步骤4-4-2继续取下一条读取记录。
优选的,所述第一阈值可以为10ns,第二阈值可以为10s,但不限于此。
可以理解,如果最后一次读取时间与最后一次写入时间之间的时间差小于10ns,即可证实读取操作的文件对象与写入操作的文件对象属于同一次拷贝过程。进一步的,如果时间差超过10s,则说明所述读取记录为其它资源操作形成的,且由于已过去10s,即使是其它资源操作遗留的读写记录,其对应的写入操作也早已成过去式,即可说明该读取记录为遗留的无用数据,为了避免读文件链表readList过度变大,此时需要对该读取记录清除处理,以保持读文件链表readList合理大小。
本发明通过判断当前写入位置writePos与所述读取记录记载的读取操作的文件对象的文件大小readEof是否一致,以及判断当读取记录里记录的读取时间与写入时间的时间差是否位于预设时间差阈值内,来判断读取操作的文件对象与写入操作的文件对象属于同一次拷贝过程。
需要注意的是,在文件监控过程中,可能出现两个大小相等的文件,此时在比对完读取操作的文件对象和写入操作的文件对象的文件大小后,仍无法保证读取操作的文件对象和写入操作的文件对象属于同一次拷贝过程,此时可以对读取操作的文件对象和写入操作的文件对象的哈希值进行比较,并在哈希值比对一致时,判定读写两个文件属于同一次拷贝过程。可以理解,文件越小出现大小相等的两个文件的几率越大,本发明通过比对哈希值能够过滤前期文件大小、时间阀匹配出现的漏洞。
进一步的,对于比较大的文件(如几个G的文件),如果进行整个文件的哈希值计算,则计算速度会比较慢,因此,本发明对于大于预定值(如1G)的文件,不进行全文件的哈希值计算,并取文件的前面P大小(如4K)的数据进行哈希值计算,从而有效缩短哈希值计算时间,提高了文件拷贝监控效率。
如图6所示,上述步骤5,具体包括:
步骤5-1,调用PostClose回调函数;
步骤5-2,基于PostClose回调函数监控文件关闭操作,获取关闭操作的文件对象的流上下文;
步骤5-3,判断所述关闭操作的文件对象的流上下文是否为写标志,如果是,则进入步骤5-4,如果否,则结束本次文件关闭监视流程;
步骤5-4,分别获取关闭操作的文件对象的的文件大小closeEof以及文件名closeFile;
步骤5-5,基于关闭操作的文件对象的的文件大小closeEof以及文件名closeFile在文件拷贝记录链表copyList中查找出对应的拷贝记录;
步骤5-6,将拷贝记录上报至应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
如图7所示,上述步骤5-5,具体包括:
步骤5-5-1,从所述文件拷贝记录链表copyList中取出一条拷贝记录;
步骤5-5-2,判断所述拷贝记录的读取操作的文件对象的文件名readFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果一致,则清除本条拷贝记录并返回步骤5-5-1,如果不一致,则进入步骤5-5-3;
步骤5-5-3,判断所述拷贝记录的写入操作的文件对象的文件大小writeEof是否与关闭操作的文件对象的的文件大小closeEof相一致,如果是,则进入步骤5-5-4,如果不是,则返回步骤5-5-1;
步骤5-5-4,判断所述拷贝记录的写入操作的文件对象的文件名writeFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果是,则进入步骤步骤5-5-5,如果不是,则返回步骤5-5-1;
步骤5-5-5,基于所述拷贝记录的读取操作的文件对象的文件名readFile和写入操作的文件对象的文件名writeFile,判断读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,若在,则执行步骤5-6,否则,返回执行步骤5-5-1。
需要说明的是,步骤5-5-2中,如果一致,则说明读取操作和写入操作的目标对象是同一个文件,显然对同一个文件的读写监控是没有必要的,因此可以对本条拷贝记录进行清除处理。
需要说明的是,在上述步骤5中,只要读取操作的文件对象和写入操作的文件对象的任意一个落入文件拷贝记录链表copyList中,即可将所述拷贝记录上报给应用层的监控软件,如果读取操作的文件对象和写入操作的文件对象都不在文件拷贝记录链表copyList中,则无需将所述拷贝记录上报给应用层的监控软件,而是直接在所述文件拷贝记录链表copyList中清除相应的拷贝记录。
本发明通过在内核层监视Create、Read、Write、Close四种IPR请求的操作,实现了对文件以及文件夹的拷贝进行监控,且监控活动不会被强制结束;根据其文件拷贝的特征最终可以获取包括源文件、目的文件、文件大小、操作时间等元素的拷贝记录,然后将拷贝记录上报给应用层的监控软件,以便于管理人员通过查看监控软件追查相关文件的拷贝信息,限制了文件拷贝的随意性,健全了文件拷贝的管理制度;
本发明在监控关闭操作时,只需要监控写入关闭操作,而无需监控读取关闭操作,简化了文件拷贝监控的步骤;同时通过判断所述拷贝记录的读取操作的文件对象的文件名readFile是否与关闭操作的文件对象的的文件名closeFile相一致,来过滤对同一个文件的读写监控,减少非必要的监控步骤。
本发明第二方面还提出一种文件拷贝监控系统,所述系统包括:存储器及处理器,所述存储器中包括一种文件拷贝监控程序,所述文件拷贝监控程序被所述处理器执行时前述文件拷贝监控方法的步骤。
进一步的,所述系统使用minifilter文件过滤框架,在其回调函数中进行文件对象的活动特征提取与识别,并将文件对象的相关活动信息上报至应用层的监控软件。
本发明第三方面还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种文件拷贝监控程序,所述文件拷贝监控程序被处理器执行时,实现如上述的文件拷贝监控方法的步骤。
由于文件拷贝涉及的IRP较多,通过监视Create、Read、Write、Close四种操作,根据其文件拷贝的特征最终可以获取包括源文件、目的文件、文件大小、操作时间等元素的拷贝记录,然后将拷贝记录上报给应用层的监控软件,以便于管理人员通过查看监控软件追查相关文件的拷贝信息,进一步限制了文件拷贝的随意性,健全了文件拷贝的管理制度。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种文件拷贝监控方法,其特征在于,所述方法包括以下步骤:
步骤1,启动文件拷贝监控;
步骤2,监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文,以保存相应文件对象的文件信息;
步骤3,监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;
步骤4,监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;
步骤5,监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
2.根据权利要求1所述的一种文件拷贝监控方法,其特征在于,上述步骤2,具体包括:
步骤2-1,调用PostCreate回调函数;
步骤2-2,基于PostCreate回调函数文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文;
步骤2-3,分别获取打开操作的文件对象和创建操作的文件对象的文件大小、文件名信息;
步骤2-4,将打开操作的文件对象的文件大小、文件名信息保存在打开操作的文件对象的流上下文中,将创建操作的文件对象的文件大小、文件名信息保存在创建操作的文件对象的流上下文中,以使其它回调函数读取。
3.根据权利要求1所述的一种文件拷贝监控方法,其特征在于,上述步骤3,具体包括:
步骤3-1,调用PostRead回调函数;
步骤3-2,基于PostRead回调函数监控文件读取操作,获取读取操作的文件对象的流上下文;
步骤3-3,判断读取操作的文件对象的流上下文中的文件大小是否为0,当文件大小为0时,则直接结束文件读取监控流程,当文件大小大于0时,则进入步骤3-4;
步骤3-4,从PostRead回调函数参数中获取当前读取位置readPos;
步骤3-5,将当前读取位置readPos与读取操作的文件对象的流上下文中的文件大小比较,若当前读取位置readPos等于所述文件大小,则判定读到文件末尾,进入步骤3-6;否则,判定未读到文件末尾,结束当前文件读取监控流程;
步骤3-6,获取当前读取时间readTime,并计算读取操作的文件对象的哈希值readMD5;
步骤3-7,将当前读取时间readTime、读取操作的文件对象的哈希值readMD5、读取操作的文件对象的文件名readFile以及读取操作的文件对象的文件大小readEof打包成一条读取记录并保存到读文件链表readList中。
4.根据权利要求1所述的一种文件拷贝监控方法,其特征在于,上述步骤4,具体包括:
步骤4-1,调用PostWrite回调函数;
步骤4-2,基于PostWrite回调函数监控文件写入操作,获取写入操作的文件对象的流上下文;
步骤4-3,从PostWrite回调函数参数中获取当前写入位置writePos以及写入时间writeTime;
步骤4-4,基于当前写入位置writePos以及写入时间writeTime在读文件链表readList中查找出对应的读取记录,如果未找到,结束本次文件写入监控流程,如果找到,则进入步骤4-5;
步骤4-5,计算当前写入操作的文件对象的哈希值writeMD5,并在写入操作的文件对象的流上下文中设置写标志;
步骤4-6,判断写入操作的文件对象的哈希值writeMD5是否与所述读取记录中的读取操作的文件对象的哈希值readMD5相一致,如果否,则结束本次文件写入监控流程,如果是,则进入步骤4-7;
步骤4-7,将读取操作的文件对象的文件名readFile、写入操作的文件对象的文件名writeFile以及写入操作的文件对象的文件大小writeEof打包成一条拷贝记录并保存到文件拷贝记录链表copyList中。
5.根据权利要求4所述的一种文件拷贝监控方法,其特征在于,上述步骤4-4,具体包括:
步骤4-4-1,获取当前写入位置writePos以及写入时间writeTime;
步骤4-4-2,从读文件链表readList中取出一条读取记录;
步骤4-4-3,判断当前写入位置writePos与所述读取记录记载的读取操作的文件对象的文件大小readEof是否一致,如果一致,则进入步骤4-4-4,如果不一致,则返回步骤4-4-2继续取下一条读取记录;
步骤4-4-4,计算当前写入时间writeTime与所述读取记录记载的读取时间readTime之间的时间差;
步骤4-4-5,判断所述时间差是否小于第一阈值,如果是,则进入步骤4-4-6,如果否,进入步骤4-4-7;
步骤4-4-6,成功查找到对应的读取记录;
步骤4-4-7,判断所述时间差是否大于等于第二阈值,且第二阈值大于第一阈值,如果是,从读文件链表readList中清除本条读取记录,并返回步骤4-4-2继续取下一条读取记录,如果否,则直接返回步骤4-4-2继续取下一条读取记录。
6.根据权利要求1所述的一种文件拷贝监控方法,其特征在于,上述步骤5,具体包括:
步骤5-1,调用PostClose回调函数;
步骤5-2,基于PostClose回调函数监控文件关闭操作,获取关闭操作的文件对象的流上下文;
步骤5-3,判断关闭操作的文件对象的流上下文是否为写标志,如果是,则进入步骤5-4,如果否,则结束本次文件关闭监视流程;
步骤5-4,分别获取关闭操作的文件对象的的文件大小closeEof以及文件名closeFile;
步骤5-5,基于关闭操作的文件对象的的文件大小closeEof以及文件名closeFile在文件拷贝记录链表copyList中查找出对应的拷贝记录;
步骤5-6,将拷贝记录上报至应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。
7.根据权利要求6所述的一种文件拷贝监控方法,其特征在于,上述步骤5-5,具体包括:
步骤5-5-1,从所述文件拷贝记录链表copyList中取出一条拷贝记录;
步骤5-5-2,判断所述拷贝记录的读取操作的文件对象的文件名readFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果一致,则清除本条拷贝记录并返回步骤5-5-1,如果不一致,则进入步骤5-5-3;
步骤5-5-3,判断所述拷贝记录的写入操作的文件对象的文件大小writeEof是否与关闭操作的文件对象的的文件大小closeEof相一致,如果是,则进入步骤5-5-4,如果不是,则返回步骤5-5-1;
步骤5-5-4,判断所述拷贝记录的写入操作的文件对象的文件名writeFile是否与关闭操作的文件对象的的文件名closeFile相一致,如果是,则进入步骤步骤5-5-5,如果不是,则返回步骤5-5-1;
步骤5-5-5,基于所述拷贝记录的读取操作的文件对象的文件名readFile和写入操作的文件对象的文件名writeFile,判断读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,若在,则执行步骤5-6,否则,返回执行步骤5-5-1。
8.一种文件拷贝监控系统,其特征在于,所述系统包括:存储器及处理器,所述存储器中包括一种文件拷贝监控程序,所述文件拷贝监控程序被所述处理器执行时实现如权利要求1-7所述的文件拷贝监控方法的步骤。
9.根据权利要求8所述的一种文件拷贝监控系统,其特征在于,所述系统使用minifilter文件过滤框架,在其回调函数中进行文件对象的活动特征提取与识别,并将文件对象的相关活动信息上报至应用层的监控软件。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括一种文件拷贝监控程序,所述文件拷贝监控程序被处理器执行时,实现如权利要求1至7中任一项所述的文件拷贝监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849945.6A CN112035833B (zh) | 2020-08-21 | 2020-08-21 | 一种文件拷贝监控方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849945.6A CN112035833B (zh) | 2020-08-21 | 2020-08-21 | 一种文件拷贝监控方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035833A CN112035833A (zh) | 2020-12-04 |
CN112035833B true CN112035833B (zh) | 2022-02-11 |
Family
ID=73580413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010849945.6A Active CN112035833B (zh) | 2020-08-21 | 2020-08-21 | 一种文件拷贝监控方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035833B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168855A (zh) * | 2017-03-24 | 2017-09-15 | 广东小天才科技有限公司 | 一种文件拷贝的监控方法及装置 |
CN108021707A (zh) * | 2017-12-28 | 2018-05-11 | 北京天融信网络安全技术有限公司 | 文件复制操作的识别方法、设备及计算机可读存储介质 |
CN108491402A (zh) * | 2018-01-17 | 2018-09-04 | 艾体威尔电子技术(北京)有限公司 | 一种轻量级文件系统的实现方法 |
CN110750496A (zh) * | 2019-10-23 | 2020-02-04 | 深信服科技股份有限公司 | 一种文件拷贝方法、系统、设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3613336B2 (ja) * | 2001-06-05 | 2005-01-26 | 日本電気株式会社 | ファイルアクセス制御方法、装置、及びプログラム |
US8239674B2 (en) * | 2006-11-21 | 2012-08-07 | Kabushiki Kaisha Toshiba | System and method of protecting files from unauthorized modification or deletion |
-
2020
- 2020-08-21 CN CN202010849945.6A patent/CN112035833B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168855A (zh) * | 2017-03-24 | 2017-09-15 | 广东小天才科技有限公司 | 一种文件拷贝的监控方法及装置 |
CN108021707A (zh) * | 2017-12-28 | 2018-05-11 | 北京天融信网络安全技术有限公司 | 文件复制操作的识别方法、设备及计算机可读存储介质 |
CN108491402A (zh) * | 2018-01-17 | 2018-09-04 | 艾体威尔电子技术(北京)有限公司 | 一种轻量级文件系统的实现方法 |
CN110750496A (zh) * | 2019-10-23 | 2020-02-04 | 深信服科技股份有限公司 | 一种文件拷贝方法、系统、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112035833A (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977370B2 (en) | Method of remediating operations performed by a program and system thereof | |
US11507663B2 (en) | Method of remediating operations performed by a program and system thereof | |
CN109388538B (zh) | 一种基于内核的文件操作行为监控方法及装置 | |
US8548948B2 (en) | Methods and apparatus for a fine grained file data storage system | |
WO2017049965A1 (zh) | 数据备份的方法和数据处理系统 | |
CN103605585B (zh) | 一种基于数据发现的智能备份方法 | |
EP3362937B1 (en) | Method of remediating a program and system thereof by undoing operations | |
US20100205020A1 (en) | System and method for establishing, managing, and controlling the time, cost, and quality of information retrieval and production in electronic discovery | |
US7461104B2 (en) | Method and system for rapid data-fragmentation analysis of a New Technology File System | |
US20080222215A1 (en) | Method for Deleting Virus Program and Method to Get Back the Data Destroyed by the Virus | |
CN112800483A (zh) | 基于区块链的数据源完整性检测方法及系统及装置及介质 | |
CN112035833B (zh) | 一种文件拷贝监控方法和系统 | |
CN111090395A (zh) | 一种用于会计行业的电子信息智能存储系统 | |
RU2017104408A (ru) | Составные топологии хранения данных для объектов данных | |
CN108170766B (zh) | 一种保证数据库一致性的cdp备份与恢复方法 | |
US7484221B2 (en) | Method and apparatus for logging the execution history of an operating system kernel | |
CN109791541B (zh) | 日志序列号生成方法、装置及可读存储介质 | |
CN113626811A (zh) | 基于诱饵文件的勒索软件早期检测方法及系统 | |
CN115454717A (zh) | 数据库实时备份方法、装置、计算机设备和存储介质 | |
CN105718357B (zh) | 一种内存监视的方法 | |
CN111159126A (zh) | 文件压缩操作的审计方法、装置、电子设备及存储介质 | |
WO2020177495A1 (zh) | 一种数据库连接管理方法及装置、设备 | |
CN114117436A (zh) | 勒索程序识别方法、装置、电子设备、存储介质及产品 | |
US20170010935A1 (en) | Dumping resources | |
RU2005129430A (ru) | Способ и система для синтетического резервного копирования и восстановления данных |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A file copy monitoring method and system Granted publication date: 20220211 Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024980007004 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |