一种基于多模态神经网络的恶意加密流量检测方法转让专利

申请号 : CN202110612198.9

文献号 : CN113067839B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨岳湘刘吉元施江勇顾智拼孙一鹏吴添君何亮忠

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明涉及一种基于多模态神经网络的恶意加密流量检测方法,具体包括如下步骤:S1:构建一个特征提取模块,从网络流量上捕获数据包,并输出网络流的多个模态的特征;S2:构建并训练一个神经网络检测模块,输入S1中输出的网络流的多个模态的特征,进行恶意流量检测。本发明能够提取网络流量的多模态特征,从多个维度对网络流量进行分析,提高恶意流量识别率。

权利要求 :

1.一种基于多模态神经网络的恶意加密流量检测方法,其特征在于,具体包括如下步骤:

S1:构建一个特征提取模块,从网络流量上捕获数据包,并输出网络流的多个模态的特征;

S2:构建并训练一个神经网络检测模块,输入S1中输出的网络流的多个模态的特征,进行恶意流量检测;

S1中:

S1.1:解析流量包中的五元组,判断该流量包是否是使用了TLS协议,若判断结果为否则丢弃,若判断结果为是,则进行步骤S1.2;

S1.2:根据五元组判断该流量包所属的网络流,并判断其在网络流中的位置,若为第一个包,则为该网络流开辟空间;若为最后一个包,则进行S1.3;否则,将该流量包存入对应的网络流空间;

S1.3:对完整的网络流进行统计计算,进行多模态特征提取,多模态特征至少包括流统计特征、TLS协议特征和证书特征;

提取到的多模态流量特征表示为 ,其中,Xp表示第p个模态的数据,且共有m个模态,网络流量的标签表示为Y,数据的隐藏表达表示为H,与第p个模态对应的神经网络表示为fΘp,其中Θp代表第p个神经网络的参数,与数据标签对应的神经网络表示为gΘ0,Θ0代表其网络参数,假设流量个数为n,则n n×k

,Y∈ℝ ,H∈ℝ ,其中dp表示第p个模态数据的维度,其中,k表示数据隐藏表达的维度,为正整数,ℝ为实数集;

则神经网络检测模块的训练方法为:输入多模态流量特征 及其标签Y,执行以下步骤:S2.1:随机初始化数据隐藏表达H,初始化或使用已知的神经网络参数 ,Θ0;

S2.2:通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,以及数据标签的重构 ,即 , ;

S2.3:通过对比输入的多模态特征和重构的多模态特征以及数据标签和重构的数据标签,计算出重构误差lossr,即 ,其中ℓ表示误差计算函数,采用二范损失 ,或ℓp损失,或KL散度损失;

S2.4:采用梯度下降和反向传播方法,最小化重构误差lossr,循环迭代更新神经网络参数 ,Θ0和数据隐藏表达H;

S2.5:当S2.4中重构误差lossr收敛,停止算法,输出网络参数 ,Θ0,完成神经网络检测模块的训练。

2.根据权利要求1所述的基于多模态神经网络的恶意加密流量检测方法,其特征在于S2中,当输入nt个多模态流量 ,其中 ,执行以下步骤:t

S2.6:随机初始化数据隐藏表达H;

S2.7:通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,即 =fΘpt

(H);

S2.8:通过对比输入的多模态特征和重构的多模态特征,计算出重构误差 ,即;其中,ℓ表示误差计算函数,采 用二范损失,或ℓp损失,或KL散度损失;

S2.9:采用梯度下降和反向传播方法,最小化重构误差 ,循环迭代更新神经网络t

参数 和数据隐藏表达H ;

t

S2.10:当步骤S2.9中重构误差 收敛,得到数据隐藏表达H ;

t

S2.11:将步骤S2.10数据隐藏表达H 进行神经网络映射到标签,即 ,输t

出数据标签Y。

3.根据权利要求2所述的基于多模态神经网络的恶意加密流量检测方法,其特征在于:将训练数据划分为多个批次进行训练:训练过程中,首先接受第一批次多模态流量特征 及其标签Y,通过训练得到神经网络参数 ,Θ0,然后将其用于下一次模型训练,每一批次训练,初始化数据隐藏t

