融合CNN 与XGBoost 的恶意代码智能识别研究

作者: 沈建国

融合CNN 与XGBoost 的恶意代码智能识别研究0

摘要:为了更好地识别网络中的恶意代码,本研究提出了一种融合卷积神经网络(CNN) 和极端梯度提升(XGBoost) 技术的恶意代码智能识别系统。该系统利用卷积神经网络提取恶意代码的图像特征,并采用极端梯度提升算法进行分类。实验结果表明,该系统在测试集上取得了99.0%的精确率、97.4%的召回率和97.8%的F1值,显著优于对比算法,有效提升了恶意代码识别的精度。这表明,研究方法能够准确识别网络中的恶意代码,分类性能表现良好。研究成果为恶意代码的智能识别提供了一定的技术支撑。

关键词:CNN;XGBoost;恶意代码;智能识别;特征提取

中图分类号:TN915 文献标识码:A

文章编号:1009-3044(2024)34-0020-04 开放科学(资源服务)标识码(OSID) :

0 引言

在当今数字化时代,随着互联网的飞速发展和信息技术的广泛应用,病毒、木马等恶意代码已成为网络安全领域的一大威胁。这些恶意代码不仅危及个人隐私和数据安全,还可能导致数据泄露、系统瘫痪等严重后果,对国家安全和社会稳定造成严重影响[1]。因此,开发高效、准确的恶意代码识别技术显得尤为重要。

传统的恶意代码识别方法主要依赖于特征工程和手工提取的规则,但这些方法往往难以应对日益复杂和多变的恶意代码攻击[2-3]。近年来,深度学习技术,尤其是卷积神经网络(Convolutional Neural Net⁃work,CNN) ,在图像识别、自然语言处理等领域取得了显著成果。CNN凭借其强大的特征提取能力,能够自动学习数据中的高层抽象特征,为恶意代码识别提供了新的研究思路[4]。

然而,单一模型通常难以应对复杂多变的恶意代码攻击,因此需要结合多种技术以提高识别的准确率和鲁棒性[5]。极端梯度提升(eXtreme Gradient Boost⁃ing,XGBoost) 作为一种高效的梯度提升决策树算法,在分类、回归等任务中表现优异,具有处理非线性关系和自动处理缺失值等优点[6]。将CNN与XGBoost相结合,可以充分发挥CNN的特征提取能力与XGBoost 的分类性能,从而有效提升恶意代码识别的准确性和泛化能力。

基于此背景,本研究创新性地融合CNN 和XG⁃Boost,构建了一种恶意代码智能识别系统,以提高识别的准确率和效率。该系统有望为网络安全领域提供更为高效、准确的恶意代码识别方案,为应对复杂的网络安全威胁提供技术支持。

1 恶意代码智能识别系统设计

1.1 基于改进CNN 的恶意代码特征提取方法

传统的卷积神经网络(CNN) 需要大量的训练数据,其训练过程可能耗费大量时间和存储空间,同时在提取图片信息时可能会忽略部分重要的图片特征[7]。注意力机制能够帮助CNN捕捉易被忽略的图片信息,并强调关键的图片特征。因此,本研究对传统CNN进行了改进,在其基础上引入了注意力机制。

CNN独特的结构使得隐含层中的卷积核能够实现参数共享,这一特性显著降低了网络的计算复杂度[8]。考虑到恶意代码家族中的二进制数据之间存在一定程度的相似性,可以将这些二进制数据转换为类似于图像特征的向量形式。基于这一转换,利用CNN 进行恶意代码检测成为一种可能且有效的方法。CNN能够深入挖掘恶意代码中的潜在特征,从而提升检测的准确性和效率。

本研究采用改进的CNN模型来提取恶意代码灰度图像的特征。该模型在传统CNN的基础上引入了注意力机制,以增强对关键特征的关注。注意力机制能够使模型有选择性地关注输入特征中的不同部分,为各部分分配不同的权重,从而突出关键信息。

具体而言,首先将神经网络从恶意代码灰度图像中提取到的特征作为注意力层的输入。在特征图中,每个像素的位置均由其坐标(i,j )表示。接着,利用注意力机制计算特征图上每个像素的注意力因子,这些因子共同构成了注意力向量。注意力权重矩阵通过公式(1) 计算:

A = Soft max ⋅ Fcwf,bf ⋅ ReLU ⋅ Fcwd,bd (F), A ∈ [ 0,1] (1)

