技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于知识蒸馏的轻量化恶意加密流量检测方法与流程  >  正文

一种基于知识蒸馏的轻量化恶意加密流量检测方法与流程

  • 国知局
  • 2024-08-02 14:01:54

本发明涉及网络安全态势感知,具体涉及一种基于知识蒸馏的轻量化恶意加密流量检测方法。

背景技术:

1、随着移动设备应用的广泛普及,随之而来的安全问题已成为亟待解决的挑战。恶意流量作为网络攻击和威胁的重要渠道,对网络空间环境提出了挑战,促使需要采取强有力的安全监控和防御措施。

2、许多移动设备中的内存和计算资源通常受到限制,导致传统的恶意加密流量检测模型过于庞大和复杂,对其在设备上的有效部署提出了挑战。传统的深度包检测技术难以适应流量的激增,导致准确性急剧下降。相比之下,基于机器学习的检查方法表现出以最小的开销快速对加密流量进行分类的能力。然而,依赖机器学习中手工制作的特征使其无法揭示数据样本中复杂的关系,从而降低了准确性。深度学习因其强大的建模和自动学习能力而受到关注,模型利用卷积神经网络或长短期记忆网络特性,通过仅分析给定流中初始数据包的大小和方向来有效解决加密挑战。尽管它们的性能值得称赞,但这些模型仍难以解决与复杂结构和过多参数相关的问题。这不仅延长了模型训练过程,而且无法满足终端设备严格的计算资源要求。因此,迫切需要轻量级检测方法来缓解这些挑战。

技术实现思路

1、本发明为了克服以上技术的不足,提供了一种大大降低了模型检测的整体资源消耗的基于知识蒸馏的轻量化恶意加密流量检测方法。

2、本发明克服其技术问题所采用的技术方案是:

3、一种基于知识蒸馏的轻量化恶意加密流量检测方法,包括如下步骤:

4、(a)捕获加密应用程序的行为流量数据,并对行为流量数据标注为恶意或良性;

5、(b)将行为流量数据切分为个会话,形成原始数据集,,为第个会话,;

6、(c)根据第个会话利用简单流模型得到最终简单流的标签和复杂流的标签;

7、(d)根据最终简单流的标签和复杂流的标签得到灰度图像;

8、(e)建立教师模型,将灰度图像输入到教师模型中,输出得到类别的概率分布;

9、(f)建立学生模型,将灰度图像输入到学生模型中,输出得到类别的概率分布,取概率分布中最大值的索引值对应的类别作为最终预测结果;

10、(g)通过公式计算得到总损失,式中为交叉熵损失函数,为概率分布与概率分布之间的kl散度损失函数,使用adam优化器利用总损失训练学生模型,得到优化后的学生模型。

11、进一步的,步骤(a)包括如下步骤:

12、(a-1)使用沙箱技术运行恶意软件操作,每个恶意软件操作持续时间大于等于m分钟;

13、(a-2)使用wireshark软件对运行恶意软件操作同步抓包,获取流量数据格式为pcap格式的包含有加密应用程序的行为流量数据的文件,将该行为流量数据标注为恶意;

14、(a-3)使用appium工具模拟用户进行良性app应用程序行为操作,操作持续时间大于等于m分钟;

15、(a-4)使用wireshark软件对运行良性app应用程序操作同步抓包,获取流量数据格式为pcap格式的包含有加密应用程序的行为流量数据的文件,将该行为流量数据标注为良性。

16、优选的,步骤(a-1)中m取值为30。

17、进一步的,步骤(a-2)中将行为流量数据标识为进行分布式拒绝服务攻击或恶意广告行为。

18、进一步的,步骤(b)包括如下步骤:

19、(b-1)使用python的scapy工具包的rdpcap函数读取pcap格式的文件,从给定的pcap文件路径中读取加密应用程序的行为流量数据并将加密应用程序的行为流量数据分成个数据包;

20、(b-2)将个数据包存储在一个列表中,其中为第个数据包,;

21、(b-3)将个数据包中具有相同源ip地址、目标ip地址、源端口及目标端口的数据包组成会话,得到个会话,其中为第个会话,;

