CN115150165A - 一种流量识别方法及装置 - Google Patents

一种流量识别方法及装置 Download PDF

Info

Publication number
CN115150165A
CN115150165A CN202210768346.0A CN202210768346A CN115150165A CN 115150165 A CN115150165 A CN 115150165A CN 202210768346 A CN202210768346 A CN 202210768346A CN 115150165 A CN115150165 A CN 115150165A
Authority
CN
China
Prior art keywords
flow
model
information
data
traffic
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
Application number
CN202210768346.0A
Other languages
English (en)
Other versions
CN115150165B (zh
Inventor
殷臣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Original Assignee
Beijing Topsec Technology Co Ltd
Beijing Topsec Network Security Technology Co Ltd
Beijing Topsec Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Technology Co Ltd, Beijing Topsec Network Security Technology Co Ltd, Beijing Topsec Software Co Ltd filed Critical Beijing Topsec Technology Co Ltd
Priority to CN202210768346.0A priority Critical patent/CN115150165B/zh
Publication of CN115150165A publication Critical patent/CN115150165A/zh
Application granted granted Critical
Publication of CN115150165B publication Critical patent/CN115150165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种流量识别方法及装置,应用于数据安全技术领域,方法包括:获取待识别流量的流量数据;流量数据包括流统计信息以及流序列信息;将流统计信息以及流序列信息输入流量识别模型中,得到流量识别模型输出的识别结果;流量识别模型包括MLP模型以及双向GRU模型,MLP模型用于对流统计信息进行特征提取得到对应的流统计特征,双向GRU模型用于基于流序列信息的两个方向信息进行序列建模,以对流序列信息进行特征提取得到对应的流序列特征。该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,同时利用双向GRU模型捕获序列特征交互以及数据包特征交互关系,因此提高流量识别的准确率。

Description

一种流量识别方法及装置
技术领域
本申请涉及数据安全技术领域,具体而言,涉及一种流量识别方法及装置。
背景技术
随着互联网技术的快速发展和应用,为了保障用户的隐私和安全,流量加密在当今的互联网上变的更加普遍和重要。同时,这也导致非法分子在互联网上从事恶意行为,通过代理软件或虚拟专用网络(Virtual Private Network,VPN)隐藏自身的网际互连协议(Internet Protocol,IP)地址逃避国家的监管,严重危害着个人和国家安全。
Clash是作为一种新型的网络通信加密代理软件,支持多种加密协议,支持动态绑定端口和端口转发等功能,通常被用于代理隐藏身份,具有非常高的隐蔽性和灵活性。由于其产生的流量与正常的流量非常相似,因此难以将Clash流量与正常流量进行区分。
在现有技术中,一般首先从加密流量数据中提取到流量统计相关信息,然后使用深度学习网络模型对Clash流量进行识别,但是,采用现有的方式对流量进行识别的识别准确率低。
发明内容
本申请实施例的目的在于提供一种流量识别方法及装置,用以解决现有技术中流量识别模型识别准确率低的技术问题。
第一方面,本申请实施例提供一种流量识别方法,包括:获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;其中,所述流量识别模型包括MLP模型以及双向 GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。在上述方案中,在获取到待识别流量对应的流统计信息以及流序列信息之后,可以通过将上述流统计信息以及流序列信息输入流量识别模型中得到待识别流量的流量类型。其中,流量识别模型可以包括MLP模型以及双向GRU模型,由于该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,因此可以提高流量识别的准确率。此外,利用双向GRU模型对流序列信息进行特征提取,可以捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
在可选的实施方式中,所述双向GRU模型包括两层双向GRU模型。在上述方案中,利用两层双向GRU模型对流序列信息进行特征提取,可以进一步的捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
在可选的实施方式中,所述流量识别模型还包括MLP分类模型,所述将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果,包括:将所述流统计信息输入所述MLP模型中,得到所述流统计特征,以及,将所述流序列信息输入所述双向GRU模型中,得到所述流序列特征;对所述流统计特征以及所述流序列特征进行特征拼接;将拼接后的特征输入所述MLP分类模型中,并经过softmax函数输出所述识别结果。在上述方案中,可以使用对流统计特征以及流序列特征进行特征拼接的表征方式,从而可以从多个角度捕获流量数据的差异以及特征之间的特征交互关系,因此可以提高流量识别的准确率。
在可选的实施方式中,所述流序列信息包括数据包序列信息以及负载数据分布序列信息。在上述方案中,流序列信息中的数据包序列信息可以体现数据包传输过程中包信息序列变化行为,而负载数据分布序列信息可以捕获流量数据传输过程中的有效负载数据内容的序列变化行为,从而可以提升流量识别模型对加密流量数据的识别效果,进一步提高流量识别的准确率。
在可选的实施方式中,所述获取待识别流量的流量数据,包括:获取待识别流量;对所述待识别流量进行分流处理,得到多个数据流;针对每一个数据流,提取所述数据流的流信息、前向包信息以及后向包信息,并基于所述流信息、所述前向包信息以及所述后向包信息确定所述流统计信息,以及,提取所述数据流的流序列信息。在上述方案中,在获取到待识别流量之后,可以先对待识别流量进行分流处理,然后在基于分流处理后,根据得到的数据流提取对应的流统计信息以及流序列信息,以根据上述流统计信息以及流序列信息对待识别流量进行流量识别。
在可选的实施方式中,所述流量识别方法还包括:获取Clash流量数据以及非Clash流量数据;利用所述Clash流量数据以及所述非Clash流量数据对原始模型进行训练,得到所述流量识别模型。在上述方案中,在对原始模型进行训练得到流量识别模型的过程中,模型可以同时利用流统计信息和流序列信息,并能够自动学习序列特征交互和数据包之间的交互关系,以及,可以从多个角度对数据流数据进行建模,因此,能够有效区分不同流量类型之间的轻微差异信息,并在流量预测的过程中充分利用学习到的特征信息提高Clash流量识别的准确率。
第二方面,本申请实施例提供一种流量识别装置,包括:第一获取模块,用于获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;识别模块,用于将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;其中,所述流量识别模型包括MLP模型以及双向GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。在上述方案中,在获取到待识别流量对应的流统计信息以及流序列信息之后,可以通过将上述流统计信息以及流序列信息输入流量识别模型中得到待识别流量的流量类型。其中,流量识别模型可以包括MLP模型以及双向GRU模型,由于该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,因此可以提高流量识别的准确率。此外,利用双向GRU模型对流序列信息进行特征提取,可以捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
在可选的实施方式中,所述双向GRU模型包括两层双向GRU模型。在上述方案中,利用两层双向GRU模型对流序列信息进行特征提取,可以进一步的捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
在可选的实施方式中,所述流量识别模型还包括MLP分类模型,所述识别模块具体用于:将所述流统计信息输入所述MLP模型中,得到所述流统计特征,以及,将所述流序列信息输入所述双向GRU模型中,得到所述流序列特征;对所述流统计特征以及所述流序列特征进行特征拼接;将拼接后的特征输入所述MLP分类模型中,并经过softmax函数输出所述识别结果。在上述方案中,可以使用对流统计特征以及流序列特征进行特征拼接的表征方式,从而可以从多个角度捕获流量数据的差异以及特征之间的特征交互关系,因此可以提高流量识别的准确率。
在可选的实施方式中,所述流序列信息包括数据包序列信息以及负载数据分布序列信息。在上述方案中,流序列信息中的数据包序列信息可以体现数据包传输过程中包信息序列变化行为,而负载数据分布序列信息可以捕获流量数据传输过程中的有效负载数据内容的序列变化行为,从而可以提升流量识别模型对加密流量数据的识别效果,进一步提高流量识别的准确率。
在可选的实施方式中,所述第一获取模块具体用于:获取待识别流量;对所述待识别流量进行分流处理,得到多个数据流;针对每一个数据流,提取所述数据流的流信息、前向包信息以及后向包信息,并基于所述流信息、所述前向包信息以及所述后向包信息确定所述流统计信息,以及,提取所述数据流的流序列信息。在上述方案中,在获取到待识别流量之后,可以先对待识别流量进行分流处理,然后在基于分流处理后,根据得到的数据流提取对应的流统计信息以及流序列信息,以根据上述流统计信息以及流序列信息对待识别流量进行流量识别。
在可选的实施方式中,所述流量识别装置还包括:第二获取模块,用于获取Clash流量数据以及非Clash流量数据;训练模块,用于利用所述Clash 流量数据以及所述非Clash流量数据对原始模型进行训练,得到所述流量识别模型。在上述方案中,在对原始模型进行训练得到流量识别模型的过程中,模型可以同时利用流统计信息和流序列信息,并能够自动学习序列特征交互和数据包之间的交互关系,以及,可以从多个角度对数据流数据进行建模,因此,能够有效区分不同流量类型之间的轻微差异信息,并在流量预测的过程中充分利用学习到的特征信息提高Clash流量识别的准确率。
第三方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如第一方面所述的流量识别方法。
第四方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述计算机程序指令能够执行如第一方面所述的流量识别方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行如第一方面所述的流量识别方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举本申请实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种流量识别模型的示意图;
图2为本申请实施例提供的一种流量识别方法的流程图;
图3为本申请实施例提供的ack包是否是相邻上一组包的确认标志提取过程的示意图;
图4为本申请实施例提供的一种流量识别装置的结构框图;
图5为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在介绍本申请实施例提供的流量识别方法之前,首先对本申请实施例提供的流量识别模型进行详细的介绍。请参照图1,图1为本申请实施例提供的一种流量识别模型的示意图,在本申请实施例中,流量识别模型可以包括:第一多层感知器(MultilayerPerception,MLP)模型、双向门控循环单元(Gate Recurrent Unit,GRU)模型以及特征分类模型,其中,MLP模型以及双向GRU模型分别与特征分类模型连接。
具体的,MLP模型用于对流量识别方法中的流统计信息进行特征提取得到对应的流统计特征。其中,MLP模型可以包括多层全连接层,本申请实施例对MLP模型的具体层数以及每层的神经元个数均不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整。
举例来说,本申请实施例提供的MLP模型可以包括三层全连接层,且第一层全连接层的神经元个数为512、第二层全连接层的神经元个数为256、第三层全连接层的神经元个数为128。
可以采用如下公式对全连接层的输出进行计算:
y=f(X·WT+b);
其中,y表示全连接层的输出信息,W表示需要训练的参数,X表示全连接层的输入信息,b表示偏置,f表示神经元激活函数。
此外,本申请实施例对MLP模型具体使用的激活函数也不作具体的限定,本领域技术人员同样可以根据实际情况进行合适的调整。举例来说,可以使用leakRelu激活函数,其能够防止中间神经元失活;或者,可以使用 Sigmoid函数等。
双向GRU模型用于对流量识别方法中的流序列信息进行特征提取得到对应的流序列特征。其中,GRU模型是长短期记忆网络(Long Short-Term Memory,LSTM)的一种变体,可以解决递归神经网络(Recurrent Neural Network,RNN)中的长依赖问题,它较LSTM网络的结构更加简单。
GRU模型GRU包括重置门(rt)和更新门(zt)两种类型的门控单元,共同控制信息在神经网络中的流动状态,进行数据训练时需要更少的时间。在本申请实施例中,采用双向GRU模型,与单向GRU模型相比,双向GRU 能够对两个方向信息进行序列建模,从而能够更有效的捕获两个方向的流信息。
本申请实施例对双向GRU模型的具体结构以及具体使用的激活函数不作具体的限定,本领域技术人员同样可以根据实际情况进行合适的调整。举例来说,可以使用tanh激活函数;或者,可以使用Sigmoid函数等。
其中,在t时刻,双向GRU模型的状态更新可由以下公式计算得到:
rt=σ(Wr·[ht-1,xt]);
zt=σ(Wz·[ht-1,xt]);
Figure BDA0003722983250000091
Figure BDA0003722983250000092
其中,[]表示两个向量相连接,*表示矩阵的哈达玛积,xt表示t时刻的输入数据,ht-1表示前一时刻的隐层状态,σ表示sigmoid函数,Wr、 Wz、Wh~表示权重参数,ht表示隐藏层输出向量。
特征分类模型用于基于数据流量提取到的流统计特征以及流序列特征,对流量识别方法中的待识别流量进行识别,以确定待识别流量的类型。举例来说,假设当前应用场景为Clash流量识别,则特征分类模型可以识别待识别流量是否属于Clash流量。
因此,流量识别模型中的MLP模型对流量识别方法中的流统计信息进行特征提取得到对应的流统计特征,双向GRU模型对流量识别方法中的流序列信息进行特征提取得到对应的流序列特征,特征分类模型基于流统计特征以及流序列特征,对流量识别方法中的待识别流量进行识别,最终确定待识别流量的类型。
在上述方案中,流量识别模型可以包括MLP模型以及双向GRU模型,由于该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,因此可以提高流量识别的准确率。此外,利用双向GRU模型对流序列信息进行特征提取,可以提高序列特征交互以及数据包特征交互,从而提高流量识别的准确率。
进一步的,在上述实施例的基础上,本申请实施例提供的流量识别模型中的双向GRU模型可以包括两层双向GRU模型。
具体的,两层双向GRU模型依次连接。流序列信息输入第一层双向 GRU模型中,输出初始的流序列特征;初始的流序列特征输入第二层双向 GRU模型中,输出最终的流序列特征;最终的流序列特征输入特征分类模型中。
其中,本申请实施例对上述两层双向GRU模型的具体结构不作具体的限定,本领域技术人员同样可以根据实际情况进行合适的调整。举例来说,第一层双向GRU模型可以包括128个神经元,第二层双向GRU模型可以包括64个神经元。
在上述方案中,利用两层双向GRU模型对流序列信息进行特征提取,可以进一步的提高序列特征交互以及数据包特征交互,从而提高流量识别的准确率。
进一步的,在上述实施例的基础上,本申请实施例提供的流量识别模型中的特征分类模型具体可以包括:特征拼接和MLP分类模型。
具体的,特征拼接用于对流统计特征以及流序列特征进行特征拼接,得到含有两类信息的特征向量。其中,本申请实施例对上述特征拼接的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整。举例来说,可以通过直接拼接的方式对流统计信息以及流序列信息进行特征拼接;或者,可以通过直接相加或加权平均的方式对流统计信息以及流序列信息进行特征拼接等;或者,可以通过将特征向量每个元素进行相乘的点乘操作对流统计信息以及流序列信息进行特征拼接等。
MLP分类模型用于对拼接后的特征进行进一步的特征提取,并经过 softmax函数得到最终识别结果,其中,作为一种实施方式,识别结果可以为流量预测分类分数。与MLP模型类似,MLP分类模型可以包括多层全连接层;作为一种实施方式,MLP分类模型可以包括一层全连接层。
在上述方案中,可以使用对流统计特征以及流序列特征进行特征拼接的表征方式,从而可以从多个角度捕获流量数据的差异以及特征之间的特征交互关系,因此可以提高流量识别的准确率。
进一步的,在上述实施例的基础上,本申请实施例可以使用Python语言和Tensorflow2模块构建流量识别模型。
请参照图2,图2为本申请实施例提供的一种流量识别方法的流程图,该流量识别方法可以包括如下步骤:
步骤S201:获取待识别流量的流量数据;其中,流量数据包括流统计信息以及流序列信息。
步骤S202:将流统计信息以及流序列信息输入流量识别模型中,得到流量识别模型输出的识别结果。
具体的,获取待识别流量的流量数据的方式有多种,例如:可以接收外部设备发送的流量数据;或者,可以从云端或者本地读取预先存储的流量数据;或者,可以采集待识别流量,并基于待识别流量确定流量数据等,本申请实施例对此不作具体的限定。
在上述步骤S201中,流量数据包括流统计信息以及流序列信息。其中,流统计信息是基于待识别流量的相关数据,进行统计计算得到的数据;流序列信息是对待识别流量中的数据包序列进行数据提取得到的数据。
可以理解的是,在不同的应用场景中,上述流统计信息以及流序列信息的具体实施方式存在不同,本申请实施例对此不作具体的限定。
针对流统计信息,作为一种实施方式,流统计信息可以包括流信息、前向包信息、后向包信息等。
流信息可以包括:流持续时间;流中包长的最大值、最小值、均值、标准差;流中包时间间隔最大值、最小值、均值、标准差;流中分别含有8类不同包标记的数量等。其中,作为一种实施方式,8类不同包标记可以包括 FIN、SYN、RST、PSH、ACK、URG、ECE和CWR标记。
前向包信息可以包括:前向包总数;前向包长的最大值、最小值、均值、标准差;前向包发送的总时间间隔;前向包时间间隔的最大值、最小值、均值、标准差等。
后向包信息可以包括:后向包总数;后向包的最大值、最小值、方差、均值;后向表的总时间间隔;后向包的时间间隔最大值、最小值、均值、标准差等。
针对流序列信息,作为一种实施方式,流序列信息可以包括数据包序列信息以及负载数据分布序列信息等。
数据包序列信息可以包括:包长度、包时间间隔、包方向和包标记序列信息。其中,包长度表示当前待识别流量中数据包的长度。包时间间隔表示当前包与下一个包的时间间隔,由于最后一个包没有时间间隔,因此可以将最后一个包的包时间间隔设置为0。包方向表示包的传输方向,分为正向和反向,数据流中规定以第一个数据包发送的方向为正方向,使用[1,0]向量表示正方向,使用[0,1]表示反方向。
包标记包括8类基本的标识及1位含有ack包是否是相邻上一组包的确认标志。其中,8类包标记包括FIN、SYN、RST、PSH、ACK、URG、 ECE和CWR标记;而含有ack包是否是相邻上一组包的确认标志用于数据包交互之间的显式信息提取。
请参照图3,图3为本申请实施例提供的ack包是否是相邻上一组包的确认标志提取过程的示意图。该图表示数据流的某一段数据包的交互信息,图中根据发送的方向和时间顺序总计可分5组数据包,每一组表示主机发送数据包的个数。如果含有ack标记的数据包是相邻上一组包的确认标记,则可以取对应标志取值为1,否则为0。
如图3中所示,第2组中的第2个数据包为含ack标识的包,该包是对最近收到的1组数据包的第2个数据包的确认,因此,该ack标识为1。同样,第5组的ack是对第2组中包的确认,如图中虚线箭头所指,因此添加该标识为0。
因此,在上述实施例中,通过提取上述数据包序列信息,可以有效的提取数据传输过程中遵循一来一回的数据交互模式的流量,进而提升本申请实施例提供的流量识别模型对序列信息的建模能力,从而提升模型的表现效果。
负载数据分布序列信息可以包括:数据包内有效负载数据的字符分布信息,以及对应的方差和熵值等。由于待识别流量中的数据所使用的加密方式的不同,其差异会体现的在负载信息内,例如:在正常的未加密的数据包中,常用的26个英文字母和数字将会出现非常频繁,而在加密流量中字母则呈现随机性的变化。同时,不同加密流量协议由于加密的不同和序列交互方式的不同,也会展现出不同的负载数据序列分布特性。
因此,通过提取上述负载数据分布序列信息,可以获流量数据传输过程中的负载序列变化行为,从而可以提升流量识别模型对加密流量数据的识别效果,进一步提高流量识别的准确率。
其中,作为一种实施方式,可以采用如下公式计算数据包内有效负载数据的字符分布信息:
Figure BDA0003722983250000141
其中,P(c)表示字符c占有效负载数据字符的百分比,Ts(c)表示字符c 在有效负载数据s中出现的总次数,len(s)表示有效负载数据s的长度。
在上述步骤S202中,通过将上述流统计信息以及流序列信息输入到上述流量识别模型中,便可以得到流量识别模型输出的识别结果。
在上述方案中,在获取到待识别流量对应的流统计信息以及流序列信息之后,可以通过将上述流统计信息以及流序列信息输入流量识别模型中得到待识别流量的流量类型。其中,流量识别模型可以包括MLP模型以及双向GRU模型,由于该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,因此可以提高流量识别的准确率。此外,利用双向GRU模型对流序列信息进行特征提取,可以捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
进一步的,在上述实施例的基础上,上述步骤S202具体可以包括如下步骤:
步骤1),将流统计信息输入MLP模型中,得到流统计特征,以及,将流序列信息输入双向GRU模型中,得到流序列特征。
步骤2),对流统计特征以及流序列特征进行特征拼接。
步骤3),将拼接后的特征输入MLP分类模型中,并经过softmax函数输出所述识别结果。
在上述方案中,可以使用对流统计特征以及流序列特征进行特征拼接的表征方式,从而可以从多个角度捕获流量数据的差异以及特征之间的特征交互关系,因此可以提高流量识别的准确率。
进一步的,在上述实施例的基础上,上述步骤S201具体可以包括如下步骤:
步骤1),获取待识别流量。
步骤2),对待识别流量进行分流处理,得到多个数据流。
步骤3),针对每一个数据流,提取数据流的流信息、前向包信息以及后向包信息,并基于流信息、前向包信息以及后向包信息确定流统计信息,以及,提取数据流的流序列信息。
具体的,在上述步骤1)中,本端设备可以对待识别流量进行采集。其中,本申请实施例对采集流量的具体实施方式不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整。
以采集Clash流量为例,可以安装Clash软件环境并配置相关代理服务器,安装Wireshark工具用于网络流量的捕获,相应的,采集Clash流量的过程如下:编写Python的Selenium脚本用于自动随机访问alexa网页来产生流量数据,alexa包含排行前100万的网页排名;使用Wireshark工具过滤目的地址和源地址均为代理服务器的地址的IP流量作为Clash代理流量数据包,并进一步过滤掉非传输控制协议(Transmission ControlProtocol, TCP)流量,过滤后的数据流量保存为总计10.3G大小的pcap包。
而采集非Clash流量的过程与上述采集Clash流量的过程相似,通过采集关闭Clash代理工具访问互联网产生的流量,得到10.5G大小的pcap流量包。
在上述步骤2)中,可以对采集到的待识别流量进行分流,得到多个数据流。作为一种实施方式,可以采用python的开源的CICFlowMeter三方工具包对数据进行过滤和分流。
在本申请实施例中,数据流被定义为具有相同五元组的数据包,包括源 IP、源端口、目的IP、目的端口以及协议类型。因此,可以对每一个数据包进行遍历,并对数据包按照五元组信息进行分流。
其中,本申请实施例对判断流提取是否结束的具体规则不作具体的限定,本领域技术人员可以根据实际情况进行合适的调整。举例来说,可以将修改提取流的最大时间间隔设置为15秒,将最大的超时时间设置为30秒;也就是说,当一个流的持续时间大于15秒时,即使没遇到结束标识,也标志着一条数据流提取结束;或者,在当前流最后收到数据包时刻之后的30 秒内未收到下一个数据包时,也标志着这条数据流提取完成。
在上述步骤3)中,可以针对每个数据流提取对应的流量数据,其中,提取流量数据的具体实施方式已经在上述实施例中进行了详细的介绍,此处不再赘述。
作为一种实施方式,在提取得到流统计信息之后,还可以选择z-score 预处理特征的方式对上述流统计信息进行处理,得到处理后的流统计信息。
其中,z-score的计算方法如下:
Figure BDA0003722983250000171
其中,z表示经过处理后的得到流统计信息,x表示输入的数据,
Figure BDA0003722983250000172
表示数据的平均值,S表示数据的标准差。
作为另一种实施方式,在提取数据流的流序列信息时,可以根据划分后的数据流提取前100个包的时间序列信息。
在上述方案中,在获取到待识别流量之后,可以先对待识别流量进行分流处理,然后在基于分流处理后,根据得到的数据流提取对应的流统计信息以及流序列信息,以根据上述流统计信息以及流序列信息对待识别流量进行流量识别。
进一步的,在上述实施例的基础上,本申请实施例提供的流量识别方法还可以包括如下步骤:
步骤1),获取Clash流量数据以及非Clash流量数据。
步骤2),利用Clash流量数据以及非Clash流量数据对原始模型进行训练,得到流量识别模型。
具体的,在利用本申请实施例提供的流量识别模型对待识别流量进行流量识别之前,首先可以对原始模型进行训练。其中,以当前应用场景为对 Clash流量进行流量识别为例,其训练用到的数据集可以包括Clash流量数据以及非Clash流量数据。
其中,上述步骤1)中获取Clash流量数据以及非Clash流量数据的过程与上述实施例中获取待识别流量数据的过程类似,此处不再赘述。
在得到上述Clash流量数据以及非Clash流量数据之后,作为一种实施方式,可以随机按照80%的训练集以及20%的测试集进行分割,训练集用于对原始模型进行训练,测试集用于对训练得到的流量识别模型进行测试。
在上述步骤2)中,将训练集中的Clash流量数据以及非Clash流量数据输入原始模型中,原始模型中的MLP模型对流统计信息进行特征提取,双向GRU对流序列信息进行特征提取,特征分类模型基于上述特征确定流量数据对应的流量类型。
然后,可以利用交叉熵函数以及adam优化器,基于上述预测流量类型与实际流量类型对模型进行参数的更新,最终得到训练完成的流量识别模型。
在上述方案中,在对原始模型进行训练得到流量识别模型的过程中,模型可以同时利用流统计信息和流序列信息,并能够自动学习序列特征交互和数据包之间的交互关系,以及,可以从多个角度对数据流数据进行建模,因此,能够有效区分不同流量类型之间的轻微差异信息,并在流量预测的过程中充分利用学习到的特征信息提高Clash流量识别的准确率。
请参照图4,图4为本申请实施例提供的一种流量识别装置的结构框图,该流量识别装置400可以包括:第一获取模块401,用于获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;识别模块402,用于将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;其中,所述流量识别模型包括MLP 模型以及双向GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。
在本申请实施例中,在获取到待识别流量对应的流统计信息以及流序列信息之后,可以通过将上述流统计信息以及流序列信息输入流量识别模型中得到待识别流量的流量类型。其中,流量识别模型可以包括MLP模型以及双向GRU模型,由于该模型从流统计信息以及流序列信息两个方面出发,可以从多个角度捕获流量数据的差异,因此可以提高流量识别的准确率。此外,利用双向GRU模型对流序列信息进行特征提取,可以捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
进一步的,所述双向GRU模型包括两层双向GRU模型。
在本申请实施例中,利用两层双向GRU模型对流序列信息进行特征提取,可以进一步的捕获序列特征交互以及数据包特征交互关系,从而提高流量识别的准确率。
进一步的,所述流量识别模型还包括MLP分类模型,所述识别模块402 具体用于:将所述流统计信息输入所述MLP模型中,得到所述流统计特征,以及,将所述流序列信息输入所述双向GRU模型中,得到所述流序列特征;对所述流统计特征以及所述流序列特征进行特征拼接;将拼接后的特征输入所述MLP分类模型中,并经过softmax函数输出所述识别结果。
在本申请实施例中,可以使用对流统计特征以及流序列特征进行特征拼接的表征方式,从而可以从多个角度捕获流量数据的差异以及特征之间的特征交互关系,因此可以提高流量识别的准确率。
进一步的,所述流序列信息包括数据包序列信息以及负载数据分布序列信息。
在本申请实施例中,流序列信息中的数据包序列信息可以体现数据包传输过程中包信息序列变化行为,而负载数据分布序列信息可以捕获流量数据传输过程中的有效负载数据内容的序列变化行为,从而可以提升流量识别模型对加密流量数据的识别效果,进一步提高流量识别的准确率。
进一步的,所述第一获取模块401具体用于:获取待识别流量;对所述待识别流量进行分流处理,得到多个数据流;针对每一个数据流,提取所述数据流的流信息、前向包信息以及后向包信息,并基于所述流信息、所述前向包信息以及所述后向包信息确定所述流统计信息,以及,提取所述数据流的流序列信息。
在本申请实施例中,在获取到待识别流量之后,可以先对待识别流量进行分流处理,然后在基于分流处理后,根据得到的数据流提取对应的流统计信息以及流序列信息,以根据上述流统计信息以及流序列信息对待识别流量进行流量识别。
进一步的,所述流量识别装置400还包括:第二获取模块,用于获取 Clash流量数据以及非Clash流量数据;训练模块,用于利用所述Clash流量数据以及所述非Clash流量数据对原始模型进行训练,得到所述流量识别模型。
在本申请实施例中,在对原始模型进行训练得到流量识别模型的过程中,模型可以同时利用流统计信息和流序列信息,并能够自动学习序列特征交互和数据包之间的交互关系,以及,可以从多个角度对数据流数据进行建模,因此,能够有效区分不同流量类型之间的轻微差异信息,并在流量预测的过程中充分利用学习到的特征信息提高Clash流量识别的准确率。
请参照图5,图5为本申请实施例提供的一种电子设备的结构框图,该电子设备500包括:至少一个处理器501,至少一个通信接口502,至少一个存储器503和至少一个通信总线504。其中,通信总线504用于实现这些组件直接的连接通信,通信接口502用于与其他节点设备进行信令或数据的通信,存储器503存储有处理器501可执行的机器可读指令。当电子设备500运行时,处理器501与存储器503之间通过通信总线504通信,机器可读指令被处理器501调用时执行上述流量识别方法。
例如,本申请实施例的处理器501通过通信总线504从存储器503读取计算机程序并执行该计算机程序可以实现如下方法:步骤S201:获取待识别流量的流量数据;其中,流量数据包括流统计信息以及流序列信息。步骤S202:将流统计信息以及流序列信息输入流量识别模型中,得到流量识别模型输出的识别结果。
其中,处理器501包括一个或多个,其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器501可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(NetworkProcessor,简称NP)或者其他常规处理器;还可以是专用处理器,包括神经网络处理器(Neural-network Processing Unit,简称NPU)、图形处理器(Graphics Processing Unit,简称GPU)、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器501为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
存储器503包括一个或多个,其可以是,但不限于,随机存取存储器(RandomAccess Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称 PROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),电可擦除可编程只读存储器(ElectricErasable Programmable Read-Only Memory,简称EEPROM)等。
可以理解,图5所示的结构仅为示意,电子设备500还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,电子设备 500可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备500也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
本申请实施例还提供一种计算机程序产品,包括存储在计算机可读存储介质上的计算机程序,计算机程序包括计算机程序指令,当计算机程序指令被计算机执行时,计算机能够执行上述实施例中流量识别方法的步骤,例如包括:获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;其中,所述流量识别模型包括MLP模型以及双向GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行前述方法实施例所述的频偏及时偏的估计方法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种流量识别方法,其特征在于,包括:
获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;
将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;
其中,所述流量识别模型包括MLP模型以及双向GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。
2.根据权利要求1所述的流量识别方法,其特征在于,所述双向GRU模型包括两层双向GRU模型。
3.根据权利要求1所述的流量识别方法,其特征在于,所述流量识别模型还包括MLP分类模型,所述将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果,包括:
将所述流统计信息输入所述MLP模型中,得到所述流统计特征,以及,将所述流序列信息输入所述双向GRU模型中,得到所述流序列特征;
对所述流统计特征以及所述流序列特征进行特征拼接;
将拼接后的特征输入所述MLP分类模型中,并经过softmax函数输出所述识别结果。
4.根据权利要求1-3任一项所述的流量识别方法,其特征在于,所述流序列信息包括数据包序列信息以及负载数据分布序列信息。
5.根据权利要求1所述的流量识别方法,其特征在于,所述获取待识别流量的流量数据,包括:
获取待识别流量;
对所述待识别流量进行分流处理,得到多个数据流;
针对每一个数据流,提取所述数据流的流信息、前向包信息以及后向包信息,并基于所述流信息、所述前向包信息以及所述后向包信息确定所述流统计信息,以及,提取所述数据流的流序列信息。
6.根据权利要求1所述的流量识别方法,其特征在于,还包括:
获取Clash流量数据以及非Clash流量数据;
利用所述Clash流量数据以及所述非Clash流量数据对原始模型进行训练,得到所述流量识别模型。
7.一种流量识别装置,其特征在于,包括:
第一获取模块,用于获取待识别流量的流量数据;其中,所述流量数据包括流统计信息以及流序列信息;
识别模块,用于将所述流统计信息以及所述流序列信息输入流量识别模型中,得到所述流量识别模型输出的识别结果;
其中,所述流量识别模型包括MLP模型以及双向GRU模型,所述MLP模型用于对所述流统计信息进行特征提取得到对应的流统计特征,所述双向GRU模型用于基于所述流序列信息的两个方向信息进行序列建模,以对所述流序列信息进行特征提取得到对应的流序列特征。
8.一种计算机程序产品,其特征在于,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-6任一项所述的方法。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述计算机程序指令能够执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序指令,所述计算机程序指令被计算机运行时,使所述计算机执行如权利要求1-6任一项所述的方法。
CN202210768346.0A 2022-06-30 2022-06-30 一种流量识别方法及装置 Active CN115150165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210768346.0A CN115150165B (zh) 2022-06-30 2022-06-30 一种流量识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210768346.0A CN115150165B (zh) 2022-06-30 2022-06-30 一种流量识别方法及装置