表达H,经过多批次训练后,得到最后更新的神经网络参数 ,Θ0。

4.根据权利要求3所述的基于多模态神经网络的恶意加密流量检测方法,其特征在于:训练过程和测试过程的交互步骤如下:将最后更新的神经网络参数 ,Θ0,用于恶意流量检测,训练好的神经网络检测t

模块,接受n 个多模态流量特征 ,利用最后更新的神经网络参数 ,Θ0,输t

出数据标签Y,标签表示正常或恶意,完成恶意流量检测。

说明书 :

一种基于多模态神经网络的恶意加密流量检测方法

技术领域

[0001] 本发明涉及恶意加密流量检测领域,尤其涉及一种基于多模态神经网络的恶意加密流量检测方法。

背景技术

[0002] 恶意网络流量检测,Dai, R., Gao, C., Lang, B., Yang, L., Liu, H., & Chen, S.  (2019). SSL Malicious Traffic Detection Based On Multi‑view 
Features. In Proceedings of the 2019 the 9th International Conference on 
Communication and Network Security.其中提取了加密流量三个方面的32个特征,包含
流量的统计特征、SSL协议握手特征和X509证书特征。然后,利用不同特征之间的互信息进
行特征选择,去掉关联性不强的3个特征,并将其他特征进行拼接。最后采用通用的四种统
计机器学习方法,包括支持向量机、决策树、随机森林和XGBoost,进行模型构建和加密恶意
流量的识别。但该现有技术存在如下缺点:
[0003] 1)限定了所提取的流量特征,即文中的32种;
[0004] 2)简单地利用互信息进行特征选择,不能保证去掉的特征中包含对模型训练有用的信息;
[0005] 3)直接将三个部分的特征进行拼接,忽略了各个部分信息之间的冗余,造成恶意流量识别率底;
[0006] Celik, Z. B., Walls, R. J., McDaniel, P., & Swami, A. (2015). Malware traffic detection using tamper resistant features. In MILCOM 2015 ‑ 2015 IEEE 
Military Communications Conference (pp. 330–335).
[0007] John A Quinn and Masashi Sugiyama. A least‑squares approach to anomaly detection in static and sequential data. Pattern Recognition Letters, 
2014.在该现有技术中,通过捕获网络流量中的TCP包,进行流量特征的统计,最终提取了9
个特征,使用通用的统计机器学习方法,包括支持向量机、kNN,LSAD 、k‑means算法,进行恶
意流量检测。但该现有技术存在如下缺点:
[0008] 1)限定了所提取的流量特征,即文中的9种;
[0009] 2)只采用了流量的统计特征,信息源不足,造成恶意流量识别率底。
[0010] Marin, G., Casas, P., & Capdehourat, G. (2019). Deep in the Dark ‑ Deep Learning‑Based Malware Traffic Detection Without Expert Knowledge. In 
2019 IEEE Security and Privacy Workshops (SPW) (pp. 36–42).在该现有技术中首先
捕获网络流量,不做任何特征提取,抽取其前m个流量包的前n个字节,将之作为深度网络模
型的输入。该现有技术存在如下缺点:
[0011] 1)不做任何特征的提取,网络流量的前m个流量包的前n个字节中,包含众多冗余、交叉、含噪的无用数据,导致检测性能较低。
[0012] 2)没有从多个维度对网络流量进行分析,造成恶意流量识别率底。

发明内容

