1.一种基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,包括:
第一步,读取安卓软件数据集中每一个安卓软件的安卓应用安装包(Android Application Package,APK),获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;接着提取classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;然后将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;最后构建和划分安卓软件RGB图像数据集;
第二步,构建并训练基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;
第三步,运用安卓恶意软件检测模型检测安卓软件,判断该安卓软件是否为安卓恶意软件。
2.根据权利要求1所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的第一步中,包括:(1)将APK安装包的后缀名由.apk修改为.zip,读取APK安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;
(2)解析classes.dex二进制文件,获取数据部分的大小和偏移量;然后提取出classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;
(3)将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;
(4)将处理获得的所有RGB图像构成一个安卓软件RGB图像数据集,接着将所述安卓软件RGB图像数据集随机划分为训练集和测试集。
3.根据权利要求2所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像,包括:分别对于上述文件,每读取文件的8bit作为一个字节码,将字节码中的二进制序列转换为一个无符号的十进制整数,该数值范围为0‑255,表示图像中一个像素的灰阶值,将灰阶值组成的一维数组转换成大小为224×224的二维矩阵,然后将data_section.dex、AndroidManifest.xml、resources.arsc文件分别填充到R、G、B三个颜色通道上,最终生成高度为224、宽度为224、通道数为3的RGB图像。
4.根据权利要求1所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的第二步中,包括:(1)所述PSEAM‑MobileNet神经网络由输入层、中间层和输出层构成;其中,中间层包含了9个卷积模块,并且在每两个相邻的卷积模块之间均添加了并行随机有效注意力模块(Parallel Stochastic and Efficient Attention Module,PSEAM);所述PSEAM模块由平行连接的通道注意力子模块随机有效通道注意力(Stochastic and Efficient Channel Attention,SECA)和空间注意力子模块随机空间注意力(Stochastic Spatial Attention,SSA)构成;PSEAM模块的作用是输出特征增强的特征图,以提高神经网络对特征图中重要特征的关注;PSEAM模块用于接收上一个卷积模块输出的特征图 ,然后输出特征增强的特征图 ;特征图 输入至PSEAM模块后,同时被通道注意力子模块SECA和空间注意力子模块SSA接收;SECA和SSA分别对 计算得到权重向量 和权重矩阵 ;最后将原始输入特征图 与权重向量 和权重矩阵 进行乘法操作,得到特征增强的特征图;计算式如式(1)所示: (1)
其中 表示元素积(Element‑Wise Product)操作;
(2)所述PSEAM‑MobileNet神经网络由输入层、中间层和输出层构成;其中,输入层用于接收安卓软件RGB图像,并将安卓软件RGB图像输入到PSEAM‑MobileNet神经网络的中间层;
中间层对所述安卓软件RGB图像进行特征提取和局部感知;输出层用于输出最终预测结果,判断安卓软件是否为安卓恶意软件;所述中间层共包含了8个PSEAM模块和9个卷积模块(Conv1‑Conv9),其中第一个卷积模块Conv1和最后一个卷积模块Conv9是常规卷积模块,包括卷积操作Conv、BN操作、H‑Swish激活函数;而Conv2‑Conv8卷积模块是深度可分离卷积模块,包括卷积操作Conv、BN操作、深度卷积DepthConv、H‑Swish激活函数;输出层包括全局平均池化层和全连接层以及Sigmoid激活函数;
(3)使用安卓软件RGB图像训练集作为PSEAM‑MobileNet神经网络的输入进行训练;训练完成后,使用安卓软件RGB图像测试集进行测试;测试完成后,得到训练好的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型。
5.根据权利要求4所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的通道注意力子模块SECA对 计算得到权重向量 ,具体内容包括:高度为H、宽度为W、通道数为C的三维特征图 进入到SECA时,SECA分别采
用全局平均池化、全局最大池化和全局随机池化提取特征图 的特征信息,得到三个1×1×C的特征向量;接着SECA将三个特征向量进行逐元素求和,得到一个1×1×C的特征向量 ;随后SECA使用自适应的一维卷积对 进行计算,得到一个1×1×C的特征向量 ;最后SECA将特征向量 输入Sigmoid激活函数,得到权重向量 ,即特征图 中每个通道的重要程度;计算式如式(2)所示: (2)
其中,表示Sigmoid激活函数,Conv1D代表一维卷积,k代表卷积核大小,代表逐元素求和,Max代表全局最大池化,Avg代表全局平均池化,Sto代表全局随机池化;
式(2)中,卷积核大小k的计算公式如式(3)所示:
(3)
其中, 表示k取奇数,channel指输入特征图的维度,b为偏移参数,gamma为缩放因子。
6.根据权利要求4所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的空间注意力子模块SSA对 计算得到权重矩阵 ,具体内容包括:特征图 输入SSA时,SSA分别采用全局平均池化、全局最大池化和全局随机池化对特征图 的通道维度进行压缩,得到三个H×W×1的特征矩阵;接着SSA将其拼接在一起得到一个H×W×3的特征矩阵 ;然后SSA对 执行卷积核大小为7×7的卷积操作,得到一个H×W×1的特征矩阵 ;最后SSA将特征矩阵 输入Sigmoid激活函数,得到权重矩阵 ,即特征图 不同区域的重要程度;计算式如式(4)所示: (4)
其中,表示Sigmoid激活函数, 代表卷积操作,卷积核大小为7×7,[, ,]表示张量拼接操作,Max表示全局最大池化,Avg表示全局平均池化,Sto表示全局随机池化。
7.根据权利要求1所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,所述的第三步包括:将待检测的安卓软件输入到已训练好的安卓恶意软件检测模型,得到安卓软件分类结果。
8.一种基于PSEAM‑MobileNet神经网络的安卓恶意软件检测系统,其特征在于,包括数据预处理模块、安卓恶意软件检测模型训练模块、安卓软件检测模块:所述数据预处理模块:读取安卓软件数据集中每一个安卓软件的APK安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;提取classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;构建和划分安卓软件RGB图像数据集;
所述安卓恶意软件检测模型训练模块:构建基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;将经过预处理获得的安卓软件RGB图像数据集输入PSEAM‑MobileNet神经网络中进行训练和测试;最后得到训练好的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;
所述安卓软件检测模块:将待检测的安卓软件输入到已训练好的安卓恶意软件检测模型中,判断该安卓软件是否为安卓恶意软件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1‑7任一所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑7任一所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法的步骤。