本发明涉及网络数据安全领域,具体涉及一种通过镜像网络流量提取文件的方法、装置,以及计算机可读介质。
背景技术:
企业对于网络流量的审计是防止企业敏感数据通过网络外泄的有效途径,但是随着计算机与网络技术的不断发展,流量审计也遇到了更大的挑战。
目前,大部分企业提取或监控对外传输的文件,仍然是通过在终端安装相关监控软件的方式完成的。然而这种方式需要在所有要监控的终端上安装监控软件,实施成本高,而且存在被绕过的风险,一旦用户在终端上主动关闭监控软件,甚至用自带电脑或手机进行文件传输,就无法进行监控。
技术实现要素:
本发明的目的在于提供一种通过镜像网络流量提取文件的方法、装置,以及计算机存储介质,解决现有技术中提取文件需要安装监控软件,实施成本高,又存在被绕过的风险等问题。
为实现上述目的,本发明采用了如下技术方案:
一种通过镜像网络流量提取文件的方法,包括以下步骤:
对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,所述网络数据流为在一定时间内具有一致的五元组的网络数据包的集合,输出所述网络数据流;
以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征;
若同时匹配到了所述ac自动机内置的文件起始特征及结束特征,则证明网络数据流中包含所要匹配的文件,且确定了文件的起始位置及截止位置,输出匹配后的网络数据流;
根据确定的文件位置提取所述匹配后的网络数据流中的文件。
进一步地,所述对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,还包括:
建立网络数据流管理系统,统一管理所有的网络数据流信息;
每当捕获监听的网络数据包时,根据其五元组信息,在所述网络数据流管理系统中查找是否有相应的网络数据流;
若存在相应的网络数据流,则从所述网络数据流管理系统中取得相应的网络数据流,并将网络数据包中的数据信息填充至所述相应的网络数据流;
若不存在对应的网络数据流,则在所述网络数据流管理系统中新建网络数据流,并记录网络数据流的创建时间。
进一步地,所述网络数据流管理系统会根据网络数据流的创建时间,判断所述网络数据流是否超时;
若所述网络数据流管理系统判断网络数据流已超时,则输出所述网络数据流。
进一步地,所述将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征,还包括:
若匹配到了所述ac自动机内置的文件起始特征,未匹配到结束特征,则证明生成所述ac自动机时未定义该文件的结束特征,网络数据流中同样包含所要匹配的文件,且确定了文件的起始位置,输出匹配后的网络数据流。
进一步地,所述根据确定的文件位置提取所述匹配后的网络数据流中的文件后,还包括:
将提取的文件存储在临时目录;
计算所述文件的哈希值,用计算得到的哈希值重命名所述文件;
将重命名后的文件移动到最终存储目录,添加数据库记录。
为实现上述目的,本发明提供了一种通过镜像网络流量提取文件的装置,包括:
会话还原模块,用于对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,所述网络数据流为在一定时间内具有一致的五元组的网络数据包的集合,输出所述网络数据流;
特征匹配模块,用于以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征;
若同时匹配到了所述ac自动机内置的文件起始特征及结束特征,则证明网络数据流中包含所要匹配的文件,且确定了文件的起始位置及截止位置,输出匹配后的网络数据流;
若匹配到了所述ac自动机内置的文件起始特征,未匹配到结束特征,则证明生成所述ac自动机时未定义该文件的结束特征,网络数据流中同样包含所要匹配的文件,且确定了文件的起始位置,输出匹配后的网络数据流;
文件提取模块,用于根据确定的文件位置提取所述匹配后的网络数据流中的文件。
进一步地,所述装置还包括网络数据流管理系统,其统一管理所有的网络数据流信息;
所述会话还原模块进一步配置为:
每当捕获监听的网络数据包时,根据其五元组信息,在所述网络数据流管理系统中查找是否有相应的网络数据流;
若存在相应的网络数据流,则从所述网络数据流管理系统中取得相应的网络数据流,并将网络数据包中的数据信息填充至所述相应的网络数据流;
若不存在对应的网络数据流,则在所述网络数据流管理系统中新建网络数据流,并记录网络数据流的创建时间。
进一步地,所述装置还包括存储模块,其包括临时存储目录、最终存储目录及数据库;其中:
所述临时目录用于临时存储自所述匹配后的网络数据流中提取的文件;随后计算所述文件的哈希值,用计算得到的哈希值重命名所述文件;
所述最终存储目录用于存储以哈希值重命名后的文件;
所述数据库用于记录以哈希值重命名后的文件,以供检索和展示。
进一步地,所述数据库为mysql数据库。
为实现上述目的,本发明还提供了一种计算机可读介质,其包括计算机程序指令,当执行所述计算机程序指令时,执行上述方法之一。
本发明的有益效果如下:
本发明提供了一种通过镜像网络流量提取文件的方法、装置,以及计算机存储介质,简化了文件提取的部署流程,无需改变现有流程和网络结构,又能为流量审计和病毒检测提供条件,而且通过镜像网络流量提取分件,不存在被绕过的风险,增强了企业安全监控的涵盖范围。
附图说明
图1为本发明公开的通过镜像网络流量提取文件的流程示意图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
图1为本发明公开的通过镜像网络流量提取文件的流程示意图,如图1所示,本发明公开了一种通过镜像网络流量提取文件的方法,包括以下步骤:
对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,所述网络数据流为在一定时间内具有一致的五元组的网络数据包的集合,输出所述网络数据流;
以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征;
若同时匹配到了所述ac自动机内置的文件起始特征及结束特征,则证明网络数据流中包含所要匹配的文件,且确定了文件的起始位置及截止位置,输出匹配后的网络数据流;
根据确定的文件位置提取所述匹配后的网络数据流中的文件。
可选地,所述网络数据流以下述形式定义:
其中,flow代表网络数据流;
srcip代表源ip地址(sourceip);
srcport代表源端口(sourceport);
destip代表目的ip地址(destinyip);
destport代表目的端口(destinyport);
可选地,所述以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,可以通过下述形式呈现:
可选地,所述通过状态变换判断是否匹配到了文件特征,可以通过下述形式呈现:
进一步地,所述对监听的网络数据包进行分析前,还包括:
通过交换机或路由器,将一个或多个端口的原始网络流量转发到一个指定的设备端口,以实现对网络数据的监听。
进一步地,所述对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,还包括:
建立网络数据流管理系统,统一管理所有的网络数据流信息;
每当捕获监听的网络数据包时,根据其五元组信息,在所述网络数据流管理系统中查找是否有相应的网络数据流;
若存在相应的网络数据流,则从所述网络数据流管理系统中取得相应的网络数据流,并将网络数据包中的数据信息填充至所述相应的网络数据流;
若不存在对应的网络数据流,则在所述网络数据流管理系统中新建网络数据流,并记录网络数据流的创建时间。
可选地,所述网络数据流管理系统以下述形式定义:
其中,flowpool代表所述网络数据流管理系统。
可选地,所述在网络数据流管理系统中查找是否有相应的网络数据流,可以通过下述形式呈现:
可选地,所述在网络数据流管理系统中新建网络数据流,并记录网络数据流的创建时间,可以通过下述形式呈现:
进一步地,所述将网络数据包中的数据信息填充至所述相应的网络数据流,包括:
如果网络数据包的传输层协议为tcp,则根据tcp头部标记的偏移进行填充;
如果网络数据包的传输层协议为udp,则按照顺序进行填充。
进一步地,所述网络数据流管理系统会根据网络数据流的创建时间,判断所述网络数据流是否超时;
若所述网络数据流管理系统判断网络数据流已超时,则输出所述网络数据流。
进一步地,所述以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,采用的是aho-corasick算法,时间复杂度为o(n),与特征的数量及长度无关。
进一步地,所述将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征,还包括:
若匹配到了所述ac自动机内置的文件起始特征,未匹配到结束特征,则证明生成所述ac自动机时未定义该文件的结束特征,网络数据流中同样包含所要匹配的文件,且确定了文件的起始位置,输出匹配后的网络数据流。
本发明定义了部分文件的起始特征及结束特征,包括:
压缩类:
zipstart:pk\003\004ziparchivedata
zipfooter:pk\x05\x06endofziparchive
rarstart:\x52\x61\x72\x21\x1a\x07
rpmstart:0xedabeedb
jarstart:jarcs
tarstart:gnu\x20tar-
文档类:
pdfstart:%pdf-
可执行类:
elfstart:\177elf
pestart:mz
所述生成ac自动机时未定义该文件的结束特征,是因为部分文件不存在结束特征。
通过定义文件的起始特征和结束特征,可以更精确地匹配出存在结束特征的文件。
进一步地,所述根据确定的文件位置提取所述匹配后的网络数据流中的文件后,还包括:
将提取的文件存储在临时目录;
计算所述文件的哈希值,用计算得到的哈希值重命名所述文件;
将重命名后的文件移动到最终存储目录,添加数据库记录。
优选地,所述计算文件的哈希值采用的算法为sha256,所述计算得到的哈希值为hash256。
在一些应用场景里,企业可以对员工通过网络外发的文件进行监听并提取,还可以结合机器学习技术,自动判断提取的文件是否为企业机密文件,优化网络流量审计的流程。
此外,在一些应用场景里,企业还可以对流入的网络数据进行检测,从监听的网络下行流量中提取文件,对提取的文件进行分析。这里的待分析文件可以包括(但不限于)可疑文件,如疑似携带(或感染)有网络病毒(如木马病毒、蠕虫病毒等)的文件或恶意软件等。
企业可以将提取的待分析文件上传至第三方服务网站,从而可以对待分析文件进行检测。这里的第三方服务网站可以是提供可疑文件分析服务的网站,如virustotal平台。该平台可以使用多种反病毒引擎对上传的待分析文件进行检测,以判断该文件是否被病毒以及各类恶意软件感染。
结合图1,本发明还公开了一种通过镜像网络流量提取文件的装置,包括:
会话还原模块,用于对监听的网络数据包进行分析,根据网络数据包的五元组信息将其分配给特定的网络数据流,所述网络数据流为在一定时间内具有一致的五元组的网络数据包的集合,输出所述网络数据流;
特征匹配模块,用于以需要匹配的文件的起始特征及结束特征作为状态节点,生成ac自动机,将待匹配的所述网络数据流输入所述ac自动机,通过状态变换判断是否匹配到了文件特征;
若同时匹配到了所述ac自动机内置的文件起始特征及结束特征,则证明网络数据流中包含所要匹配的文件,且确定了文件的起始位置及截止位置,输出匹配后的网络数据流;
若匹配到了所述ac自动机内置的文件起始特征,未匹配到结束特征,则证明生成所述ac自动机时未定义该文件的结束特征,网络数据流中同样包含所要匹配的文件,且确定了文件的起始位置,输出匹配后的网络数据流;
文件提取模块,用于根据确定的文件位置提取所述匹配后的网络数据流中的文件。
进一步地,所述装置还包括:
转发模块,用于将一个或多个端口的原始网络流量转发到一个指定的设备端口,以实现对网络数据的监听。
进一步地,所述装置还包括网络数据流管理系统,其统一管理所有的网络数据流信息;
所述会话还原模块进一步配置为:
每当捕获监听的网络数据包时,根据其五元组信息,在所述网络数据流管理系统中查找是否有相应的网络数据流;
若存在相应的网络数据流,则从所述网络数据流管理系统中取得相应的网络数据流,并将网络数据包中的数据信息填充至所述相应的网络数据流;
若不存在对应的网络数据流,则在所述网络数据流管理系统中新建网络数据流,并记录网络数据流的创建时间。
进一步地,所述装置还包括存储模块,其包括临时存储目录、最终存储目录及数据库;其中:
所述临时目录用于临时存储自所述匹配后的网络数据流中提取的文件;随后计算所述文件的哈希值,用计算得到的哈希值重命名所述文件;
所述最终存储目录用于存储以哈希值重命名后的文件;
所述数据库用于记录以哈希值重命名后的文件,以供检索和展示。
优选地,所述数据库为mysql数据库。
作为另一方面,本申请还提供了一种计算机可读介质。这里的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。该计算机可读介质可以是上述各实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有计算机程序,当计算机程序被处理器执行时,使得该电子设备可以实现上述任一方法。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。