基于视觉Transformer的恶意软件识别方法技术

技术编号:37125874 阅读:59 留言:0更新日期:2023-04-01 05:22
一种基于视觉Transformer的恶意软件识别方法,属于软件安全防护技术领域,将良性/恶意软件的可执行文件可视化为RGB图像,构建恶意软件图像数据集;采用ImageNet

【技术实现步骤摘要】
基于视觉Transformer的恶意软件识别方法


[0001]本专利技术涉及软件安全防护
,具体涉及一种基于视觉Transformer的恶意软件识别方法。

技术介绍

[0002]随着物联网的兴起,物联网设备的种类和数量呈指数增长。物联网设备搭载的嵌入式系统往往缺乏对安全因素的考量,其相比于较为成熟的Windows、Linux系统具有更广泛的攻击面,恶意软件制造者的关注重心已逐渐向物联网设备转移。因此,亟需一种更为快速、有效的恶意软件检测方法以使物联网设备避免遭受恶意软件的侵害。目前,绝大多数反病毒商采用基于签名或基于规则的技术以检测恶意软件,依靠不断更新恶意签名库和规则库以检测出更多的恶意软件,但其较低的泛化性能使其不足以应对日益增长的新型网络威胁。基于机器学习的恶意软件识别已成为了近年来的研究热点之一,从软件中提取特征,依靠机器学习算法自动进行恶意软件的检测或分类。目前,将软件可视化为灰度图,进而采用端到端的卷积神经网络(CNN)自动进行特征提取的方法已被证明为最有效的方法之一。但CNN固有的局部性、平移等变性等归纳偏好,对于处理自然图像有着天然优势,而将软件可视化为灰度图的方式,1D字节序列被强制转换为2D灰度图,其纵向像素点之间并不具备任何关联性。因此,采用CNN处理软件灰度图的方式具有一定不合理性,导致其结果可能是次优的。
[0003]在训练数据充足的情况下,复杂度高的模型往往比复杂度低的模型具备更强的模式识别能力。但复杂度高的模型所耗费的大量内存、算力等设备内部的硬件资源及时间成本使其不利于在轻量级设备上部署。物联网设备大多是硬件资源极其有限的轻量级设备,资源占用低应是部署于物联网设备的安全防护模型所具备的必要条件之一。因此,在保证模型资源占用足够低的情况下,如何快速、精准、有效地检测出恶意软件并能够判别出其所属家族以采取不同的应对方式是亟待解决的问题之一。

技术实现思路

[0004]本专利技术为了克服以上技术的不足,提供了一种保证模型的硬件占用较低的同时,能够准确检测出恶意软件并判别其所属家族的方法。
[0005]本专利技术克服其技术问题所采用的技术方案是:一种基于视觉Transformer的恶意软件识别方法,包括如下步骤:(a)获取ImageNet

21K图像数据集及应用软件的可执行文件数据集,可执行文件数据集中包括良性软件的可执行文件与包括家族标签的恶意软件可执行文件,将可执行文件数据集中全部样本可视化为RGB图像构建恶意软件图像数据集;(b)搭建包含X层编码器的视觉Transformer模型,采用ImageNet

21K图像数据集对视觉Transformer模型进行分类预训练,将分类预训练后的视觉Transformer模型中的全连接层更改为有序的双任务分类器进行恶意软件检测与家族分类,采用恶意软件图像数据
Attention中,第个注意力头对张量分别进行线性映射得到查询矩阵、键矩阵、值矩阵,,,,,、、均为线性变换的权重矩阵,、、均为偏置向量,通过公式计算得到融合了全局注意力的嵌入,,式中为注意力分数,,,为转置,为Softmax激活函数,通过torch库中的cat函数将个注意力头输出的融合了全局注意力的嵌入进行拼接,将拼接结果与张量依次输入到第1层编码器的第一残差连接层及第二层归一化层LayerNorm中,输出得到张量,,将张量输入到第1层编码器的多层感知机MLP中通过公式计算得到张量,式中为GELU激活函数,为多层感知机MLP中第一层神经元的权值矩阵,,为多层感知机MLP中第二层神经元的权值矩阵,,为多层感知机MLP中第一层神经元的偏置向量,,为多层感知机MLP中第一层神经元的偏置向量,,将张量输入到第1层编码器的第二残差连接层中,输出得到第1层编码器的输出张量,为多层感知机MLP中第一层神经元的嵌入维度;(b

5)将张量替代步骤(b

4)中的张量,重复执行步骤(b

4)得到第2层编码器的输出张量;(b

6) 将张量替代步骤(b

5)中的张量,重复执行步骤(b

5)得到第3层编码器的输出张量;(b

7)第个编码器的输出作为第个编码器的输入,,重复执行步骤(b

6),最终得到第12层编码器输出的张量,;(b

8)张量中第0个位置的向量为可学习的分类标记张量的嵌入向量,,将嵌入向量输入到视觉Transformer模型的多层感知机MLP中,输出得到张量,,将张量输入到全连接层FC中,得到视觉Transformer模型输出的分类结果;(b

9)采用ImageNet

