一种文件拷贝监控方法和系统技术方案

技术编号:26598169 阅读:16 留言:0更新日期:2020-12-04 21:20
本发明专利技术提出了一种文件拷贝监控方法和系统。首先启动文件拷贝监控;然后监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文;监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。

【技术实现步骤摘要】
一种文件拷贝监控方法和系统
本专利技术涉及数据安全
,尤其涉及一种文件拷贝监控方法和系统。
技术介绍
在信息化社会中,确保数据安全已经成为人们的共识。无论是个人还是企业、政府,在数据安全上的投入越来越多。而计算机上的文件作为数据载体之一,无疑也是数据安全的重要保护对象。众多的DLP(DataLeakProtection)产品也在文件保护上施展了十八般武艺,但是都是基于应用层进行的监控,容易被强制结束,而且无法实现对映射到本地网盘的拷贝过程;另外,基于应用层进行的监控只能监控单个文件夹的活动,不能进一步监控到文件的拷贝活动。
技术实现思路
为了解决上述问题,有必要提供一种文件拷贝监控方法和系统,以实现监控本地计算机与外部存储介质之间的文件拷贝动作。本专利技术第一方面提出一种文件拷贝监控方法,所述方法包括以下步骤:步骤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是否与关闭操作的文件对象的的文件名本文档来自技高网...

【技术保护点】
1.一种文件拷贝监控方法,其特征在于,所述方法包括以下步骤:/n步骤1,启动文件拷贝监控;/n步骤2,监控文件打开操作和文件创建操作,并分别为打开操作的文件对象和创建操作的文件对象创建流上下文,以保存相应文件对象的文件信息;/n步骤3,监控文件读取操作,根据文件读取信息,并结合读取操作的文件对象的流上下文判断是否读到文件末尾,如果是,保存读取记录到读文件链表readList中;/n步骤4,监控文件写入操作,根据文件写入信息,结合所述读文件链表判断是否存在读取记录,如果存在,保存拷贝记录到文件拷贝记录链表copyList中;/n步骤5,监控文件关闭操作,如果是写入关闭,则判断所述文件拷贝记录链表copyList中的读取操作的文件对象和写入操作的文件对象是否在应用层的监控列表中,如果存在,则将相应的拷贝记录上报给应用层的监控软件,同时在所述文件拷贝记录链表copyList中清除所述拷贝记录。/n

【技术特征摘要】
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打包成一条拷贝记录并保...

【专利技术属性】
技术研发人员:宋志成韩金池郭鹏玉马盼盼廖正赟
申请(专利权)人:郑州信大捷安信息技术股份有限公司
类型:发明
国别省市:河南;41

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

1