Publications (2)

Publication Number Publication Date
CN115150165A true CN115150165A (zh) 2022-10-04
CN115150165B CN115150165B (zh) 2024-03-15

Family

ID=83410075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210768346.0A Active CN115150165B (zh) 2022-06-30 2022-06-30 一种流量识别方法及装置

Country Status (1)

Country Link
CN (1) CN115150165B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259930A1 (en) * 2007-04-20 2008-10-23 Johnston Simon K Message Flow Model of Interactions Between Distributed Services
CN108833360A (zh) * 2018-05-23 2018-11-16 四川大学 一种基于机器学习的恶意加密流量识别技术
CN109391602A (zh) * 2017-08-11 2019-02-26 北京金睛云华科技有限公司 一种僵尸主机检测方法
CN111611280A (zh) * 2020-04-29 2020-09-01 南京理工大学 一种基于cnn和sae的加密流量识别方法
CN111970169A (zh) * 2020-08-14 2020-11-20 中山大学 一种基于gru网络的协议流量识别方法
CN112738039A (zh) * 2020-12-18 2021-04-30 北京中科研究院 一种基于流量行为的恶意加密流量检测方法、***及设备
CN112822189A (zh) * 2021-01-04 2021-05-18 中国电力科学研究院有限公司 一种流量识别方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259930A1 (en) * 2007-04-20 2008-10-23 Johnston Simon K Message Flow Model of Interactions Between Distributed Services
CN109391602A (zh) * 2017-08-11 2019-02-26 北京金睛云华科技有限公司 一种僵尸主机检测方法
CN108833360A (zh) * 2018-05-23 2018-11-16 四川大学 一种基于机器学习的恶意加密流量识别技术
CN111611280A (zh) * 2020-04-29 2020-09-01 南京理工大学 一种基于cnn和sae的加密流量识别方法
CN111970169A (zh) * 2020-08-14 2020-11-20 中山大学 一种基于gru网络的协议流量识别方法
CN112738039A (zh) * 2020-12-18 2021-04-30 北京中科研究院 一种基于流量行为的恶意加密流量检测方法、***及设备
CN112822189A (zh) * 2021-01-04 2021-05-18 中国电力科学研究院有限公司 一种流量识别方法及装置

