1.一种基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法,其特征在于,包括:S1、读取安卓软件数据集中每一个安卓软件的安卓应用安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;接着提取二进制文件中classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;然后将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;最后构建和划分安卓软件RGB图像数据集;
S1具体步骤如下:
S11、将APK安装包的后缀名由.apk修改为.zip,读取APK安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;
S12、解析二进制文件中的classes.dex二进制文件,获取数据部分的大小和偏移量;然后提取出classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;
S13、将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;
S14、将处理获得的所有RGB图像构成一个安卓软件RGB图像数据集,接着将所述安卓软件RGB图像数据集随机划分为训练集和测试集;
S2、构建并训练基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;所述PSEAM‑MobileNet神经网络包括输入层、中间层和输出层;其中,中间层共包含了8个PSEAM注意力模块和9个卷积模块;
所述PSEAM注意力模块由平行连接的通道注意力子模块随机有效通道注意力和空间注意力子模块随机空间注意力构成;
所述PSEAM注意力模块用于接收上一个卷积模块输出的特征图 ,然后输出特征增强的特征图 ;特征图 输入至PSEAM模块后,同时被通道注意力子模块SECA和空间注意力子模块SSA接收;SECA和SSA分别对 计算得到权重向量 和权重矩阵 ;最后将输入特征图 与权重向量 和权重矩阵 进行元素积操作,得到特征增强的特征图 ;计算式如式(1)所示: (1)
其中 表示元素积操作;
所述通道注意力子模块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代表全局随机池化;
所述的空间注意力子模块SSA对 计算得到权重矩阵 ,具体内容包括:
特征图 输入SSA时,SSA分别采用全局平均池化、全局最大池化和全局随机池化对特征图 的通道维度进行压缩,得到三个H×W×1的特征矩阵;接着SSA将其拼接在一起得到一个H×W×3的特征矩阵 ;然后SSA对 执行卷积核大小为7×7的卷积操作,得到一个H×W×1的特征矩阵 ;最后SSA将特征矩阵 输入Sigmoid激活函数,得到权重矩阵 ,即特征图 不同区域的重要程度;计算式如式(3)所示: (3)
其中,表示Sigmoid激活函数, 代表卷积操作,卷积核大小为7×7,[, ,]表示张量拼接操作,Max表示全局最大池化,Avg表示全局平均池化,Sto表示全局随机池化;
所述PSEAM‑MobileNet神经网络由输入层、中间层和输出层构成;其中,输入层用于接收安卓软件RGB图像,并将安卓软件RGB图像输入到PSEAM‑MobileNet神经网络的中间层;中间层对所述安卓软件RGB图像进行特征提取和局部感知;输出层用于输出最终预测结果,判断安卓软件是否为安卓恶意软件;所述中间层共包含了8个PSEAM模块和9个卷积模块,其中第一个卷积模块Conv1和最后一个卷积模块Conv9是常规卷积模块,包括卷积操作Conv、BN操作、H‑Swish激活函数;而Conv2‑Conv8卷积模块是深度可分离卷积模块,包括卷积操作Conv、BN操作、深度卷积DepthConv、H‑Swish激活函数;输出层包括全局平均池化层和全连接层以及Sigmoid激活函数;
使用安卓软件RGB图像训练集作为PSEAM‑MobileNet神经网络的输入进行训练;训练完成后,使用安卓软件RGB图像测试集进行测试;测试完成后,得到训练好的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;
S3、运用基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型检测安卓软件,判断该安卓软件是否为安卓恶意软件。
2.一种基于PSEAM‑MobileNet神经网络的安卓恶意软件检测系统,其特征在于,包括数据预处理模块、安卓恶意软件检测模型训练模块、安卓软件检测模块:所述数据预处理模块:读取安卓软件数据集中每一个安卓软件的APK安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;接着提取classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;构建和划分安卓软件RGB图像数据集;
具体步骤如下:
将APK安装包的后缀名由.apk修改为.zip,读取APK安装包,获取classes.dex、AndroidManifest.xml、resources.arsc二进制文件;
解析二进制文件中的classes.dex二进制文件,获取数据部分的大小和偏移量;然后提取出classes.dex二进制文件的数据部分,另存为data_section.dex二进制文件;
将data_section.dex、AndroidManifest.xml、resources.arsc二进制文件可视化为RGB图像;
将处理获得的所有RGB图像构成一个安卓软件RGB图像数据集,接着将所述安卓软件RGB图像数据集随机划分为训练集和测试集;
所述安卓恶意软件检测模型训练模块:构建并训练基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;所述PSEAM‑MobileNet神经网络包括输入层、中间层和输出层;其中,中间层共包含了8个PSEAM注意力模块和9个卷积模块;
所述PSEAM注意力模块由平行连接的通道注意力子模块随机有效通道注意力和空间注意力子模块随机空间注意力构成;
所述PSEAM注意力模块用于接收上一个卷积模块输出的特征图 ,然后输出特征增强的特征图 ;特征图 输入至PSEAM模块后,同时被通道注意力子模块SECA和空间注意力子模块SSA接收;SECA和SSA分别对 计算得到权重向量 和权重矩阵 ;最后将输入特征图 与权重向量 和权重矩阵 进行元素积操作,得到特征增强的特征图 ;计算式如式(1)所示: (1)
其中 表示元素积操作;
所述通道注意力子模块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代表全局随机池化;
所述的空间注意力子模块SSA对 计算得到权重矩阵 ,具体内容包括:
特征图 输入SSA时,SSA分别采用全局平均池化、全局最大池化和全局随机池化对特征图 的通道维度进行压缩,得到三个H×W×1的特征矩阵;接着SSA将其拼接在一起得到一个H×W×3的特征矩阵 ;然后SSA对 执行卷积核大小为7×7的卷积操作,得到一个H×W×1的特征矩阵 ;最后SSA将特征矩阵 输入Sigmoid激活函数,得到权重矩阵 ,即特征图 不同区域的重要程度;计算式如式(3)所示: (3)
其中,表示Sigmoid激活函数, 代表卷积操作,卷积核大小为7×7,[, ,]表示张量拼接操作,Max表示全局最大池化,Avg表示全局平均池化,Sto表示全局随机池化;
所述PSEAM‑MobileNet神经网络由输入层、中间层和输出层构成;其中,输入层用于接收安卓软件RGB图像,并将安卓软件RGB图像输入到PSEAM‑MobileNet神经网络的中间层;中间层对所述安卓软件RGB图像进行特征提取和局部感知;输出层用于输出最终预测结果,判断安卓软件是否为安卓恶意软件;所述中间层共包含了8个PSEAM模块和9个卷积模块,其中第一个卷积模块Conv1和最后一个卷积模块Conv9是常规卷积模块,包括卷积操作Conv、BN操作、H‑Swish激活函数;而Conv2‑Conv8卷积模块是深度可分离卷积模块,包括卷积操作Conv、BN操作、深度卷积DepthConv、H‑Swish激活函数;输出层包括全局平均池化层和全连接层以及Sigmoid激活函数;
使用安卓软件RGB图像训练集作为PSEAM‑MobileNet神经网络的输入进行训练;训练完成后,使用安卓软件RGB图像测试集进行测试;测试完成后,得到训练好的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型;
所述安卓软件检测模块:运用基于PSEAM‑MobileNet神经网络的安卓恶意软件检测模型检测安卓软件,判断该安卓软件是否为安卓恶意软件。
3.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1任一所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1任一所述的基于PSEAM‑MobileNet神经网络的安卓恶意软件检测方法的步骤。