[0013] 本发明的目的是提供一种基于多模态神经网络的恶意加密流量检测方法,能够提取网络流量的多模态特征,从多个维度对网络流量进行分析,提高恶意流量识别率。
[0014] 为达到上述目的而采用了一种基于多模态神经网络的恶意加密流量检测方法,具体包括如下步骤:
[0015] S1:构建一个特征提取模块,从网络流量上捕获数据包,并输出网络流的多个模态的特征;
[0016] S2:构建并训练一个神经网络检测模块,输入S1中输出的网络流的多个模态的特征,进行恶意流量检测;
[0017] 作为本发明基于多模态神经网络的恶意加密流量检测方法进一步的改进,S1中:
[0018] S1.1:解析流量包中的五元组,判断该流量包是否是使用了TLS协议,若判断结果为否则丢弃,若判断结果为是,则进行步骤S1.2;
[0019] S1.2:根据五元组判断该流量包所属的网络流,并判断其在网络流中的位置,若为第一个包,则为该网络流开辟空间;若为最后一个包,则进行S1.3;否则,将该流量包存入对
应的网络流空间;
[0020] S1.3:对完整的网络流进行统计计算,进行多模态特征提取,多模态特征至少包括流统计特征、TLS协议特征和证书特征。
[0021] 作为本发明基于多模态神经网络的恶意加密流量检测方法进一步的改进:
[0022] 提取到的多模态流量特征表示为 ,其中,Xp表示第p个模态的数据,且共有m个模态,网络流量的标签表示为Y,数据的隐藏表达表示为H,与第p个模态对应的神经网络
表示为fΘp,其中Θp代表第p个神经网络的参数,与数据标签对应的神经网络表示为gΘ0,Θ0
代表其网络参数,假设流量个数为n,则
n n×k
[0023] ,Y∈ℝ ,H∈ℝ ,其中dp表示第p个模态数据的维度,其中,k表示数据隐藏表达的维度,为正整数,ℝ为实数集。
[0024] 则神经网络检测模块的训练方法为:
[0025] 输入多模态流量特征 及其标签Y,执行以下步骤:
[0026] S2.1:随机初始化数据隐藏表达H,初始化或使用已知的神经网络参数 ,Θ0;
[0027] S2.2:通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,以及数据标签的重构 ,即 , ;
[0028] S2.3:通过对比输入的多模态特征和重构的多模态特征以及数据标签和重构的数据标签,计算出重构误差lossr,即 ,其中ℓ表示误差计
算函数,采用二范损失 ,或ℓp损失,或KL散度损失;
[0029] S2.4:采用梯度下降和反向传播方法,最小化重构误差lossr,循环迭代更新神经网络参数 ,Θ0和数据隐藏表达H;
[0030] S2.5:当S2.4中重构误差lossr收敛,停止算法,输出网络参数 ,Θ0,完成神经网络检测模块的训练。
[0031] 作为本发明基于多模态神经网络的恶意加密流量检测方法进一步的改进,S2中,当输入nt个多模态流量 ,其中 ,执行以下步骤:
[0032] S2.6:随机初始化数据隐藏表达Ht;
[0033] S2.7:通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,即t
=fΘ(p H);
[0034] S2.8:通过对比输入的多模态特征和重构的多模态特征,计算出重构误差 ,即 ;其中,ℓ表示误差计算函数,采用二范损失
,或ℓp损失,或KL散度损失。
[0035] S2.9:采用梯度下降和反向传播方法,最小化重构误差 ,循环迭代更新神经t
网络参数 和数据隐藏表达H ;
[0036] S2.10:当步骤S2.9中重构误差 收敛,得到数据隐藏表达Ht;t
[0037] S2.11:将步骤S2.10数据隐藏表达H进行神经网络映射到标签,即t
,输出数据标签Y。
[0038] 作为本发明基于多模态神经网络的恶意加密流量检测方法进一步的改进:
[0039] 将训练数据划分为多个批次进行训练:
[0040] 训练过程中,首先接受第一批次多模态流量特征 及其标签Y,通过训练得到神经网络参数 ,Θ0,然后将其用于下一次模型训练,每一批次训练,初始化数据
t
隐藏表达H,经过多批次训练后,得到最后更新的神经网络参数 ,Θ0。
[0041] 作为本发明基于多模态神经网络的恶意加密流量检测方法进一步的改进:
[0042] 训练过程和测试过程的交互步骤如下:
[0043] 将最后更新的神经网络参数 ,Θ0,用于恶意流量检测,训练好的神经网络t
检测模块,接受n 个多模态流量特征 ,利用最后更新的神经网络参数 ,
t
Θ0,输出数据标签Y,标签为正常或恶意,完成恶意流量检测。
[0044] 本发明通过神经网络的映射分别重构三部分特征,进而得到流量样本的潜在固有表示,该固有表示更具判别性,使得恶意流量识别率高。使用通用的统计机器学习方法构建
模型,其特征的学习效果不如本发明中所采用的神经网络模型。本发明可以进行分类任务,
本发明可以分批次进行训练,可降低训练开销,并支持模型的迭代更新。本发明将分类标签
视为一个模态数据,直接参与模型训练。
[0045] 本发明针对现存加密恶意流量检测方法,针对恶意流量的多特征多角度特点出发,构建检测模型,检测率高。
[0046] 本发明使用多个神经网络将该隐藏表达还原为对应的多个模态数据,通过最小化重构误差来优化神经网络和该隐藏表达。