式中:A 代表注意力权重矩阵,F 代表输入到全连接层的向量,ReLU代表激活函数。

相比传统神经网络的激活函数,改进的激活函数ReLU 在避免梯度爆炸和梯度消失问题方面表现更为优越,同时还能简化计算过程。其公式定义如下:

f (x) = max (0, x) (2)

式中:x 代表输入值,f (x) 代表输出值。

将每个特征与对应的注意力因子进行逐元素相乘,并计算加权平均值,从而得到平均注意力权重F̂。这一权重F̂可以被视为特征分布中最具代表性的中心点,它综合了所有像素的注意力权重,能够更准确地反映关键特征的重要性。平均注意力权重F̂由公式(3) 计算。

式中:F̂代表平均注意力权重,fi,j 代表注意力因子的特征,wi,j代表注意力权重变量。

注意力机制的算法如公式(4) 所示:

ai,j = Soft max ⋅ Fcwf,bf ⋅ ReLU -Fcwd,bd ( fi,j ), ai,j ∈ [ 0,1] (4)

式中:ai,j 代表注意力因子,表示不同信息在当前情境下的影响程度。

为了实现损失函数的最小化或最大化目标,神经网络依赖优化器来迭代更新其参数,以降低训练过程中的损失,从而改进模型性能并提升检测精度。本研究采用Adam优化算法作为优化器,通过综合考虑所有训练样本的梯度信息,实现学习率的自适应调节,从而加速收敛并提高模型的稳定性。

在获取到注意力加权的特征之后,利用全连接层对所提取的特征进行整合。在全连接层中,每一个神经元均与前一层的所有神经元相连,这种设计能够实现对前层网络所得特征的全面汇总,并将多维特征展平处理,以便于后续的分类任务。模型结构包括两层卷积层、池化层、一层注意力层和两层全连接层。卷积层与池化层用于提取恶意代码灰度图像的特征信息,这些特征在注意力层中进一步处理,最终在全连接层中转换为分类结果并输出。由于恶意代码灰度图像的结构层次相对简单,因此无须采用深层次的复杂网络来进行图像处理。

该神经网络模型接收由恶意代码转换而成的灰度图像作为输入,并输出恶意代码的检测结果。通过将输入特征进行线性组合得到输出,并使用非线性激活函数ReLU(Rectified Linear Unit) 来提取特征,能够有效减轻过拟合现象,同时避免梯度爆炸和梯度消失问题。全连接层用于整合特征,为后续分类任务提供输入。此外,模型引入了注意力机制,以进一步提取图像中的空间特征。

在全连接层之后,采用了Dropout策略来预防过拟合现象。具体而言,Dropout通过预设的概率随机地将部分神经元从网络中临时移除,从而减少模型对某些特定局部特征的过度依赖,增强模型的泛化能力。

整个流程首先将恶意代码转换为灰度图像,这一转换过程能够保留更多信息,为后续的恶意代码分类与检测奠定坚实基础。随后,进行恶意代码特征提取,转换后的灰度图像被用作神经网络的输入数据。通过卷积神经网络的卷积层和池化层对图像进行深度处理,并结合注意力机制,能够更有效地提取关键特征。这些特征随后被传递至注意力层进行进一步处理,最终通过全连接层进行特征展平,以便于输入到分类器中进行精确分类。最后,将经过注意力机制处理后的特征送入全连接层进行映射与分类,从而实现恶意代码家族的准确识别和归类。

1.2 融合XGBoost 的恶意代码智能识别系统

在使用注意力机制提取图片中的空间特征后,研究还需对提取到的特征进行分类。尽管恶意代码灰度图像蕴含了大多数关键的恶意特征,但同时也夹杂了大量无关信息,即所谓的无效噪声,这些噪声会对分类过程产生干扰。为了优化分类器的性能,研究采用自动编码器对恶意代码灰度图像进行预处理。通过自动编码器的转换,生成恶意代码的自编码图像,这一过程有助于降低噪声干扰。随后,将这些经过降噪处理的自编码图像作为模型的输入,以更精准地提取恶意代码的特征。