21K图像数据集对视觉Transformer模型进行分类预训练。
[0008]进一步的,步骤(b

3)中,将2D行序列输入到一个线性层中通过公式
计算得到行嵌入,式中为线性映射层的权重矩阵,,为偏置向量,。
[0009]进一步的,步骤(b)中将分类预训练后的视觉Transformer模型中的全连接层更改为有序的双任务分类器进行恶意软件检测与家族分类的步骤为:(b

10)将步骤(b

8)中的全连接层FC更改为有序的双任务分类器,有序的双任务分类器包括用于检测恶意软件的检测任务及用于对恶意软件的家族进行判定的家族分类任务构成,检测任务和家族分类任务均由两个全连接层FC构成;(b

11)将张量输入到检测任务中,通过公式计算得到检测任务的预测logits,,式中为检测任务的第一个全连接层FC的权值矩阵,,为检测任务的第二个全连接层FC的权值矩阵,,为检测任务的第一个全连接层FC的偏置向量,,为检测任务的第二个全连接层FC的偏置向量,;(b

12)将张量输入到家族分类任务中,通过公式计算得到家族分类任务的预测logit,,式中为家族分类任务的第一个全连接层FC的权值矩阵,,为家族分类任务的第二个全连接层FC的权值矩阵,,为家族分类任务的第一个全连接层FC的偏置向量,,为家族分类任务的第二个全连接层FC的偏置向量,,为家族数目。
[0010]进一步的,步骤(b)中采用恶意软件图像数据集对视觉Transformer模型进行微调的步骤为:(b

13)通过公式计算得到损失,式中为Sigmoid激活函数,为二元交叉熵损失,为交叉熵损失,为检测任务标签,,0表示良性,1表示恶意,为恶意样本家族one

hot标签,。
[0011]进一步的,步骤(c)包括如下步骤:(c

1)轻量级视觉Transformer模型依次由3层编码器及多层感知机MLP构成,每个编码器依次由第一层归一化层LayerNorm、多头自注意力机制Muti

Head Attention、第一残差连接层、第二层归一化层LayerN本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于视觉Transformer的恶意软件识别方法,其特征在于,包括如下步骤:(a)获取ImageNet

21K图像数据集及应用软件的可执行文件数据集,可执行文件数据集中包括良性软件的可执行文件与包括家族标签的恶意软件可执行文件,将可执行文件数据集中全部样本可视化为RGB图像构建恶意软件图像数据集;(b)搭建包含X层编码器的视觉Transformer模型,采用ImageNet

21K图像数据集对视觉Transformer模型进行分类预训练,将分类预训练后的视觉Transformer模型中的全连接层更改为有序的双任务分类器进行恶意软件检测与家族分类,采用恶意软件图像数据集对视觉Transformer模型进行微调;(c)搭建轻量级视觉Transformer模型用于实际部署;(d)将微调后的视觉Transformer模型作为教师模型,轻量级视觉Transformer模型作为学生模型,利用教师模型的自注意力矩阵、隐藏层状态及双任务分类器的预测logits作为学生模型的监督信息对学生模型进行蒸馏训练;(e)将蒸馏训练后的轻量级视觉Transformer模型对未知软件进行良性软件或恶意软件的判别以及恶意软件所属家族标签的判定。2.根据权利要求1所述的基于视觉Transformer的恶意软件识别方法,其特征在于,步骤(a)中将可执行文件数据集中全部样本可视化为RGB图像的步骤为:(a

1)以十六进制读取应用软件的可执行文件,将十六进制数转为十进制数使应用软件的可执行文件表示为取值范围在[0,255]的十进制数值序列;(a

2)十进制数值序列长度为 ,该序列长度的待转换图像宽度为,,为向下取整;(a

3)十进制数值序列中相邻的三个十进制数依次作为单个像素的R通道值、G通道值、B通道值,得到可执行文件的可视化的RGB图像,,为实数空间,为图像的高,3为图像的通道数,所有的可执行文件的可视化的RGB图像构成恶意软件图像数据集。3.根据权利要求2所述的基于视觉Transformer的恶意软件识别方法,其特征在于,步骤(b)包括如下步骤:(b

1)视觉Transformer模型依次由12层编码器及多层感知机MLP构成,每个编码器依次由第一层归一化层LayerNorm、多头自注意力机制Muti