附图说明

[0047] 图1为基于多模态神经网络的恶意流量检测模型。
[0048] 图2为特征提取模块。
[0049] 图3为神经网络检测模块,以两个模态(流统计特征、证书特征)为例。
[0050] 图4为神经网络检测模块的训练过程和测试过程。

具体实施方式

[0051] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0052] 在本发明的描述中,需要说明的是,术语“中心”、 “上”、“下”、 “左”、 “右”、 “竖直”、“水平”、 “内”、 “外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅
是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的
方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、 “第二”、 
“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性;此外,除非另有明确的规定
和限定,术语“安装”、 “相连”、 “连接”应做广义理解,例如,可以是固定连接,也可以是可
拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过
中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具
体情况理解上述术语在本发明中的具体含义。
[0053] 本发明是将多模态神经网络模型应用于恶意加密流量检测,本发明可在结构上分为两部分,即网络流量特征提取和多模态神经网络检测模型,如图1。
[0054] 首先,本发明采用旁路的方式从网络上捕获流量包,然后通过特征提取模型提取出多个模态的特征,再将其输入多模态的神经网络检测模型。
[0055] 特征提取模块以网络包为粒度,提取网络流的多模态特征,且流程如图2。
[0056] 网络流由五元组,<源IP,源端口,目标IP,目标端口,协议名称>,唯一标识。
[0057] 当捕获流量包之后,其执行步骤如下:
[0058] 1)解析该流量包中的五元组,判断该流量包是否是使用了TLS协议。若判断结果为否则丢弃;若判断结果为是,则进行步骤2)。
[0059] 2)根据五元组判断该流量包所属的网络流,并判断其在网络流中的位置。若为第一个包,则为该网络流开辟空间;若为最后一个包,则进行步骤3);否则,将该流量包存入对
应的网络流空间。
[0060] 3)对完整的网络流进行统计计算,进行多模态特征提取,尽可能地提取出更多模态的特征。常用的特征包含流统计特征、TLS协议特征和证书特征等。
[0061] 特征提取模块输出的多模态特征不进行拼接、选择等操作,直接输入神经网络检测模块。即,神经网络检测模块为多模态输入,其结构如图3。
[0062] 提取到的多模态流量特征可表示为 ,其中,Xp表示第p个模态的数据,且共有m个模态。网络流量的标签表示为Y,数据的隐藏表达表示为H,与第p个模态对应的神经网
络表示为fΘp,其中Θp代表第p个神经网络的参数。与数据标签对应的神经网络表示为gΘ0,
n n×k
Θ0代表其网络参数。假设流量个数为n,则 ,Y∈ℝ ,H∈ℝ 。其中dp表示第p个模
态数据的维度,其中,k表示数据隐藏表达的维度,为正整数,需提前设定。
[0063] 在模型训练阶段,输入多模态流量特征 及其标签Y,执行以下步骤:
[0064] 1)随机初始化数据隐藏表达H,初始化(或使用已知的)神经网络参数 ,Θ0。
[0065] 2)通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,以及数据标签的重构 ,即 , 。
[0066] 3)通过对比输入的多模态特征和重构的多模态特征以及数据标签和重构的数据标签,计算出重构误差lossr,即 。其中ℓ表示误差计算函
数,如二范损失 。
[0067] 4)采用梯度下降和反向传播方法,最小化重构误差lossr,循环迭代更新神经网络参数 ,Θ0和数据隐藏表达H。
[0068] 5)当步骤4)中重构误差lossr收敛,停止算法,输出网络参数 ,Θ0。(无需数据隐藏表达H)。
[0069] 模型训练完成后,得到神经网络参数 ,Θ0。当输入nt个多模态流量,其中 ,执行以下步骤:
[0070] 1)随机初始化数据隐藏表达Ht。
[0071] 2)通过神经网络映射数据隐藏表达,以此得到多模态的重构特征 ,即 =t
fΘ(p H)。
[0072] 3)通过对比输入的多模态特征和重构的多模态特征,计算出重构误差 ,即。其中,ℓ表示误差计算函数,如二范损失