Also Published As

Publication number Publication date
CN115150165B (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
Salo et al. Dimensionality reduction with IG-PCA and ensemble classifier for network intrusion detection
CN112003870B (zh) 一种基于深度学习的网络加密流量识别方法及装置
CN109391602B (zh) 一种僵尸主机检测方法
CN116647411B (zh) 游戏平台网络安全的监测预警方法
CN111885035B (zh) 一种网络异常检测方法、***、终端以及存储介质
CN113469234A (zh) 一种基于免模型联邦元学习的网络流量异常检测方法
Podder et al. Artificial neural network for cybersecurity: A comprehensive review
He et al. Deep‐Feature‐Based Autoencoder Network for Few‐Shot Malicious Traffic Detection
Ko et al. Adaptable feature-selecting and threshold-moving complete autoencoder for DDoS flood attack mitigation
CN112468347A (zh) 一种云平台的安全管理方法、装置、电子设备及存储介质
CN112491894A (zh) 一种基于时空特征学习的物联网网络攻击流量监测***
CN112884121A (zh) 基于生成对抗深度卷积网络的流量识别方法
CN114422211A (zh) 基于图注意力网络的http恶意流量检测方法及装置
CN114866310A (zh) 一种恶意加密流量检测方法、终端设备及存储介质
Wang et al. An unknown protocol syntax analysis method based on convolutional neural network
CN114362988B (zh) 网络流量的识别方法及装置
CN111211948B (zh) 基于载荷特征和统计特征的Shodan流量识别方法
Liu et al. Spatial‐Temporal Feature with Dual‐Attention Mechanism for Encrypted Malicious Traffic Detection
Kumar et al. Deep Learning Based Optimal Traffic Classification Model for Modern Wireless Networks
CN115150165B (zh) 一种流量识别方法及装置
Dahanayaka et al. Dissecting traffic fingerprinting CNNs with filter activations
CN115712857A (zh) 一种异常流量检测方法、设备及介质
Zhang et al. An interpretable intrusion detection method based on few-shot learning in cloud-ground interconnection
Sangher et al. A systematic review–intrusion detection algorithms optimisation for network forensic analysis and investigation
CN114422207A (zh) 基于多模态的c&c通信流量检测方法及装置

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