一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于多模态的C&C通信流量检测方法及装置

2022-04-30 16:47:48 来源:中国专利 TAG:

基于多模态的c&c通信流量检测方法及装置
技术领域
1.本发明属于网络通信安全技术领域,特别涉及一种基于多模态的c&c通信流量检测方法及装置。


背景技术:

2.在恶意代码网络行为链的命令控制(command and control,c&c)阶段,攻击者利用c&c通信控制受害者主机,进行机密信息窃取、文件破坏、漏洞攻击等一系列恶意行为,为国家、企业和个人带来了严重的安全隐患。c&c通信是指感染主机上的恶意代码和c&c服务器之间的通讯过程,攻击者通过c&c 服务器来管理控制感染主机,感染主机从c&c服务器获取攻击指令并进行敏感信息回传、拒绝服务攻击等恶意行为。c&c通信流量的准确检测对维护网络安全具有重要的作用,但随着网络攻防博弈不断升级,恶意代码为了逃避当前的检测手法,不断对c&c通信技术进行迭代更新,使得c&c通信流量越来越隐蔽。
3.现实世界中,人类的认知过程是复杂多变的,个体往往通过视觉、听觉、嗅觉和触觉等不同模态的信息对当前场景进行快速感知与理解。例如,安全研究人员在对恶意流量进行审计分析或对攻击行为进行追踪溯源时,往往通过威胁情报、异常的流量特征、流量载荷内容和通信交互过程等多个渠道的信息综合做出判断。多模态学习,旨在通过机器学习和深度学习的方法实现处理和理解多模态信息的能力,与传统依靠单一模态的机器学习方法相比,多模态学习更贴近人类认识世界、了解世界的一般规律。


技术实现要素:

4.针对现有技术中存在的问题,本发明提出一种基于多模态的c&c通信流量检测方法及装置,从流量统计信息、流量原始载荷和通信行为序列这三个模态综合提取网络流量特征,并对c&c流量不同模态的信息构建相适宜的神经网络子模型,能够综合c&c通信流量在不同模态下的深层知识,实现c&c通信流量的准确检测。
5.为了实现上述目的,本发明采用以下的技术方案:
6.本发明提供了一种基于多模态的c&c通信流量检测方法,包含以下步骤:
7.将原始流量文件分割为会话流,该会话流由双向的数据流组成;
8.基于会话流分别提取流量统计信息、流量原始载荷和通信行为序列这三个模态的数据;
9.根据这三个模态的数据特点分别构建深层神经网络子模型、卷积神经网络子模型和长短时记忆网络子模型进行相应的特征向量提取,将这三种子模型得到的特征向量进行拼接融合;
10.将拼接融合后的特征向量输入多层神经网络检测c&c通信流量。
11.进一步地,所述c&c通信过程包括命令交互阶段和保持连接阶段,在命令交互阶段,c&c信道主要用来控制感染主机进行信息窃取的恶意行为;在保持连接阶段,c&c服务器为与感染主机维持会话连接,存在互发心跳包的行为。
12.进一步地,所述流量统计信息包括上下行流量相关统计信息、psh数据包比例、数据包大小及数据包间隔时间相关统计信息、会话持续时间及会话数据包总数相关统计信息和心跳行为检测;
13.所述上下行流量相关统计信息是指在c&c信道建立连接后,攻击者通过 c&c服务器发送控制命令,受控主机按照c&c服务器发送的控制命令进行相应动作,回传敏感数据,此时c&c信道的上行流量大于下行流量;
14.所述psh数据包是tcp头部带psh标志的数据包,psh标志用来通知接收方在收到该数据包后立即传递到上层应用,当c&c服务器希望发送的数据立刻得到受控主机响应时,会将tcp报头中的psh标志位置1,c&c通信的会话流中有较多的psh数据包;
15.所述数据包大小及数据包间隔时间相关统计信息,在命令交互阶段,c&c 服务器向受控主机发送控制命令,数据包较小,而在受控主机响应控制命令,返回内容较大的数据时,数据包较大,通过对大量c&c通信数据包的分析,小数据包为大小不超过200字节的数据包,大数据包为大小不小于1000字节的数据包;在保持连接阶段,c&c服务器每隔固定时间发送小数据包对受控主机进行探活,反映在c&c通信流量上的结果就是小数据包较多,数据包间隔时间基本一致;
16.所述会话持续时间及会话数据包总数相关统计信息在c&c通信过程中的会话持续时间和数据包总数呈现两极分化的特征;
17.所述心跳行为检测,将数据包按照通信时间间隔进行分簇,并定义簇的属性为簇中数据包数量和簇中数据包总大小,如果属性相同的簇大于3个,就认为通信过程中存在心跳行为,并将该类别值置1。
18.进一步地,所述流量原始载荷在输入到卷积神经网络子模型之前需进行预处理,将流量原始载荷转化成模型输入张量,包含以下步骤:
19.将原始pcap文件按照会话流进行分割,考虑到一次完整的tcp连接至少包含3个握手包和4个挥手包,剔除了所有数据包总数小于7的会话流;
20.去除以太网包头、ip地址干扰信息;
21.截取每条会话流前n个数据包的前m个字节,超出部分进行截断,不足则用0填充;
22.将会话流量数据转化成n
×
m维的矩阵数据。
23.进一步地,所述通信行为序列刻画通信过程中双方交互状态的变化,对于通信行为序列建模需要会话流中每个数据包的三个特征:数据包方向、数据包长度和数据包到达时间间隔,具体建模过程如下:
24.首先按照数据包方向将会话流中的数据包分为从源到目的和从目的到源两种情况;
25.再将数据包长度和数据包到达时间间隔按照各自阈值进行离散化,其中数据包长度按阈值区分了4种情况,数据包达到时间间隔按阈值区分了5种情况,再加上无数据包传输这1种特殊情况,得到了41种不同的状态;
26.为每一个数据包分配一个状态符号,这样每个会话连接都会获得相应的符号字符串作为该会话的通信行为序列。
27.进一步地,所述深层神经网络子模型用于提取流量统计信息的特征向量,所述深层神经网络子模型包含3个隐含层,最终得到30维的向量输出。
28.进一步地,所述卷积神经网络子模型用于提取流量原始载荷的特征向量,所述卷积神经网络子模型包括两个一维卷积层、池化层、flatten层和全连接层,最终得到40维的向量输出。
29.进一步地,所述长短时记忆网络子模型用于提取通信行为序列中的特征向量,所述长短时记忆网络子模型包括嵌入层、双向长短时记忆网络、拼接层、池化层和全连接层,最终得到10维的向量输出。
30.进一步地,所述将这三种子模型得到的特征向量进行拼接融合,将拼接融合后的特征向量输入多层神经网络检测c&c通信流量包括:将深层神经网络子模型输出的30维特征向量、卷积神经网络子模型输出的40维特征向量和长短时记忆网络子模型输出的10维特征向量进行聚合拼接,构成一个80维的特征向量,再使用多层神经网络对该特征向量进行处理。
31.本发明还提供了一种基于多模态的c&c通信流量检测装置,包括:
32.原始流量文件分割模块,用于将原始流量文件分割为会话流,该会话流由双向的数据流组成;
33.多模态信息提取模块,用于基于会话流分别提取流量统计信息、流量原始载荷和通信行为序列这三个模态的数据;
34.特征向量提取融合模块,用于根据这三个模态的数据特点分别构建深层神经网络子模型、卷积神经网络子模型和长短时记忆网络子模型进行相应的特征向量提取,将这三种子模型得到的特征向量进行拼接融合;
35.c&c通信流量检测模块,用于将拼接融合后的特征向量输入多层神经网络检测c&c通信流量。
36.与现有技术相比,本发明具有以下优点:
37.针对c&c通信流量难以识别检测的问题,本发明提出了一种基于多模态的 c&c通信流量检测方法,该方法通过提取流量统计信息、流量原始载荷和通信行为序列这三种模态的数据,全面地对c&c通信流量进行刻画;并根据这三种模态的数据特点分别构建了深层神经网络子模型、卷积神经网络子模型和长短时记忆网络子模型,最后将三个子模型得到的特征向量进行融合,使用多层神经网络对c&c通信流量进行检测。本发明的多模态检测方法可以有效地识别 c&c通信流量,相比单模态检测方法具有更高的准确率和更好的性能,与传统机器学习方法和其它深度学习方法相比具有更强的泛化能力。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1是本发明实施例的基于多模态的c&c通信流量检测方法的流程图;
40.图2是本发明实施例的spymax恶意代码c&c通信的上下行流量示例图;
41.图3是本发明实施例的geodo恶意代码c&c通信中的psh包示例图;
42.图4是本发明实施例的心跳连接的通信时间间隔及载荷示例图;
43.图5是本发明实施例的c&c通信中的会话持续时间示例图;
44.图6是本发明实施例的通信行为序列示例图;
45.图7是本发明实施例的深层神经网络子模型的结构图;
46.图8是本发明实施例的一维卷积运算过程图;
47.图9是本发明实施例的卷积神经网络子模型的结构图;
48.图10是本发明实施例的长短时记忆网络子模型的结构图;
49.图11是本发明实施例的mcfp中的恶意流量样本分析信息图,图中(a) 表示运行过程,(b)表示suricata分析报告;
50.图12是本发明实施例的多模态模型选择不同参数m的效果图;
51.图13是本发明实施例的多模态模型选择不同参数n的效果图;
52.图14是本发明实施例的多模态模型选择不同参数t的效果图;
53.图15是本发明实施例的4种模型的训练情况曲线图;
54.图16是本发明实施例的4种模型实验结果柱状图。
具体实施方式
55.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
56.如图1所示,本实施例的一种基于多模态的c&c通信流量检测方法(即基于多模态的c&c通信流量检测模型,简称多模态模型),包含以下步骤:
57.步骤s11,将原始流量文件分割为会话流,该会话流由双向的数据流组成;
58.步骤s12,基于会话流分别提取流量统计信息、流量原始载荷和通信行为序列这三个模态的数据;
59.步骤s13,根据这三个模态的数据特点分别构建深层神经网络子模型、卷积神经网络子模型和长短时记忆网络子模型进行相应的特征向量提取,将这三种子模型得到的特征向量进行拼接融合;
60.步骤s14,将拼接融合后的特征向量输入多层神经网络检测c&c通信流量。
61.所述c&c通信过程包括命令交互阶段和保持连接阶段,在命令交互阶段, c&c信道主要用来控制感染主机进行信息窃取等恶意行为;在保持连接阶段, c&c服务器为与感染主机维持会话连接,可能存在互发心跳包等行为。
62.所述流量统计信息包括上下行流量相关统计信息、psh数据包比例、数据包大小及数据包间隔时间相关统计信息、会话持续时间及会话数据包总数相关统计信息和心跳行为检测。
63.1、上下行流量相关统计信息
64.在c&c信道建立连接后,攻击者通过c&c服务器发送控制命令,受控主机按照c&c服务器发送的控制命令进行相应动作。此时c&c信道主要用来回传用户敏感数据,因此与用户正常行为产生的流量相比,最明显的不同是上行流量大于下行流量。图2示出了spymax恶意代码c&c通信的上下行流量情况,其中10.8.0.93是受控端主机的ip地址,147.32.83.181是
c&c服务器的ip 地址,可以看到受控端主机向c&c服务器发送了3314个数据包和2118k字节的流量,而c&c服务器则向受控端发送了1987个数据包和192k字节的流量。李巍等人对木马和正常应用的通信过程进行对比实验,发现正常应用的上下行字节数比例约为0.3,而木马程序的上下行字节数比例约为1.8。
65.2、psh数据包比例
66.psh数据包是tcp头部带psh标志的数据包,psh标志用来通知接收方在收到该数据包后立即传递到上层应用,当c&c服务器希望发送的数据立刻得到受控主机响应时,会将tcp报头中的psh标志位置1,以图3geodo恶意代码的 c&c通信为例,可以看到该会话流中有较多的psh数据包。
67.3、数据包大小及数据包间隔时间相关统计信息
68.在命令交互阶段,c&c服务器向受控主机发送获取设备信息、运行特定程序等控制命令,这些控制命令往往只含少量数据,因此数据包较小;而在受控主机响应控制命令,返回图片、文档等内容较大的数据时,其数据包也往往较大,通过对大量c&c通信数据包的分析,定义小数据包为大小不超过200字节的数据包,大数据包为大小不小于1000字节的数据包。此外,在保持连接阶段,一些恶意代码通常会发送心跳包来维持连接,这样的数据包通常具有较为固定的通信时间间隔并只含少量的通信载荷,以图4此心跳连接为例,c&c服务器每隔12秒发送载荷为“5poing”的数据包对受控端主机进行探活,反映在c&c 通信流量上的结果就是小数据包较多,数据包间隔时间基本一致。
69.4、会话持续时间及会话数据包总数相关统计信息
70.图5示出了三个c&c服务器与其受控端主机之间的会话持续时间,可以看到虽然这些连接的持续时间有较大的差异,但这三个c&c信道中都存在着持续时间较长的会话连接(超过30分钟),并且这些持续时间较长的会话连接往往也暗藏着更多的恶意行为。此外,一些恶意代码为了隐蔽与c&c服务器的通信过程,其交互过程会尽量简洁。所以,与正常应用所产生的流量相比,c&c通信过程中的会话持续时间和数据包总数等统计信息往往呈现两极分化的特征。
71.5、心跳行为检测
72.除了上述数值型、比值型统计信息,本实施例也提取了通信过程是否含有心跳行为这种类别型统计信息。借鉴赵天福等人的研究方法,将数据包按照通信时间间隔进行分簇,并定义簇的属性为簇中数据包数量和簇中数据包总大小,如果属性相同的簇大于3个,就认为存在心跳行为,并将该类别值置1,否则置 0。
73.下面表1给出提取的c&c通信流量统计信息。
74.表1流量统计信息列表
[0075][0076][0077]
基于深度学习的恶意流量检测方法,通过神经网络优异的表征能力直接将原始流量作为模型输入,构建端到端的检测模型。为了使模型能够学习到c&c 流量中隐含的深层特征,将流量原始载荷作为另一个模态的信息进行特征提取。流量原始载荷在输入到卷积神经网络子模型之前需进行预处理,将流量原始载荷转化成模型输入张量,包含以下步骤:
[0078]
a)将原始pcap文件按照会话流进行分割,考虑到一次完整的tcp连接至少包含3个握手包和4个挥手包,剔除了所有数据包总数小于7的会话流;
[0079]
b)去除以太网包头、ip地址等干扰信息;
[0080]
c)截取每条会话流前n个数据包的前m个字节,超出部分进行截断,不足则用0填充。
[0081]
经过以上步骤,将会话流量数据转化成n
×
m维的矩阵数据,便于卷积神经网络子模型进行特征提取。
[0082]
c&c通信流量与正常通信流量之间存在着显著的差异,这种差异不仅体现在流量统计信息和流量原始载荷这些静态的内容上,也体现在c&c通信交互的动态流程上。流量统计信息和流量原始载荷虽然能够对c&c通信流量进行良好的刻画,但无法反映c&c通信过程的动态变化情况。例如,当c&c服务器开始发送控制指令,一个处于静默连接状态的c&c信道会突然变得活跃起来。不同类型的应用有着不同的交互方式,每种应用会话连接状态随时间变化的过程,其本身就是这种应用所独有的特征。因此本实例提出了一种通信行为序列建模方法,高效地刻画通信过程中双方交互状态的变化。通信行为序列建模方法需要会话流中每个数据包的三个特征:数据包方向、数据包长度和数据包到达时间间隔,具体步骤如下:
[0083]
a)首先按照数据包方向将会话流中的数据包分为从源到目的和从目的到源两种情况;
[0084]
b)再将数据包长度和数据包到达时间间隔按照各自阈值进行离散化,其中数据包长度按阈值区分了4种情况,数据包达到时间间隔按阈值区分了5种情况,再加上无数据包传输这1种特殊情况。
[0085]
基于上述划分,得到了41种不同的状态,根据表2所示的建模策略可以为每个数据
包分配一个状态符号,这样每个会话连接都会获得相应的符号字符串作为该会话的通信行为序列。
[0086]
表2通信行为序列建模策略
[0087][0088]
以会话流的前52个数据包构建相应的通信行为序列,可以得到如图6所示的结果。从图中可以看到该方法清晰地显示了通信过程中双方交互状态的变化情况,直观地表现了一些会话流的规律性变化,既有助于模型进行c&c通信的特征学习,也有助于安全研究人员进行审计分析。
[0089]
深层神经网络(deepneuralnetwork,dnn)是指受神经科学启发形成的一组模型,理论上神经网络可以拟合任意复杂的函数,但也存在高维空间下效率较低、容易过拟合等问题。本实例使用深层神经网络处理流量统计信息,确立了如图7所示的dnn子模型结构。dnn子模型包含有3个隐含层,最终形成 30维的向量输出。
[0090]
卷积神经网络(convolutional neural network,cnn)是一种具有局部连接、权重共享等特性的神经网络,在计算机视觉和自然语言处理等领域取得了良好的效果。基于卷积神经网络的流量检测方法,大都将流量原始数据预处理为灰度图像,但这种处理方式割裂了原始流量中相邻字节之间的位置关系,限制了模型的学习能力。为了不破坏网络流量自身的结构特征,我们使用一维卷积对预处理得到的n
×
m维的流量原始载荷进行处理。如图8所示,一维卷积中卷积核的宽度等于每个数据包截取的字节数,卷积核沿着数据包依次到达的时间方向进行移动,在这一特征抽象过程中,相邻字节之间的位置关系得以保留。
[0091]
cnn子模型结构如图9所示,两个一维卷积层提取流量原始载荷的特征信息,池化层过滤低置信度的特征,flatten层将多维输入一维化,最终通过全连接层得到40维的向量输出。
[0092]
长短时记忆网络(long short-term memory,lstm)能够处理输入之间前后关联的问题,有效地解决了循环神经网络(recurrent neural network,rnn) 的梯度爆炸或梯度消失问题,相比于rnn,lstm更适合挖掘通信行为序列中的特征。lstm子模型结构如图10所示,首先通过嵌入层将通信行为序列中的每一个符号转换成21维的向量,然后采用双向长短时记忆网络对嵌入层输出的向量序列进行正、反2个方向的扫描,并使用跳连结构对嵌入层和双向长短时记忆网络的输出结果进行拼接,池化层使用最大池化将拼接后的结果转化为一维向量,最后通过全连接层得到10维的向量输出。
[0093]
在进行流量分类之前,需要对深层神经网络子模型、卷积神经网络子模型和长短
时记忆网络子模型得到的特征向量进行聚合。为了尽可能保留c&c流量的相应模态特性,将深层神经网络子模型输出的30维特征向量、卷积神经网络子模型输出的40维特征向量和长短时记忆网络子模型输出的10维特征向量进行聚合拼接,构成一个80维的特征向量,再使用多层神经网络对该特征向量进行处理。多层神经网络具体包括如下:
[0094]
1.分类器:使用softmax分类器来判断输入的数据为正常流量还是c&c通信流量,softmax会将多个神经元的输出映射到(0,1)内,各个输出之和等于1,符合概率形式。如公式(1)所示,其中oi为向量的第i个元素,该元素的softmax值为:
[0095][0096]
2.损失函数:模型训练时需要定义一个适当的损失函数,继而进行反向传播来优化参数。目前,神经网络通常使用交叉熵作为损失函数来处理分类问题,交叉熵表示的是两个概率分布之间的差异。如公式(2)所示,其中,q表示预测概率值分布,p表示正确的概率分布。
[0097][0098]
3.激活函数:激活函数是网络节点进行信息传递的工具,帮助网络学习现实数据中的复杂模式。由于relu函数形式较为简单且最符合生物神经元模型,采用relu函数作为激活函数,函数表达式如公式(3)所示。
[0099]
f(x)=max(0,x)(3)
[0100]
4.优化器:优化器选择方面,首先使用的是sgd算法,但在实验中模型迟迟难以收敛。经过理论研究和实验测试后,最终选择adam算法来更新模型参数。
[0101]
5.dropout:过拟合是神经网络训练过程中一个常见的问题,指的是模型在训练集上表现良好,但在测试集上却表现较差。这里使用dropout来避免过拟合,dropout的原理是在训练时随机丢弃神经网络部分节点数据,而在模型测试时再使用全部节点,dropout的值为0.5,即随机丢弃一半的节点。
[0102]
下面进行实验与分析更好地说明本发明。
[0103]
(1)实验数据
[0104]
c&c流量检测领域没有标准的数据集,本实验研究中的c&c流量主要来自mcfp(malwarecapturefacilityproject)。mcfp由布拉格捷克理工大学的stratosphereips发展而来,负责长期捕获恶意代码流量。
[0105]
mcfp的研究者通过运行恶意代码来捕获其c&c通信流量,但其捕获的pcap文件同时也包含了一些属于正常通信或非c&c通信的背景流量,所以为了更准确地训练和评估模型,需要找出其中的c&c通信流量,去除不确定或者非c&c通信的流量。mcfp为pcap文件提供了其运行过程的描述信息以及suricata等安全分析工具的分析报告,如图11所示。结合恶意代码的运行过程,可以根据时间在pcap文件中筛选出恶意代码运行期间感染主机所产生的网络流量,过滤掉其中的背景流量,并根据suricate安全分析报告确定c&c通信相关的ip信息,从而筛选出确切的c&c通信流量。对于样本库中缺少相关分析报告的恶意流量样本,我们通过结合该类型恶意代码所产生的c&c流量的通信特点,例如emotet的c&c流量通常是
以http/1.1结束的、包含随机字符串的 http post请求,先大致筛选出可疑的通信流量,再通过奇安信威胁情报中心检验可疑的ip地址,确定相应的c&c通信流量。
[0106]
如表3所示,最终从mcfp中收集了恶意代码emotet、geodo和ursnif等产生的c&c通信流量,并按照前文所述方法筛选出数量约5000多的c&c会话流量。这些c&c流量主要以tcp协议为主,其中droidjack、spymax和saefko 这些手机端运行的恶意代码使用未经加密的明文流量或压缩算法转化后的流量进行c&c通信,并在c&c通信中含有明显的心跳行为;emotet和geodo等主机端运行的恶意代码大多对c&c通信内容进行了加密处理;neris和droidjack 等恶意代码包含持续时间超过30分钟的c&c长连接。
[0107]
正常流量由三部分流量组成,共有9754条会话流。一部分是在校园网关口抓取的1gb用户日常流量;另一部分是ctu-normal数据集的部分流量,主要包含正常用户进行文件下载、网上聊天和浏览视频等日常行为所产生的流量,以及访问alexa排名前1000的网站所产生的流量;最后一部分是clickminer数据集的部分流量,该数据集收集了用户通过浏览器访问网站的正常流量。
[0108]
表3c&c流量实验数据集
[0109][0110]
(2)实验设置
[0111]
计算机配置为8核16线程cpu,16gb内存,运行64位的ubuntu 20.04操作系统,显卡为nvidia geforce rtx 2060。使用nfstream工具对原始pcap 文件进行处理,pytorch作为神经网络框架搭建神经网络模型。利用实验数据集进行c&c流量与正常流量的二分类实验,其中训练集和测试集比例约为8:2。选取二分类准确率、精准率、召回率、漏报率和f1值作为模型评价指标。
[0112]
(3)超参数选择
[0113]
本实验主要通过一次一因子方法确定合适的超参数区间,这种方法通过将其余变量设置为固定值来观察单一因素的影响效果,以及背后的因果关系,能够降低实验设计的复杂度。在对流量数据进行预处理时,需要通过截取和填充等方式将流量数据处理成检测模型需要的输入形式,相关超参数包括以下3个内容:
[0114]
1.m(packet size):流量原始载荷中,每个数据包选取的字节数。
[0115]
2.n(packet number):流量原始载荷中,每条会话流选取的数据包数目。
[0116]
3.t(sequence number):通信行为序列中,每条会话流进行序列化的数据包数目。
[0117]
对于参数m,根据之前的实验经验,在n与t为4的基础上,对m从100 到1000取值(即
m=100,200,300,400,500,600,700,800,900,1000) 进行模型训练。训练结果如图12所示,图中a表示准确率,p表示精准率,r 表示召回率,f1表示f1值,可以看到在当m取值为200或300时,模型结果相对更好,当m值增大时,模型效果呈波动下降的趋势,同时每个数据包选取的字节数越大,模型训练时间也越长。
[0118]
对于参数n,本实验从4到32取值(即n=4,6,8,10,12,16,18,20, 24,32),构造10组数据对模型进行训练。训练结果如图13所示,可以看到在不同n的取值下,模型效果呈先上升后下降的趋势,并且当n为10时,模型结果相对较好。在c&c服务器与受控端主机进行通信时,命令控制信息通常集中在前几个数据包中,因此在一些情况下,只需会话流中的前几个数据包就可以判断它是否在进行c&c通信。
[0119]
对于参数t,本实验从10到32取值(即t=10、12、16、18、20、24和32) 对模型进行训练,结果如图14所示,随着t值的增大模型效果基本呈上升趋势,并当t值取24、32时,模型训练结果相对更好。
[0120]
通过以上分析,综合考虑模型的训练时间和训练效果后,将200作为流量原始载荷中,每个数据包选取的字节数,即m=200;将10作为流量原始载荷中每条会话流选取的数据包数目,即n=10;将24作为通信行为序列中,每条会话流进行序列化的数据包数目,即t=24。
[0121]
(4)实验结果
[0122]
如前所述,为了更全面、更精确地对c&c通信流量进行刻画,本实验没有采用单一模态的特征和方法,而是从流量统计信息、流量原始载荷和通信行为序列等多种模态的数据出发,结合dnn、cnn和lstm子模型综合提取原始流量中的多模态特征。因此,为了对多模态检测模型的性能进行测试,本实验利用实验数据集对以下4种模型进行了实验,并观察实验的评估指标结果。
[0123]
1.dnn模型:只使用流量统计信息进行c&c流量检测。
[0124]
2.cnn模型:只使用流量原始载荷进行c&c流量检测。
[0125]
3.lstm模型:只使用通信行为序列进行c&c流量检测。
[0126]
4.multimodal模型:同时使用流量统计信息、流量原始载荷和通信行为序列进行c&c流量检测,即本发明的多模态检测模型。
[0127]
图15示出了4种模型前20轮的训练情况。从图中可以看出,在只使用单一模态特征的情况下,cnn和lstm模型的性能相对更好,dnn模型的性能相对较差。不难发现,多模态模型的初始准确率就达到了很高的数值,且在第6 轮训练时模型的训练结果便达到了相对稳定的状态,这说明多模态模型对网络流量特征的学习能力更强,可以更好地捕捉c&c流量和正常流量之间的差异。
[0128]
图16显示了4种模型在测试集上的评估指标结果。从图16可以看出,在同样的训练时间下,多模态模型的性能比dnn模型、cnn模型和lstm模型均有明显提升。20轮训练后多模态检测模型在准确率、精准率、召回率和f1值均达到了最高水平。所以,在建立c&c通信流量检测模型时,多模态模型相比单模态模型具有更强的c&c流量辨识能力,具有更好的检测性能。
[0129]
(5)对比实验
[0130]
为了进一步验证多模态模型的有效性,在实验数据集下本实验基于前人已有的研
究方法进行对比实验,这些研究方法分别基于机器学习模型、cnn模型和 lstm模型进行c&c流量检测,能够在一定程度上检验多模态模型的有效性。
[0131]
1.svm:将流量统计特征作为模型输入使用支持向量机算法进行c&c流量检测。
[0132]
2.rf:基于流量统计特征使用随机森林算法进行c&c流量识别。
[0133]
3.textcnn:使用多种尺寸的一维卷积核提取会话流的多视角空间特征完成 c&c流量分类。
[0134]
4.hast:首先通过one-hot将流量数据包的字节进行编码,然后利用cnn 提取空间特征,再利用lstm提取会话流时间特征完成c&c流量检测。
[0135]
由表4可见,在实验数据集上,尽管svm的精准率可以达到100%,但召回率和f1值分别仅为24.43%和39.27%,同时漏报率高达75.57%。textcnn的各项指标结果相较svm更为出色,但其性能表现仍与rf、hast和multimodal 有一定差距。可以看出,rf、hast和multimodal三种方法的准确率、精准率、召回率和f1值这四项评估指标的结果均在97%以上,同时漏报率均控制在3%以内,它们在实验数据集上相对其他方法有着更好的表现。
[0136]
表4多模态模型对比实验(%)
[0137][0138]
(6)模型泛化型实验
[0139]
为了评估不同方法对c&c通信流量检测效果的泛化能力,本实验将上面(5) 对比实验中训练好的模型进行保存,并用这些模型直接对“未知”的c&c流量进行检测。这里的“未知”流量主要包含两类,一类是与实验数据集中的恶意代码同家族,但版本及hash不同的c&c流量(如emotet、geogo、urnif等);另一类是实验数据集中没有涵盖的恶意代码家族但其行为与实验数据集中的一些恶意代码有相似之处(如tester和ahmyth与实验数据集中的droidjack、 spymax和saefko均含有压缩算法隐藏数据、长连接和心跳这些行为)。本实验将上述类型的流量进行收集,构造了如表5所示的泛化数据集,在泛化数据集中除了c&c流量还包括部分与实验数据集中的良性流量不相交的正常流量。
[0140]
表5c&c流量泛化数据集
[0141][0142]
[0143]
由表6可见,在泛化数据集上,不同方法面对相对“未知”的c&c流量,其检测结果均有不同程度的下降。这里重点比较在实验数据集中表现相对较好的三种方法rf、hast和multimodal,可以发现rf方法的精准率、召回率和 f1值分别下降了约18%、50%和38%,漏报率提升了约50%,说明rf方法过拟合了实验数据集中的c&c流量,没有捕捉到c&c流量的行为特性;hast 方法的精准率、召回率和f1值分别下降了约26%、4%和16%,其性能下降相对rf方法较小,但也有一定程度的过拟合问题;multimodal方法的性能下降相对较小,准确率等评估指标的结果都在91%以上,同时漏报率也最小,说明其在一定程度上捕捉到了c&c流量的行为特征,相比其它的实验方法有更强的泛化能力。
[0144]
表6多模态模型泛化能力对比实验(%)
[0145][0146]
本实施例构造了实验数据集和泛化数据集,实验数据集用于模型的训练和测试,泛化数据集用于检验模型的泛化能力。实验结果表明,多模态模型可以有效地识别c&c通信流量,相比单模态的检测模型具有更高的准确率和更好的性能,与传统机器学习方法和其它深度学习方法相比具有更强的泛化能力。
[0147]
与上述一种基于多模态的c&c通信流量检测方法相对应地,本实施例还提出一种基于多模态的c&c通信流量检测装置,包括:
[0148]
原始流量文件分割模块,用于将原始流量文件分割为会话流,该会话流由双向的数据流组成;
[0149]
多模态信息提取模块,用于基于会话流分别提取流量统计信息、流量原始载荷和通信行为序列这三个模态的数据;
[0150]
特征向量提取融合模块,用于根据这三个模态的数据特点分别构建深层神经网络子模型、卷积神经网络子模型和长短时记忆网络子模型进行相应的特征向量提取,将这三种子模型得到的特征向量进行拼接融合;
[0151]
c&c通信流量检测模块,用于将拼接融合后的特征向量输入多层神经网络检测c&c通信流量。
[0152]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0153]
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献