[0073] 4)采用梯度下降和反向传播方法,最小化重构误差 ,循环迭代更新神经网t
络参数 和数据隐藏表达H。
[0074] 5)当步骤4)中重构误差 收敛,得到数据隐藏表达Ht。t
[0075] 6)将步骤5)数据隐藏表达H进行神经网络映射到标签,即 。输出数t
据标签Y。
[0076] 本发明可将训练数据划分为多个批次进行训练,训练过程和测试过程的交互如图4所示。
[0077] 训练过程中,首先接受第一批次多模态流量特征 及其标签Y,通过训练得t
到神经网络参数 ,Θ0,然后将其用于下一次模型训练。检测过程中,接受n 个多模
t
态流量 ,利用训练过程中得到的神经网络参数 ,Θ0,输出数据标签Y,标
签表示正常或恶意,完成恶意流量检测。
[0078] 4、发明的效果或特点
[0079] 本发明提取多个模态的网络流量特征,并设计了一个多模态神经网络分类模型,进行加密恶意流量检测。与现有方法,加密恶意流量检测方法相比,有如下优点:
[0080] 1)现有加密恶意流量检测方法将多个模态特征直接拼接,使用简单的统计机器学习方法构建模型。本发明为其定制了一个多模态神经网络分类模型。此模型能够更好地去
除多个模态间的冗余信息,从而提高检测率。
[0081] 2)现有多模态神经网络分类模型需要所有数据一起输入进行训练,大大增加了计算开销。本发明能够将数据分批次进行训练,更加灵活,计算开销小,且可多次反复进行训
练,以提高模型性能。此外,现有模型在测试时需依赖训练数据的隐藏表达H,储存和计算开
销大。本发明无需依赖训练数据的隐藏表达H,储存和计算开销小。再者,在训练过程中将标
签数据作为多模态网络流量的另一个模态,能更好地融合标签信息,从而提高检测率。
[0082] 在本发明的技术方案中:
[0083] 1)在模型训练过程和模型检测过程步骤3)中,可采用多种方式计算重构损失,如二范损失 、ℓp损失,KL散度损失等;
[0084] 2)在图4表示的模型训练与测试交互中,模型的训练过程可以一次或多次。
[0085] 3)在特征提取模块中,多模态的流量特征提取可包含多个模态,并非只有示例所述的三个模态(流统计特征、TLS协议特征和证书特征)。
[0086] 4)在图3中,采用了全连接网络结构进行示意,其他类型的神经网络结构也可使用,如卷积神经网络结构等。
[0087] 本发明:
[0088] 1)从网络流量中提取多个模态的特征,不将它们直接拼接,而是使用多输入的神经网络将其融合。
[0089] 2)在神经网络模块中,区别于现有方法,将数据标签作为一个模态数据,使用神经网络从数据隐藏表达还原重构数据标签。
[0090] 3)本发明所设计的神经网络检测模型的结构,即图3。
[0091] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱
离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应
当视为属于本发明的保护范围之内。