22、(b-4)将第个会话中的各个数据包按照其时间戳进行时间顺序的排序,得到排序后的会话;

23、(b-5)利用python的scapy工具包的wrpcap()函数将排序后的会话保存为一个pcap文件并将该pcap文件的文件名命名为该会话中的各个数据包对应的源ip地址+目标ip地址,得到会话。

24、进一步的,步骤(c)包括如下步骤:

25、(c-1)将原始数据集中第个会话输入到cicflowmeter工具中,获取包含个流特征的格式为csv文件的原始特征数据矩阵,,为第个流特征,;

26、(c-2)构建由二十颗决策树模型构成的简单流模型,将原始特征数据矩阵分别输入到简单流模型的每个决策树模型中,第个决策树模型输出标签;

27、(c-3)如果大于等于15棵决策树模型输出的标签的值相同,则通过公式计算得到最终简单流的标签和复杂流的标签,式中为统计决策树模型输出的标签为相同的个数,如果小于15棵决策树模型输出的标签的值相同则将最终简单流的标签和复杂流的标签的值置为-1。

28、进一步的,步骤(d)包括如下步骤:

29、(d-1)将最终简单流的标签和复杂流的标签值为-1的对应的会话放到新的列表中;

30、(d-2)将列表中第个会话提取前784个字节,如果该会话长度小于784个字节则将不足784字节的位置填充0,得到有效负载数据;

31、(d-3)建立一个28×28的二维数组,按照行优先的方式将有效负载数据填充到二维数组中;

32、(d-4)使用matplotlib库的imshow()函数将填充后的二维数组转换为灰度图像,,其中为实数空间,1为通道数。

33、进一步的,步骤(e)包括如下步骤:

34、(e-1)通过python的numpy库的np.array()函数将灰度图像扩展为rgb三个通道的图像,;

35、(e-2)建立由卷积层、bn层、relu激活函数、最大池化层、第一残差块、第二残差块、第三残差块、第四残差块、第五残差块、第六残差块、第七残差块、第八残差块、第九残差块、第十残差块、第十一残差块、第十二残差块、第十三残差块、第十四残差块、第十五残差块、第十六残差块、第十七残差块、第十八残差块、第十九残差块、第二十残差块、全局池化层、全连接层构成的教师模型,所有的残差块均由第一层、第二层、第三层构成,第一层、第二层、第三层均由卷积层、bn层、relu激活函数构成;

36、(e-3)将图像输入到教师模型的卷积层中,输出得到特征图,;

37、(e-4)将特征图输入到教师模型的bn层中,输出得到特征图;

38、(e-5)将特征图输入到教师模型的relu激活函数中,输出得到特征图;

39、(e-6)将特征图输入到教师模型的最大池化层中,输出得到特征图,;

40、(e-7)将特征图输入到教师模型的第一残差块的第一层的卷积层中,输出得到特征图,将特征图输入到第一残差块的第一层的bn层中,输出得到特征图,将特征图输入到第一残差块的第一层的relu激活函数中,输出得到特征图;

41、(e-8)将特征图输入到教师模型的第一残差块的第二层的卷积层中,输出得到特征图,将特征图输入到第一残差块的第二层的bn层中,输出得到特征图,将特征图输入到第一残差块的第二层的relu激活函数中,输出得到特征图;

42、(e-9)将特征图输入到教师模型的第一残差块的第三层的卷积层中,输出得到特征图,将特征图输入到第一残差块的第三层的bn层中,输出得到特征图,将特征图与特征图进行残差连接后输入到第一残差块的第三层的relu激活函数中,输出得到特征图,;

43、(e-10)将特征图替代步骤(e-7)中的特征图,重复执行步骤(e-7)至(e-9)得到第二残差块输出的特征图,;

44、(e-11)重复执行步骤(e-9)18次,得到第二十残差块输出的特征图,;

45、(e-12)将特征图输入到教师模型的全局池化层中,输出得到特征图,;

46、(e-13)将特征图输入到教师模型的全连接层后输入到softmax函数中,输出得到类别的概率分布。

47、进一步的,步骤(f)包括如下步骤:

48、(f-1)建立由第一卷积层、第一relu激活函数、第一残差块、第二残差块、第三残差块、第四残差块、第五残差块、第六残差块、第七残差块、第八残差块、第九残差块、第二卷积层、第二relu激活函数、最大池化层、第三卷积层、第三relu激活函数、第四卷积层、第四relu激活函数、全局池化层、全连接层构成的学生模型,所有的残差块均由第一层、第二层、第三层构成,第一层均由卷积层构成,第二层均由卷积层、bn层、relu激活函数构成,第三层均由卷积层、relu激活函数构成;

49、(f-2)将图像输入到学生模型的第一卷积层中,输出得到特征图,;

50、(f-3)将特征图输入到学生模型的第一relu激活函数中,输出得到特征图;

51、(f-4)将特征图输入到学生模型的第一残差块的第一层中,输出得到特征图;

52、(f-5)将特征图输入到学生模型的第一残差块的第二层的卷积层中,输出得到特征图,将特征图输入到第二层的bn层中,输出得到特征图,将特征图输入到第二层的relu激活函数中,输出得到特征图;

53、(f-6)将特征图输入到学生模型的第一残差块的第三层的卷积层中,输出得到特征图,将特征图与特征图进行相加操作,得到特征图,将特征图输入到第三层的relu激活函数中,输出得到特征图,;

54、(f-7)将特征图替代步骤(f-4)中的特征图,重复执行步骤(f-4)至(f-6)得到第二残差块输出的特征图,;

55、(f-8)重复执行步骤(f-8)7次,得到第九残差块输出的特征图;

56、(f-9)将特征图输入到学生模型的第二卷积层中,输出得到特征图;

57、(f-10)将特征图输入到学生模型的第二relu激活函数中,输出得到特征图,;

58、(f-11)将特征图输入到学生模型的最大池化层中,输出,得到特征图,;

59、(f-12)将特征图输入到学生模型的第三卷积层中,输出得到特征图;

60、(f-13)将特征图输入到学生模型的第三relu激活函数中,输出得到特征图,;

61、(f-14)将特征图输入到学生模型的第四卷积层中,输出得到特征图;

62、(f-15)将特征图输入到学生模型的第四relu激活函数中,输出得到特征图;

63、(f-16)将特征图输入到学生模型的全局池化层中,输出得到特征图;

64、(f-17)将特征图输入到学生模型的全连接层后输入到softmax函数中,类别的概率分布。

65、进一步的,步骤(e-1)中教师模型的卷积层的卷积核大小为7×7、步长为2、填充为3,教师模型的最大池化层的步长为2、填充为1,教师模型的所有的残差块的第一层的卷积层的卷积核大小均为1×1、步长均为1、通道数均为64,教师模型的所有的残差块的第二层的卷积层的卷积核大小均为3×3、步长均为1、通道数均为64,教师模型的所有的残差块的第三层的卷积层的卷积核大小均为1×1、步长均为1、通道数均为256;步骤(f-1)中学生模型的所有残差块的第一层的卷积层的卷积核大小均为为1×1、步长均为1、通道数均为32,所有残差块的第二层的卷积层的卷积核大小均为为3×3、步长均为1、通道数均为32,所有残差块的第三层的卷积层的卷积核大小均为为1×1、步长均为1、通道数均为16,步骤(f-2)中学生模型的第一卷积层的卷积核大小为3×3、步长为2、填充为2,步骤(f-9)中学生模型的第二卷积层的卷积核大小为1×1、步长为1、填充为1,步骤(f-11)中学生模型的最大池化层的卷积核为7×7、步长为1,步骤(f-12)中学生模型的第三卷积层的卷积核大小为1×1、步长为1,步骤(f-3)中学生模型的第四卷积层的卷积核大小为1×1、步长为1。

66、本发明的有益效果是:在第一阶段,利用了流量的原始特征信息进行快速过滤,减轻了后续深度学习模型的计算压力。随后,在第二阶段,我们进一步利用了流量的图像特征信息,并通过轻量级卷积神经网络(cnn)更全面地分析流的内容特征。两阶段方法大大提升了恶意加密流量的检测效率。其次,利用了知识蒸馏的训练策略,进一步提高系统对恶意加密流量的检测准确性。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241425.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。