一种基于多模态融合的物联网僵尸网络检测方法

未命名 08-22 阅读:86 评论:0


1.本发明属于网络安全和机器学习技术领域,具体涉及一种基于多模态融合的物联网僵尸网络检测方法。


背景技术:

2.物联网被称为是继计算机和互联网之后的第三次信息技术革命,它被认为是智能城市、智能家居、智能交通、智能医疗的基础。物联网的目标是将以前未连接的设备连接到互联网,从而创建能够收集、存储和共享数据的智能设备。物联网拥有的海量设备以及设备本身的脆弱性,使得大量攻击者将目光聚焦在物联网上。
3.僵尸网络(botnet)由大量被攻击者控制的联网设备构成,其中受控的联网设备被称作僵尸主机(bot),僵尸网络管理员(bot master)可以在设备所有者不知情的情况下对联网设备实施感染,使其成为僵尸主机,然后通过预先设置的命令与控制信道(command and control,c&c)进行命令分发,操控僵尸主机进行ddos攻击、虚拟货币挖掘、恶意软件分发、垃圾邮件、网络钓鱼攻击、窃取个人信息等恶意行为。因此,对于僵尸网络检测的发现与识别的研究是目前网络安全问题的热点方向与重点课题。
4.基于网络流量的检测方法是目前较为常用的方法,是通过对网络流量的特征分析来进行僵尸网络的检测。该方法主要依托于机器学习方法,根据所采集数据的样本特征与标签之间的关系,建立僵尸网络识别模型。随着人工智能的蓬勃发展,深度学习成为研究的热点领域,逐渐被使用到网络流量的检测方法上来。鉴于目前使用深度学习算法进行僵尸网络的相关研究大多局限于单一模态的检测,只使用卷积神经网络或者循环神经网络其中的单一模型,没有综合考虑流量自身内容和上下文关联的特点;另外由于训练数据集的覆盖面较为单一,使得模型的泛化能力较弱,在面对不曾出现过的僵尸网络程序时,检测能力较弱。
5.针对上述问题,如何综合考虑流量内容及其上下文的关联,以及如何提高模型的泛化能力,提高模型对不同僵尸网络的覆盖面,是亟待解决的一个问题。


技术实现要素:

6.本发明的目的在于提供一种基于多模态融合的物联网僵尸网络检测方法,具有较高的检测能力。
7.为实现上述目的,本发明所采取的技术方案为:
8.一种基于多模态融合的物联网僵尸网络检测方法,所述基于多模态融合的物联网僵尸网络检测方法,包括:
9.步骤1、捕获流量数据并进行预处理;
10.步骤2、基于时空特征融合的僵尸网络检测;
11.步骤2.1、提取流量数据中的有效数据;
12.步骤2.2、将所述有效数据输入至cnn模型中得到输出矩阵output11;
13.步骤2.3、将所述有效数据输入至lstm模型中得到输出矩阵output12;
14.步骤2.4、根据输出矩阵output11和输出矩阵output12得到输出矩阵output1;
15.步骤3、基于流量行为的僵尸网络检测;
16.步骤3.1、提取流量数据的特征参数形成流量通信行为序列;
17.步骤3.2、基于动态偏置对流量通信行为序列进行划分,得到若干子序列;
18.步骤3.3、根据特征参数,构建每一子序列对应的通信行为图;
19.步骤3.4、将通信行为图输入gcn模型,得到输出矩阵output2;
20.步骤4、融合所述输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果。
21.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
22.作为优选,所述捕获流量数据并进行预处理,包括:
23.使用tcpdump工具抓取流量数据,以pcap文件格式保存;
24.流量数据清洗,过滤无用的tcp连接数据包;
25.按session对清洗后的流量数据进行切分,流量数据的五元组为切分标准,得到每个session的pcap格式文件。
26.作为优选,所述提取流量数据中的有效数据,包括:
27.提取预处理后的流量数据中每个session的pcap格式文件;
28.按顺序提取600个字节的内容,并剔除前24个字节的内容,得到576个字节的有效数据。
29.作为优选,所述根据输出矩阵output11和输出矩阵output12得到输出矩阵output1,包括:
30.将输出矩阵output11和输出矩阵output12连接成输出矩阵output13,并将输出矩阵output13输入全连接层,得到输出矩阵output1。
31.作为优选,所述基于动态偏置对流量通信行为序列进行划分,得到若干子序列,包括:
32.a)设定动态偏置的初值以及增长步长;
33.b)根据动态偏置的初值对流量通信行为序列进行划分得到若干子序列;
34.c)以增长步长累加动态偏置,判断累加后的动态偏置是否超过偏置阈值,若超过则结束数据划分,并将每次划分得到的子序列汇总作为最终划分得到的子序列集合,否则执行下一步;
35.d)基于累加后的动态偏置对流量通信行为序列进行划分得到若干子序列,并返回步骤c)继续执行。
36.作为优选,所述根据特征参数,构建每一子序列对应的通信行为图,包括:
37.若子序列中有k条流量数据,每条流量数据有m维的结点特征,则定义结点特征矩阵为邻接矩阵定义为则通信行为图在数学表示形式上为(x,a)。
38.作为优选,所述融合所述输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果,包括:
39.将输出矩阵output1和输出矩阵output2连接得到输出矩阵output3;
40.将输出矩阵output3输入全连接层,得到输出矩阵output,将输出矩阵output输入分类器得到网络检测结果。
41.本发明提供的一种基于多模态融合的物联网僵尸网络检测方法,与现有技术相比,具有以下有益效果:
42.1、充分利用流量的空间特征信息和时间特征信息,综合考虑流量内容及其上下文的关联,使得检测准确率得到有效的提高。
43.2、结合了僵尸网络通信行为模式,提高模型的泛化能力,使在面对未知僵尸网络时仍然有较高的检测准确率。
附图说明
44.图1为本发明一种基于多模态融合的物联网僵尸网络检测方法总体流程图;
45.图2为本发明基于时空特征融合的僵尸网络检测的网络结构图;
46.图3为现有的窗口技术原理图;
47.图4为本发明结点转换示意图;
48.图5为本发明多模态融合分类流程示意图。
具体实施方式
49.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本发明。
51.如图1所示,本实施例提供一种基于多模态融合的物联网僵尸网络检测方法,包括以下步骤:
52.步骤1、捕获流量数据并进行预处理。
53.步骤1.1、使用tcpdump工具抓取流量数据,以pcap文件格式保存到磁盘,得到原始流量文件。
54.步骤1.2、流量数据清洗,清除掉无用的tcp连接数据包,本实施例中无用的tcp连接数据包包括重传数据、重复ack数据、乱序数据等。
55.步骤1.3、按session(会话)对清洗后的流量进行切分,即可得到每个session的pcap格式文件,供后续步骤使用。目前对于session的常规定义为客户端与服务器建立连接后数据传输的过程,这个过程从建立连接开始,到断开连接结束,包括期间所有的网络流量数据。tcpdump工具抓取的流量数据是以packet为条目保存,每个packet具有网络流量的五元组{srcip,srcport,protocal,desip,desport}的属性。相同的session具备相同的五元组,即第x条数据中的五元组{srcip_x,srcport_x,protocal_x,desip_x,desport_x}的属性,与第y条数据中的五元组{srcip_y,srcport_y,protocal_y,desip_y,desport_y}的属
性中,存在srcip_x=desip_y,srcport_x=desport_y,protocal_x=protocal_y。因此本实施例根据五元组为切分标准,使用slipcat工具进行切分。
56.步骤2、基于时空特征融合的僵尸网络检测:提取流量数据的payload部分,进行编码,输入到并行cnn模型和lstm模型中进行检测,输出为1*10的矩阵。
57.步骤2.1、提取流量数据中的有效数据。
58.对于每个session的pcap格式文件,提取600个字节的内容,对于文件大小大于600字节的session,在600个字节处进行截断;对于文件大小小于600字节的session,在内容后面以0填充至600字节。由于前24个字节是tcp连接头部内容:包括ip地址,端口号,协议类型,标志位等。ip地址和端口号对流量内容的分析会产生干扰,协议类型和标志位的信息大部分流量都相同,没有区分度,会降低数据的信息有效性,增加模型学习成本。因此本实施例剔除掉前24个字节的内容,得到576个字节的有效数据作为流量载荷信息。
59.步骤2.2、如图2所示,将有效数据输入至cnn模型中得到输出矩阵output11。
60.对于cnn模型,将数据转化成24*24的二维矩阵,将数据内容从[0-255]映射到[0-1],输入到cnn模型中进行分类,得到1*10的输出矩阵output11。
[0061]
本实施例中的cnn模型包括依次连接的卷积层1(kernel=3,size=3),池化层1(size=2),卷积层2(kernel=3,size=3),池化层2(size=4),全连接层(neurons=27)和全连接层(neurons=10)。在其他实施例中,cnn模型的网络结构可根据需要进行替换。
[0062]
步骤2.3、将有效数据输入至lstm模型中得到输出矩阵output12。
[0063]
对于lstm模型,将数据转化成16*36的二维矩阵,将数据内容从[0-255]映射到[0-1],输入到lstm模型中进行分类,得到1*10的输出矩阵output12。
[0064]
本实施例中的lstm模型包括依次连接的双向lstm网络(neurons=256,timestep=32),全连接层(neurons=512),全连接层(neurons=128)和全连接层(neurons=10)。在其他实施例中,lstm模型的网络结构可根据需要进行替换。
[0065]
步骤2.4、根据输出矩阵output11和输出矩阵output12得到输出矩阵output1。
[0066]
将输出矩阵output11和输出矩阵output12连接成输出矩阵output13,output13=[output11,output12],维度为20。将输出矩阵output13输入全连接层,即图2中的输出层1(neurons=10),得到输出矩阵output1,维度为10。
[0067]
步骤3、基于流量行为的僵尸网络检测:统计流量数据中特征指标,构建流量行为图,输入到gcn模型中进行检测,输出为1*10的矩阵。
[0068]
步骤3.1、提取流量数据的特征参数形成流量通信行为序列。
[0069]
使用zeek工具提取pcap格式文件的特征参数,包括提取pcap文件的相关统计指标,有:ts:时间戳,id.orig_h:源ip地址,id.orig_p:源端口号,id.resp_h:目标ip地址,id.resp_p:目标端口号,proto:网络协议,duration:持续时间,conn_state:连接状态,orig_ip_pkts:源分组数量,orig_ip_bytes:源字节数量,resp_ip_pkts:响应分组数量,resp_ip_bytes:响应字节数量。多条流量数据的特征参数构成流量通信行为序列。
[0070]
步骤3.2、基于动态偏置对流量通信行为序列进行划分,得到若干子序列。
[0071]
由于gcn模型只能处理静态图,而且流量数据结点数量巨大,计算机无法一次性处理全部数据,所以要将流量序列按特定规则划分成若干子序列,使用得到的子序列集合进行计算。
[0072]
窗口是一种流式数据处理的常用方法,其原理在于基于时间窗口对原始序列进行分割,关注窗口内的数据进行分析。窗口技术能够较为高效地划分数据,并降低算法的时间复杂度。如图3所示,数据划分中l表示原始序列长度,w为窗口大小,s为步幅,p代表偏置。
[0073]
原始序列l在使用偏置为p,窗口大小为w,步幅为s进行划分时,划分后得到的子序列个数n如下:
[0074][0075]
可以见到,经过窗口划分的子序列数量会大幅减少,并且会丢失数据之间的关系信息。假设原始序列中互有联系的两条数据a、b,在经过窗口划分之后,a、b分属于两条不同的子序列,则a、b之间的联系被切断,数据信息的损失会导致学习效果不佳的情况出现。
[0076]
为弥补数据量减少和信息缺失对模型训练造成的影响,本实施例提出了基于动态偏置的序列划分方法。具体的讲,就是通过动态改变偏置值以达到增加不同子序列的效果。另外,由于偏置的动态改变,数据a与数据b在同一窗口内出现的概率大幅增加,不至于数据a和数据b的联系被切断。
[0077]
基于动态偏置,本实施例的数据划分过程为:
[0078]
a)设定动态偏置的初值以及增长步长;
[0079]
b)根据动态偏置的初值对流量通信行为序列进行划分得到若干子序列;
[0080]
c)以增长步长累加动态偏置,判断累加后的动态偏置是否超过偏置阈值,若超过则结束数据划分,并将每次划分得到的子序列汇总作为最终划分得到的子序列集合,否则执行下一步;
[0081]
d)基于累加后的动态偏置对流量通信行为序列进行划分得到若干子序列,并返回步骤c)继续执行。
[0082]
则经过本方法数据划分后子序列集合中的数据条目n

