1.一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,包括:S1:从移动终端获取带有正常和恶意软件标签的Android软件APK数据样本;
S2:采用混合样本生成方法生成恶意软件样本,根据获取的带有正常和恶意软件标签的Android软件APK数据样本与生成的恶意软件样本构建一个恶意软件样本与正常软件样本数量均衡的样本数据集;
S3:对样本数据集中的每个软件样本进行解析,得到每个软件样本的软件特征;
S4:计算每个软件特征的信息熵增益值,根据信息熵增益值的大小判断每个软件特征对检测出恶意软件的贡献度,提取贡献度最大的前k项特征;
S5:利用主成分分析法对提取的前k项特征进行深度降维,得到关键特征集合,并将关键特征集合划分为训练集和测试集;
S6:建立AM‑Stacking恶意软件检测模型,所述AM‑Stacking恶意软件检测模型包括:第一层的基学习器KNN、LR、RF和第二层的元学习器GBDT;
S7:利用K折交叉验证方法对训练集进行划分,得到多个训练集,根据划分的多个训练集分别训练AM‑Stacking恶意软件检测模型的第一层基学习器KNN、LR、RF,得到不同训练集下三个基学习器的训练参数和产生的新训练子集;
S8:利用基学习器产生的新的训练子集训练AM‑Stacking恶意软件检测模型的第二层元学习器GBDT,得到元学习器GBDT的训练参数;
S9:根据基学习器在不同的训练集下的训练参数对测试数据集分别进行检测,并利用注意力机制,对检测出的结果进行权重划分和整合,得到一个新测试数据集;
S10:根据得到的元学习器GBDT的训练参数对元学习器GBDT进行调参,将新测试数据集输入调参后的元学习器GBDT进行进一步检测,检测出恶意软件。
2.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,采用混合样本生成方法生成恶意软件样本,表示为:其中,Mnew表示新的恶意软件样本,m表示新的恶意软件样本的数量,G表示生成对抗网络,z表示边界合成少数类过采样技术生成的噪声向量, Mi表示的边界样本, 表示Mi的一个K近邻样本,δ表示0到1的随机数。
3.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,计算每个软件特征的信息熵增益值,表示为:* *
IG(Fi)=H(S)‑H(S|Fi)
*
其中,IG(Fi)表示第i个特征Fi的信息增益值,H(S )表示整个预测系统的信息熵,*k表示该系统分类的个数, 表示变量S 可能的取值,
*
表示变量 的概率,H(S |Fi)表示每个特征单独作为分类特征时的条件信息熵,表示第i个特征Fi可能的所有取值,P(Value(Fi))表示第i个特征取为某特定值下的概率。
4.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,利用主成分分析法对提取的前k项特征进行深度降维,表示为:对提取的前k项特征转化为向量形式的特征,对每个特征向量进行中心化,并根据中心化特征向量构建协方差矩阵,将协方差矩阵进行特征值分解,按照特征值从大到小的顺序进行排序,取前k个特征值对应的特征向量,将取出的前k个特征向量映射为k维样本特征矩阵,将样本特征矩阵中的样本特征组成关键特征集合。
5.根据权利要求4所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,对每个特征向量进行中心化,表示为:其中,Xi表示中心化后的特征向量, 表示通过对比每个软件特征的信息熵增益值筛选出的第i个特征向量,μ表示中心化特征向量的平均值, n表示特征向量的个数, 表示第i个特征能取到的所有特征值组成的向量。
6.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,利用K折交叉验证方法对训练集进行划分,表示为:其中,Dtrain(i)表示将训练集Dtrain中第i个数据子集Di舍去后得到的训练子集,Dvalid(i)为第i个训练子集Di所对应的验证集。
7.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,不同训练集下三个基学习器的训练参数和产生的新训练子集,表示为:Pmi=LMm(Dtrain(i)),(i=1,2...,5),(m=1,2,3)其中,Pmi表示第m个基学习器通过第i个训练子集训练之后得到的训练参数,LMm表示第m个基学习器, 表示第m个基学习器根据训练参数Pmi验证第i个验证集所得到的新训练子集。
8.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,训练第二层元学习器GBDT,得到元学习器GBDT的训练参数,表示为:其中,P′表示元学习器通过新训练子集 训练后得到的训练参数,LM表示元学习器。
9.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,所述S9,具体包括:其中,Testi表示每个基学习器通过精度加权求和得到的新测试集, 表示每个基学习器在不同的训练参数下对同一个测试集Dtest预测的结果,βi表示每个基学习器的注意力机制权重分数,q表示查询向量, 表示每个基学习器在不同训练参数下检测测试集Dtest得到的数据集合总称,attSum()表示注意力机制中的精度加权求和函数。
10.根据权利要求1所述的一种基于堆叠集成技术的Android恶意软件检测方法,其特征在于,将新测试数据集输入调参后的元学习器GBDT进行进一步检测,检测出恶意软件,表示为:R=P′(Test)
其中,R表示最终的检测结果,Test表示由第一层基学习器通过精度加权求和得到的新测试集合,P′为元学习器的训练参数。