1.一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,包括:获取待待检测软件的APK文件,对APK文件进行反编译;将反编译文件输入到训练好的安卓恶意软件检测模型中,得到检测结果;
对安卓恶意软件检测模型进行训练包括:
S1:获取恶意样本和良性样本;
S2:采用混淆机制对恶意样本进行混淆,得到混淆样本集;混淆样本集包括混淆恶意样本和普通恶意样本;
S3:将混淆恶意样本和普通恶意样本分别输入到机器学习模型中进行预测训练,得到两个预测结果;根据两个预测结果构建混淆弹性矩阵;
S4:根据混淆弹性矩阵构建集成策略;
S5:根据集成策略将良性样本、恶意样本、混淆良性样本以及混淆恶意样本进行混合,得到混合数据集;将混合数据集划分为训练集和测试集;将训练集中数据输入到分类器中进行训练,得到训练好的分类器;测试集中的数据输入到分类器中进行测试,得到软件恶意性预测结果。
2.根据权利要求1所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,采用混淆技术对恶意样本进行混淆的过程包括:对样本进行标识符混淆,即将源代码中所有标识符混淆为随机长度较短的字符序列;对样本进行字符串混淆,即将源代码中所有字符串变量混淆为加密字符串;对样本进行控制流混淆,即在保证程序能正确运行的同时将源代码中各个方法之间的调用关系打乱。
3.根据权利要求1所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,用混淆恶意样本和普通恶意样本对机器学习模型进行训练的过程包括:机器学习模型包括第一机器学习模型和第二机器学习模型;
对普通恶意样本和混淆恶意样本进行数据预处理,包括提取样本数据的权限、API以及组件特征;
对组件特征进行特征选择的过程包括选取在恶意样本中出现次数最多的特征作为分析特征;
将普通恶意样本划分为普通恶意样本训练集和普通恶意样本测试集,将混淆恶意样本划分为混淆恶意样本训练集和混淆恶意样本测试集;
根据普通恶意样本训练集中的分析特征构建特征向量;将所有的特征向量输入到第一机器学习模型中进行训练,当训练过程中的偏差和方差在设置的条件内,则模型训练完成;
若偏差不满足设置的条件,则提高模型复杂度,若方差不满足设置的条件,则增加样本数量;
根据混淆恶意样本训练集中的分析特征构建特征向量,将构建的特征向量输入到第二机器学习模型中进行训练,当训练过程中的偏差和方差在设置的条件内,则模型训练完成;
若偏差不满足设置的条件,则提高模型复杂度,若方差不满足设置的条件,则增加样本数量。
4.根据权利要求3所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,机器学习模型进行训练过程中设置的条件为判断偏差和方差均为2%以内。
5.根据权利要求1所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,构建混淆弹性矩阵的过程包括:获取混淆恶意样本和普通恶意样本,将普通恶意样本输入到训练好的第一机器学习模型中,得到普通恶意样本的预测结果,将混淆恶意样本输入到训练好的第二机器学习模型中,得到混淆恶意样本的预测结果;根据两个预测结果计算的机器学习模型的混淆弹性;获得集成学习中所使用的所有分类器的混淆弹性,并构建成矩阵;其中矩阵中的元素形式设置为Arr[C::O]=w0,其中C为分类器名称,O为混淆技术名称,w0是混淆弹性。
6.根据权利要求1所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,构建集成策略的过程包括:根据混淆技术特征预测其使用的混淆技术,依据混淆技术和所使用的分类器在混淆弹性矩阵中进行索引获得混淆弹性;根据混淆弹性获取权值分布,根据权值分布采用带权投票方法对数据进行集成。
7.根据权利要求1所述的一种基于静态特征对抗混淆的安卓恶意软件检测方法,其特征在于,分类器中进行训练的过程包括:步骤1:构建混合数据集;将良性样本、恶意样本、混淆良性样本以及混淆恶意样本进行混合,得到混合数据集;
步骤2:采用k折交叉验证方法将混合数据集划分为训练集和测试集;
步骤3:对混合数据集进行数据预处理,提取各个样本中的权限、API以及组件信息;
步骤4:对数据预处理过程中的特征进行特征选择,筛选出恶意性的特征,其中恶意样本中出现次数最多的特征为恶意性特征;
步骤5:对特征选择所选特征进行抽象化处理,将训练集中所选特征抽象为特征向量用于机器学习训练;
步骤6:对集成学习中各个分类器进行训练,其中偏差和方差保持在1%以内,即表示训练完成;若偏差高于1%则提高模型复杂度,若方差高于1%则增加样本数量。