一种TCP流长连接数据分析方法与流程

文档序号:17985907发布日期:2019-06-22 00:24阅读:765来源:国知局

本发明属于网络连接分析领域,具体是一种tcp流长连接数据分析方法。



背景技术:

常见网络通讯的流程是tcp客户端发起网络连接,连接到服务器,进行特定协议上的数据通信,完成后关闭连接,对于服务端面向终端会有大量的这样的连接发起与关闭操作。对于流量较大的系统服务,通常单台服务器不能完成任务,而是由多台服务器通过代理的方式来均摊提供服务,前面设置一个负载均衡的服务器,在负载均衡服务器和真正处理业务的服务器之间建立tcp长连接,并在这个连接上响应客户的请求并提供服务,这些长连接有效时间短则数分钟,长则数小时或数天。而当前大部分镜像流量上的协议解析连接技术都需要或基于tcp完整的会话连接,对于已经建立的连接上的传输数据,一般都忽略的方式不再处理,从而导致当前建立连接的流量数据丢失。



技术实现要素:

为了解决现有技术中存在的上述技术问题,本发明提供了一种tcp流长连接数据分析方法,包括如下步骤:

一、对tcp已建立连接数据流,建立会话,缓存数据;

二、根据端口号信息确认选择协议识别顺序;

三、根据数据包边界和缓存的内容,保存一定数据量的数据内容;

四、依据协议格式规则,先模式匹配出缓存数据所适配的协议集合,再细粒度分析协议是否满足内部的字段间的关系约束;

五、使用分析得到的当前协议格式解析出消息内容,提取协议中的字段内容,识别字段特征并验证符合协议约定的有效范围;

六、识别网络连接方向,将当前连接加入到解析处理流程中,持续解析协议消息。

进一步的,步骤六中的识别网络连接方向具体包括:

1)依据解析出来的字段特征区分出网络连接的方向;

2)若无法直接识别,分析所有活动连接会话的ip地址信息,若当前的连接ip和端口能否已经同时存在连接会话的服务侧ip和端口信息,套用已存在活动连接会话的方向;

3)若不存在,根据当前两组ip地址和端口在当前活动连接会话中的曾经为服务器的会话记录,当前连接端口的范围,当前连接ip地址作为服务器地址概率,当前连接端口作为服务器端口概率,从而计算出连接方向概率,来区分出连接的方向。

进一步的,步骤四中字段间的关系约束包括结构体大小的依赖关系、字段偏移和/或协议边界特征符集合。

本发明对于已建立的tcp连接数据流,四元组信息(源ip、源端口、目标ip、目标端口)建立会话,缓存少量tcp数据,以数据包边界和端口号信息探测内容的方式,来匹配已知协议的特征,再根据协议解析出来的内容、ip地址和端口信息,区分出连接的方向,完整解析协议消息,区分出消息体的边界,并在已有通信解析过程中添加模拟的握手连接信息,并兼容保持tcp标准通信协议,持续解析后续有效数据。本发明解决对于流量中已建立连接的数据,进行协议识别,解析并还原出有效数据,通过在网络流量数据中还原出应用层协议的完整会话行为,用于行为审计和风险发现的信息源;通过未知系统服务上的数据流动,用于发现数据流动关联的信息源。

具体实施方式

下面对本发明作进一步说明。

应用层协议都会有一定的消息格式,在长连接中多个消息格式之间一般都不会有明显的特征。以http协议例,消息格式分为三个部分:首行、头部(header)、正文(body)。这三个部分通过crlf(回车符和换行符)进行分隔,其中头部(header)部分内部有多个行(crlf分隔),key-value形式。

对于客户端和服务端都是相同的消息格式,分别是http请求首行和http响应首行。http请求首行格式是方法、路径、版本,以空格分隔,http响应首行格式是版本号、状态码、状态文本,以空格分隔。

根据crlf分隔符出现的位置和特征,识别出首行、头部和正文等几个部分,验证识别出来的协议格式是否标准定义。若符合标准定义,则加入到会话建立的连接管理中。

本发明具体包括以下步骤:

一、对tcp已建立连接数据流,建立会话,缓存数据;

二、根据端口号信息确认选择协议识别顺序;

三、根据数据包边界和缓存的内容,保存一定数据量的数据内容;

四、依据协议格式规则,先模式匹配出缓存数据所适配的协议集合,再细粒度分析协议是否满足内部的字段间的关系约束,如结构体大小的依赖关系,字段偏移,协议边界特征符集合;

五、使用分析得到的当前协议格式解析出消息内容,提取协议中的字段内容,识别字段特征并验证符合协议约定的有效范围;

六、依据解析出来的字段特征区分出网络连接的方向,若能识别出方向(客户端与服务端),转步骤九;

七、若无法直接识别,分析所有活动连接会话的ip地址信息,若当前的连接ip和端口能否已经同时存在连接会话的服务侧ip和端口信息,套用已存在活动连接会话的方向(客户端与服务端),转步骤九;

八、若不存在,根据当前两组ip地址和端口在当前活动连接会话中的曾经为服务器的会话记录,当前连接端口的范围,当前连接ip地址作为服务器地址概率,当前连接端口作为服务器端口概率,从而计算出连接方向概率,来区分出连接的方向(客户端与服务端);

九、将当前连接加入到解析处理流程中,持续解析协议消息。



技术特征:

技术总结
本发明公开了一种TCP流长连接数据分析方法,对于已建立的TCP连接数据流,四元组信息建立会话,缓存少量TCP数据,以数据包边界和端口号信息探测内容的方式,来匹配已知协议的特征,再根据协议解析出来的内容、IP地址和端口信息,区分出连接的方向,完整解析协议消息,区分出消息体的边界,并在已有通信解析过程中添加模拟的握手连接信息,并兼容保持TCP标准通信协议,持续解析后续有效数据。本发明解决对于流量中已建立连接的数据,进行协议识别,解析并还原出有效数据,通过在网络流量数据中还原出应用层协议的完整会话行为,用于行为审计和风险发现的信息源;通过未知系统服务上的数据流动,用于发现数据流动关联的信息源。

技术研发人员:梁永喜
受保护的技术使用者:全知科技(杭州)有限责任公司
技术研发日:2019.04.02
技术公布日:2019.06.21
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1