Head Attention、第一残差连接层、第二层归一化层LayerNorm、多层感知机MLP及第二残差连接层构成;(b

2)将可视化的RGB图像进行缩放,得到缩放的可视化的RGB图像,其中为缩放的可视化的RGB图像的高,为缩放的可视化的RGB图像的宽,使用torch库中的Flatten函数将缩放的可视化的RGB图像中第行像素值扁平化处理为,,3D的可视化的RGB图像转化为2D行序列,;(b

3)2D行序列经过一个线性层将序列中的每个元素映射至维得到行嵌入,
,使用torch库中的cat函数将可学习的分类标记张量与行嵌入进行拼接,得到拼接后的张量,将拼接后的张量与可学习的绝对位置嵌入进行相加得到张量,;(b

4)将张量输入到视觉Transformer模型的第1层编码器的第一层归一化层LayerNorm中进行归一化得到张量,第1层编码器的多头自注意力机制Muti

Head Attention包括个注意力头,将张量分别输入到多头自注意力机制Muti

Head Attention中,第个注意力头对张量分别进行线性映射得到查询矩阵、键矩阵、值矩阵,,,,,、、均为线性变换的权重矩阵,、、均为偏置向量,通过公式计算得到融合了全局注意力的嵌入,,式中为注意力分数,,,为转置,为Softmax激活函数,通过torch库中的cat函数将个注意力头输出的融合了全局注意力的嵌入进行拼接,将拼接结果与张量依次输入到第1层编码器的第一残差连接层及第二层归一化层LayerNorm中,输出得到张量,,将张量输入到第1层编码器的多层感知机MLP中通过公式计算得到张量,式中为GELU激活函数,为多层感知机MLP中第一层神经元的权值矩阵,,为多层感知机MLP中第二层神经元的权值矩阵,,为多层感知机MLP中第一层神经元的偏置向量,,为多层感知机MLP中第一层神经元的偏置向量,,将张量输入到第1层编码器的第二残差连接层中,输出得到第1层编码器的输出张量,为多层感知机MLP中第一层神经元的嵌入维度;(b

5)将张量替代步骤(b

4)中的张量,重复执行步骤(b

4)得到第2层编码器的输出张量;(b

6) 将张量替代步骤(b

5)中的张量,重复执行步骤(b

5)得到第3层编码器的输出张量;(b

7)第个编码器的输出作为第个编码器的输入,,重复执行步骤(b

6),最终得到第12层编码器输出的张量,;
(b

8)张量中第0个位置的向量为可学习的分类标记张量的嵌入向量,,将嵌入向量输入到视觉Transformer模型的多层感知机MLP中,输出得到张量,,将张量输入到全连接层FC中,得到视觉Transformer模型输出的分类结果;(b

9)采用ImageNet

21K图像数据集对视觉Transformer模型进行分类预训练。4.根据权利要求3所述的基于视觉Transformer的恶意软件识别方法,其特征在于:步骤(b

3)中,将2D行序列输入到一个线性层中通过公式计算得到行嵌入,式中为线性映射层的权重矩阵,,为偏置向量,。5.根据权利要求4所述的基于视觉Transformer的恶意软件识别方法,其特征在于,步骤(b)中将分类预训练后的视觉Transformer模型中的全连接层更改为有序的双任务分类器进行恶意软件检测与家族分类的步骤为:(b

10)将步骤(b

8)中的全连接层FC更改为有序的双任务分类器,有序的双任务分类器包括用于检测恶意软件的检测任务及用于对恶意软件的家族进行判定的家族分类任务构成,检测任务和家族分类任务均由两个全连接层FC构成;(b

11)将张量输入到检测任务中,通过公式计算得到检测任务的预测logits,,式中为检测任务的第一个全连接层FC的权值矩阵,,为检测任务的第二个全连接层FC的权值矩阵,,为检测任务的第一个全连接层FC的偏置向量,,为检测任务的第二个全连接层FC的偏置向量,;(b

12)将张量输入到家族分类任务中,通过公式计算得到家族分类任务的预测logit,,式...

【专利技术属性】
技术研发人员:刘广起王志文韩晓晖左文波
申请(专利权)人:齐鲁工业大学山东省科学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1