CN117729054A - 一种基于全流量存储的vpn流量识别方法和系统 - Google Patents
一种基于全流量存储的vpn流量识别方法和系统 Download PDFInfo
- Publication number
- CN117729054A CN117729054A CN202410174448.9A CN202410174448A CN117729054A CN 117729054 A CN117729054 A CN 117729054A CN 202410174448 A CN202410174448 A CN 202410174448A CN 117729054 A CN117729054 A CN 117729054A
- Authority
- CN
- China
- Prior art keywords
- session
- message
- flow
- quintuple
- analyzed
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 238000005206 flow analysis Methods 0.000 claims abstract description 22
- 238000012216 screening Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 10
- 238000001914 filtration Methods 0.000 abstract description 2
- 238000012550 audit Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000032683 aging Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于全流量存储的VPN流量识别方法和系统,包括基于流量报文建立五元组会话,并实时统计五元组会话的报文信息,当五元组会话结束,基于五元组会话的报文信息进行过滤,得到待分析的五元组会话;从原始流量报文中查找属于待分析的五元组会话的所有报文作为待分析报文,对待分析报文进行载荷分析,得到待分析报文是否是VPN流量报文的分析结果。本发明结合VPN流量的统计特征和报文载荷特征能够对VPN流量进行极为准确的识别,无需耗费大量的CPU资源和时间,提高了检测效率,本发明将流量存储和流量分析部分分离,流量分析部分可以使用高性能CPU进行计算,存储部分的流量存储能力用于大流量场景的历史流量识别。本发明还涉及一种设备和介质。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于全流量存储的VPN流量识别方法和系统。
背景技术
VPN即虚拟专用网络,是利用公用网络架设专用网络的一种技术。为了保证数据安全,VPN服务器和客户机之间的通讯数据都进行了加密处理,但是由于数据加密,对企业的数据审计以及合规监测等安全措施造成了挑战,安全产品对这部分的流量检测也变得困难。
现有的VPN流量的主流检测方案是机器学习,使用载荷的熵值特征或流的报文长度特征,采用机器学习模型进行识别,这种方案需要采集大量的VPN通信流量作为样本,样本的质量和数量直接影响识别的准确率,并且VPN协议有多种,每种的流量特征都不一样,需要针对每种协议都进行训练建模,每次机器学习都会耗费大量的CPU资源和时间。流量检测的准确率在实验室的数据往往能达到99%以上,但实际现网应用上,由于网络流量的不确定性以及网络流量的多样性,检测效果并不好,误报的流量太多,也无法进行全流量检测和以及流量的溯源和审计分析,无法满足客户对流量溯源以及审计需求。
发明内容
为了能解决现有技术中VPN流量识别误报率高的问题,本发明提供了一种基于全流量存储的VPN流量识别方法和装置。
第一方面,本发明提供了一种基于全流量存储的VPN流量识别方法,所述方法包括:
实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是待分析的五元组会话;
若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
基于上述技术方案,进一步地,所述实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是待分析的五元组会话,具体包括:
S11、实时接收所述流量报文;
S12、提取所述流量报文中的五元组信息,并根据所述五元组信息得到对应的五元组会话,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;
S13、判断所述流量报文中TCP载荷长度字段是否为零;
若否,则所述流量报文是有效报文,获取所述有效报文的序列号;
否则,返回步骤S11;
S14、判断所述有效报文的源IP地址和所述五元组会话中的源IP地址是否相同;
若相同,则所述有效报文是上行报文,将匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是正值;
否则,执行步骤S15;
S15、判断所述有效报文的源IP地址是否和所述五元组会话中的目的IP地址相同;
若相同,则所述有效报文是下行报文,将所述匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是负值;
S16、根据预设会话结束标志,判断所述五元组会话是否结束;
若否,则返回步骤S11;
若是,判断所述匹配数组是否匹配预设序列;
若匹配,则所述五元组会话是所述待分析的五元组会话。
基于上述技术方案,进一步地,所述若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果,具体包括:
S21、获取所述待分析的五元组会话;
S22、提取所述待分析的五元组会话中的源IP地址和目的IP地址,并根据所述源IP地址和所述目的IP地址得到IP会话,所述IP会话包括源IP地址、目的IP地址、第一数组、匹配计数值和会话计数值;
S23、从所述原始流量报文中查找匹配所述待分析的五元组会话的所有报文作为所述待分析报文;
S24、提取所述待分析报文中第一次请求报文的载荷中第一预设位置的第一字节段和第一次应答报文的载荷中第二预设位置的第二字节段;
S25、将所述第一字节段和所述第二字节段进行逐字节异或运算,得到的运算结果存入第二数组;
S26、将所述第二数组中的数组元素和所述第一数组中的数组元素进行相或运算,得到的相或运算结果保存到第三数组中,并更新所述会话计数值;
S27、比较所述第三数组中的元素值和所述第一数组中的元素值是否均相同;
若相同,则更新所述匹配计数值,若不相同,则将所述匹配计数值清零;
S28、将所述第一数组中的元素值赋值为所述第三数组中的元素值;
S29、判断所述匹配计数值是否达到预设计数值;
若达到,则所述待分析报文是VPN流量报文;
否则,判断所述会话计数值是否大于预设会话计数值;
若大于,则所述待分析报文不是VPN流量报文,删除所述IP会话;
否则,返回步骤S21,等待下一个所述待分析的五元组会话。
基于上述技术方案,进一步地,所述步骤S22中具体包括:
对所述待分析的五元组会话中的源IP地址和目的IP地址进行哈希运算,根据哈希运算的结果查找IP会话表;
若所述IP会话表中未查找到所述IP会话,则新建IP会话,所述新建IP会话包括源IP地址、目的IP地址和第一数组,并将所述第一数组初始化为预设值,初始化所述IP会话的匹配计数值和会话计数值;
若所述IP会话表中查找到所述IP会话,则获取所述IP会话的第一数组、匹配计数值和会话计数值。
基于上述技术方案,进一步地,所述方法还包括:
镜像接收所述原始流量报文;
利用深度识别方法对所述原始流量报文进行协议识别,得到协议识别结果;
若所述协议识别结果是未识别协议,则将所述原始流量报文作为所述流量报文。
基于上述技术方案,进一步地,所述根据预设会话结束标志,判断所述五元组会话是否结束,具体包括:
判断接收到属于所述五元组会话的报文的TCP头部的FIN标志位或RST标志位是否置位;
若是,则所述五元组会话结束;
或,
判断未接收到属于所述五元组会话的报文的时长是否超过预设连接时长;
若是,则所述五元组会话结束。
基于上述技术方案,进一步地,所述方法还包括:
若预设时长内没有所述待分析的五元组会话刷新对应的所述IP会话,将所述IP会话删掉。
第二方面,本发明还提供了一种基于全流量存储的VPN流量识别系统,所述系统包括流量初筛装置和流量分析装置;
所述流量初筛装置,用于实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是确定待分析的五元组会话;
所述流量分析装置,用于若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
基于上述技术方案,流量初筛装置包括第一单元、第二单元、第三单元、第四单元、第五单元和第六单元;
第一单元,用于实时接收所述流量报文;
第二单元,用于提取所述流量报文中的五元组信息,并根据所述五元组信息得到对应的五元组会话,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;
第三单元,用于判断所述流量报文中TCP载荷长度字段是否为零;
若否,则所述流量报文是有效报文,获取所述有效报文的序列号;
否则,返回第一单元;
第四单元,用于判断所述有效报文的源IP地址和所述五元组会话中的源IP地址是否相同;
若相同,则所述有效报文是上行报文,将匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是正值;
否则,执行第五单元;
第五单元,用于判断所述有效报文的源IP地址是否和所述五元组会话中的目的IP地址相同;
若相同,则所述有效报文是下行报文,将所述匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是负值;
第六单元,用于根据预设会话结束标志,判断所述五元组会话是否结束;
若否,则返回第一单元;
若是,判断所述第一数组中数组元素值是否匹配预设序列;
若是,则所述五元组会话是所述待分析的五元组会话。
基于上述技术方案,流量分析装置包括第八单元、第九单元、第十单元、第十一单元、第十二单元、第十三单元、第十四单元、第十五单元和第十六单元;
第八单元,用于获取所述待分析的五元组会话;
第九单元,用于提取所述待分析的五元组会话中的源IP地址和目的IP地址,并根据所述源IP地址和所述目的IP地址得到IP会话,所述IP会话包括源IP地址、目的IP地址、第一数组、匹配计数值和会话计数值;
第十单元,用于从所述原始流量报文中查找匹配所述待分析的五元组会话的所有报文作为所述待分析报文;
第十一单元,用于提取所述待分析报文中第一次请求报文的载荷中第一预设位置的第一字节段和第一次应答报文的载荷中第二预设位置的第二字节段;
第十二单元,用于所述第一字节段和所述第二字节段进行逐字节异或运算,得到的运算结果存入第二数组;
第十三单元,用于将所述第二数组中的数组元素和所述第一数组中的数组元素进行相或运算,得到的相或运算结果保存到第三数组中,并更新所述会话计数值;
第十四单元,用于比较所述第三数组中的元素值和所述第一数组中的元素值是否均相同;
若相同,则更新所述匹配计数值,若不相同,则将所述匹配计数值清零;
第十五单元,用于将所述第一数组中的元素值赋值为所述第三数组中的元素值;
第十六单元,用于判断所述匹配计数值是否达到预设计数值;
若达到,则所述待分析报文是VPN流量报文;
否则,判断所述会话计数值是否大于预设会话计数值;
若大于,则所述待分析报文不是VPN流量报文,删除所述IP会话;
否则,返回第八单元,等待下一个所述待分析的五元组会话。
基于上述技术方案,进一步地,第九单元,具体用于对所述待分析的五元组会话中的源IP地址和目的IP地址进行哈希运算,根据哈希运算的结果查找IP会话表;
若所述IP会话表中未查找到所述IP会话,则新建IP会话,所述新建IP会话包括源IP地址、目的IP地址和第一数组,并将所述第一数组初始化为预设值,初始化所述IP会话的匹配计数值和会话计数值;
若所述IP会话表中查找到所述IP会话,则获取所述IP会话的第一数组、匹配计数值和会话计数值。
基于上述技术方案,进一步地,还包括流量接收装置和流量存储装置;
流量接收装置,用于镜像接收所述原始流量报文;
利用深度识别方法对原始流量报文进行协议识别,得到协议识别结果;
若协议识别结果是未识别协议,将原始流量报文作为流量报文。
流量存储装置,用于存储流量报文作为原始流量报文。
基于上述技术方案,进一步地,第六单元,具体用于判断接收到属于五元组会话的报文的TCP头部的FIN标志位或RST标志位是否置位;
若是,则五元组会话结束;
或,
判断未接收到属于所述五元组会话的报文的时长是否超过预设连接时长;
若是,则五元组会话结束。
基于上述技术方案,进一步地,流量分析装置包括第十七单元,第十七单元,具体用于若预设时长内没有所述待分析的五元组会话刷新对应的所述IP会话,将所述IP会话删掉。
第三方面,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中任一项所述的基于全流量存储的VPN流量识别方法。
第四方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的基于全流量存储的VPN流量识别方法。
本发明提供的一种基于全流量存储的VPN流量识别方法和系统,包括基于流量报文建立五元组会话,并实时统计五元组会话的报文信息,当五元组会话结束,基于五元组会话的报文信息进行过滤,得到待分析的五元组会话;从原始流量报文中查找属于待分析的五元组会话的所有报文作为待分析报文,对待分析报文进行载荷分析,得到待分析报文是否是VPN流量报文的分析结果。本发明针对全流量进行检测,结合VPN流量的统计特征和报文载荷特征能够对VPN流量进行极为准确的识别,并可实现流量的溯源,流量的审计分析,无需耗费大量的CPU资源和时间,提高了检测效率,本发明将流量存储和流量分析部分分离,流量分析部分可以使用高性能CPU进行计算,存储部分的流量存储能力用于大流量场景的历史流量识别。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
在附图中:
图1是本发明实施例提供的基于全流量存储的VPN流量识别方法的流程示意图;
图2是本发明实施例提供的基于全流量存储的VPN流量识别方法中流量初筛过程的流程示意图;
图3是本发明实施例提供的基于全流量存储的VPN流量识别方法中流程分析过程的流程示意图;
图4是本发明实施例提供的基于全流量存储的VPN流量识别方法中的框架示意图;
图5是本发明另一实施例提供的基于全流量存储的VPN流量识别方法中流程接收过程的流程示意图;
图6是本发明另一实施例提供的基于全流量存储的VPN流量识别方法中流量初筛过程的流程示意图;
图7是本发明另一实施例提供的基于全流量存储的VPN流量识别方法中流量分析过程的流程示意图;
图8是本发明另一实施例提供的基于全流量存储的VPN流量识别方法中IP会话老化过程的流程示意图;
图9是本发明另一实施例提供的基于全流量存储的VPN流量识别系统的模块示意图。
具体实施方式
下面将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
以下详细说明均是示例性的说明,旨在对本发明提供进一步的详细说明。除非另有指明,本发明所采用的所有技术术语与本发明所属领域的一般技术人员的通常理解的含义相同。本发明所使用的术语仅是为了描述具体实施方式,而并非意图限制根据本发明的示例性实施方式。
下面将结合附图1-3,对本发明实施例提供的基于全流量存储的VPN流量识别方法进行说明,包括以下步骤:
S1、实时记录流量报文的报文信息,将报文信息存储到流量报文对应的五元组会话中,当五元组会话结束,基于五元组会话中的所有报文信息,判断五元组会话是否是待分析的五元组会话。
S2、若五元组会话是待分析的五元组会话,从原始流量报文中查找属于待分析的五元组会话的所有报文作为待分析报文,对待分析报文进行载荷分析,得到待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
基于上述实施例,进一步地,步骤S1具体包括:
S11、实时接收流量报文;
S12、提取流量报文中的五元组信息,并根据五元组信息得到对应的五元组会话,五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;
S13、判断流量报文中TCP载荷长度字段是否为零;
若否,则流量报文是有效报文,获取有效报文的序列号;
否则,返回步骤S11;
S14、判断有效报文的源IP地址和五元组会话中的源IP地址是否相同;
若相同,则有效报文是上行报文,将匹配数组中数组序号是有效报文的序列号的数组元素值赋值为有效报文的载荷长度,并设定数组元素值是正值;
否则,执行步骤S15;
S15、判断有效报文的源IP地址是否和五元组会话中的目的IP地址相同;
若相同,则有效报文是下行报文,将匹配数组中数组序号是有效报文的序列号的数组元素值赋值为有效报文的载荷长度,并设定数组元素值是负值;
S16、根据预设会话结束标志,判断五元组会话是否结束;
若否,则返回步骤S11;
若是,判断匹配数组是否匹配预设序列;
若匹配,则五元组会话是待分析的五元组会话。
基于上述实施例,进一步地,步骤S2,具体包括:
S21、获取待分析的五元组会话;
S22、提取待分析的五元组会话中的源IP地址和目的IP地址,并根据源IP地址和目的IP地址得到IP会话,IP会话包括源IP地址、目的IP地址、第一数组、匹配计数值和会话计数值;
S23、从原始流量报文中查找匹配待分析的五元组会话的所有报文作为待分析报文;
S24、提取待分析报文中第一次请求报文的载荷中第一预设位置的第一字节段和第一次应答报文的载荷中第二预设位置的第二字节段;
S25、将第一字节段和第二字节段进行逐字节异或运算,得到的运算结果存入第二数组;
S26、将第二数组中的数组元素和第一数组中的数组元素进行相或运算,得到的相或运算结果保存到第三数组中,并更新会话计数值;
S27、比较第三数组中的元素值和第一数组中的元素值是否均相同;
若相同,则更新匹配计数值,若不相同,则将匹配计数值清零,返回步骤S21,等待下一个待分析的五元组会话;
S28、将第一数组中的元素值赋值为第三数组中的元素值;
S29、判断匹配计数值是否达到预设计数值;
若达到,则待分析报文是VPN流量报文;
否则,判断会话计数值是否大于预设会话计数值;
若大于,则待分析报文不是VPN流量报文,删除IP会话;
否则,返回步骤S21,等待下一个待分析的五元组会话。
基于上述实施例,进一步地,步骤S22中具体包括:
对待分析的五元组会话中的源IP地址和目的IP地址进行哈希运算,根据哈希运算的结果查找IP会话表;
若IP会话表中未查找到IP会话,则新建IP会话,新建IP会话包括源IP地址、目的IP地址和第一数组,并将第一数组初始化为预设值,初始化IP会话的匹配计数值和会话计数值;
若IP会话表中查找到IP会话,则获取IP会话的第一数组、匹配计数值和会话计数值。
基于上述实施例,进一步地,还包括步骤S1’:
S11’、镜像接收原始流量报文;
S12’、利用深度识别方法对原始流量报文进行协议识别,得到协议识别结果;
S13’、若协议识别结果是未识别协议,将原始流量报文作为流量报文。
基于上述实施例,进一步地,根据预设会话结束标志,判断五元组会话是否结束,具体包括:
判断接收到属于五元组会话的报文的TCP头部的FIN标志位或RST标志位是否置位;
若是,则五元组会话结束;
或,
判断未接收到属于五元组会话的报文的时长是否超过预设连接时长;
若是,则五元组会话结束。
基于上述实施例,进一步地,还包括:若预设时长内没有待分析的五元组会话刷新对应的IP会话,将IP会话删掉。
本发明实施例针对全流量进行检测,结合VPN流量的统计特征和报文载荷特征能够对VPN流量进行极为准确的识别,并可实现流量的溯源,流量的审计分析,无需耗费大量的CPU资源和时间,提高了检测效率,本发明将流量存储和流量分析部分分离,流量分析部分可以使用高性能CPU进行计算,存储部分的流量存储能力用于大流量场景的历史流量识别。
本发明主要采用全流量存储技术解决现有VPN流量识别误报率高的问题,提出了一种基于全流量存储的VPN流量识别方法,可以解决特定协议的VPN流量识别误报率高的问题,并针对具有固定底码的特定VPN协议流量出了具体的实施实例。
如图4至图8所示,本实施示例以express VPN的流量识别为例。
如图4所示,实施方案可分为四个部分流程:流量接收流程、流量存储流程、流量初筛流程和流量分析流程。
具体地,流量接收流程、流量存储流程、流量初筛流程和流量分析流程可以分别对应流量接收设备、流量存储设备、流量初筛设备和流量分析设备;
同时,流量接收流程、流量存储流程、流量初筛流程和流量分析流程中各流程也可以通过组合设置于一个设备中,本发明对此不作限制。
如图5所示,流量接收流程包括以下步骤:
1、接收网络流量中的报文,解析报文的IP头、TCP头。
2、提取报文的源IP、目的IP、源端口、目的端口和协议。
3、依据载荷特征对协议进行深度识别。该技术称为DPI,有较为成熟的方案和特征规则,此处不再赘述。
4、根据协议识别结果,未识别的流量发送给流量初筛进行筛选。
5、根据协议识别结果,未识别的流量发送给流量存储进行保存。也可以根据流量存储装置的容量大小,选择将所有流量全部保存。
应理解,如果记录上行报文的TCP载荷长度为正值+,下行报文的TCP载荷长度为负值-,对于Express VPN的流量,流量报文的TCP载荷的长度序列有一些规律,例如TCP载荷的长度序列有如下规律:
+184,-128,-1460,-236,+74,+96,-127,……
为了有一定的容错率,本实施例中取前四个报文的载荷长度进行判断,即载荷序列为+184,-128,-1460,-236的会话,满足筛选条件。
如图6所示,流量初筛流程包括以下步骤:
流量初筛流程以五元组为单位进行分析,记为五元组会话。
1、根据报文的五元组查找五元组会话。
2、如果五元组会话未创建,则创建会话存储结构,并记录会话的五元组信息。
3、如果报文的TCP载荷长度不为0,记为第i个有效报文。如果有效报文的源IP等于会话的源IP,且载荷不为0,记为上行报文,则报文载荷数组A[i]=+leni,leni为第i个有效报文的载荷长度。
4、如果五元组会话的第i个有效报文的源IP等于会话的目的IP,记为下行报文,则报文载荷数组A[i]=-leni。
5、如果报文TCP头部的FIN或RST置位时,认为会话结束。
6、如果超过一定时间例如5分钟该会话没有收到报文,则认为该五元组会话结束。
7、如果该五元组会话结束,则将五元组会话的开始时间、五元组信息、上下行载荷报文数记录到五元组会话的存储结构中。
8、由于TCP的长连接很可能持续一小时或更长时间,不会发送会话主动结束的报文。如果该五元组会话持续一定时间如1小时,也可以认为会话结束。
9、五元组会话结束时,比较报文载荷数组A的前4个元数是否为+184,-128,-1460,-236,如果是,则将会话的五元组信息发送给流量分析。
流量存储流程中选定的流程存储设备能够根据五元组获取到该会话的原始流量即可,在此不再赘述。
在流量分析过程获取到流量初筛发送的五元组会话信息,包括五元组和有效载荷长度序列,根据五元组从流量存储中提取原始报文进行分析。
Express VPN的流量载荷是加密的,但是其第一对握手报文的加密用的底码相同,即第一对请求和应答在固定位置上的值相等,且位于载荷的前64字节。利用这一原始报文特征可以确认express VPN流量。
流量分析过程中以IP会话为单位进行分析,即一对通信的源IP和目的IP为一条会话,记为IP会话。
如图7所示,流量分析过程包括以下步骤:
1、接收初筛五元组会话信息,将源IP和目的IP做hash,查IP会话表。
2、没有查到IP会话,则新建 IP会话,IP会话包括源IP、目的IP、64元素的数组A,数组A的每一个元素对应载荷前64字节的异或结果,新建IP会话时,数组A为全0,并记录该IP会话的载荷匹配计数m=0,该IP会话收到的会话信息计数n=0。
3、向流量存储设备发送请求,获取原始流量。
4、提取原始流量第一对请求和应答的载荷,截取前64字节。
5、将请求载荷和应答载荷逐字节异或,得到数组B。
6、将B中的元素逐个与A中的元素相或,结果保存到数组C中,即C=A|B。并将会话信息计数n加1,即n=n+1。
7、如果C=A,则载荷匹配计数m=m+1,如果连续三次C=A,即m>3,即符合请求和应带载荷固定位置上的值相等,认为是express VPN流量,记录此IP会话。
8、如果C!=A,则将匹配计数m清零。
9、将A中的内容更新为C,即A=C。
10、如果一对IP会话收到的会话信息超过10条仍未匹配成功,即n>10,则认为非VPN流量,删除此IP会话。下次再有初筛通过的该IP会话的五元组会话信息,重新匹配。
如图8所示,流量分析流程还需要处理IP会话的老化,在一定时间内没有某个IP会话的初筛会话信息,需要把该IP对删除,以减少IP会话维护的数量。
本发明实施例针对全流量进行检测,结合VPN流量的统计特征和报文载荷特征能够对VPN流量进行极为准确的识别,并可实现流量的溯源,流量的审计分析,无需耗费大量的CPU资源和时间,提高了检测效率,本发明将流量存储和流量分析部分分离,流量分析部分可以使用高性能CPU进行计算,存储部分的流量存储能力用于大流量场景的历史流量识别。
下面将结合附图9,对本发明实施例提供的一种基于全流量存储的VPN流量识别系统进行说明,系统包括流量初筛装置和流量分析装置;
流量初筛装置,用于实时记录流量报文的报文信息,将报文信息存储到流量报文对应的五元组会话中,当五元组会话结束,基于五元组会话中的所有报文信息,判断五元组会话是否是待分析的五元组会话;
流量分析装置,用于若五元组会话是待分析的五元组会话,从原始流量报文中查找属于待分析的五元组会话的所有报文作为待分析报文,对待分析报文进行载荷分析,得到待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
基于上述实施例,流量初筛装置包括第一单元、第二单元、第三单元、第四单元、第五单元和第六单元;
第一单元,用于实时接收流量报文;
第二单元,用于提取流量报文中的五元组信息,并根据五元组信息得到对应的五元组会话,五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;
第三单元,用于判断流量报文中TCP载荷长度字段是否为零;
若否,则流量报文是有效报文,获取有效报文的序列号;
否则,返回第一单元;
第四单元,用于判断有效报文的源IP地址和五元组会话中的源IP地址是否相同;
若相同,则有效报文是上行报文,将匹配数组中数组序号是有效报文的序列号的数组元素值赋值为有效报文的载荷长度,并设定数组元素值是正值;
否则,执行第五单元;
第五单元,用于判断有效报文的源IP地址是否和五元组会话中的目的IP地址相同;
若相同,则有效报文是下行报文,将匹配数组中数组序号是有效报文的序列号的数组元素值赋值为有效报文的载荷长度,并设定数组元素值是负值;
第六单元,用于根据预设会话结束标志,判断五元组会话是否结束;
若否,则返回第一单元;
若是,判断第一数组中数组元素值是否匹配预设序列;
若是,则五元组会话是待分析的五元组会话。
基于上述实施例,流量分析装置包括第八单元、第九单元、第十单元、第十一单元、第十二单元、第十三单元、第十四单元、第十五单元和第十六单元;
第八单元,用于获取待分析的五元组会话;
第九单元,用于提取待分析的五元组会话中的源IP地址和目的IP地址,并根据源IP地址和目的IP地址得到IP会话,IP会话包括源IP地址、目的IP地址、第一数组、匹配计数值和会话计数值;
第十单元,用于从原始流量报文中查找匹配待分析的五元组会话的所有报文作为待分析报文;
第十一单元,用于提取待分析报文中第一次请求报文的载荷中第一预设位置的第一字节段和第一次应答报文的载荷中第二预设位置的第二字节段;
第十二单元,用于第一字节段和第二字节段进行逐字节异或运算,得到的运算结果存入第二数组;
第十三单元,用于将第二数组中的数组元素和第一数组中的数组元素进行相或运算,得到的相或运算结果保存到第三数组中,并更新会话计数值;
第十四单元,用于比较第三数组中的元素值和第一数组中的元素值是否均相同;
若相同,则更新匹配计数值,若不相同,则将匹配计数值清零;
第十五单元,用于将第一数组中的元素值赋值为第三数组中的元素值;
第十六单元,用于判断匹配计数值是否达到预设计数值;
若达到,则待分析报文是VPN流量报文;
否则,判断会话计数值是否大于预设会话计数值;
若大于,则待分析报文不是VPN流量报文,删除IP会话;
否则,返回第八单元,等待下一个待分析的五元组会话。
基于上述实施例,进一步地,第九单元,具体用于对待分析的五元组会话中的源IP地址和目的IP地址进行哈希运算,根据哈希运算的结果查找IP会话表;
若IP会话表中未查找到IP会话,则新建IP会话,新建IP会话包括源IP地址、目的IP地址和第一数组,并将第一数组初始化为预设值,初始化IP会话的匹配计数值和会话计数值;
若IP会话表中查找到IP会话,则获取IP会话表中的第一数组,并获取IP会话的匹配计数值和会话计数值。
基于上述实施例,进一步地,还包括流量接收装置和流量存储装置;
流量接收装置,用于镜像接收原始流量报文;
利用深度识别方法对原始流量报文进行协议识别,得到协议识别结果;
若协议识别结果是未识别协议,将原始流量报文作为流量报文。
流量存储装置,用于存储流量报文作为原始流量报文。
基于上述实施例,进一步地,第六单元,具体用于判断接收到属于五元组会话的报文的TCP头部的FIN标志位或RST标志位是否置位;
若是,则五元组会话结束;
或,
判断未接收到属于五元组会话的报文的时长是否超过预设连接时长;
若是,则五元组会话结束。
基于上述实施例,进一步地,流量分析装置包括第十七单元,第十七单元,具体用于若预设时长内没有待分析的五元组会话刷新对应的IP会话,将IP会话删掉。
本发明实施例提供的系统针对全流量进行检测,结合VPN流量的统计特征和报文载荷特征能够对VPN流量进行极为准确的识别,并可实现流量的溯源,流量的审计分析,无需耗费大量的CPU资源和时间,提高了检测效率。
本实施例提供的系统将流量存储和流量分析部分分离,流量分析部分可以使用高性能CPU进行计算,存储部分的流量存储能力用于大流量场景的历史流量识别。
此外,本发明实施例包括一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述技术方案中任一项所述的基于全流量存储的VPN流量识别方法。
本发明实施例还包括一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述技术方案中任一项所述的基于全流量存储的VPN流量识别方法。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于全流量存储的VPN流量识别方法,其特征在于,所述方法包括:
实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是待分析的五元组会话;
若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
2.根据权利要求1所述的方法,其特征在于,所述实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是待分析的五元组会话,具体包括:
S11、实时接收所述流量报文;
S12、提取所述流量报文中的五元组信息,并根据所述五元组信息得到对应的五元组会话,所述五元组信息包括源IP地址、目的IP地址、源端口号、目的端口号和协议号;
S13、判断所述流量报文中TCP载荷长度字段是否为零;
若否,则所述流量报文是有效报文,获取所述有效报文的序列号;
否则,返回步骤S11;
S14、判断所述有效报文的源IP地址和所述五元组会话中的源IP地址是否相同;
若相同,则所述有效报文是上行报文,将匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是正值;
否则,执行步骤S15;
S15、判断所述有效报文的源IP地址是否和所述五元组会话中的目的IP地址相同;
若相同,则所述有效报文是下行报文,将所述匹配数组中数组序号是所述有效报文的序列号的数组元素值赋值为所述有效报文的载荷长度,并设定所述数组元素值是负值;
S16、根据预设会话结束标志,判断所述五元组会话是否结束;
若否,则返回步骤S11;
若是,判断所述匹配数组是否匹配预设序列;
若匹配,则所述五元组会话是所述待分析的五元组会话。
3.根据权利要求1所述的方法,其特征在于,所述若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果,具体包括:
S21、获取所述待分析的五元组会话;
S22、提取所述待分析的五元组会话中的源IP地址和目的IP地址,并根据所述源IP地址和所述目的IP地址得到IP会话,所述IP会话包括源IP地址、目的IP地址、第一数组、匹配计数值和会话计数值;
S23、从所述原始流量报文中查找匹配所述待分析的五元组会话的所有报文作为所述待分析报文;
S24、提取所述待分析报文中第一次请求报文的载荷中第一预设位置的第一字节段和第一次应答报文的载荷中第二预设位置的第二字节段;
S25、将所述第一字节段和所述第二字节段进行逐字节异或运算,得到的运算结果存入第二数组;
S26、将所述第二数组中的数组元素和所述第一数组中的数组元素进行相或运算,得到的相或运算结果保存到第三数组中,并更新所述会话计数值;
S27、比较所述第三数组中的元素值和所述第一数组中的元素值是否均相同;
若相同,则更新所述匹配计数值,若不相同,则将所述匹配计数值清零;
S28、将所述第一数组中的元素值赋值为所述第三数组中的元素值;
S29、判断所述匹配计数值是否达到预设计数值;
若达到,则所述待分析报文是VPN流量报文;
否则,判断所述会话计数值是否大于预设会话计数值;
若大于,则所述待分析报文不是VPN流量报文,删除所述IP会话;
否则,返回步骤S21,等待下一个所述待分析的五元组会话。
4.根据权利要求3所述的方法,其特征在于,所述步骤S22中具体包括:
对所述待分析的五元组会话中的源IP地址和目的IP地址进行哈希运算,根据哈希运算的结果查找IP会话表;
若所述IP会话表中未查找到所述IP会话,则新建IP会话,所述新建IP会话包括源IP地址、目的IP地址和第一数组,并将所述第一数组初始化为预设值,初始化所述IP会话的匹配计数值和会话计数值;
若所述IP会话表中查找到所述IP会话,则获取所述IP会话的第一数组、匹配计数值和会话计数值。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
镜像接收所述原始流量报文;
利用深度识别方法对所述原始流量报文进行协议识别,得到协议识别结果;
若所述协议识别结果是未识别协议,则将所述原始流量报文作为所述流量报文。
6.根据权利要求2所述的方法,其特征在于,所述根据预设会话结束标志,判断所述五元组会话是否结束,具体包括:
判断接收到属于所述五元组会话的报文的TCP头部的FIN标志位或RST标志位是否置位;
若是,则所述五元组会话结束;
或,
判断未接收到属于所述五元组会话的报文的时长是否超过预设连接时长;
若是,则所述五元组会话结束。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若预设时长内没有所述待分析的五元组会话刷新对应的所述IP会话,将所述IP会话删掉。
8.一种基于全流量存储的VPN流量识别系统,其特征在于,所述系统包括流量初筛装置和流量分析装置;
所述流量初筛装置,用于实时记录流量报文的报文信息,将所述报文信息存储到所述流量报文对应的五元组会话中,当所述五元组会话结束,基于所述五元组会话中的所有报文信息,判断所述五元组会话是否是确定待分析的五元组会话;
所述流量分析装置,用于若所述五元组会话是所述待分析的五元组会话,从原始流量报文中查找属于所述待分析的五元组会话的所有报文作为待分析报文,对所述待分析报文进行载荷分析,得到所述待分析报文是否是虚拟专用网络VPN流量报文的分析结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的基于全流量存储的VPN流量识别方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于全流量存储的VPN流量识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410174448.9A CN117729054B (zh) | 2024-02-07 | 2024-02-07 | 一种基于全流量存储的vpn流量识别方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410174448.9A CN117729054B (zh) | 2024-02-07 | 2024-02-07 | 一种基于全流量存储的vpn流量识别方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117729054A true CN117729054A (zh) | 2024-03-19 |
CN117729054B CN117729054B (zh) | 2024-04-16 |
Family
ID=90207353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410174448.9A Active CN117729054B (zh) | 2024-02-07 | 2024-02-07 | 一种基于全流量存储的vpn流量识别方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117729054B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488925A (zh) * | 2009-03-03 | 2009-07-22 | 中兴通讯股份有限公司 | 一种利用Netflow采集及统计VPN流量的方法 |
WO2016106592A1 (zh) * | 2014-12-30 | 2016-07-07 | 华为技术有限公司 | 一种特征信息分析方法及装置 |
CN112118270A (zh) * | 2020-10-29 | 2020-12-22 | 江苏科技大学 | 一种针对基于ssl加密的vpn流量识别方法 |
CN112822189A (zh) * | 2021-01-04 | 2021-05-18 | 中国电力科学研究院有限公司 | 一种流量识别方法及装置 |
CN113301041A (zh) * | 2021-05-21 | 2021-08-24 | 东南大学 | 一种基于分段熵和时间特征的V2Ray流量识别方法 |
US11265339B1 (en) * | 2020-12-15 | 2022-03-01 | Senseon Tech Ltd | Network traffic monitoring |
WO2022134942A1 (zh) * | 2020-12-16 | 2022-06-30 | 武汉绿色网络信息服务有限责任公司 | 一种海量流量下报文识别的方法和装置 |
CN115967681A (zh) * | 2022-12-23 | 2023-04-14 | 中国电子产业工程有限公司 | 一种互联网流量分类方法、装置及设备 |
-
2024
- 2024-02-07 CN CN202410174448.9A patent/CN117729054B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488925A (zh) * | 2009-03-03 | 2009-07-22 | 中兴通讯股份有限公司 | 一种利用Netflow采集及统计VPN流量的方法 |
WO2016106592A1 (zh) * | 2014-12-30 | 2016-07-07 | 华为技术有限公司 | 一种特征信息分析方法及装置 |
CN112118270A (zh) * | 2020-10-29 | 2020-12-22 | 江苏科技大学 | 一种针对基于ssl加密的vpn流量识别方法 |
US11265339B1 (en) * | 2020-12-15 | 2022-03-01 | Senseon Tech Ltd | Network traffic monitoring |
WO2022134942A1 (zh) * | 2020-12-16 | 2022-06-30 | 武汉绿色网络信息服务有限责任公司 | 一种海量流量下报文识别的方法和装置 |
CN112822189A (zh) * | 2021-01-04 | 2021-05-18 | 中国电力科学研究院有限公司 | 一种流量识别方法及装置 |
CN113301041A (zh) * | 2021-05-21 | 2021-08-24 | 东南大学 | 一种基于分段熵和时间特征的V2Ray流量识别方法 |
CN115967681A (zh) * | 2022-12-23 | 2023-04-14 | 中国电子产业工程有限公司 | 一种互联网流量分类方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117729054B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111865815B (zh) | 一种基于联邦学习的流量分类方法及系统 | |
EP3691218A1 (en) | Method and device for identifying encrypted data stream | |
CN112311789B (zh) | 深度报文处理方法、装置、电子设备及存储介质 | |
CA2947325C (en) | Protocol type identification method and apparatus | |
US20130191890A1 (en) | Method and system for user identity recognition based on specific information | |
US9634851B2 (en) | System, method, and computer readable medium for measuring network latency from flow records | |
CN111953552B (zh) | 数据流的分类方法和报文转发设备 | |
CN110460488B (zh) | 业务流识别方法和装置、模型生成方法和装置 | |
CN111314179A (zh) | 网络质量检测方法、装置、设备和存储介质 | |
WO2019134239A1 (zh) | 一种单包识别方法及流量引导方法 | |
CN110691007A (zh) | 一种精确测量quic连接丢包率的方法 | |
CN117729054B (zh) | 一种基于全流量存储的vpn流量识别方法和系统 | |
KR100602633B1 (ko) | 패킷의 헤더를 압축하는 방법 및 그 장치 | |
CN113395367B (zh) | Https业务识别方法、装置、存储介质及电子设备 | |
CN110099138A (zh) | 一种处理带vlan tag的dhcp数据的方法及系统 | |
CN109922081A (zh) | 一种tcp流长连接数据分析方法 | |
US8711706B2 (en) | Protocol delay measuring device and protocol delay measuring method | |
CN110912752B (zh) | 一种基于网络抓包的网络故障智能定位分析方法 | |
CN110912904B (zh) | 恶意设备识别方法、装置、存储介质和计算机设备 | |
KR20220029142A (ko) | Sdn 컨트롤러 서버 및 이의 sdn 기반 네트워크 트래픽 사용량 분석 방법 | |
CN115378881A (zh) | 基于联邦学习的家庭路由器数据流识别方法和识别架构 | |
CN115297033A (zh) | 一种物联网终端流量审计方法及系统 | |
CN110620766B (zh) | 一种提取加密网络流量中tls数据块的方法 | |
CN111294382A (zh) | 一种数据实时推送方法及装置 | |
CN109547389B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |