计算机文件跟踪方法
技术领域
本发明涉及一种信息安全技术,特别是计算机文件跟踪方法。
背景技术
在计算机应用已经高度发达的今日社会中,信息安全尤其是计算机文件的安全已经成为一个非常显著的社会需求。这主要包括两个课题:其一是如何保护计算机文件的安全,防止文件被非法窃取;其二是如何检查、发现和追踪失窃的计算机文件。
针对第一个课题已经有大量的技术研究和方案,其主要实现思路是文件内容加密和文件访问控制这两种方案,这些均能在一定程度上实现文件的保护。
针对后一个课题,即如何实现文件的跟踪,是一个世界性难题。也就是说,当任意文件被复制、加密复制、网络发送或加密网络发送到其他文件、其他存储媒体、共享文件夹或者网络上其他主机、邮件服务器等事件发生时,如何确定被复制或发送的内容来自什么文件,从而断言文件的去向,以及当文件从网络上下载到本地时,如何
确定文件来自什么IP地址,从而断言文件的来源。
发明内容
本发明的目的之一是提供一种计算机文件跟踪方法,以便当计算机用户的任意文件被复制或加密复制到其他文件、其他存储媒体时,能够自动识别并进行相应记录。
本发明的目的之二是当计算机用户通过网络发送或加密网络发送任意文件到网络上其他主机、邮件服务器等处时,能够确定这个文件发送到什么网络,该网络IP地址并进行记录;或者当用户从网络上接受文件到本地保存时,能够确定该文件来自什么网络IP地址并进行记录,对计算机文件进行跟踪。
本发明的技术方案是:一种计算机文件跟踪方法,至少包括用于存贮程序的存贮介质、控制存贮介质中的程序运行的处理器和存放程序运行中存放过程信息的缓冲单元,其特征是:通过在文件读取内容中提取特征码,当文件写入时根据写入内容匹配,以便判断出文件复制事件的发生;或者在网络发送时根据网络发送内容匹配,以便判断文件发送事件的发生;通过在网络接收数据时,提取特征码, 并在文件写入时根据写入内容匹配,以便判断出文件接收事件的发生。
在文件读取内容中提取特征码,包括步骤102,从文件读取的数据缓冲区中提取读取特征码;
步骤103,将步骤102中提取的特征码和文件名 、文件所在目录、线程ID、进程ID、当前时间等信息生成文件数据集记录;
步骤104,根据文件数据集更新策略和记录内容判断需要添加新的特征码记录或者更新原有相关特征码记录;
如果添加新的特征码记录,进入步骤105,添加特征码记录到文件数据集中;而后进入步骤107;
如果更新原有相关特征码记录,则进入步骤106,更新文件数据集中与本记录相关的那个特征码记录后进入步骤107;
步骤107,退出。
所述的文件复制事件的发生和网络接收文件发生是在进行文件写入处理流程时进行识别,包括:
步骤202,获取当前线程ID、当前进程ID和文件写入数据缓冲区;
步骤203,根据匹配策略在文件数据集和网络数据集中找出需要匹配的记录,
步骤204,将得到的记录与文件写入数据缓冲区中的内容进行匹配;
步骤205,检测匹配成功,成功执行步骤206,否则执行步骤207;
步骤206,如果匹配的该特征码记录是一个文件数据集记录,根据该特征码记录的文件名、文件所在目录和当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录;如果匹配的数据集记录是一个网络数据集记录,则根据该记录的远端IP和当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录;进入步骤209;
步骤207,不成功,则根据当前线程ID、当前进程ID、当前时间等参数和疑似匹配策略找出文件数据集和网络数据集中符合疑似匹配条件的特征码记录,进行疑似匹配;
步骤208,是疑似匹配,则根据该特征码记录的文件名、文件所在目录或远端IP、当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个疑似文件跟踪记录;
步骤209,结束。
所述的文件发送事件的发生是在进行网络发送操作时,进行网络文件发送识别,包括:步骤302:获取当前线程ID、当前进程ID、远端IP地址和网络发送数据缓冲区;
步骤303:根据匹配策略在文件数据集找出需要匹配的特征码记录;
步骤304,将步骤303中得到的特征码记录与网络文件发送时发送数据缓冲区中数据进行特征匹配;
步骤305,匹配是否成功;
步骤306,匹配成功,则根据当前网络发送的远端IP地址和该特征码记录的文件名、文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录,进入步骤309;
步骤307,匹配不成功,根据当前线程ID、当前进程ID、当前时间等参数和疑似匹配策略找出文件数据集中符合疑似匹配条件的特征码记录;
步骤308,根据当前网络发送的远端IP地址、特征码记录的文件名、文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个疑似文件跟踪记录,给出描述疑似发送文件记录;
步骤309,退出。
所述的网络接收事件的发生是在进行网络接收操作时,提取特征码,并在文件写入时,进行匹配,包括:
步骤402:从网络接收的数据缓冲区中提取特征码;
步骤403,将步骤402中提取的特征码和远端IP地址、线程ID、进程ID、当前时间等信息生成网络接收数据集记录;
步骤404,根据网络数据集的更新策略判断网络数据集需要添加新的特征码记录或者更新原有相关特征码记录;
步骤405,需要添加新的特征码记录,则添加特征码记录到网络数据集中,进入步骤407;
步骤406,当需要更新原有相关特征码,则更新网络数据集;
步骤407,退出。
所述的提取特征码的方法是从文件读取的内容中或者从网络接收的内容中直接复制其中的一段数据或者多段数据作为特征码的方法,或根据文件读取的内容或者从网络接收的内容中的部分或者全部数据为计算依据,使用算法计算出一个结果值,然后以该结果值作为特征码的方法。
所述的算法包含但不限于crc或md5。
所述的文件数据集的更新策略包括:
1)读取的文件名为关键字的特征码记录更新策略,即同一文件的读取内容特征只保留一条记录,新的特征码纪录覆盖相同文件的旧纪录,或者直接丢弃新的特征码纪录,仍保留原有特征码记录;
2)被读取的文件名 + 读取发生时间为关键字的特征码记录更新策略,即同一文件的每次读取的内容特征均产生一个新特征码记录;
3)线程ID + 被读取的文件名为关键字的特征码记录更新策略,即相同线程对相同文件的读取只产生一个特征码记录;同一线程对同一文件多次读取时,新的记录覆盖旧记录,或者直接丢弃新记录,仍保留原有记录;
4)进程ID + 被读取的文件名 + 读取发生时间为关键字的特征码记录更新策略,即任何线程对任何文件的每次读取,均产生一个新的特征码记录。
所述的网络数据集的更新策略包括:
1)线程ID + 网络远端IP地址为关键字的更新策略,即同一线程对同一远端主机(IP)的每次数据接收只保留一条特征码记录,新的记录直接覆盖旧记录;
2)线程ID + 网络远端IP地址 + 数据接收时间为关键字的更新策略,即任意线程对任意远端主机的每次数据接收均产生一条新的特征码记录。
所述的特征匹配包括:
1)以线程为单位进行关联匹配,即在进行内容匹配时,仅仅匹配本线程读取、接收的内容特征码,对其他线程操作的文件和网络收发的数据不做匹配;
2)以进程为单位进行关联匹配,即在进行内容匹配时,仅仅匹配本进程读取、接收和发送的内容特征码,对其他进程操作的文件和网络收发的数据不做匹配;
3)以整个计算机为单位进行关联匹配,即在进行文件内容匹配时,匹配本机所有进程打开、接收和发送的内容特征码;
所述的疑似匹配包括:
1)以线程相同的所有特征码记录为疑似匹配记录,即大多数程序进行文件复制或文件收发时,读写文件往往是同一个线程,收发文件和读写文件也往往是同一个线程,据此可以认为,同一线程在写入文件时,它此前已经读取的文件为疑似复制源文件;它此前从网络上读取的数据为疑似文件数据来源;同样的,同一线程在发送数据文件时,它此前已经读取的文件为疑似发送文件;
2)以进程相同的所有特征码记录作为疑似匹配记录,考虑到多线程程序有可能将数据收发和文件读写用不同的线程实现,将同一进程的所有特征码记录均做为疑似匹配记录;
3)以时间最近的若干个特征码记录作为疑似匹配记录,这个策略基于如下事实: 在任何进程进行文件复制或收发时,必然会先读取或接收数据(从文件或者网络),然后进行发送或写入,这两个动作在发生时序上除了存在确定先后关系外,往往时间相差不会很大,因此,可以确定一个适当的时间长度作为尺度,在找不到精确匹配的情况下,以该时间段内的所有特征码记录作为疑似匹配记录;
4)以全部特征码记录作为疑似匹配记录,这种策略用于大范围地框定疑似匹配记录,确保没有遗漏;
5)不做疑似匹配,即所有特征码记录均不视为疑似匹配记录。
所述的特征匹配是直接相同或通过算法得到的结果相同。
本发明的优点是:由于当计算机中(至少包括计算机系统硬件和在该硬件系统上运行的操作系统)的任何文件被计算机中的任何程序进行复制、加密复制、网络传送、网络加密传送时,通过在文件读取内容中提取特征码,当在文件写入时根据写入内容匹配,以便判断出文件复制事件的发生;或者在网络发送时根据网络发送内容匹配,以便判断文件发送事件的发生;通过在网络接收数据时,提取特征码, 并在文件写入时根据写入内容匹配,判断出文件接收事件的发生。也就是说,通过上述的过程,能够回答任何文件什么时间通过什么程序被复制成了什么文件,或者被发送到了什么IP地址,从而知道文件的来源和去向;当来自网络上的文件被下载到本地主机上保存成一个文件时,能够知道该文件来自网上什么IP地址,真正实现文件跟踪。概括地说,计算机文件跟踪方法是指:能够监控、判断和记录计算机中文件的复制、发送、接收等行为,识别文件之间复制、网络接收和发送等关联关系的方法。
附图说明
下面结合具体实施例附图对本发明作进一步说明:
图1是本发明实施例主流程图;
图2是提取特征码流程图;
图3文件复制识别流程图;
图4网络文件发送识别操作流程;
图5网络文件接收操作流程。
具体实施方式
为了对本发明有一个清楚的了解,现就本发明所称计算机文件跟踪方法进行一个说明:
如图1所示,至少包括用于存贮程序的存贮介质、控制存贮介质中的程序运行的处理器和存放程序运行中存放过程信息的缓冲单元,程序运行开始(001)后,处理器通过在步骤100文件读(操作)取内容中提取特征码(步骤101),当在(步骤200)文件写(操作)入时根据写入内容匹配,通过步骤201判断出文件复制事件的发生;或者在步骤300网络发送(操作)时根据网络发送内容匹配,通过步骤301判断文件发送事件的发生;通过在步骤400网络接收操作数据时,通过步骤401提取特征码, 并在文件写入时根据写入内容匹配,判断出文件接收事件的发生。
当计算机中(至少包括计算机系统硬件和在该硬件系统上运行的操作系统)的任何文件被计算机中的任何程序进行复制、加密复制、网络传送、网络加密传送时,能够识别这种事件的发生;也能够记录这种事件发生的详细信息,包含但不限于发生时间、源文件、源文件所在目录、目的文件或目的IP地址、本事件执行程序对应文件名称和所在目录等;能够回答任何文件什么时间通过什么程序被复制成了什么文件,或者被发送到了什么IP地址,从而知道文件的来源和去向。当来自网络上的文件被下载写入到本地主机上保存成一个文件时,能够知道该文件来自网上什么IP地址,真正实现文件跟踪。概括地说,计算机文件跟踪方法是指:能够监控、判断和记录计算机中文件的复制、发送、接收等行为,识别文件之间复制、网络接收和发送等关联关系的方法。
如图2所示,在文件读取内容中提取特征码,通过进入提取特征码处理程序。
步骤101,进入提取特征码程序;
步骤102,从文件读取的数据缓冲区中提取读取特征码;
步骤103,将步骤102中提取的特征码和文件名 、文件所在目录、线程ID、进程ID、当前时间等信息生成文件数据集记录;
步骤104,根据文件数据集更新策略和记录内容判断需要添加新的特征码记录或者更新原有相关特征码记录;
如果添加新的特征码记录,进入步骤105,添加特征码记录到文件数据集中;而后进入步骤107;
如果更新原有相关特征码记录,则进入步骤106,更新文件数据集中与本记录相关的那个特征码记录后进入步骤107;
步骤107,退出。
如图3所示,文件复制事件的发生是在进行文件写入或网络接收文件处理流程时进行识别,包括:
步骤201,进入文件复制事件处理程序;
步骤202,获取当前线程ID、当前进程ID和文件写入数据缓冲区;
步骤203,根据匹配策略在文件数据集和网络数据集中找出需要匹配的记录,
步骤204,将得到的记录与文件写入数据缓冲区中的内容进行匹配;
步骤205,检测匹配成功,成功执行步骤206,否则执行步骤207;
步骤206,如果匹配的该特征码记录是一个文件数据集记录,根据该特征码记录的文件名、文件所在目录和当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录;如果匹配的数据集记录是一个网络数据集记录,则根据该记录的远端IP和当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录;进入步骤209;
步骤207,不成功,则根据当前线程ID、当前进程ID、当前时间等参数和疑似匹配策略找出文件数据集和网络数据集中符合疑似匹配条件的特征码记录,进行疑似匹配;
步骤208,是疑似匹配,则根据该特征码记录的文件名、文件所在目录或远端IP、当前写入文件的文件名、当前写入文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个疑似文件跟踪记录;
步骤209,结束。
如图4所示,文件发送事件的发生是在进行网络发送操作时进行,包括:
步骤301,进行网络文件发送识别,
步骤302:获取当前线程ID、当前进程ID、远端IP地址和网络发送数据缓冲区;
步骤303:根据匹配策略在文件数据集找出需要匹配的特征码记录;
步骤304,将步骤303中得到的特征码记录与网络文件发送时发送数据缓冲区中数据进行特征匹配;
步骤305,匹配是否成功;
步骤306,匹配成功,则根据当前网络发送的远端IP地址和该特征码记录的文件名、文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个精确文件跟踪记录,进入步骤309;
步骤307,匹配不成功,根据当前线程ID、当前进程ID、当前时间等参数和疑似匹配策略找出文件数据集中符合疑似匹配条件的特征码记录;
步骤308,根据当前网络发送的远端IP地址、特征码记录的文件名、文件的所在目录、当前进程文件名、当前进程文件所在目录和当前时间等信息生成一个疑似文件跟踪记录,给出描述疑似发送文件记录;
步骤309,退出。
如图5所示,网络接收事件的发生是在进行网络接收操作时进行,包括:
步骤401,进行网络文件写入识别;
步骤402:从网络接收的数据缓冲区中提取特征码;
步骤403,将步骤402中提取的特征码和远端IP地址、线程ID、进程ID、当前时间等信息生成网络接收数据集记录;
步骤404,根据网络数据集的更新策略判断网络数据集需要添加新的特征码记录或者更新原有相关特征码记录;
步骤405,需要添加新的特征码记录,则添加特征码记录到网络数据集中,进入步骤407;
步骤406,当需要更新原有相关特征码,则更新网络数据集;
步骤407,退出。
本发明中匹配策略是匹配和疑似匹配:
1)匹配
是指用特征码记录中的特征码数据跟要匹配的缓冲区中的数据进行定位比较或者搜索查找。根据实际需要,可以有三种策略,说明如下:
1.1以线程为单位进行关联匹配
算法说明:在进行文件内容匹配时,仅仅匹配本线程读取、接收的内容特征码,对其他线程操作的文件和网络收发的数据不做匹配。
1.2以进程为单位进行关联匹配
算法说明:在进行文件内容匹配时,仅仅匹配本进程读取、接收和发送的内容特征码,对其他进程操作的文件和网络收发的数据不做匹配。
1.3以整个计算机为单位进行关联匹配
算法说明:在进行文件内容匹配时,匹配本机所有进程打开、接收和发送的内容特征码。
2) 疑似匹配
当计算机中的程序采用加密或压缩等内容变形方式复制文件;加密或压缩等内容变形的网络收发文件时,根据特征码进行匹配的方法不能得到精确匹配记录。在这种情况下,只能得到疑似匹配记录。疑似匹配的原理是:系统在进行文件写入时,此前已经进行了读取的文件或者已经接受到的网络数据均有可能是本文件的数据源;系统在进行网络数据发送时,在该发送动作前已经读取的文件内容有可能就是发送的数据源。据此,本发明给出如下5种策略,确定疑似匹配记录:
2.1以线程相同的所有特征码记录为疑似匹配记录。大多数程序进行文件复制或文件收发时,读写文件往往是同一个线程。收发文件和读写文件也往往是同一个线程,据此可以认为,同一线程在写入文件时,它此前已经读取的文件为疑似复制源文件;它此前从网络上读取的数据为疑似文件数据来源;同样的,同一线程在发送数据文件时,它此前已经读取的文件为疑似发送文件。
2.2以进程相同的所有特征码记录作为疑似匹配记录。考虑到多线程程序有可能将数据收发和文件读写用不同的线程实现,将同一进程的所有特征码记录均做为疑似匹配记录。
2.3以时间最近的若干个特征码记录作为疑似匹配记录。这个策略基于如下事实: 在任何进程进行文件复制或收发时,必然会先读取或接收数据(丛文件或者网络),然后进行发送或写入,这两个动作在发生时序上除了存在确定先后关系外,往往时间相差不会很大,因此,可以确定一个适当的时间长度作为尺度,在找不到精确匹配的情况下,以该时间段内的所有特征码记录作为疑似匹配记录。
2.4以全部特征码记录作为疑似匹配记录。这种策略用于大范围地框定疑似匹配记录,确保没有遗漏。
2.5不做疑似匹配,即所有特征码记录均不视为疑似匹配记录。
本发明中数据集的更新是当文件数据集和网络数据集添加记录时,可能发生数据记录内容部分或者全部重复,比如同一文件多次读取或网络同一个连接的多次收发。此时由数据集更新策略决定添加一个新记录,或者以新纪录内容更新旧有记录,或者直接丢弃新纪录。而且文件数据集和网络数据集的更新策略可以不同。
文件数据集的更新策略包括:
A、以被读取的文件名为关键字的特征码记录更新策略。即同一文件的读取内容特征只保留一条记录,新的特征码纪录覆盖相同文件的旧纪录,或者直接丢弃新的特征码纪录,仍保留原有特征码记录。
B、以被读取的文件名 + 读取发生时间为关键字的特征码记录更新策略。即同一文件的每次读取的内容特征均产生一个新特征码记录。
C 、以线程ID + 被读取的文件名为关键字的特征码记录更新策略。即相同线程对相同文件的读取只产生一个特征码记录;同一线程对同一文件多次读取时,新的记录覆盖旧记录,或者直接丢弃新记录,仍保留原有记录。
D、以线程ID + 被读取的文件名 + 读取发生时间为关键字的特征码记录更新策略。即任何线程对任何文件的每次读取,均产生一个新的特征码记录。
网络数据集的更新策略包括:
A、以线程ID + 网络远端IP地址为关键字的更新策略。即同一线程对同一远端主机(IP)的每次数据接收只保留一条特征码记录,新的记录直接覆盖旧记录。
B、以线程ID + 网络远端IP地址 + 数据接收时间为关键字的更新策略。即任意线程对任意远端主机的每次数据接收均产生一条新的特征码记录。
每一种计算机操作系统均公开性地提供了加载内核驱动的具体方法,以及拦截其文件系统、网络系统操作的系统调用。故本发明中的这四个拦截的实现方法是一个纯粹实现性工作,是完全公开的公知的方法。其具体实现方式跟具体的操作系统相关,不涉及本发明方法,亦不涉及任何专利性技术。故本发明不对它们的具体实现作进一步的描述。
本发明中数据特征码的提取和匹配算法包括:
直接提取特征码和计算式提取特征码,其中直接提取特征码是指从文件读取的内容中或者从网络接收的内容中直接提取连续或分散的若干字节作为该内容的特征码。 也就是从文件读取内容或者网络接收内容中直接复制其中的一段数据或者多段数据作为特征码的方法。而计算式提取特征码是指根据文件读取的内容或者从网络接收的内容中的部分或者全部数据为计算依据,通过crc或md5算法计算出一个结果值,然后以该结果值作为特征码的方法。
特征码匹配算法是指判断给定的特征码和给定的缓冲区内容是否匹配的运算方法。
特征码匹配算法跟提取特征码的方法密切相关。本发明并不限定任何一种特定的特征码提取方法和匹配算法,仅仅要求从文件读取和网络接收内容中提取特征值,做为文件写入或者网络发送时匹配的根据。无论使用哪种方法进行特征码提取和匹配,均不影响本发明的实施,故不作具体说明。
根据本发明实际实现的产品测试中得到的结果,在读取内容或者网络接收内容任意位置直接连续提取128字节以上的内容作为特征码时,实际匹配后产生误判的可能性已经非常低。