CN107666486A - 一种基于报文协议特征的网络数据流恢复方法及系统 - Google Patents
一种基于报文协议特征的网络数据流恢复方法及系统 Download PDFInfo
- Publication number
- CN107666486A CN107666486A CN201710890494.9A CN201710890494A CN107666486A CN 107666486 A CN107666486 A CN 107666486A CN 201710890494 A CN201710890494 A CN 201710890494A CN 107666486 A CN107666486 A CN 107666486A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- data message
- data flow
- application layer
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Abstract
本发明提供一种基于报文协议特征的网络数据流恢复方法及系统,所述方法包括:获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;对属于同一数据流的数据报文进行重组,对数据流进行恢复。本发明根据报文协议特征对数据报文进行实时解析、分类及重组,能够准确完整地恢复出数据流。
Description
技术领域
本发明涉及互联网技术领域,更具体地,涉及一种基于报文协议特征的网络数据流恢复方法及系统。
背景技术
互联网的迅速发展给社会生产和人们生活方式带来了巨大的变革,用户通过网络,可以快速地交互信息与数据,但在这个过程中也存着巨大的安全隐患。网络黑客常常利用互联网来传播各种恶意软件,例如将木马病毒等放在网页中让用户下载,或者将它们附加在电子邮件中发送给用户。因此有必要对网络中传输的数据流进行监控,分析网络运行的状态及用户行为,帮助网络管理员及时发现其中的安全问题,保证网络正常运行。
要对数据流进行监控,首先需要将数据流进行恢复。数据流恢复是指将网络数据报文进行过滤和重组,恢复出这些数据报文所携带的原始数据流。由于现有的很多业务应用直接使用标准协议的知名端口进行传输,目前的数据流恢复方法主要基于各应用层协议通常使用的端口来判断该数据包所使用的应用层协议后进行过滤、重组,例如80端口判断为HTTP协议,21端口判断为FTP协议。
这种基于端口进行数据流恢复方法的缺陷在于无法准确、全面地分析出数据包的应用层协议,因为HTTP协议可以使用其它端口,而80端口也可能被其它协议所使用。特别是现在端口转换技术的广泛使用以及隐蔽通信技术的不断提高,网络中大部分流量已经不再使用标准端口进行传输。
发明内容
为了克服基于端口进行数据流恢复方法所存在的无法准确、全面地分析出数据包的应用层协议的问题,本发明提供一种基于报文协议特征的网络数据流恢复方法及系统。
根据本发明的一个方面,提供一种基于报文协议特征的网络数据流恢复方法,包括:
S1,获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
S2,根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
S3,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;
S4,对属于同一数据流的数据报文进行重组,对数据流进行恢复。
其中,所述步骤S3还包括:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
其中,在步骤S3中所述根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文的步骤之后,还包括:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
其中,步骤S1中对所数据报文进行解析的步骤进一步包括:
对所述数据报文依次进行以太网数据帧解析、IP报文解析和TCP/UDP报文解析。
其中,所述数据报文标识符为一个四元组DataPacketID=<SrcIP,SrcPort,DstIP,DstPort>,其中,SrcIP、SrcPort、DstIP及DstPort分别表示数据报文的源IP地址,源端口,目的IP地址和目的端口。
其中,步骤S3中对所述数据报文进行应用层解析的步骤进一步包括:
根据应用层协议的特征字段,判断所述数据报文所使用的应用层协议,并提取所需要的特征信息,为所述数据报文生成数据流标识符。
其中,所述数据流标识符为一个四元组DataFlowID=<Protocol,FlowName,Timestamp,DataPacketID>,其中,Protocol、FlowName、Timestamp及DataPacketID分别表示传输数据流的应用层协议,被传输数据流的名称,数据报文的发送时间戳,传输数据流的数据报文标识符。
根据本发明的另一个方面,提供一种基于报文协议特征的网络数据流恢复系统,包括:
数据报文采集与解析模块,用于获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
数据流分类模块,用于根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
应用层解析模块,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;
数据报文重组模块,用于对属于同一数据流的数据报文进行重组,对数据流进行恢复。
其中,所述数据流分类模块还用于:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
其中,所述应用层解析模块还用于:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
本发明提出的一种基于报文协议特征的网络数据流恢复方法及系统,能够根据报文协议的特征将截获的数据报文进行实时的解析、分类及重组,从而全面准确完整地恢复出数据流,可广泛应用于网络管理、安全监控、网络行为分析等领域。
附图说明
图1为本发明一实施例提供的一种基于报文协议特征的网络数据流恢复方法的流程示意图;
图2为本发明一实施例提供的以太网数据帧的报文格式示意图;
图3为本发明另一实施例提供的一种基于报文协议特征的网络数据流恢复系统的结构示意图;
图4为本发明另一实施例所提供的接入入侵检测系统的示意图;
图5为根据本发明另一实施例提供的基于报文协议特征的网络数据恢复系统PSNDR的结构示意图;
图6为本发明另一实施例提供的PSNDR系统运行的流程示意图;
图7为本发明另一实施例提供的PSNDR系统的报文解析过程的示意图;
图8为本发明另一实施例提供的PSNDR系统的协议分析与数据恢复管理子系统的管理界面;
图9为本发明另一实施例提供的PSNDR系统的数据查询与显示子系统的主界面。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
如图1所示,为本发明一实施例提供的一种基于报文协议特征的网络数据流恢复方法的流程示意图,包括:
S1,获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
S2,根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
S3,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为传输数据流的首个报文,则创建一个新的数据流;
S4,对属于同一数据流的数据报文进行重组,对数据流进行恢复。
网络中,数据流通常被切分为多个数据报文进行传送,为了恢复出某个数据流,必须获得负载该数据流的所有报文。只有具有相同标识符的数据报文才能被用于重组某个数据流,遗漏或误判某个数据报文都会破坏恢复后数据流的正确性与完整性。报文协议特征是指标识所述数据报文在网络中传输所使用协议的固定字段或关键字。
具体地,步骤S1,获取网络中的数据报文是指采用抓包软件对网络数据进行监听,获取网络中所有的数据报文。在这个步骤中,可以使用任何抓包软件来截获网络中的所有数据报文,也可以预设一定的监听规则来抓取符合规则的数据报文。在开启监听时,需要给内网的节点分配一个全局IP地址,并进行相应的初始化工作,包括初始化数据报文标识符集合S_DataPacketID和数据流标识符集合S_DataFlowID,数据报文标识符集合用于存储后续步骤中所获得的数据报文标识符,数据流标识符集合用于存储后续步骤中所或的的数据流报文标识符。
上述数据采集过程在网络中捕获到的原始数据报文是一个以太网数据帧,以太网数据帧的报文格式如图2所示。必须对以太网数据帧进行各层协议解析才能得到所需要的应用层报文,因此,开始网络数据报文的捕获后,对所捕获到的数据报文依次进行以太网数据帧解析、IP报文解析和TCP/UDP报文解析,依次解析出以太网数据帧的头部信息、IP报文的头部信息和TCP/UDP报文头部,获得数据报文标识符。
其中,所述数据报文标识符为一个四元组DataPacketID=<SrcIP,SrcPort,DstIP,DstPort>,其中,SrcIP、SrcPort、DstIP及DstPort分别表示数据报文的源IP地址,源端口,目的IP地址和目的端口。
步骤S2对所捕获到的数据报文进行数据流分类,根据数据报文解析所获得的数据报文标识符DataPacketID对该报文进行分类,判断该数据报文是否属于某个已存在的数据流的后继报文,有2种可能的结果:
(1)如果DataPacketID属于某个已存在数据流的后继报文,则将其插入该已存在数据流的报文队列中,接下来进入步骤S4;
判断的具体过程为:如果报文的标识符DataPacketID属于报文标识符集合S_DataPacketID,则DataPacketID属于某个已存在数据流的后继报文。
(2)如果DataPacketID不属于某个已存在数据流的后继报文,则说明该报文要么是属于一个新的数据流,要么该报文是非法报文,那么,进入步骤S3进一步地确定该报文的类型。
判断的具体过程为:在报文标识符集合S_DataPacketID中找不到该报文的标识符DataPacketID,则说明该报文不属于某个已存在数据流的后继报文,需要进入步骤S3对该报文进行进一步的判断。
步骤S3,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,以进一步地分析该数据报文。数据报文依次经过以太网数据帧解析、IP报文解析和TCP/UDP报文解析后成为了应用层报文,应用层协议解析则是根据协议的特征对应用层报文进行分析,判断该报文使用了哪个应用层协议,并从中提取所需要的特征信息,为其分配一个数据流标识符,所述特征信息用于生成数据流标识符。
其中,数据流标识符(DataFlowID),用于标识两台计算机之间通过某种应用层协议传输的数据流。所述数据流标识符为一个四元组DataFlowID=<Protocol,FlowName,Timestamp,DataPacketID>,其中,Protocol、FlowName、Timestamp及DataPacketID分别表示传输数据流的应用层协议,被传输数据流的名称,数据报文的发送时间戳,传输数据流的数据报文标识符。
然后,根据应用层解析所获得的数据流标识符对该数据报文进行取舍。根据所获得的数据流标识符判断该数据报文是否为传输某个数据流的首个报文,如果是,则为其创建一个新的数据流;如果该数据报文不是某个被传输数据流的首个报文,由于经过步骤S2获知该数据报文也不是某个已存在的数据流的后继报文,则说明该数据报文是非法报文,则需要丢弃该数据报文。
根据所获得的数据流标识符判断所述数据报文是否为传输某个数据流的首个报文具体是根据数据流标识符所包含的四个信息:Protocol、FlowName、Timestamp及DataPacketID来进行判断的。可以通过比较多个数据报文的数据流标识符所包含的信息来综合判断某个数据报文是首报文还是非法报文。比如,Timestamp所表示的发送时间戳与其他报文的时间戳差别很大的报文可能是非法报文,源目的IP地址间不匹配的某个报文可能是非法报文,然后根据数据流标识符中的其他信息进一步地确认。
步骤S4,数据报文重组主要负责提取数据包中的负载数据,重组成完整的数据包并提取出其中的应用层报文,然后根据应用层报文的数据流标识符恢复出该报文负载的数据流。
由于IP协议提供的是不可靠的无连接服务,经过网络传输,IP报文有可能丢失而无法到达目的,或者先发送的IP报文也有可能晚于后发送的IP分组到达。当一个IP报文PakN被截获时,可能出现以下几种情况,需要分别进行处理:
1)PakN是重复报文。这种情况的处理最为简单,只需将重复报文PakN丢弃即可;
2)PakN被截获时,其序号前一部分报文尚未被截获。对于这种情况,PakN应该暂时缓存,等待延迟报文被截获;
3)PakN是按照预期顺序被截获的。这种情况处理起来相对复杂,虽然新的报文无需重组,但是它可能会激活缓存中提前到达的分组,因此还需要对缓存中提前截获的数据报文进行处理,将其中序号符合重组要求的报文与之前的报文进行重组,直到获得最后一个数据报文为止。
本发明实施例提出的一种基于报文协议特征的网络数据流恢复方法,能够根据报文协议的特征将截获的数据报文进行实时的解析、分类及重组,从而全面准确完整地恢复出数据流,可广泛应用于网络管理、安全监控、网络行为分析等领域。
本发明另一实施例,在上述述实施例的基础上,所述步骤S3还包括:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
具体地,在步骤S2对所捕获到的数据报文进行数据流分类,判断所述数据报文是否为已存在数据流的后继报文时,若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中,然后不需要对该数据报文进行应用层解析即可直接进入步骤S4,等待同一数据流的所有报文到到达后进行重组,以恢复该数据报文所负载的数据流。
基于上述实施例,在步骤S3中所述根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文的步骤之后,还包括:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
具体地,若所述数据报文是非法报文,则说明该数据报文并没有负载合法数据流,则对该数据报文进行丢弃,这一步骤实现了对非法数据报文的过滤。
基于上述各实施例,步骤S1中对所数据报文进行解析的步骤进一步包括:
对所述数据报文依次进行以太网数据帧解析、IP报文解析和TCP/UDP报文解析。
具体地,数据报文解析执行步骤如下:
1)解析以太网数据帧。以目前使用最为广泛的是DIX EthernetV2协议为例,解析出来后,其帧头含有6个字节的源MAC地址字段、6个字节的目的MAC地址字段以及2个字节的网络协议类型字段,帧尾的校验序列是一个长度为4个字节的字段;
2)解析IP报文。去掉以太帧头部后的数据即为IP报文,目前使用的IP协议主要是IPv4。可以从IP报文的头部中获得IP头部的长度,报文源IP地址SrcIP以及目标IP地址DstIP;
3)解析TCP/UDP报文。网络传输层有TCP和UDP两种协议,需要根据不同协议类型分别进行解析。以TCP报文为例,从TCP头部获得源端口、目的端口、序列号以及头部的长度。在执行完TCP报文的解析后,就可以获得该数据报文的标识符DataPacketID=<SrcIP,SrcPort,DstIP,DstPort>。
基于上述各实施例,步骤S3中对所述数据报文进行应用层解析的步骤进一步包括:
根据应用层协议的特征字段,判断所述数据报文所使用的应用层协议,并提取所需要的特征信息,为所述数据报文生成数据流标识符。
具体地,应用层解析的主要功能是根据协议的特征对应用层报文进行分析,判断它们使用了哪个应用层协议,并从中提取所需要的特征信息,最后返回一个数据流标识符DataFlowID。应用层解析模块主要实现HTTP,FTP,SMTP和POP3等几种常见的应用层协议的解析过程:
①HTTP协议的解析。根据HTTP协议的规定,客户端向服务器端发送GET请求开始文件的传输会话,而文件内容则伴随着服务器端的响应发给客户端。本方法通过检查报文的数据载荷头部是否为“GET”来判断该报文是否属于HTTP文件传送的起始会话过程,然后将服务器端响应的数据流加入到缓存的流分类列表中。如果反方向的数据报文负载具有形如“HTTP/*.*200”的头部,则表示这些数据报文中负载了服务器所发送的文件的数据,需要将这部分报文缓存起来用于随后的数据重组。
②FTP协议的解析。FTP协议将控制与数据分为两个不同的网络连接,通讯双方在会话中协商数据连接的地址和端口号,因此必须连续监听控制连接的若干次会话才能够获得充足的信息。FTP传输文件的格式分为PORT和PASV两种模式,需要分别进行解析:
PORT模式的解析。PORT模式以载荷中“PORT”字符串开头为特征,其命令格式为“PORTh1,h2,h3,h4,p1,p2”(其中h1、h2、h3和h4分别对应服务器传输数据所使用的IP地址的四段十进制数,p1和p2分别表示服务器传输数据的端口的高8位与低8位的十进制数)。解析器从PORT命令获取网络地址及端口等信息,然后通过监听该连接中的RETR或STOR命令就可以获取所需的数据报文。
PASV模式的解析。PASV模式以载荷中“PASV”字符串开头为特征,传输数据所使用的网络地址与端口存在于PASV模式的227响应报文中,其格式为“Entering Passive Mode(h1,h2,h3,h4,p1,p2)”(其中参数的含义与PORT命令相同),此后客户端将在这个网络连接中会发送RETR或者STOR命令来上传或下载某个文件。
③SMTP协议的解析。SMTP协议是邮件客户端向服务器发送邮件所使用的协议,根据协议的规定,当客户端向服务器端发送电子邮件时,负载电子邮件数据的报文以“DATA”开头,邮件的正文包括附件都会在同一个连接中沿同一方向传输。只需将该连接中的所有数据包文进行缓存后进行重组即可。
④POP3协议的解析。POP3协议是邮件客户端向服务器端请求接收电子邮件时所使用的通讯协议。当客户端向服务器端发送接收请求时,请求报文以“Received”开头,而随后服务器端所发送过来的数据报文就负载了所请求的电子邮件的相关数据。只需要将这些数据报文缓存后进行重组即可。
如图3所示,为本发明另一实施例提供的一种基于报文协议特征的网络数据流恢复系统的结构示意图,包括:数据报文采集与解析模块31、数据流分类模块32、应用层解析模块33和数据报文重组模块34,其中,
数据报文采集与解析模块31,用于获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
数据流分类模块32,用于根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
应用层解析模块33,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;
数据报文重组模块34,用于对属于同一数据流的数据报文进行重组,对数据流进行恢复。
具体地,数据报文采集与解析模块31用于获取网络中的数据报文,即采用抓包软件对网络数据进行监听,获取网络中所有的数据报文。在这个步骤中,可以使用任何抓包软件来截获网络中的所有数据报文,也可以预设一定的监听规则来抓取符合规则的数据报文。在开启监听时,需要给内网的节点分配一个全局IP地址,并进行相应的初始化工作,包括初始化数据报文标识符集合S_DataPacketID和数据流标识符集合S_DataFlowID。
上述数据采集过程在网络中捕获到的原始数据报文是一个以太网数据帧,必须对以太网数据帧进行各层协议解析才能得到所需要的应用层报文,因此,开始网络数据报文的捕获后,对所捕获到的数据报文依次进行以太网数据帧解析、IP报文解析和TCP/UDP报文解析,依次解析出以太网数据帧的头部信息、IP报文的头部信息和TCP/UDP报文头部,获得数据报文标识符。
其中,所述数据报文标识符为一个四元组DataPacketID=<SrcIP,SrcPort,DstIP,DstPort>,其中,SrcIP、SrcPort、DstIP及DstPort分别表示数据报文的源IP地址,源端口,目的IP地址和目的端口。
数据流分类模块32用于对所捕获到的数据报文进行数据流分类,根据数据报文解析所获得的数据报文标识符DataPacketID对该报文进行分类,判断该数据报文是否属于某个已存在的数据流的后继报文,有2种可能的结果:
(1)如果DataPacketID属于某个已存在数据流的后继报文,则将其插入该已存在数据流的报文队列中,接下来进入步骤S4;
判断的具体过程为:如果报文的标识符DataPacketID属于报文标识符集合S_DataPacketID,则DataPacketID属于某个已存在数据流的后继报文。
(2)如果DataPacketID不属于某个已存在数据流的后继报文,则说明该报文要么是属于一个新的数据流,要么该报文是非法报文,那么,进入步骤S3进一步地确定该报文的类型。
判断的具体过程为:在报文标识符集合S_DataPacketID中找不到该报文的标识符DataPacketID,则需要进入步骤S3对该报文进行进一步的判断。
应用层解析模块33用于若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,以进一步地分析该数据报文。数据报文经过依次经过以太网数据帧解析、IP报文解析和TCP/UDP报文解析后成为了应用层报文,应用层协议解析则是根据协议的特征对应用层报文进行分析,判断该报文使用了哪个应用层协议,并从中提取所需要的特征信息,为其分配一个数据流标识符。
其中,数据流标识符(DataFlowID),用于标识两台计算机之间通过某种应用层协议传输的数据流。所述数据流标识符为一个四元组DataFlowID=<Protocol,FlowName,Timestamp,DataPacketID>,其中,Protocol、FlowName、Timestamp及DataPacketID分别表示传输数据流的应用层协议,被传输数据流的名称,数据报文的发送时间戳,传输数据流的数据报文标识符。
然后,根据应用层解析所获得的数据流标识符对该数据报文进行取舍。根据所获得的数据流标识符判断该数据报文是否为传输某个数据流的首个报文,如果是,则为其创建一个新的数据流;如果该数据报文不是某个被传输数据流的首个报文,由于经过步骤S2获知该数据报文也不是某个已存在的数据流的后继报文,则说明该数据报文是非法报文,则需要丢弃该数据报文。
根据所获得的数据流标识符判断所述数据报文是否为传输某个数据流的首个报文具体是根据数据流标识符所包含的四个信息:Protocol、FlowName、Timestamp及DataPacketID来进行判断的。可以通过比较多个数据报文的数据流标识符所包含的信息来综合判断某个数据报文是首报文还是非法报文。比如,Timestamp所表示的发送时间戳与其他报文的时间戳差别很大的报文可能是非法报文,源目的IP地址间不匹配的某个报文可能是非法报文,然后根据数据流标识符中的其他信息进一步地确认。
数据报文重组模块34用于提取数据包中的负载数据,重组成完整的数据包并提取出其中的应用层报文,然后根据应用层报文的标识符恢复出该报文负载的数据流。
由于IP协议提供的是不可靠的无连接服务,经过网络传输,IP报文有可能丢失而无法到达目的,或者先发送的IP报文也有可能晚于后发送的IP分组到达。当一个IP报文PakN被截获时,可能出现以下几种情况,需要分别进行处理:
1)PakN是重复报文。这种情况的处理最为简单,只需将重复报文PakN丢弃即可;
2)PakN被截获时,其序号前一部分报文尚未被截获。对于这种情况,PakN应该暂时缓存,等待延迟报文被截获;
3)PakN是按照预期顺序被截获的。这种情况处理起来相对复杂,虽然新的报文无需重组,但是它可能会激活缓存中提前到达的分组,因此还需要对缓存中提前截获的数据报文进行处理,将其中序号符合重组要求的报文与之前的报文进行重组,直到获得最后一个数据报文为止。
本发明实施例所提出的一种基于报文协议特征的网络数据流恢复系统,能够根据报文协议的特征将截获的数据报文进行实时的解析、分类及重组,从而全面准确完整地恢复出数据流。
基于上述实施例,所述数据流分类模块还用于:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
具体地,数据流分类模块32对所捕获到的数据报文进行数据流分类,判断所述数据报文是否为已存在数据流的后继报文时,若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中,然后不需要对该数据报文进行应用层解析即可直接进入数据重组模块,等待同一数据流的所有报文到到达后进行重组,以恢复该数据报文所负载的数据流。
基于上述实施例,所述应用层解析模块还用于:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
具体地,应用层解析模块在对数据报文进行应用层解析后,根据所获得的数据流标识符判断或者所述数据报文是非法报文,则说明该数据报文并没有负载合法数据流,则对该数据报文进行丢弃,实现了对非法数据报文的过滤。
本发明实施例提供的一种基于报文协议特征的网络数据流恢复系统,实现了网络数据实时采集与恢复,同时支持IPv4与IPv6网络,支持互联网常见协议(如ICMP、ICMPv6、TCP、UDP等)的分析与解码,支持HTTP、FTP、SMTP、POP3等常见协议的网络数据流分析、网络数据恢复、网络数据流实时同步播放、网络数据流重放、网络数据检索与归档。
本发明实施例所提供的基于报文协议特征的网络数据流恢复方法,还能够提供应用编程接口API,如图4所示,为本发明实施例所提供的方法接入入侵检测系统的示意图,以方便地与入侵检测系统、攻击源追踪系统、在线取证系统等安全管理与安全监控系统实现数据交换与信息通信,能够为网络管理、网络安全监控、以及网络在线取证提供强大的技术支持。
具体实施过程中,我们在一台Linux操作系统CentOS 6.0上安装部署了基于本发明方法开发实现的基于报文协议特征的网络数据恢复系统PSNDR,如图5所示,PSNDR主要由数据采集模块、报文解析模块、数据流分类模块、应用层解析模块、数据报文重组模块、数据展示模块、数据存储模块以及管理控制模块组成。如图6所示,实施过程主要包括以下步骤:
(1)系统启动后,开始监听网络数据,并进行初始化工作:开启数据采集模块,为了提高工作效率,系统使用Libpcap来截获网络中的数据报文;初始化报文标识符集合S_DataPacketID;初始化数据流标识符集合S_DataFlowID;
(2)通过管理控制单元的调度,系统将采集到的原始数据交由报文解析模块进行分析处理;
(3)如图7所示,报文解析模块对收到的报文进行解析,依次解析出以太网数据帧、IP报文、TCP/UPD报文,最后获取数据报文标识符;
(4)报文解析模块返回的数据报文标识符通过管理控制单元传递给数据流分类模块作为报文分类的特征。如果报文的标识符DataPacketID属于报文标识符集合S_DataPacketID,则DataPacketID属于某个已存在数据流的后继报文,则将其插入该数据流的报文队列中,转步骤(7);否则,需要对报文进行应用层解析,转步骤(5);
(5)应用层解析。应用层解析模块的主要功能是根据应用层协议的特征对应用层报文进行分析,判断它们使用了哪个应用层协议,并从中提取所需要的特征信息,最后返回一个数据流标识符DataFlowID。应用层解析模块主要实现HTTP,FTP,SMTP和POP3等几种常见的应用层协议的解析过程。
(6)根据解析结果判断该数据报文是否是传输某个数据流的首个报文,如果是,则为其创建一个新的数据流,否则丢弃该数据报文;
(7)数据报文重组。数据报文重组模块主要负责提取数据包中的负载数据,重组成完整的数据包并提取出其中的应用层报文,然后根据应用层报文的标识符恢复出该报文负载的数据流。
(8)数据存储与显示。数据流传输结束后,管理控制单元将数据报文重组模块返回的恢复后的完整数据流交由数据存储模块进行处理,将重组后的报文数据从缓存中写入磁盘,就可以恢复出原始的数据流了。同时,管理控制单元调用数据展示示模块进行前端显示,如图9所示为数据显示子系统的一个截图,只需要输入。
基于协议特征的网络数据恢复系统PSNDR运行后,前端系统主要包括协议分析与数据恢复管理子系统与数据查询与显示子系统。如图8所示为PSNDR的协议分析与数据恢复管理子系统的管理界面,用户只需点击左侧窗格中的某个被监测对象,就能在右窗格中看到非常翔实丰富的内容,如原始数据、各层协议解码数据、被监测对象的访问目标、发生时间等反应被监测对象行为特征的数据。如图9所示为PSNDR的数据查询与显示子系统的主界面,当用户浏览网页时,PSNDR通过数据采集模块捕获用户的网络流量,经后台分析解码系统处理后在前端显示系统中同步显示用户所浏览的网页。
最后,本发明实例例仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于报文协议特征的网络数据流恢复方法,其特征在于,包括:
S1,获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
S2,根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
S3,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;
S4,对属于同一数据流的数据报文进行重组,对数据流进行恢复。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
3.根据权利要求1所述的方法,其特征在于,在步骤S3中所述根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文的步骤之后,还包括:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
4.根据权利要求1或2或3所述的方法,其特征在于,步骤S1中对所数据报文进行解析的步骤进一步包括:
对所述数据报文依次进行以太网数据帧解析、IP报文解析和TCP/UDP报文解析。
5.根据权利要求4所述的方法,其特征在于,所述数据报文标识符为一个四元组DataPacketID=<SrcIP,SrcPort,DstIP,DstPort>,其中,SrcIP、SrcPort、DstIP及DstPort分别表示数据报文的源IP地址,源端口,目的IP地址和目的端口。
6.根据权利要求1或3所述的方法,其特征在于,步骤S3中对所述数据报文进行应用层解析的步骤进一步包括:
根据应用层协议的特征字段,判断所述数据报文所使用的应用层协议,并提取所需要的特征信息,为所述数据报文生成数据流标识符。
7.根据权利要求6所述的方法,其特征在于,所述数据流标识符为一个四元组DataFlowID=<Protocol,FlowName,Timestamp,DataPacketID>,其中,Protocol、FlowName、Timestamp及DataPacketID分别表示传输数据流的应用层协议,被传输数据流的名称,数据报文的发送时间戳,传输数据流的数据报文标识符。
8.一种基于报文协议特征的网络数据流恢复系统,其特征在于,包括:
数据报文采集与解析模块,用于获取网络中的数据报文,对所述数据报文进行解析,获得所述数据报文的数据报文标识符;
数据流分类模块,用于根据所述数据报文标识符判断所述数据报文是否为已存在数据流的后继报文;
应用层解析模块,若获知所述数据报文非已存在数据流的后继报文,则对所述数据报文进行应用层解析,并根据应用层解析所获得的数据流标识符判断所述数据报文是否为非法报文或被传输数据流的首个报文,若获知所述数据报文为被传输数据流的首个报文,则创建一个新的数据流;
数据报文重组模块,用于对属于同一数据流的数据报文进行重组,对数据流进行恢复。
9.根据权利要求8所述的系统,其特征在于,所述数据流分类模块还用于:
若获知所述数据报文为已存在数据流的后继报文,则将所述数据报文插入所述已存在数据流的报文队列中。
10.根据权利要求8所述的系统,其特征在于,所述应用层解析模块还用于:
若获知所述数据报文为非法报文,则丢弃所述数据报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710890494.9A CN107666486A (zh) | 2017-09-27 | 2017-09-27 | 一种基于报文协议特征的网络数据流恢复方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710890494.9A CN107666486A (zh) | 2017-09-27 | 2017-09-27 | 一种基于报文协议特征的网络数据流恢复方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107666486A true CN107666486A (zh) | 2018-02-06 |
Family
ID=61098541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710890494.9A Pending CN107666486A (zh) | 2017-09-27 | 2017-09-27 | 一种基于报文协议特征的网络数据流恢复方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107666486A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600049A (zh) * | 2018-04-16 | 2018-09-28 | 苏州云杉世纪网络科技有限公司 | 一种数据中心网络tcp连接的性能测量方法及装置 |
CN108632286A (zh) * | 2018-05-14 | 2018-10-09 | 国家计算机网络与信息安全管理中心 | 一种多应用混合数据的解析方法 |
CN112311717A (zh) * | 2019-07-24 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 网络数据恢复方法、装置、存储介质和计算机设备 |
CN113297577A (zh) * | 2021-06-16 | 2021-08-24 | 深信服科技股份有限公司 | 一种请求处理方法、装置、电子设备及可读存储介质 |
CN113422699A (zh) * | 2021-06-22 | 2021-09-21 | 中国电信股份有限公司 | 数据流处理方法、装置、计算机可读存储介质及电子设备 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
WO2022228011A1 (zh) * | 2021-04-26 | 2022-11-03 | 华为技术有限公司 | Quic数据传输方法、装置、客户端及服务端 |
CN117131236A (zh) * | 2023-10-28 | 2023-11-28 | 深圳海云安网络安全技术有限公司 | 一种敏感数据的检测方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051501A (zh) * | 2013-01-25 | 2013-04-17 | 四川神琥科技有限公司 | 一种根据网络数据恢复的方式识别网络数据的检测方法 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
-
2017
- 2017-09-27 CN CN201710890494.9A patent/CN107666486A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051501A (zh) * | 2013-01-25 | 2013-04-17 | 四川神琥科技有限公司 | 一种根据网络数据恢复的方式识别网络数据的检测方法 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
Non-Patent Citations (1)
Title |
---|
张洪 等: "基于协议特征的数据恢复算法", 《第六届中国信息和通信安全学术会议》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600049A (zh) * | 2018-04-16 | 2018-09-28 | 苏州云杉世纪网络科技有限公司 | 一种数据中心网络tcp连接的性能测量方法及装置 |
CN108600049B (zh) * | 2018-04-16 | 2020-07-07 | 苏州云杉世纪网络科技有限公司 | 数据中心网络tcp连接的性能测量方法、装置及存储介质 |
CN108632286A (zh) * | 2018-05-14 | 2018-10-09 | 国家计算机网络与信息安全管理中心 | 一种多应用混合数据的解析方法 |
CN112311717A (zh) * | 2019-07-24 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 网络数据恢复方法、装置、存储介质和计算机设备 |
CN112311717B (zh) * | 2019-07-24 | 2022-08-23 | 腾讯科技(深圳)有限公司 | 网络数据恢复方法、装置、存储介质和计算机设备 |
WO2022228011A1 (zh) * | 2021-04-26 | 2022-11-03 | 华为技术有限公司 | Quic数据传输方法、装置、客户端及服务端 |
CN113297577A (zh) * | 2021-06-16 | 2021-08-24 | 深信服科技股份有限公司 | 一种请求处理方法、装置、电子设备及可读存储介质 |
CN113422699A (zh) * | 2021-06-22 | 2021-09-21 | 中国电信股份有限公司 | 数据流处理方法、装置、计算机可读存储介质及电子设备 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
CN115277880B (zh) * | 2022-06-17 | 2024-04-19 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
CN117131236A (zh) * | 2023-10-28 | 2023-11-28 | 深圳海云安网络安全技术有限公司 | 一种敏感数据的检测方法及系统 |
CN117131236B (zh) * | 2023-10-28 | 2024-02-02 | 深圳海云安网络安全技术有限公司 | 一种敏感数据的检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107666486A (zh) | 一种基于报文协议特征的网络数据流恢复方法及系统 | |
CN103780610A (zh) | 基于协议特征的网络数据恢复方法 | |
CN106815112B (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
US10218598B2 (en) | Automatic parsing of binary-based application protocols using network traffic | |
US9210090B1 (en) | Efficient storage and flexible retrieval of full packets captured from network traffic | |
US8416695B2 (en) | Method, device and system for network interception | |
US20110125748A1 (en) | Method and Apparatus for Real Time Identification and Recording of Artifacts | |
CN106656922A (zh) | 一种基于流量分析的网络攻击防护方法和装置 | |
US10498618B2 (en) | Attributing network address translation device processed traffic to individual hosts | |
CN105103496A (zh) | 用于提取和保存用于分析网络通信的元数据的系统和方法 | |
CN112039904A (zh) | 一种网络流量分析与文件提取系统及方法 | |
CN110401624A (zh) | 源网荷系统交互报文异常的检测方法及系统 | |
WO2020052110A1 (zh) | 业务质量监控方法、装置及系统 | |
CN109922073A (zh) | 网络安全监控装置、方法和系统 | |
CN107465690A (zh) | 一种基于流量分析的被动式异常端口实时检测方法及系统 | |
CN106789728A (zh) | 一种基于NetFPGA的VoIP流量实时识别方法 | |
CN102468987A (zh) | 网络流特征向量提取方法 | |
CN105007175A (zh) | 一种基于openflow的流深度关联分析方法及系统 | |
CN110691007A (zh) | 一种精确测量quic连接丢包率的方法 | |
CN104348749B (zh) | 一种流量控制方法、装置及系统 | |
CN105897929B (zh) | 一种视频监控数据备份的方法及装置 | |
CN1741473A (zh) | 一种网络数据包有效性判定方法及系统 | |
CN105991353A (zh) | 故障定位的方法和装置 | |
CN113364778A (zh) | 一种报文处理方法及装置 | |
CN101040279B (zh) | 面向连接的垃圾邮件过滤系统和方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180206 |
|
RJ01 | Rejection of invention patent application after publication |