FACILE: A capsule network with fewer capsules and richer hierarchical information for malware image classification
👇
FACILE:具有更少胶囊和更丰富分层信息的胶囊网络(capsule network),用于恶意软件图像分类
apk先转换成灰度图像作为数据集
pdf文件:FACILE_2024_Zou et al
手敲了一堆公式
摘要
安全研究人员和恶意软件之间的斗争使无休止的军备竞赛持续下去。最近的研究表明,将恶意软件转换为灰度图像并使用卷积神经网络或胶囊网络对其进行分类和识别是一种有前途的方法。尽管如此,训练卷积神经网络需要大量的数据和参数,这对获取足够的恶意软件检测任务训练样本构成了挑战,特别是对于新的恶意软件家族。此外,大量参数会导致分类效率低。胶囊网络提供了一种很有前途的方法,通过胶囊之间的动态路由来实现更高级别的特征表示,但胶囊网络的研究仍处于起步阶段,恶意软件分类任务面临两个主要挑战:参数数量庞大,这使得模型训练变得困难和胶囊脱落,这会导致路由过程中的信息丢失。为了解决这些问题,我们提出了一种名为 FACILE 的胶囊网络,它使用更少的胶囊和更丰富的层次信息。在初始特征提取阶段,我们使用动态卷积进行多级特征提取和融合。在路由阶段,我们引入平衡系数来增强模型的表征能力并稳定训练过程。我们在VIRUS-MNIST、MalImg和BIG2015数据集上进行了实验,发现FACILE与原始CapsNet相比仅需要8.1%的胶囊和1.8%-3.3%的参数,同时将错误率降低到分别为8.087%、1.149 % 和 2.797%。此外,与基于卷积神经网络的模型(例如 ResNet、EfficientNet 和 VGG)相比,随着训练样本的减少,FACILE 在少量参数下表现出了有竞争力的性能。
1 介绍
为了减少特征工程、缩短分析时间并提高分类效率,深度学习技术被广泛用于恶意软件分类任务(Yuan et al., 2021;Zhang et al., 2021b;Iadarola et al., 2022)。最近的研究表明,一种有前景的解决方案是以二进制模式读取恶意软件,然后将其转换为图像(Dib 等人,2021;Gibert 等人,2022)。卷积神经网络 (CNN) 的有效特征提取和分类能力使得恶意软件分类方法取得了成功(Ahmed 等人,2022 年;Zhong 等人,2022 年)。然而,训练 CNN 通常需要大规模样本。在常见的图像分类任务中,MNIST、CIFAR-10、ILSVRC和ImageNet等数据集包含数百万张图像,涵盖数千个类别。此外,基于CNN的分类模型所需的可训练参数数量也非常大。例如,EfficientNet (Tan and Le, 2019)、ResNet152 (He et al., 2016) 和 VGG16 (Simonyan and Zisserman, 2014) 的参数分别超过 20、58 和 1.34 亿个参数,进一步导致模型规模大,训练过程长,进而影响分类效率。
最近,用胶囊代替传统神经元的胶囊网络(Sabour et al., 2017)已被证明在图像识别(Rajasegaran et al., 2019)、文本分类(Jayasundara et al., 2019;Manoharan)方面具有广阔的前景。 ,2021)、推荐系统(Li et al.,2019;Vu et al.,2019)、智能交通(Yao et al.,2019)和软件工程(Bui et al.,2021)。在不同的任务中,基于胶囊网络的恶意软件分类任务也表现出了良好的性能(Çayır 等人,2021)。每个胶囊是一个多维向量,其长度表示实体存在的概率,其方向编码实体的实例化参数或姿态信息。胶囊网络利用胶囊之间的动态路由来更好地建模神经网络内知识表示的层次关系,从而产生更高级别的特征表示,并显着减少训练所需的样本数据。
然而,胶囊网络的研究仍处于初级阶段,面临两大挑战。一是基于胶囊网络的参数数量尽管比传统的基于CNN的方法相对较小,但仍然非常大,由于在获得主胶囊之前进行特征提取和更新耦合需要大量参数,因此模型训练变得困难路由阶段的系数(Pan 和 Velipasalar,2021)。另一个问题是胶囊很容易脱落,因为图像中存在大量信息,这可能会导致路由过程中的信息丢失(Paik et al., 2019)。
为了解决上述挑战,这项工作提出了一种新颖的基于图像的恶意软件分类方法,该方法基于称为 FACILE(Fewer Capsules and Richer Hierarchical Information for Malware Image Classification).(用于恶意软件图像分类的更少的胶囊和更丰富的层次结构信息)的胶囊网络分类模型。 FACILE首先在初始特征提取阶段通过动态卷积对恶意软件图像进行卷积,实现多级特征提取,并融合不同级别的收敛特征。在初级胶囊的动态路由过程中,我们引入了一组平衡系数来减少信息损失并提高训练稳定性。最后,我们获得不同阶段的高级胶囊的表示向量和输出结果。 VIRUS-MNIST、MalImg 和 BIG2015 数据集上的实验结果表明,与所有基线方法相比,我们的模型取得了显着且一致的改进。值得注意的是,即使训练样本减少,我们的模型在分类准确性、召回率和 F1 分数方面也优于基于胶囊网络和大多数基于 CNN 的模型。
这项工作的主要贡献总结如下:
(1)在这项研究中,我们提出了一种名为 FACILE 的新型胶囊网络模型,它使用更少的胶囊并提供更丰富的层次信息。我们的模型以更少的训练参数具有更强的特征提取能力。
(2)我们的动态路由过程是使用相对少量的胶囊来完成的,这些胶囊包含不同尺度的特征并且可以捕获更多信息。这种方法显着减少了模型参数的数量并加速了训练。
(3)为了防止胶囊脱落并提高训练稳定性,我们在每个路由过程中为高级胶囊分配权重。这使我们能够捕捉细微的特征变化并获得更准确的分类结果。
(4)我们在三个恶意软件图像数据集上评估了我们提出的模型,FACILE 在所有基线方法中取得了最佳性能。即使训练样本数量减少,FACILE 在分类精度方面仍然优于现有的基于胶囊网络的模型。与具有大量参数的基于 CNN 的模型相比,FACILE 在参数数量明显较少的情况下表现出了有竞争力的分类性能。
本文的其余部分安排如下。在第 2 节中,我们回顾了相关工作。第 3 节描述了 FACILE 的详细信息。第四节介绍了系统的实验结果。在第 5 节中,我们讨论了 FACILE 的附加参数、可解释性、数据增强和现有局限性,并概述了我们未来的工作计划。最后,我们在第 6 节中总结评论。
2 相关工作
2.1 基于机器学习 (ML) 的方法
恶意软件的早期检测主要依靠手动分析。然而,随着互联网的指数级扩展,仅通过手动分析来管理快速增长的恶意软件变得越来越具有挑战性。奥朗则布等人。 (2022) 提出了用于检测和分类勒索软件的 BigRC-EML 方法。该方法结合静态和动态分析来提取恶意软件特征,并采用了各种机器学习算法,包括支持向量机 (SVM)、随机森林 (RF)、K 最近邻 (KNN) 和 XGBoost。张等人提出的 AMDS 方法。 (2022) 需要从恶意软件中提取系统调用。然后,使用ML算法对处理后的系统调用进行学习和分类,但特征提取非常耗时。乌斯曼等人。 (2021) 评估了一系列行为特征,包括进程、文件、注册表和网络信息,作为 ML 模型的输入。 Mahindru 和 Sangal (2021) 推出了 MLDroid,这是一种利用动态分析和 ML 的网络框架。该框架首先提取应用程序在安装和执行过程中所需的权限和 API 调用,然后将它们用于构建的 ML 模型的学习和训练。潘等人。 (2022)采用特定硬件进行初始数据采集,然后利用循环神经网络(RNN)和决策树(DT)进行分类。他们的实验表明,虽然基于硬件的检测技术产生了具有更高准确度的可解释检测结果,但这些技术的时间和经济成本与现有的基于机器学习的技术相比没有竞争力。
上述基于机器学习的恶意软件检测方法都无法绕过特征提取步骤。无论是通过静态还是动态分析来提取特征,都需要专业的领域知识和特征工程,并且特征选择耗时,从而导致效率低下。
2.2 基于CNN的方法
CNN 在图像分类、目标检测、语音识别和自然语言处理等各种任务中表现出了卓越的功效,并引起了安全研究人员的极大兴趣。卡拉什等人。 (2018) 将二进制恶意软件转换为灰度图像,并利用由多个卷积层、池化层和全连接层组成的 CNN 来执行分类。瓦桑等人。 (2020) 提出了一种微调的 CNN 架构 IMCFN,通过将二进制文件转换为彩色图像而不是灰度图像并利用 ImageNet 数据集中的预训练参数来进行恶意软件分类。 Tekerek 和 Yapici (2022) 提出了一种基于 CycleGAN 的方法来扩展数据集并增强基于 CNN 模型的分类性能。他们通过对 BIG2015 和 Dumpware10 两个数据集的实验验证了所提出方法的有效性。阿万等人。 (2021) 开发了一种恶意软件图像识别方法,该方法利用带有注意机制的 VGG19 架构。查甘蒂等人。 (2022)提出了一种高效的神经网络模型EfficientNetB1,并通过预训练增强了其分类性能。库马尔等人。 (2021) 通过提出微调神经网络模型 MCFTCNN 增强了 ResNet50 架构,该模型利用了迁移学习和在训练期间从 ImageNet 数据集获取的知识。同样,DTMIC(Kumar 和 Janet,2022)是一种基于迁移学习的策略,用于利用 ImageNet 数据集中预先训练的参数来识别恶意软件图像。
这些基于CNN的方法在分类精度方面表现出了很强的性能,但它们通常需要大量参数,导致计算成本很高。由于与其他图像分类数据集相比,恶意软件数据集的规模相对较小,因此需要预训练模型和迁移学习来实现高分类精度。然而,这种方法阻碍了调整网络架构的能力,并导致模型训练速度变慢。
2.3.基于 CapsNet 的方法
自2017年Hinton推出胶囊网络以来,它引起了安全研究人员的关注。张等人。 (2021a) 提出了 MalCaps,一种改进的胶囊网络模型,用于对恶意软件图像进行分类。与原始 CapsNet 不同,MalCaps 仅添加单个卷积层,同时保留其他组件。恰伊尔等人。 (2021)利用引导聚合技术提出了一种新颖的集成胶囊网络模型 RCNF。在这种方法中,单个 CapsNet 模型被视为弱分类器,最终的分类结果来自多个经过训练的模型做出的预测的集合。宁等人。 (2019)提出了一种名为 CapJack 的两层分类系统,它将 CapsNet 集成到基于行为分析的恶意软件检测任务中。 CapJack 旨在通过转换预先训练的模型来检测加密货币挖掘行为。王等人。 (2019) 提出了 ColCaps,一种基于胶囊网络的彩色恶意软件图像检测和分类模型。该方法在跨平台检测和分类任务中表现出优越的性能。裴等人。 (2022) 设计了一个子图聚合胶囊网络 (SACN),用于物联网中的恶意软件检测,通过子图的表示来利用程序语义和图拓扑。
然而,目前胶囊网络在恶意软件检测中的应用研究仍处于早期阶段,尚未完全解决胶囊网络固有的挑战,例如参数数量大、训练难度大、胶囊路由过程中潜在的信息丢失等。
表 1 列出了各种恶意软件检测工作中使用的功能和模型及其局限性。相比之下,我们的研究在三个重要方面不同于以前的方法。首先,我们的方法利用恶意软件图像,不依赖于特定领域的知识或复杂的特征工程。其次,我们提出的模型具有最少的参数,使得训练更容易并且不需要预训练参数。第三,我们提出了一种有效的方法来解决胶囊路由过程中信息丢失的挑战。
3 方法论
3.1.恶意软件数据集
FACILE 由恶意软件图像的输入驱动。为了评估所提出方法的普适性,我们尽可能使用不同的数据集来增强恶意软件样本的多样性和复杂性。图 1 显示了来自 VIRUS-MNIST、MalImg 和 BIG2015 三个数据集的一些恶意软件示例图像,图 2 展示了这些数据集中包含的家族以及特征降维后的样本分布。
VIRUS-MNIST数据集中的恶意软件图像仅包含二进制PE样本头的前1024字节,而MalImg和BIG2015包含完整的字节序列,但两者都经过了大小调整操作。与VIRUS-MNIST数据集类似,BIG2015也是从Windows上的PE可执行文件转换而来。 MalImg数据集是将Android平台apk安装包以二进制方式映射到图像的结果。下面对这三个数据集进行更详细的介绍。
3.1.2 VIRUS-MNIST
Noever和Noever (2021)发布了VIRUS-MNIST数据集,其中包含51880个恶意软件图像样本,其中包括9个恶意软件家族和1个良性软件。数据集中的图像是通过格式化前1024字节生成的,分辨率为32×32像素,无需进行预处理。为了深入了解数据集中每个恶意软件家族的分布,应用 t-SNE 进行降维和可视化,如图 2(a) 所示。
3.1.2 MalImg
纳塔拉吉等人。(2011)首先引入了将二进制恶意软件转换为灰度图像的技术,并发布了一个名为 MalImg 的数据集。该数据集包括 25 个恶意软件家族,总共包含 9339 个样本。 MalImg 数据集中的图像呈现不规则形状。在我们的研究中,除了将图像大小调整为 32 × 32 之外,我们没有进行任何预处理。与 VIRUS-MNIST 数据集类似,我们利用 t-SNE 进行降维和可视化,如图 2(b) 所示。
3.1.3 BIG2015
在 2015 年恶意软件分类挑战赛中,微软发布了数据集 BIG2015(Ronen 等人,2018),其中分别包含 10,868 个反汇编文件和字节码。在这项研究中,我们仅使用字节码,因为我们的重点是原始二进制恶意软件,并且反汇编文件通常不易访问。为了将字节码转换为图像,我们遵循 Nataraj 等人描述的方法。 (2011)。将生成的恶意软件图像大小调整为 32 × 32。为了可视化恶意软件图像的分布,采用 t-SNE 进行降维和可视化,如图 2(c)所示。
3.2 FACILE =论文方法介绍=
FACILE的架构如图3所示,包括三个模块:初始卷积模块、初级胶囊模块和数字胶囊模块。图3展示了FACILE的完整工作流程,其中恶意软件图像经过多阶段特征提取,经过初始卷积层、初级胶囊层和数字胶囊层,最后通过正则化操作输出。图的下半部分详细介绍了数据流,其中第一个动态卷积的输出在作为第二个动态卷积的输入之前经过 ReLU 激活和 BatchNorm 归一化。经过第二次卷积和维度变换后,获得初级胶囊,并经过挤压操作,进入动态路由。经过三轮路由迭代,得到num_classes个数字胶囊。在每个动态卷积中,特征图在充当数字胶囊层的输入之前都会经历一系列函数激活和维度转换。
与原始 CapsNet 架构不同,FACILE 缺少图像重建模块,而只有输出模块。此外,FACILE 采用交叉熵损失,而不是 CapsNet 使用的原始保证金损失。以下各节将对每个模块进行全面介绍。
3.2.1.初始卷积
FACILE的初始卷积模块由单层动态卷积组成,用于预特征提取的目的。动态卷积是一种新颖的设计,可以在不加宽或加深网络的情况下增加模型复杂性,因为它已广泛应用于轻量级网络中(Fang et al., 2021;Yu et al., 2021)。该技术根据输入图像调整卷积参数,与静态卷积中每层使用固定滤波器相反。动态卷积利用多个并行滤波器,这些滤波器根据输入相关注意力自适应组合。通过组合更小的滤波器,动态卷积不仅计算效率高,而且通过注意力机制线性组合滤波器,增强了表示能力,从而提高了 CNN 的性能。
标准动态卷积可以在数学上表示为
F ( x ) = ∑ n = 1 N ω n ( x ) f n s.t. { 0 ≤ ω n ( x ) ≤ 1 ∑ n = 1 N ω n ( x ) = 1 − − − − − − − − ( 1 ) F(x)=\sum_{n=1}^{N} \omega_{n}(x) f_{n} \quad \text { s.t. }\left\{\begin{array}{l} 0 \leq \omega_{n}(x) \leq 1 \\ \sum_{n=1}^{N} \omega_{n}(x)=1 \end{array}\right. \ \ \ \ \ \ \ \ --------(1) F(x)=n=1∑Nωn(x)fn s.t. {0≤ωn(x)≤1∑n=1Nωn(x)=1 −−−−−−−−(1)
其中F(x)表示由多个滤波器
f
n
f_n
fn动态聚合而成的权重矩阵,
ω
n
(
x
)
ω_n(x)
ωn(x)表示注意力分数。李等人. (2021b)从矩阵分解的角度重新思考动态卷积,并以残差的形式表示:
f
n
=
f
0
+
Δ
f
n
,
n
∈
{
1
,
.
.
.
,
N
}
(
2
)
f_n=f_0+\Delta f_n, n \in \{1,...,N\} \ \ \ \ \ \ (2)
fn=f0+Δfn,n∈{1,...,N} (2)
其中
f
0
=
1
N
∑
n
=
1
N
f
n
f_0 = \frac{1}{N} \sum\limits^N_{n=1} f_n
f0=N1n=1∑Nfn是平均滤波器,
Δ
f
n
=
f
n
−
f
0
Δf_n = f_n − f_0
Δfn=fn−f0是残差权重矩阵。对
Δ
f
n
Δf_n
Δfn进行奇异值(Singular Value)分解(SVD),得到
Δ
f
n
=
U
n
Σ
n
V
n
T
Δf_n = U_nΣ_nV_n^T
Δfn=UnΣnVnT 。
结合方程(2)和方程(1):
F ( x ) = ∑ n = 1 N ω n ( x ) f 0 + ∑ n = 1 N ω n ( x ) U n Σ n V n T ( 3 ) F(x)=\sum\limits^N_{n=1} \omega _n(x)f_0+ \sum\limits^N_{n=1}\omega _n(x)U_n\Sigma _nV_n^T \ \ \ \ \ \ \ \ \ \ (3) F(x)=n=1∑Nωn(x)f0+n=1∑Nωn(x)UnΣnVnT (3)
首先,关注静态滤波器 f 0 f_0 f0。由于 ∑ n = 1 N ω n ( x ) \sum\limits^N_{n=1} ω_n(x) n=1∑Nωn(x) 意味着静态滤波器的注意力分数总和为 1。这里。为了获得更通用的形式,我们扩展了方程(1)的约束。假设滤波器的输入和输出通道相等,记为 S S S。我们用 Ψ ( x ) Ψ(x) Ψ(x)将 ∑ n = 1 N ω n ( x ) \sum\limits^N_{n=1}ω_n (x) n=1∑Nωn(x)表示为维度 S × S S × S S×S的矩阵,得到
F ( x ) = Ψ ( x ) f 0 + ∑ n = 1 N ω n ( x ) U n Σ n V n T ( 4 ) F(x)=\Psi (x)f_0+ \sum\limits^N_{n=1}\omega _n(x)U_n\Sigma _nV_n^T \ \ \ \ \ \ \ \ \ \ (4) F(x)=Ψ(x)f0+n=1∑Nωn(x)UnΣnVnT (4)
其中 Ψ ( x ) f 0 Ψ (x) f_0 Ψ(x)f0 实现了通道注意力,类似于挤压和激励(SE)结构(Hu et al., 2018),从而进一步概括了静态滤波器 f 0 f_0 f0。通过考虑通道之间的依赖关系,强调重要的通道特征,同时抑制不太重要的通道特征,从而提高性能。
接下来,让我们关注方程(4)的后半部分。将注意力分数 [ ω 1 ( x ) I , . . . , ω n ( x ) I ] [ω_1 (x) I,...,ω_n (x) I] [ω1(x)I,...,ωn(x)I] 表示为 Ω Ω Ω,其中 I I I 表示单位矩阵。将左奇异向量$ [U_1, … ,U_N ]$表示为 U U U,右奇异向量 [ V 1 , . . . , V N ] [V_1, ... ,V_N ] [V1,...,VN] 表示为 V V V ,奇异值矩阵 [ Σ 1 , . . . , Σ N ] [Σ_1, ... , Σ_N ] [Σ1,...,ΣN] 表示为 Σ Σ Σ,我们得到
F
(
x
)
=
Ψ
(
x
)
f
0
+
U
Ω
(
x
)
V
T
(
5
)
F(x)=\Psi (x)f_0+U \Omega (x)V^T \ \ \ \ \ \ \ \ \ \ (5)
F(x)=Ψ(x)f0+UΩ(x)VT (5)
从SVD的定义和性质可知,当存在
N
N
N个特征值时,可以利用前
M
M
M个特征值及其对应的左右奇异值向量来逼近原始矩阵
(
M
≪
N
)
(M≪N)
(M≪N),从而减少模型数量参数,使模型更加轻量级。
动态卷积分解(DCD)方法采用动态通道融合机制,取代了应用于通道组的动态注意力。这种机制不仅降低了隐藏空间的维数,而且解决了联合问题。动态卷积只需要少量增加计算量,而显着提高表达能力,非常适合轻量级神经网络。
因此,我们在FACILE中采用动态卷积来有效地提取恶意软件图像的固有特征。与使用静态卷积相比,动态卷积训练起来更简单,并且只需要相对较小的参数数量增加即可实现显着的性能提升。
3.2.2.初级胶囊(Primary Capsule)
Primary Capsule模块的主要功能是将前一层提取的特征图转换为Capsule。这是通过一层动态卷积来实现的,该层执行进一步的特征提取,减少输出特征图的大小,同时增加模型的复杂性并加深网络架构。
1)Squashing(挤压?压缩?) 胶囊是一组作为载体一起工作的神经元。胶囊的长度表示特征存在的概率,而胶囊的方向表示其实例化参数,例如位置、清晰度等。在胶囊网络中,利用非线性挤压函数来确保长度胶囊的形状被压缩在零和一之间,同时保持方向。变换过程描述如下
S q u a s h ( s ) = ∣ ∣ s ∣ ∣ 2 1 + ∣ ∣ s ∣ ∣ 2 ⋅ s ∣ ∣ s ∣ ∣ ( 6 ) Squash(s)=\frac{||s||^2}{1+||s||^2} ·\frac{s}{||s||} \ \ \ \ \ \ \ \ \ \ \ \ (6) Squash(s)=1+∣∣s∣∣2∣∣s∣∣2⋅∣∣s∣∣s (6)
其中 Squash(s) 是胶囊的向量输出,s 作为输入。胶囊网络中有两个不同级别的胶囊:低级别胶囊和高级胶囊,必须通过利用非线性压缩函数来激活。
2)transform (转变) 到目前阶段的重点是优化初步特征提取,目标是提高性能,同时保持参数数量尽可能少。在下一阶段,将生成的特征图转换为胶囊。与 CapsNet 一致,我们将输入胶囊维度设置为 8,将输出胶囊维度设置为 16,以尽量减少胶囊维度对模型性能的影响。假设经过前一阶段的一系列特征提取,得到的特征图X′的维度为C′×W′×H′,则得到
$$
\quad \text { s.t. }\left{\begin{array}{l}
dimcaps=8 \
C’=n*dim_caps, n \in{1,2,3,…,N}
\end{array}\right.
\ \ \ \ \ \ \ \ \ \ \ \ \ \ (7)
$$
其中DCD表示动态卷积运算,下标2是为了与初始卷积模块的 D C D 1 DCD_1 DCD1区分。生成的主胶囊的尺寸由 C ′ × W ′ × H ′ d i m _ c a p s \dfrac{C'×W '×H'}{dim\_caps} dim_capsC′×W′×H′ 给出,从约束中可以明显看出,输出尺寸必须是整数值。
3)Multi-stage feature fusion 多阶段特征融合 为了增强胶囊内编码的分层信息,对输入的恶意软件图像进行三阶段特征提取,从而获得更深的网络宽度和更大的感受域(receptive field)。每个阶段的动态卷积运算采用了一个独特的步长,表示为
F
i
InitConv
(
x
)
=
D
C
D
1
(
C
1
,
C
i
,
S
i
)
s.t.
{
i
∈
{
1
,
2
,
3
}
C
i
∈
{
8
,
16
,
32
}
S
i
∈
{
1
,
2
,
3
}
F_{i}^{\text {InitConv }}(x)=D C D_{1}\left(C_{1}, C_{i}, S_{i}\right) \quad \text { s.t. }\left\{\begin{array}{l} i \in\{1,2,3\} \\ C_{i} \in\{8,16,32\} \\ S_{i} \in\{1,2,3\} \end{array}\right.
FiInitConv (x)=DCD1(C1,Ci,Si) s.t. ⎩
⎨
⎧i∈{1,2,3}Ci∈{8,16,32}Si∈{1,2,3}其中
C
1
C_1
C1表示输入通道数,
C
i
C_i
Ci表示输出通道数,
S
i
S_i
Si表示卷积运算的步长。同时,每个阶段提取的特征图通过主胶囊层转换为低级胶囊。从三个阶段提取的低级胶囊聚合成综合表示可以表示为
Z = c a t ( [ O 1 P r i C a p s , O 2 P r i C a p s , O 3 P r i C a p s ] ) ( 9 ) Z=cat\left ( \left [ O_1^{PriCaps},O_2^{PriCaps},O_3^{PriCaps} \right ] \right ) \ \ \ \ \ \ \ \ \ \ (9) Z=cat([O1PriCaps,O2PriCaps,O3PriCaps]) (9)
其中 O i P r i C a p s , i ∈ 1 , 2 , 3 O^{PriCaps}_ i , i \in {1, 2, 3} OiPriCaps,i∈1,2,3 分别表示第 i 阶段提取的初级胶囊,函数 cat(⋅) 表示沿指定维度的串联,最终获得包含丰富层次结构的初级胶囊 Z 维度为dim_caps × num_caps的信息。这里 num_caps 代表初级胶囊的数量。
更具体地说,
恶意软件图像的输入尺寸为3×32×32。经过三个阶段的特征提取和转换,生成了83个初级胶囊。在每个阶段中,恶意软件图像都会经历两次动态卷积运算。经过第一次动态卷积后,得到的特征图的尺寸分别为 8 × 32 × 32、16 × 16 × 16 和 32 × 11 × 11。经过第二次动态卷积后,获得的特征图尺寸分别为8×7×7、16×3×3和32×2×2。对输出进行维度变换和挤压操作后,根据方程(6)和(7)得到三个阶段各自的胶囊数量。最后,三个阶段的胶囊被汇集在一起,在动态路由之前总共有 83 个主要胶囊。
3.2.3. Digit capsule 数字胶囊
由于最终输出代表不同的类别,因此我们利用数字表示来区分这些类别,从而产生了术语“数字胶囊层”。在这一层中,胶囊之间的信息传递是通过称为动态路由的过程来实现的。
1)动态路由。 网络中的胶囊分为两个级别:称为初级胶囊的低级别胶囊和称为数字胶囊的高级胶囊。高层胶囊的实例化参数是通过同层胶囊的变换矩阵W来预测的。当多个预测一致时,高级胶囊被激活。该过程是通过动态路由实现的,动态路由由3次路由迭代组成,最终的输出是通过每次迭代后对加权的高层胶囊求和得到的。该工作流程如算法 1 所示。
非线性压缩函数
S
q
u
a
s
h
:
v
j
=
∣
∣
s
j
∣
∣
2
1
+
∣
∣
s
j
∣
∣
2
s
j
∣
∣
s
j
∣
∣
非线性压缩函数 Squash:v_j=\frac{||s_j||^2}{1+||s_j||^2} \frac{s_j}{||s_j||}
非线性压缩函数Squash:vj=1+∣∣sj∣∣2∣∣sj∣∣2∣∣sj∣∣sj
S
j
计算公式:
s
j
=
∑
i
c
i
j
u
^
j
∣
i
S_j计算公式:s_j=\sum_{i}c_{ij}\hat u_{j|i}
Sj计算公式:sj=i∑ciju^j∣i
其中
v
j
v_j
vj表示高级数字胶囊的向量输出,
s
j
s_j
sj表示路由后得到的数字胶囊。数字胶囊
s
j
s_j
sj 是通过耦合系数
c
i
j
c_{ij}
cij 聚合低层初级胶囊得到的
u
^
j
∣
i
=
W
i
j
u
i
,
c
i
j
=
e
b
i
j
∑
k
e
(
b
i
k
)
\hat u_{j|i}=W_{ij}u_i,c_{ij}=\frac{e^{b_{ij}}}{ {\textstyle \sum_{k}e^{(b_{ik})}} }
u^j∣i=Wijui,cij=∑ke(bik)ebij
u
^
j
∣
i
\hat u_{j|i}
u^j∣i 和
c
i
j
c_{ij}
cij 的值计算为第三行,其中
u
^
j
∣
i
\hat u_{j|i}
u^j∣i表示低层胶囊
i
i
i 对高层胶囊的预测,
W
i
j
W_{ij}
Wij 是变换矩阵,
b
i
j
b_{ij}
bij 表示低层初级胶囊连接到高层数字胶囊的可能性。
更新执行:
b
i
j
⟵
b
j
k
+
u
^
j
∣
i
⋅
v
j
更新执行:b_{ij}\longleftarrow b_{jk}+ \hat u_{j|i·v_j}
更新执行:bij⟵bjk+u^j∣i⋅vj
当预测与实际的高层胶囊相匹配时,会产生更大的点积,从而导致参数值更大,低层胶囊连接到高层胶囊的可能性更高。相反,当预测与实际的高层胶囊不匹配时,点积变小,导致参数值更小,低层胶囊连接到高层胶囊的可能性更低。如算法1所示,变量K表示平衡系数,稍后将进一步讨论,变量Π存储每次路由迭代后主胶囊的输出值乘以平衡系数。
在第一次路由迭代开始时,参数 b i j b_{ij} bij的值被初始化为零。经过Softmax函数激活后, b i j b_{ij} bij的值就变成了概率向量。然后通过等式 S j S_j Sj对低级初级胶囊进行加权和聚合以获得高级数字胶囊,表示为 s j s_j sj 。随后,数字胶囊受到非线性挤压函数的作用,将其长度压缩到大于零和接近于 1 之间的值,同时保持其方向。将得到的数字胶囊乘以相应的平衡系数并存储在Π中。然后更新参数 b i j b_{ij} bij,这是动态路由算法的核心,根据CapsNet模型的设置,重复该过程3次。最后,将高层胶囊的Π与不同存储的权重相加,得到最终的路由结果,即输出。动态路由机制可以实现胶囊之间的高效消息传递。
2)平衡系数。经过多次动态路由迭代后的数字胶囊保留了丰富的特征信息。然而,耦合系数中极端值或小值的存在会显着影响数字胶囊的输出。较小的耦合系数可能会导致胶囊丢失,从而导致后续路由中的信息丢失。为了解决这个问题,我们引入了一组平衡系数,K = {κ1,κ2,κ3},它们在每次路由迭代后与相应的数字胶囊相乘。这些加权的高级胶囊存储在全局特征中,用Π表示,以激活抑制的胶囊。最终输出是通过对多次路由迭代的加权数字胶囊求和而获得的,产生
Π
=
∑
i
=
1
r
π
i
\Pi =\sum\limits^r_{i= 1} \pi _i
Π=i=1∑rπi
其中r代表迭代次数,CapsNet的推荐值为3。
综上所述,虽然参数数量略有增加,但动态卷积的融合增强了初始卷积层的特征提取能力。通过融合多个阶段的特征,进一步提高了初级胶囊中包含的信息的丰富性。在动态路由过程中引入平衡系数解决了胶囊脱落的问题,有效地减少了信息丢失。因此,FACILE用有限数量的具有丰富层次信息的胶囊实现了动态路由,并通过平衡系数输出不同胶囊的加权和。
4 实验
4.1. Baselines 基线
我们评估了 FACILE 在三个大型恶意软件数据集(VIRUS-MNIST、MalImg 和 BIG2015)上的性能,并将其与以下最先进的恶意软件分类方法进行了比较。在对 FACILE 和所有基线进行模型训练之前,除了必要的大小调整外,我们没有采用任何数据增强策略。
CapsNet (Sabour et al., 2017) 胶囊网络是一种新颖的架构,它利用新的胶囊设计并采用迭代路由协议来实现消息传递。在胶囊网络的训练过程中,预测样本与真实样本之间的误差是使用边际损失和重建损失的组合来定义的。
MalCaps (Zhang et al., 2021a) 为了解决 CNN 中池化层丢失特征之间空间层次的问题,作者提出了一种基于胶囊网络超参数优化的恶意软件分类方法。 MalCaps 中的主胶囊层包含两个卷积层,其余结构与原始 CapsNet 一致。作者通过实验证明,该方法在基于图像的恶意软件数据集上表现出卓越的特征提取能力。
Efficient-CapsNet (Mazzia et al., 2021) 以增强胶囊网络效率为目标,作者提出了一种非迭代并行路由算法来替代传统的动态路由。该方法利用自注意力机制有效减少了胶囊的数量,因此与原始方法相比仅需要一小部分(16 万个,10 个类别)参数,但仍然实现了优异的分类性能。
ResNet (He et al., 2016) ResNet 及其变体在不同的计算机视觉任务中表现出了出色的性能。然而,随着神经网络深度的增加,它可能会遇到性能下降的问题,称为退化问题。作者通过短路机制将残差单元合并到 ResNets 结构中,解决了深度神经网络的退化问题。
EfficientNet (Tan and Le, 2019) 作者提出了一种模型缩放方法,通过重新审视网络深度、网络宽度和图像分辨率等因素,然后根据特定规则对其进行缩放,从而平衡速度和准确性。 EfficientNet 被证明可以通过减少参数数量来提高网络性能,同时仍显着提高精度上限。
MCFT-CNN (Kumar et al., 2021) MCFT-CNN 是一种基于微调 CNN 模型的恶意软件分类方法,通过将最后一层修改为全连接层并结合迁移学习技术来增强 ResNet50。该模型最终由Softmax激活来完成恶意软件分类。
请注意,我们根据他们的论文或源代码上提供的超参数作为最佳设置,尽力使基线性能尽可能强大。
4.2.评估指标
为了评估各种恶意软件分类方法(包括本研究中提出的方法)的性能,我们采用了准确度、精确度、召回率和 F1 分数的标准指标,如表 2 所示。
表中👆评估指标的详细信息。其中TP(True Positive)表示模型将正样本正确预测为正例,TN(True Negative)表示模型将负样本正确预测为负例,FP(False Positive)表示模型错误将负样本预测为正例,FN(False) Negative)意味着正样本被错误地预测为负样本。
4.3.超参数优化
FACILE的实现是在PyTorch 1.9.0环境中使用Python 3.9.6进行的,所有实验均在配备AMD 3600 CPU和RTX3060 GPU、32 GB RAM的服务器上进行。我们采用随机梯度下降作为模型训练的优化器,并分配 70% 的数据用于训练,30% 的数据用于测试。同时,我们利用单周期学习率(OneCycleLR)策略来调整学习率。为了更方便、快捷地获得最佳模型参数,实验使用Optuna(Akiba et al., 2019)进行超参数调优,并对每组超参数进行10倍交叉验证,取平均值。我们实施交叉验证的目的是尽可能减少误差,根据现有研究(Shiva Darshan 和 Jaidhar,2021;HaddadPajouh 等,2018)和之前的实验经验,我们选择 k 值为 10。较大的 k 值可能会增加方差并显着增加训练时间,因为需要训练更多模型。相反,较小的 k 值可能会由于每个子集中的样本量减少而导致较高的偏差。当k等于10时,可以在偏差和方差之间实现有效的平衡。图 4 描述了完整的交叉验证过程,其中包括将整个数据集分为 10 个相等的部分。每轮交叉验证中,七部分(70%)数据用于训练,其余三部分(30%)用于测试,10个循环后计算平均值。表3记录了搜索的超参数和参数空间以及最佳参数值。
4.4.结果
4.4.1.与最先进方法的比较
在本小节中,我们重点评估 FACILE 在恶意软件分类任务上的性能,其中训练集和测试集的比例设置为 7:3。我们将 FACILE 与最先进的基于胶囊网络的模型和基于 CNN 的模型进行了比较,并评估了它们在 VIRUS-MNIST 数据集、MalImg 数据集和 BIG2015 数据集上的性能。表4-6记录了FACILE和其他最先进的方法在三个数据集上的训练时间、参数数量、胶囊数量、准确度、精确度、召回率和F1分数方面的性能。请注意,所有结果均经过 10 倍交叉验证后取平均值。
训练时间方面,FACILE 在 VIRUS-MNIST、MalImg 和 BIG2015 数据集上分别花费了 2064 秒、428 秒和 474 秒。在所有基于胶囊网络的模型中,Efficient-CapsNet 的训练时间最短,但性能较低。由于平衡系数的引入,FACILE在训练过程中更加稳定。如图 5 所示,MalCaps 在 MalImg 和 BIG2015 上表现相对稳定,但在 VIRUS-MNIST 数据集上训练时,其准确率大幅下降,可能是由于存在大量特征不显着的样本,MalCaps 无法很好地拟合。相比之下,FACILE可以捕捉细微的特征变化,表现出更强的特征提取能力。此外,FACILE 的性能优于所有其他基于胶囊网络的模型。在三个数据集上基于 CNN 的模型的对比实验中,FACILE 分别比 ResNet18 花费了 253 秒、91 秒和 79 秒,这是因为 FACILE 中的路由过程需要 3 次迭代,这需要更多的时间来完成初级胶囊的完成预言。尽管如此,FACILE 的性能优于 ResNet152、EfficientNet_v2、MCFT-CNN 和 VGG16,并且与这些模型相比在减少数倍训练时间方面具有显着优势。
从胶囊数量来看,FACILE 只有 83 个初级胶囊,远少于 CapsNet 的 1024 个,仅为 MalCaps 所含胶囊数量的 3.2%。在所有三个数据集中,FACILE的初级胶囊的数量始终保持在 83,因为它不受数据集中样本数量的影响。相比之下,Efficient-CapsNet 中的主胶囊数量根据数据集中的类别数量而变化,尽管这并不能转化为性能的提高。 FACILE 的胶囊包含不同尺度的信息,提供更强的表征能力并实现更平滑的路由过程,从而产生参数更少的更小模型。
从参数数量来看,FACILE 相比其他基线模型的参数数量明显较少。 FACILE 中的参数数量根据数据集中的类别数量而变化。在包含 10 个类别的 VIRUS-MNIST 数据集中,FACILE 的参数数量是所有基线模型中最低的,为 125K。 Efficient-CapsNet 的参数数量最接近 FACILE,只有 169K 个参数。然而,VGG16 的参数数量要高得多,为 134.3M。对于包含 25 个恶意软件家族的 MalImg 数据集,FACILE 的参数计数为 284K,略高于 Efficient-CapsNet 的 200K,显着低于 MCFT-CNN 的 23.55M。尽管参数较少,但 FACILE 的准确率比 EfficientCapsNet 高 1.21%,其准确率仅比 MCFT-CNN 低 0.139%,MCFT-CNN 的参数比 FACILE 多 82.9 倍。对于包含 9 个恶意软件家族的 BIG2015 数据集,FACILE 在所有基线模型中的最小参数数为 114K。 Efficient-CapsNet 在具有 167K 个参数的胶囊网络模型的基础上具有最小的参数数,但 FACILE 的精度仍比它高 0.5%。另一方面,参数数最少的CNN模型ResNet18有11.18M参数,是FACILE的98倍。尽管参数数量很少,FACILE 仍实现了 0.97203 的高精度。
在准确度、精确度、召回率和 F1 分数方面,FACILE 在所有三个数据集上都优于其他基于胶囊网络的模型。具体来说,在VIRUS-MNIST数据集上,FACILE的准确率、精确率、召回率和F1分数分别比CapsNet高3.095%、2.984%、4.019%和3.419%。在 MalImg 数据集上,FACILE 的准确度、精确度、召回率和 F1 分数分别比 MalCaps 高 2.021%、6.144%、6.019% 和 6.132%。在 BIG2015 数据集上,FACILE 在准确率、精确率、召回率和 F1 分数方面分别优于 MLCN 2.092%、4.279%、6.355% 和 6.095%。然而,在与基于 CNN 的模型的比较实验中,FACILE 在准确度、精确度、召回率和 F1 分数方面并不总是表现最佳。具体来说,在VIRUS-MNIST数据集上,FACILE的准确率优于ResNet18、ResNet152、EfficientNet_v2_s、MCFT-CNN和VGG16_w,但略低于EfficientNet_v2_s_w和VGG16。在 MalImg 数据集上,FACILE 优于除 MCFT-CNN 之外的所有模型。最后,在BIG2015数据集上,FACILE取得了比ResNet152、EfficientNet_v2_s、VGG16和VGG16_w更高的准确率。
同时,图 5 显示了 FACILE 与 CapsNet、MalCaps 和 DA-CapsNet 在训练过程中分别在 100 个 epoch 时的准确度变化。在 VIRUS-MNIST 数据集上,FACILE 的性能显着优于 MalCaps 和 CapsNet,而与在早期训练阶段表现相似的 DACapsNet 相比,FACILE 在大约 80 个 epoch 时实现了更高的准确率。在 MalImg 数据集上,FACILE 在早期训练阶段表现较差,但在大约 40 个 epoch 后,其准确性有所提高并超过了其他三个基线。在 BIG2015 数据集上,从图 5© 可以明显看出,FACILE 始终优于其他基线模型。尽管 FACILE 在训练的早期阶段表现出稍弱的性能,但这可能是由于其参数数量较少,因为 DA-CapsNet 使用多达 8M 的参数。
此外,图5还描述了FACILE和基线方法在恶意软件图像数据集上的分类精度与训练时间和参数数量之间的关系。虽然 FACILE 在特定指标上可能并不总是优于其他所有方法,但我们之前的分析表明,当训练时间或参数数量低于 FACILE 时,基于胶囊网络的模型通常在准确性方面表现不佳。相比之下,当基于 CNN 的模型比 FACILE 获得更好的准确度或训练时间更短时,它们通常依赖于大量参数或预训练参数,这会对模型的训练和分类效率产生不利影响。此外,ImageNet 中的预训练参数在应用于恶意软件图像时并不总是有效。相比之下,FACILE 通过少量参数实现了训练时间和准确性之间的平衡权衡,从而在 VIRUS-MNIST、MalImg 和 BIG2015 数据集上具有竞争性的性能。
4.4.2.消融实验
为了研究动态卷积分解、多级特征融合和平衡系数对 FACILE 的影响,我们在本小节中进行了六组消融实验。在每组实验中,我们都进行了10倍交叉验证,表7列出了不同模型在VIRUS-MNSIT、MalImg和BIG2015数据集上的准确性和模型参数数量。图 6 显示了 FACILE 与其他六个模型变体相比的准确性、召回率和 F1 分数。我们将动态卷积分解称为 DCD,平衡系数称为 BC,多级特征融合称为 MFF。
从表7和图6可以看出,当去除DCD、MFF和BC时,FACILE表现出不同程度的性能下降。具体来说,删除 DCD 会导致 VIRUS-MNIST、MalImg 和 BIG2015 数据集上的准确率分别下降 8.291%、5.161% 和 2.414%。同样,删除 MFF 会导致同一数据集上的准确率下降 1.362%、0.279% 和 0.095%。同时,去除 BC 导致三个数据集的准确率分别下降了 2.499%、20.709% 和 2.846%。从实验结果可以看出,MFF对FACILE整体性能的影响最小。然而,当数据集中的恶意软件家族数量相对较少时(例如,BIG2015 中有 9 个家族,VIRUS-MNIST 中有 10 个家族),包含 MFF 的模型可以用更少的参数实现更好的性能(例如,数量减少了 12.58%)。 VIRUS-MNIST 数据集上的参数数量减少了 14.5%(BIG2015 数据集上的参数数量减少了 14.5%)。相反,当数据集中的家族数量较多时(例如,MalImg 有 25 个家族),MFF 使模型的参数数量增加 1.1%,但导致精度提高 0.456%,召回率提高 0.454%, F1 分数提高了 0.469%。
同时,DCD增加了大约17K的参数数量,带来的性能提升是相当可观的。具体来说,在 VIRUS-MNIST 数据集上,精度、召回率和 F1 分数分别提高了 7.942%、9.521% 和 8.738%;在 MalImg 数据集上,准确率、召回率和 F1 分数分别提高了 7.8%、7.801% 和 7.869%;在 BIG2015 数据集上,准确率、召回率和 F1 分数分别提高了 4.336%、4.454% 和 4.383%。最显着的收益是在使用 BC 的 MalImg 数据集上观察到的,它提高了精确度、召回率和 F1 分数,分别为 13.821%、15.033% 和 16.042%。此外,我们还进行了额外的消融实验,以检查 DCD、MFF 和 BC 单独改进的影响。结果表明,具有两个改进点的模型优于仅具有一个改进点的模型。
上述实验结果表明,DCD、MFF和BC对FACILE模型的性能有显着贡献。通过对消融实验的分析,我们可以得出结论,我们在 FACILE 中所做的三项改进持续提高了其在所有三个数据集上的性能。 DCD尽管在静态卷积中加入了注意力机制,但仅少量增加了参数数量,却带来了性能的显着提升。 MFF 通过采用多阶段、多步骤特征提取,显着增强了初级胶囊中包含的信息的丰富度。 BC减轻了路由过程中的胶囊脱落和信息丢失,有效提高了模型的泛化性能。这三项改进使 FACILE 更加强大且更易于训练,从而实现更准确、更高效的恶意软件图像分类。
4.4.3.减少训练样本的性能
在本小节中,我们重点分析减少训练样本对 FACILE 性能的影响,特别是在准确率、精确率、召回率和 F1 分数方面。为了尽量减少实验误差,我们在每个实验中进行了10倍交叉验证,表中报告的值为平均结果。我们逐渐将训练集的比例从 90% 减少到 10%,并在 VIRUS-MNIST、MalImg 和 BIG2015 这三个数据集上实现每个模型,进行九组实验。表8-10分别记录了基于胶囊网络和基于CNN的模型的FACILE的准确性,而图7显示了FACILE的精度、召回率和F1分数随不同训练数据比例的基线的变化。
在准确率、精确率、召回率和 F1 得分方面,FACILE 在三个数据集中总样本量最大的 VIRUS-MNIST 数据集上取得了较高的性能,得分分别为 0.92286、0.8993、0.88297 和 0.88591。相应地,当训练样本量减少到10%时,四个评估指标均下降至0.88401、0.84507、0.83519和0.83549。在基于胶囊网络模型的分类实验中,无论训练样本减少多少,FACILE 始终优于 CapsNet、MalCaps、Efficient-CapsNet 和 MLCN。在评估的模型中,MalCaps 被发现表现最差。当训练样本数量在 10% 到 50% 之间时,DA-CapsNet 表现最好。然而,当训练样本数量超过 60% 时,FACILE 的性能优于 DA-CapsNet。在不同比例的训练样本中,FACILE 在基于 CNN 模型的恶意软件分类实验的准确性、精确度、召回率和 F1 分数方面均优于 ResNet18、ResNet152、EfficientNet_v2_s 和 MCFT-CNN。基于预训练参数的EfficientNet_v2_s_w在80%和90%训练样本下的准确率分别达到0.92175和0.9239。同时,FACILE 的准确率分别为 0.92111 和 0.92286,略低于 EfficientNet_v2_s_w。然而,FACILE 在训练时间方面具有显着优势,使其比 EfficientNet_v2_s_w 具有明显优势。
在第二个数据集 MalImg 上进行的实验中,FACILE 在训练样本比例为 10% 和 90% 时分别获得了 0.95469 和 0.98929 的准确率。在使用基于胶囊网络的模型的恶意软件分类实验中,随着训练样本比例的减少,FACILE 始终优于 CapsNet、MalCaps、DA-CapsNet 和 MLCN。在训练样本比例为 10% 时,Efficient-CapsNet 的准确率为 0.95785,精确率为 0.88838,召回率为 0.88867,F1 得分为 0.88687。在相同训练样本比例下,FACILE 的得分为 0.95469、0.88786、0.88878 和 0.88701,在准确率、精度和 F1 分数方面均略低于 Efficient-CapsNet。同样,在基于 CNN 的模型的实验中,无论训练集的规模如何,FACILE 始终优于 ResNet18、ResNet152、EfficientNet_v2_s、VGG16 和 VGG16_w。这可能是由于这些基于CNN的模型参数过多,训练数据相对较少,导致不同程度的过拟合。然而,当使用预训练模型时,EfficientNet_v2_s_w 在训练样本比例为 10%、60%、80% 和 90% 时分别实现了 0.96384、0.98822、0.99036 和 0.99143 的准确率,分别提高了 0.915%、0.088比 FACILE 的相应值高出 %、0.182% 和 0.214%。此外,FACILE 在所有其他情况下都优于 EfficientNet_v2_s_w。可以看出,预训练参数的使用有可能提高模型的分类性能,但这并不总是有效,因为在这些预训练参数中学到的知识可能不太适合恶意软件图像。
BIG2015 数据集有 10868 个样本,仅包含 9 个恶意软件家族。随着训练样本从 90% 逐渐减少到 10%,FACILE 在准确率、精确率、召回率和 F1 分数方面始终优于其他基于胶囊网络的模型。这表明我们对 FACILE 所做的增强既有效又一致。此外,即使类别较少、训练样本减少,FACILE 仍然在分类任务中实现最佳性能。此外,在与基于CNN的模型的比较实验中,即使训练样本比例减少,FACILE仍然优于ResNet152、EfficientNet_v2_s和VGG16。然而,结果表明 ResNet18、MCFT-CNN 和 EfficientNet_v2_s_w优于 FACILE。ResNet152的性能较差可能归因于其近47M的过多参数化,这加剧了训练过程中的过拟合。相比之下,EfficientNet_v2_s_w 和 MCFT-CNN 在预训练参数的帮助下,在 BIG2015 数据集上取得了优于 FACILE 的性能。
总体而言,如图 7 所示,随着训练样本量的减小,基于胶囊网络的模型和基于 CNN 的模型都表现出不同程度的性能下降。表8-10表明,使用预训练参数似乎可以提高基于CNN的模型在训练样本较少的情况下的分类性能;然而,这需要更多的参数和几乎固定的网络结构,这不利于提高恶意软件分类效率。相比之下,所提出的 FACILE 在减少训练样本的情况下有效且显着地提高了基于胶囊网络的模型的分类性能。尽管 FACILE 与预训练的基于 CNN 的模型在分类性能上存在细微差别,但 FACILE 仅需要约 200K 个参数,这比 EfficientNet 的 20M 和 VGG 的 134M 要少得多。
5 讨论
5.1.附加参数配置
除了平衡系数、学习率、batch size和epoch的影响外,路由过程中涉及的胶囊数量也会影响FACILE模型的最终决策。胶囊的数量由初始卷积和初级胶囊模块的动态卷积设置共同确定。在FACILE中,初始卷积模块的特征提取中的动态卷积D1的输出通道数分别为8、16和32,分三个阶段,卷积步长分别为1、2和3。在初级胶囊模块中,动态卷积D2的输出通道数分别为8、16和32,卷积步长分别为5、7和9。我们这样配置的初衷是坚持等通道变换的原则。这样做的目的是为了最大限度地减少通道变换带来的特征损失,同时保证模型的分类性能并使用更少的通道。同时,在初始特征提取过程中,我们采用更小的步幅卷积来从恶意软件图像中捕获更多纹理细节。另一方面,在初级胶囊阶段使用更长的步幅卷积旨在保留更多的全局空间信息并减小特征图的大小。这种方法不仅降低了计算要求,而且丰富了初级胶囊中包含的信息。
我们还探索了动态卷积中其他可能的参数配置,表 11 列出了我们实验过的一些参数。当 D1 和 D2 中的步幅互换时,即先使用较长的步幅,然后使用较短的步幅,即使参数和胶囊的数量保持不变,分类性能也会下降。同样,在保持胶囊数量不变的情况下,初始卷积模块中通道数量的增加并不总能带来一致的性能改进。该模型的准确率在VIRUS-MNIST数据集上下降了0.322%,在MalImg数据集上提高了0.05%,在BIG2015数据集上提高了0.067%。然而,这些变化带来的收益微乎其微。相反,当初始卷积模块中使用较少的通道时,尽管参数数量减少了,分类性能确实下降了。这可能是由于在通道转换过程中丢失了一些恶意软件功能,而等通道转换会带来更平衡的性能。当我们尝试通过减少卷积步长或增加通道数来增加胶囊数量时,FACILE 并没有达到更好的分类精度,可能是由于胶囊过多导致的过拟合。此外,当胶囊数量显着减少时,模型的分类性能也会下降,这表明胶囊太少可能无法有效学习恶意软件图像的表示,从而损害模型的泛化能力,从而影响分类准确性。
除了上述因素之外,胶囊网络的性能还受到初级胶囊的维度、数字胶囊的维度以及路由迭代次数的影响。我们决定将这些值分别设置为 8、16 和 3,以便与原始胶囊网络保持一致。这样做是为了证明我们对原始胶囊网络性能的改进是由于内部结构的调整,而不是附加参数的变化。我们相信可能存在可以进一步提高 FACILE 性能的最佳参数值,但这需要进一步的实证研究。
5.2.模型推理的可视化解释
胶囊网络在计算机视觉领域展示了强大的分类性能。它们通过胶囊编码更细粒度的特征,例如图像亮度、纹理样式、空间位置和旋转角度。同时,胶囊网络中的路由机制将模型的焦点从零件转移到对象零件,从而能够对不同纹理之间的空间关系进行编码,从而获得更高层次的表示。尽管 FACILE 在对恶意软件家族进行分类方面表现出色,但人们对该模型如何做出决策知之甚少。鉴于胶囊网络比传统的卷积神经网络更复杂,理解和解释模型的行为变得更具挑战性。
为了直观地理解模型如何做出决策并提高其可解释性,我们采用梯度加权类激活映射(Grad-CAM)(Selvaraju et al., 2017)来可视化网络做出最终决策时感兴趣的区域。 GradCAM 是一种主要用于理解卷积神经网络决策过程的技术。它通过计算最后一层或特定层的特征图对预测的贡献来生成热图,从而在针对不同类别做出决策时清楚地显示主要感兴趣区域。我们将Grad-CAM应用到训练后的深度VGG网络中,使用输出特征层中的最后一个卷积层作为目标层进行前向传播,并计算指定类别对应的梯度,最终获得每个特征图的权重。类似的方法也适用于训练后 FACILE 中数字胶囊层的输出。
图8展示了Grad-CAM在VIRUS-MNIST、MalImg和BIG2015三个数据集上的可视化效果。从图中可以看出,基于卷积神经网络的VGG模型和基于胶囊网络的FACILE模型在进行决策时,感兴趣区域存在显着差异。 VGG的注意力集中在恶意软件图像的边缘和角落,而FACILE可以识别更多区域并更精确地定位。这是因为FACILE使用了鲁棒的路由机制,在开始路由过程之前,初级胶囊编码了大量细粒度的恶意软件特征,但这些特征此时看起来更像是相对独立的部分。例如,一些初级胶囊负责编码恶意软件图像的纹理特征,包括纹理的厚度、位置和对比度等。一些初级胶囊负责编码整个图像的亮度特征和边缘信息,还有一些初级胶囊负责编码整个图像的亮度特征和边缘信息。负责编码像素值和熵等信息。 FACILE 包括 83 个富含层次信息的初级 Capsule,在路由过程开始后,不同粒度的 Capsule 编码特征将进行一致性投票。当一些初级胶囊达成共识时,它们会组合成更高级别的胶囊,也称为数字胶囊。数字胶囊更像是由小部分组成的较大的物体部分,不同的数字胶囊编码对应于不同类别的更高级别的表示。
此外,图 8 提供了值得进一步检查的补充信息。 FACILE可以准确识别某些加密家族,例如蠕虫家族Allaple。由于蠕虫家族通常是多态加密的,将该家族的二进制样本转换为图像使得 VGG 识别特征变得困难。然而FACILE可以实现高精度分类基于细微特征和全局特征,得益于胶囊丰富的层次信息和强大的动态路由机制。此外,FACILE在对相似家族进行分类时所依赖的特征也相似(图8(b)中的两个家族Allaple.A和Allaple.L),并且它也可以准确定位恶意代码的位置(C2LOP.A和C2LOP.A)。图8(b)中的gen!g家族和图8©中的Vundo家族。此外,FACILE可以识别恶意代码的跳转和调用(图8(c)中的Obfuscator.ACY、Kelihos_ver3和Tracur家族),而VGG只能提供可能存在恶意代码的大面积区域。
5.3.数据增强 Data augmentation
数据不平衡的挑战在恶意软件数据集中普遍存在,促使广泛利用数据增强来提高数据质量并实现卓越的模型表示。本研究的主要重点是评估 FACILE 在特征提取领域的功效。因此,在预处理阶段,除了大小调整之外,没有采用额外的数据增强方法。与 FACILE 一起评估的其他基线模型也遵循此策略。在实际的恶意软件分类任务中,通常会在模型训练之前实施特定的干预措施,例如恶意软件图像的旋转、翻转、对比度和亮度调整、随机裁剪以及生成新样本以进行数据增强。因此,我们认为,如果使用 FACILE 进行恶意软件家族分类,则特定数据增强技术的应用可能会提高准确性。
5.4.局限性
尽管我们使用了恶意软件分类中广泛使用的三个数据集,即 VIRUS-MNIST、MalImg 和 BIG2015,但这些数据集并不能完全代表真实世界的恶意软件样本,特别是考虑到恶意软件家族的不断演变。因此,在未来的研究中,我们将在更广泛的数据集上评估我们的方法,例如Linux数据集(Cozzi et al., 2018)、物联网数据集(Alasmary et al., 2019)以及包含更多家庭的更大数据集以及更多的样本(Freitas 等人,2022)。此外,我们计划与安全公司合作发布恶意软件数据集,其中包含更多种类和数量的样本。该数据集不仅包含原始二进制文件,还将提供详细的静态和动态分析报告,以加速网络安全领域相关技术的落地。
此外,关于胶囊网络的可解释性,我们只提供了初步的实验结果。至于如何更好地展示和量化单个胶囊对最终预测的影响,更好地呈现胶囊网络的可解释性,目前还没有理想的方法可用,需要进一步探索。
5.5.未来的工作
胶囊网络对初级胶囊维度、数字胶囊维度和路由迭代次数相对敏感。在这项工作中,我们的主要动机是解决胶囊网络固有的结构问题并将其应用于恶意软件家族分类任务,旨在提高恶意软件图像分类的准确性和效率,特别是在样本量较小的情况下。因此,这三个参数的设置遵循原论文的设置,尽可能减少附加参数的影响。但这些参数值是否会对FACILE产生显着影响以及影响程度如何,还需要进一步研究。在未来的工作中,我们将重点研究初级胶囊维度、数字胶囊维度和路由迭代次数对模型的影响。同时,我们还计划以更优雅的方式将平衡系数集成到路由过程中,减少信息损失,同时最大限度地减少额外的超参数调整。
此外,FACILE的训练时间受图像尺寸的显着影响,需要进一步研究以加速更大尺寸上胶囊网络的训练。尽管 FACILE 的性能优于基于胶囊网络的模型,但无论训练时间和模型大小如何,预训练的基于 CNN 的模型都可以实现更高的准确度。在未来的研究中,我们将引入特定的预训练参数来增强胶囊网络模型的性能。此外,由于不同类型的恶意软件所包含的字节数不同,生成的恶意软件图像的大小也有所不同,因此我们的目标是借助预训练模型实现对任意大小的恶意软件图像的准确分类,以推进基于图像的恶意软件图像分类。恶意软件检测并加速胶囊网络在网络安全中的应用。
6 结论
在这项研究中,我们提出了一种基于胶囊网络的模型 FACILE,它包含更少的胶囊,具有更丰富的层次信息,从而使训练更容易、更稳定。我们的方法消除了特征工程的需要,并直接对恶意软件图像进行分类。在 VIRUS-MNIST、MalImg 和 BIG2015 三个大规模真实恶意软件数据集上的实验结果表明,FACILE 在特征提取能力和训练速度方面优于基于胶囊网络的模型。同时,与基于 CNN 的模型的对比实验表明,尽管参数数量很少,但 FACILE 在恶意软件图像分类任务中表现出色。此外,在训练数据样本减少的情况下,FACILE在准确性方面仍然优于基于胶囊网络的模型,并且与基于CNN的模型相比,FACILE在参数数量和训练时间方面表现出极具竞争力的性能。