一种基于EPM-MCNET神经网络的安卓恶意软件检测方法及系统

专利2026-07-30  14

本发明应用于安卓恶意软件检测领域,具体涉及一种基于epm-mcnet神经网络的安卓恶意软件检测方法及系统。
背景技术
::1、安卓系统的开放性致使安卓恶意软件开发相对方便,给用户带来了严重的安全威胁。基于目前的网络安全态势,如何快速有效地检测出安卓恶意软件具有重要的应用价值。2、近年来,许多学者通过构建卷积神经网络模型识别安卓恶意软件,但是构建的卷积神经网络中都使用单一尺寸的卷积核对安卓软件特征图像进行特征提取,忽略了提取特征的多样性。此外,轻量级神经网络因其训练时间短、识别速度快等特点,被广泛用于安卓恶意软件检测;但是,将这些轻量级神经网络直接用于安卓恶意软件检测,并不能保证高的检测精度,难以满足实际检测要求,在一定程度上增加了安卓恶意软件检测的难度。3、公开号为cn113468531a的中文专利文献公开了一种基于深度残差网络和混合注意力机制的恶意代码分类方法。该发明将恶意代码的.bytes和.asm文件可视化为rgba图像,同时将深度残差网络resnet50与混合注意力cbam相结合构建恶意代码分类模型,实现恶意代码的自动检测。4、公开号cn114579970a的中文专利文献公开了一种基于卷积神经网络的安卓恶意软件检测方法及系统。该发明将安卓软件中所提取的classes.dex文件可视化为rgb图像,再通过频域变换映射处理获得rgb图像所对应的频域特征图像。将频域特征图像作为输入,通过恶意软件识别模型,实现对目标安卓软件进行恶意检测。技术实现思路1、当前在安卓恶意软件检测领域,将轻量级神经网络直接应用于安卓恶意软件检测存在检测精度不理想的问题。此外,一些学者采用的神经网络中都是使用单一尺寸的卷积核对安卓软件特征图像进行特征提取,忽略了提取特征的多样性。针对现有技术的不足,本发明提供了一种基于epm-mcnet神经网络的安卓恶意软件检测方法,该神经网络在检测时间短、参数数量较少的情况下具有良好的特征提取能力,可以快速准确地对安卓软件进行分类。2、本发明还提供了一种基于epm-mcnet神经网络的安卓恶意软件检测系统。将需要检测的安卓软件输入到该系统后,该系统即可借助检测模型对其进行检测,并输出安卓恶意软件检测结果。3、术语解释:4、安卓应用安装包(android application package,apk):是安卓操作系统使用的一种应用程序包文件格式,用于发布和安装安卓应用。它包含安卓软件的代码、资源、证书等。5、安卓软件数据集:在本发明中,安卓软件数据集是指包含安卓良性软件应用安装包和安卓恶意软件安装包的集合。6、h-swish激活函数:是在swish激活函数的基础上,引入relu6激活函数构建出的一种激活函数。h-swish激活函数被广泛应用于深度学习模型中,以提高模型的训练速度和避免模型中神经元坏死的问题。计算公式如下:7、8、批量归一化(batch normalization,bn)操作:是一种对神经网络输入或中间层激活值执行归一化处理的操作。bn操作能够提升神经网络的训练速度,加速神经网络的收敛。9、本发明的技术方案为:10、一种基于epm-mcnet神经网络的安卓恶意软件检测方法,具体步骤如图1所示。11、s1:构建一个安卓软件rgb图像数据集d,d由若干个安卓软件rgb图像fi构成;12、s2:构建并训练基于epm-mcnet神经网络的安卓恶意软件检测模型。该模型包括将安卓软件可视化为rgb图像部分和epm-mcnet神经网络部分。13、s3:运用基于epm-mcnet神经网络的安卓恶意软件检测模型检测安卓软件,判断安卓软件是否为安卓恶意软件。14、进一步地,步骤s1具体如下:15、s11、将多个apk安装包的后缀名由.apk修改为.zip,读取apk安装包,获取classes.dex、androidmanifest.xml、resources.arsc二进制文件。16、s12、将步骤s11获取的classes.dex、androidmanifest.xml、resources.arsc二进制文件可视化为rgb图像。具体地,分别对于上述文件,每读取文件中的8bit为一组,将每一组转换为一个无符号的十进制整数,该整数称为一个像素,范围从0到255。接着,将无符号十进制整数组成的数组按顺序依次填充到大小为224×224的二维矩阵中。然后将classes.dex、androidmanifest.xml、resources.arsc二进制文件生成的二维矩阵分别填充到r、g、b三个颜色通道上,最终生成高度为224、宽度为224、通道数为3的rgb图像。17、s13、将经过步骤s12处理获得的所有rgb图像构成一个安卓软件rgb图像数据集d。18、s2:构建并训练基于epm-mcnet神经网络的安卓恶意软件检测模型。该模型包括将安卓软件可视化为rgb图像部分和epm-mcnet神经网络部分,epm-mcnet整体网络结构示意图如图2所示。19、所述epm-mcnet神经网络包括输入层、中间层和输出层;中间层包括第一卷积归一化激活模块cbr1、cbr2,第二卷积归一化激活模块cbh1、cbh2,最大池化层、强化感知模块(enhanced perception module,epm)、多尺度卷积模块(multi-scale convolution,mc),具体的模型训练步骤包括:20、s21、输入层接收d中的任意安卓软件rgb图像fi,并将fi传递至epm-mcnet神经网络的中间层。21、s22、中间层中的cbr1模块接收到fi之后,使用3×3的卷积核对fi进行卷积操作,然后对卷积结果进行归一化处理,再通过relu激活函数进行激活,输出特征图像t1。随后将t1输入至最大池化层进行降维,输出特征图像fm1,并将其传递至cbh1模块中。22、s23、cbh1模块接收到fm1之后,使用3×3的卷积核对fm1进行卷积操作,然后对卷积结果归一化处理,再通过h-swish激活函数进行激活,输出特征图像t2。随后将t2输入至最大池化层进行降维,输出特征图像t3。接着将t3输入至epm模块,以增强特征图像t3特定区域或特定通道的特征信息,输出特征图像fm2。最后将特征图像fm2输入至cbh2模块中。23、所述运用epm模块增强特征图像t3特定区域或特定通道的特征信息,输出特征图像fm2,具体步骤包括:24、当将高度为h、宽度为w、通道数为c的三维特征图像输入至epm注意力模块后,同时被该模块的路径a和路径b接收;25、对于路径a,分别采用全局最大池化、全局平均池化提取特征图像的特征信息,得到两个1×1×c的特征向量;接着,路径a将这两个特征向量逐元素求和,得到一个1×1×c的特征向量fa1;随后路径a通过多层感知机mlp1对特征向量fa1的每个通道进行权重赋值,得到一个尺寸为1×1×c的特征向量fa2;26、对于路径b,分别采用全局最大池化、全局平均池化提取特征图像的特征信息,得到两个h×w×1的特征矩阵;接着,路径b将这两个特征矩阵逐元素求和,得到一个h×w×1的特征矩阵fb1;随后路径b通过多层感知机mlp2对特征矩阵fb1的不同区域进行权重赋值,得到一个h×w×1的特征矩阵fb2;27、接着,epm模块将fb2的尺寸重塑为1×1×hw,让特征向量fa2与特征矩阵fb2沿着通道维度进行叠加,输入到mlp3中进行权重赋值,输出尺寸为1×1×(hw+c)的特征向量f1;然后,将特征向量f1分割为特征向量f2(1×1×c)和特征向量f3(1×1×hw),将f2输入sigmoid激活函数,得到权重向量mc,即特征图像中每个通道的重要程度;将特征向量f3的尺寸重塑为h×w×1,接着将f3输入sigmoid激活函数,得到权重矩阵ms,即特征图像不同区域的重要程度;最后将特征图像与mc、ms相乘,得到特征增强的特征图像fm2。具体公式为:28、 (1)29、其中,δ表示sigmoid激活函数,⊙表示元素积操作,s表示沿通道维度分割特征向量,r表示重塑特征向量;30、式(1)中,特征向量f1的计算公式如式(2)所示:31、<mstyledisplaystyle="true"mathcolor="#000000"><mtablecolumnalign="center"><mtr><mtd><msub><mi>f</mi><mi>1</mi></msub><mi>=</mi><msub><mi>m</mi><mn>3</mn></msub><mrow><mo>(</mo><mrow><mo>[</mo><mrow><msub><mi>f</mi><mi>a2</mi></msub><mi>,</mi><mi>r</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>b2</mi></msub><mo>)</mo></mrow></mrow><mo>]</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>=</mi><msub><mi>m</mi><mn>3</mn></msub><mrow><mo>(</mo><mrow><mo>[</mo><mrow><msub><mi>m</mi><mi>1</mi></msub><mrow><mo>(</mo><mrow><mi>max</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>3</mi></msub><mo>)</mo></mrow><mi>⊕</mi><mi>avg</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>3</mi></msub><mo>)</mo></mrow></mrow><mo>)</mo></mrow><mi>,</mi><msub><mi>m</mi><mn>2</mn></msub><mrow><mo>(</mo><mrow><mi>max</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>3</mi></msub><mo>)</mo></mrow><mi>⊕</mi><mi>avg</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>3</mi></msub><mo>)</mo></mrow></mrow><mo>)</mo></mrow></mrow><mo>]</mo></mrow><mo>)</mo></mrow></mtd></mtr></mtable></mstyle> (2)32、其中,m表示mlp,[, ,]表示张量拼接操作,max表示全局最大池化,avg表示全局平均池化,⊕表示逐元素求和,r表示重塑特征向量。33、epm的结构示意图如图3所示。34、s24、cbh2模块接收到fm2之后,使用3×3的卷积核对fm2进行卷积操作,然后对卷积结果进行归一化处理,再通过h-swish激活函数进行激活,输出特征图像t4。接着将t4输入至epm模块中,输出特征图像fm3,最后将特征图像fm3输入至cbr2模块中。35、s25、cbr2模块接收到特征图像fm3,使用3×3的卷积核对fm3进行卷积操作,然后对卷积结果进行归一化处理,再通过relu激活函数进行激活,输出特征图像t5;随后将t5输入至最大池化层进行降维,输出特征图像t6。接着将t6输入至mc模块中,mc模块采用不同尺寸的卷积核对输入特征图像t6进行卷积操作,最终输出特征图像fm4,并将其传递至输出层。36、所述mc模块采用不同尺寸的卷积核对输入特征图像t6进行卷积操作,最终输出特征图像fm4,具体步骤包括:37、当将高度为h0、宽度为w0、通道数为c0的三维特征图像t6输入至mc模块后,同时被该模块的路径ⅰ、路径ⅱ、路径ⅲ接收;38、对于路径ⅰ,首先采用尺寸为1×1的卷积核对特征图像t6进行卷积操作,然后进行归一化处理,relu激活函数激活以及最大池化层降维操作,最后输出特征图像f4。39、对于路径ⅱ,首先采用尺寸为3×3的卷积核对特征图像t6进行卷积操作,接着进行归一化处理,relu激活函数激活,最后输出特征图像f5。40、对于路径ⅲ,首先采用尺寸为5×5的卷积核对特征图像t6进行卷积操作,接着执行归一化处理,relu激活函数激活,最后输出特征图像f6。41、将输出的特征图像f4、f5、f6沿通道维度进行叠加,得到特征图像f7,其中c4 =c1+c2+c3。最后将特征图像f7输入至卷积层conv(1×1)中进行卷积,输出特征图像。42、mc模块的结构示意图如图4所示。43、s26、输出层接收特征图像fm4,判断该特征图像fm4对应的安卓软件是否为安卓恶意软件,并将判断的结果输出。44、s27、不断重复上述步骤s21-s26,直到模型训练结束。训练结束后,得到训练好的基于epm-mcnet神经网络的安卓恶意软件检测模型。45、s3、运用基于epm-mcnet神经网络的安卓恶意软件检测模型检测安卓软件,判断该安卓软件是否为安卓恶意软件,基于epm-mcnet神经网络的安卓恶意软件检测模型结构图如图5所示。46、本发明还提供了一种基于epm-mcnet神经网络的安卓恶意软件检测系统,包括:47、数据预处理模块:构建一个安卓软件rgb图像数据集d,d由若干个安卓软件rgb图像fi构成。48、安卓恶意软件检测模型训练模块:构建基于epm-mcnet神经网络的安卓恶意软件检测模型。将经过预处理获得的安卓软件rgb图像数据集输入epm-mcnet神经网络进行训练和测试。最后得到训练好的基于epm-mcnet神经网络的安卓恶意软件检测模型。49、安卓软件检测模块:将待检测的安卓软件输入到已训练好的安卓恶意软件检测模型,得到安卓软件的分类结果。50、其中,数据预处理模块,包括:首先,读取多个安卓软件的apk安装包,并将apk安装包中的二进制文件可视化为rgb图像。最后构建和划分安卓软件rgb图像数据集d。51、安卓恶意软件检测模型训练模块,包括:构建基于epm-mcnet神经网络的安卓恶意软件检测模型。将经过预处理获得的安卓软件rgb图像数据集输入epm-mcnet神经网络中进行训练和测试。最后得到训练好的基于epm-mcnet神经网络的安卓恶意软件检测模型。52、安卓软件检测模块:将待检测的安卓软件输入到已训练好的安卓恶意软件检测模型中,判断安卓软件是否为安卓恶意软件。53、一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于epm-mcnet神经网络的安卓恶意软件检测模型的步骤。54、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现基于epm-mcnet神经网络的安卓恶意软件检测模型的步骤。55、本发明的有益效果为:56、(1)本发明提出了一种轻量级神经网络epm-mcnet,该神经网络在检测时间短、参数数量较少的情况下具有良好的特征提取能力。可以快速准确地对安卓软件进行分类。57、(2)本发明提出了一种多尺度卷积模块mc,该模块采用不同尺寸的卷积核对输入特征图像进行卷积操作,得到来自于不同尺寸卷积核卷积提取到的特征信息,接着mc模块再将这些特征信息进行融合并输出,增加了特征信息的多样性,进一步增强神经网络的特征提取能力,从而有助于提高神经网络检测安卓恶意软件的性能和效果。58、(3)本发明提出的epm模块能够综合利用特征图像的通道特征信息和空间特征信息,以增强特征图像不同区域或不同通道的重要程度,提高神经网络对安卓软件关键特征的提取效果。当前第1页12当前第1页12
技术特征:

1.一种基于epm-mcnet神经网络的安卓恶意软件检测方法,其特征在于,包括:

2.根据权利要求1所述的基于epm-mcnet神经网络的安卓恶意软件检测方法,其特征在于,步骤s23中,所述运用epm模块增强特征图像t3特定区域或特定通道的特征信息,然后输出特征图像fm2,具体步骤包括:

3.根据权利要求1所述的基于epm-mcnet神经网络的安卓恶意软件检测方法,其特征在于,所述步骤s25,mc模块采用不同尺寸的卷积核对输入特征图像t6进行卷积操作,最终输出特征图像fm4,具体内容包括:

4.一种基于epm-mcnet神经网络的安卓恶意软件检测系统,其特征在于,包括数据预处理模块、安卓恶意软件检测模型训练模块、安卓软件检测模块:所述数据预处理模块:构建一个安卓软件rgb图像数据集d,d由若干个安卓软件rgb图像fi构成;

5.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-3任一所述的基于epm-mcnet神经网络的安卓恶意软件检测方法的步骤。

6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-3任一所述的基于epm-mcnet神经网络的安卓恶意软件检测方法的步骤。


技术总结
本发明提出了一种基于EPM‑MCNET神经网络的安卓恶意软件检测方法及系统,主要解决现有轻量级神经网络直接应用于安卓恶意软件检测领域效果不理想的问题。具体实现步骤如下:(1)构建一个安卓软件RGB图像数据集D,D由若干个安卓软件RGB图像F<subgt;I</subgt;构成;(2)构建并训练基于EPM‑MCNET神经网络的安卓恶意软件检测模型;该模型包括将安卓软件可视化为RGB图像部分和EPM‑MCNET神经网络部分;(3)运用基于EPM‑MCNET神经网络的安卓恶意软件检测模型对安卓软件进行检测,判断该安卓软件是否为安卓恶意软件。

技术研发人员:苏庆,曾奎达,袁梓迪,谢国波,黄剑锋,林志毅,李小妹,刘添添
受保护的技术使用者:广东工业大学
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1832295.html

最新回复(0)