恶意代码灰度图像的处理流程如下:首先,将转换后的恶意代码灰度图像调整为标准化尺寸。接着,这些图像被送入自动编码器中进行重构处理,生成同样标准化尺寸的恶意代码自编码图像,此步骤旨在剔除灰度图像中的噪声成分。随后,这些经过降噪的自编码图像被用作神经网络的输入,以进行特征提取,并最终服务于分类任务。自编码图像的优势在于其能够有效滤除噪声,同时保留图像中的关键信息。

生成自编码图像的自动编码器具备无监督学习的能力,由编码器和解码器两大组件构成。编码器负责将输入的恶意代码灰度图像进行映射变换,通过下采样操作将特征压缩至潜在空间表示;解码器则负责将这一潜在空间表示进行重构。通过不断地训练,自动编码器能够学习输入数据中最显著的特征,从而实现对数据的净化处理。

在分类阶段,尽管CNN中广泛应用Softmax分类算法,并取得了一定的效果,但其存在数值溢出和梯度消失等问题。此外,Softmax分类算法高度依赖输入训练集的质量,且具有一定的不可解释性,训练集质量的波动会直接影响输出结果[9]。为了解决这些问题并进一步提高分类精度,研究采用XGBoost 算法对CNN提取的特征进行分类。

XGBoost算法在处理大规模数据集时表现出色,具有速度快、效果好、能够自动处理数据缺失值等优点,从而增强了模型的稳定性和可靠性。XGBoost树的节点划分基于公式(5) :

式中:gain 代表得到的节点,G 2L/HL + λ 代表左子树的得分,G2R/HR + λ 代表右子树的得分,G2/H + λ 代表节点不进行分裂时的得分。

交叉熵损失通过梯度下降使预测值的分布逐步接近标签值的分布,同时模型参数也在这一过程中不断更新,从而优化分类模型的性能。由于恶意代码检测属于典型的二分类问题,因此研究采用二元交叉熵损失函数作为损失函数,其定义如下公式(6) 所示。

式中:Loss代表损失函数。y 代表二元标签,p 代表输出属于对应标签的概率。

XGBoost算法采用贪婪策略,逐步分裂节点,直到满足停止生长的条件:最大增益小于0、叶子节点仅含一个样本,或树的深度达到预设的最大值。最终,XG⁃Boost 模型的参数通过特征训练和提取进行优化。CNN-XGBoost 恶意代码智能识别系统的构建如图1 所示。

如图1所示,CNN-XGBoost恶意代码智能识别系统巧妙融合了特征提取与特征分类两大核心环节。系统首先接收自编码的图像输入,随后启动特征学习和分类器学习的双重学习过程。具体而言,系统首先利用CNN的强大能力深入挖掘图像中的关键特征,完成特征学习。

系统创新性地用XGBoost分类器替换了传统的Softmax分类算法,同时保持特征提取部分的模型结构和参数不变,确保特征能够顺利从特征学习阶段迁移到分类器学习阶段。随后,固定模型参数和特征,将提取的特征迁移到XGBoost分类器中,以进行特征训练,从而精准获取XGBoost模型的参数。

2 恶意代码智能识别系统设计有效性分析

为了验证系统的有效性,研究在Malimg数据集上进行了实验。实验环境为Windows 10操作系统,开发语言为Python 3.6,测试软件为Postman。实验以Malimg数据集为基础,验证了研究设计方法的性能表现。

为了进一步验证所提出算法的有效性,研究将CNN-XGBoost算法与传统的CNN和XGBoost算法进行了对比分析。通过实验,研究对比了不同算法在恶意代码分类任务中的表现。图2显示了不同算法的混淆矩阵,直观地展示了分类模型对恶意代码分类的预测标签与真实标签的对比情况。

由图2可知,不同算法的混淆矩阵分类结果存在差异。图2(a) 显示,CNN的分类准确率整体在0.91以上。其中,对标签4的误分类率为0.09,对标签5的误分类率为0.08,对标签8的误分类率为0.1,而对标签1 和标签7的分类准确率高达0.96。图2(b) 显示,XG⁃Boost对标签8的分类准确率最低,为0.90;对标签3和标签4 的误分类率为0.07,对标签6 的误分类率为0.06;对标签1和标签7的分类准确率高达0.97。图2(c) 显示,CNN-XGBoost的分类准确率最低为0.95。在对标签6的恶意代码分类时,预测准确率高达0.99;对标签3和标签5的误分类率为0.05。与前两种算法相比,CNN-XGBoost的恶意代码分类准确率显著提高。

上一篇 点击页面呼出菜单 下一篇