为:
[0083][0084]
式中,o为动态偏置的增长步长,s为滑动窗口的步幅,n为基于动态偏置的初值进行划分后得到的子序列的数量,[o,s]为o和s的最小公倍数。为使n

尽可能大,增强得到是数据尽可能丰富,可取o,s为互质的两个数,那么易得n

=on。
[0085]
步骤3.3、根据特征参数,构建每一子序列对应的通信行为图。
[0086]
通信行为图为计算机数据结构中的图(graph),由结点和边(结点之间的联系)组成。在图卷积神经网络中,结点一般体现为结点特征矩阵,图体现为邻接矩阵。通信行为图的网络拓扑是天然的图结构,以主机为结点,网络通信行为为边,但是恶意流量检测是边分类,而不是结点分类,所以要构建一个以网络通信行为为结点的图结构,可参见图4结点转换示意图。
[0087]
图4中箭头左侧为结点特征矩阵,结点特征矩阵中的数字为边,即网络通信行为,箭头右侧为邻接矩阵,邻接矩阵中的数字为网络通信行为,邻接矩阵中结点相连,对应于结点特征矩阵中两条边具有共同的结点。
[0088]
假设有k条流量数据,每条流量数据有m维的结点特征,则定义结点特征矩阵为
(结点特征矩阵中的第i行代表第i条流量数据)。邻接矩阵定义为则通信行为图在数学表示形式上为(x,a)。如果两条流量有相同的ip地址,则说明这两个结点(例如结点i和结点j)之间存在边,令a
ij
=1,否则不存在边,令a
ij
=0。
[0089]
其中,两条流量有相同的ip地址理解为有任意一个ip地址相同,假设有x,y两条流量,流量x的源地址和目的地址为{srcip_x,desip_x},流量y的源地址和目的地址为{srcip_y,desip_y}。满足以下四种情况之一即代表存在边,即相同的ip地址,srcip_x=srcip_y,srcip_x=desip_y,desip_x=srcip_y,desip_x=desip_y。
[0090]
本实施例中结点特征选取为统计指标中的duration,conn_state,orig_ip_pkts,orig_ip_bytes,resp_ip_pkts,resp_ip_bytes。在其他实施例中,节点特征选择可根据需求进行调整。
[0091]
步骤3.4、将通信行为图输入gcn模型,得到输出矩阵output2。
[0092]
gcn模型的输入可以定义为其中是矩阵重正化后的拉普拉斯矩阵。in是n维的单位矩阵,w是权重系数矩阵。f(.)是一种激活函数,比如可以是relu(.)=max(0,.)。
[0093]
本实施例采用两层的gcn模型,那么基于输入的通信行为图,定义输出为其中是输入层到隐藏层的系数矩阵,h为特征数量;是隐藏层到输出层的权重系数矩阵,f为输出矩阵的维数,即要分类的类别数。本实施例取m=6,h=64,f=10,得到的输出矩阵维度为10。
[0094]
步骤4、融合输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果。
[0095]
如图5所示,将输出矩阵output1和输出矩阵output2连接得到输出矩阵output3,输出矩阵output3的维度为20。将输出矩阵output3输入全连接层,即图5中的输出层2(neurons=10),得到输出矩阵output,输出矩阵output的维度为2,将输出矩阵output输入分类器得到对应分类结果,即网络检测结果。本实施例的分类结果为是僵尸网络和非僵尸网络,用于检测物联网中的僵尸网络。在其他实施例中可根据需求调整模型输出维度以及类型。
[0096]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0097]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。

技术特征:
1.一种基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述基于多模态融合的物联网僵尸网络检测方法,包括:步骤1、捕获流量数据并进行预处理;步骤2、基于时空特征融合的僵尸网络检测;步骤2.1、提取流量数据中的有效数据;步骤2.2、将所述有效数据输入至cnn模型中得到输出矩阵output11;步骤2.3、将所述有效数据输入至lstm模型中得到输出矩阵output12;步骤2.4、根据输出矩阵output11和输出矩阵output12得到输出矩阵output1;步骤3、基于流量行为的僵尸网络检测;步骤3.1、提取流量数据的特征参数形成流量通信行为序列;步骤3.2、基于动态偏置对流量通信行为序列进行划分,得到若干子序列;步骤3.3、根据特征参数,构建每一子序列对应的通信行为图;步骤3.4、将通信行为图输入gcn模型,得到输出矩阵output2;步骤4、融合所述输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果。2.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述捕获流量数据并进行预处理,包括:使用tcpdump工具抓取流量数据,以pcap文件格式保存;流量数据清洗,过滤无用的tcp连接数据包;按session对清洗后的流量数据进行切分,流量数据的五元组为切分标准,得到每个session的pcap格式文件。3.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述提取流量数据中的有效数据,包括:提取预处理后的流量数据中每个session的pcap格式文件;按顺序提取600个字节的内容,并剔除前24个字节的内容,得到576个字节的有效数据。4.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述根据输出矩阵output11和输出矩阵output12得到输出矩阵output1,包括:将输出矩阵output11和输出矩阵output12连接成输出矩阵output13,并将输出矩阵output13输入全连接层,得到输出矩阵output1。5.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述基于动态偏置对流量通信行为序列进行划分,得到若干子序列,包括:a)设定动态偏置的初值以及增长步长;b)根据动态偏置的初值对流量通信行为序列进行划分得到若干子序列;c)以增长步长累加动态偏置,判断累加后的动态偏置是否超过偏置阈值,若超过则结束数据划分,并将每次划分得到的子序列汇总作为最终划分得到的子序列集合,否则执行下一步;d)基于累加后的动态偏置对流量通信行为序列进行划分得到若干子序列,并返回步骤c)继续执行。6.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述根据特征参数,构建每一子序列对应的通信行为图,包括:
若子序列中有k条流量数据,每条流量数据有m维的结点特征,则定义结点特征矩阵为邻接矩阵定义为则通信行为图在数学表示形式上为(x,a)。7.如权利要求1所述的基于多模态融合的物联网僵尸网络检测方法,其特征在于,所述融合所述输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果,包括:将输出矩阵output1和输出矩阵output2连接得到输出矩阵output3;将输出矩阵output3输入全连接层,得到输出矩阵output,将输出矩阵output输入分类器得到网络检测结果。

技术总结
本发明公开了一种基于多模态融合的物联网僵尸网络检测方法,包括:捕获流量数据并进行预处理;提取流量数据中的有效数据;将有效数据输入至CNN模型中得到输出矩阵output11;将有效数据输入至LSTM模型中得到输出矩阵output12;根据输出矩阵output11和输出矩阵output12得到输出矩阵output1;提取流量数据的特征参数形成流量通信行为序列;基于动态偏置对流量通信行为序列进行划分,得到若干子序列;根据特征参数,构建每一子序列对应的通信行为图;将通信行为图输入GCN模型,得到输出矩阵output2;融合输出矩阵output1和输出矩阵output2进行分类,得到网络检测结果。本发明具有较高的检测能力。有较高的检测能力。有较高的检测能力。


技术研发人员:陈铁明 王伟强 朱添田 吕明琪
受保护的技术使用者:浙江工业大学
技术研发日:2023.03.31
技术公布日:2023/8/21
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