1.一种android恶意软件的静态检测方法,其特征在于,包括以下步骤:
步骤1、对获取的Android应用程序进行逆向得到数据集,再对数据集进行样本分析,提取数据集中明显存在风险的数据;
步骤2、提取AndroidManifest文件中的exported属性值、debuggable属性值和allowBackup属性值,采用基于词频算法对属性值进行计算;
步骤3、提取AndroidManifest文件中的权限属性和smali文件中的API属性,采用相关性计算方法,首先去除与类别不相关的属性,然后采用余弦相似度和杰卡德系数对各类别属性进行分别处理并去取出共同属性,最后融合各类别特征,得到融合后的特征集;
步骤4、最后对处理后的特征集进行归一化处理,构建支持向量机分类器,将测试样本集放入分类器中,检测是否是Android恶意程序,再通过对测试样本集在智能代理模型中得到的结果和分类器模型得到的最终结果进行比较,将分类器得到的结果反馈给智能代理模型,动态的改进智能代理模型。
2.根据权利要求1所述的一种android恶意软件的静态检测方法,其特征在于,所述步骤1对获取的Android应用程序进行逆向得到数据集,再对数据集进行样本分析,具体包括:对下载的Android良性应用程序和恶意应用程序使用apktool工具进行逆向,提取其中smali文件和AndroidManifest文件,对得到的属性集按类别储存。
3.根据权利要求2所述的一种android恶意软件的静态检测方法,其特征在于,在步骤2中采用基于词频算法对该属性值进行计算具体包括:首先对AndroidManifest文件中的组件activity、service、provider、receiver以及application标签中exported属性值、debuggable属性值和allowBackup属性值为true的进行统计,若组件中没有exported属性,却存在action属性,同样认定该标签为true,并将该规则加入到智能代理模型中,该模型计算处理规则如下:其中Ni,j为一个Android应用程序Aj使用特定风险属性的次数,Mj是Aj中组件的总个数,TFi,j是该词出现的频率;
得到词频集γ={TF1,j,TF2,j…TFi,j…TFn,j},然后进行拉普拉斯平滑处理,处理完后将γ通过最小值和最大值划分为3等份,则每个区间的长度为 其中X,Y为γ中的最小值和最大值,则区间的边界为X+W,X+2W,进而将样本集从小到大分为三类集合XLR、XHR和XMR。
4.根据权利要求3所述的一种android恶意软件的静态检测方法,其特征在于,所述步骤3中相关性计算方法具体包括:通过点二列相关系数去除Android程序中不相关的属性,首先计算属性与类别的相关系数 其中S是数据集的标准偏差, 是良性样本集中所有数据点的Xp的平均值, 是恶意样本集中所有数据点Xq的平均值,Pp是总样本集中Xp出现的概率,Pq是总样本集中Xq出现的概率,将 带入相关系数计算,得到rpb,根据相关系数的值判别属性与相关系数的大小,去除不相关属性。
5.根据权利要求4所述的一种android恶意软件的静态检测方法,其特征在于,步骤4通过序列前项选择算法对融合后的特征集进行处理并通过归一化得到最优特征集,构建支持向量机分类器;
其中序列前项选择是通过构建一个空的特征集R,每次从特征子集中选择一个特征M加入到R中,使得评价函数的效果最优。
6.一种介质,该存储介质内部存储计算机程序,其特征在于,所述计算机程序被处理器读取时,执行上述权利要求1~5任一项的方法。
7.一种android恶意软件的静态检测系统,其特征在于,包括:
反编译模块:用于下载获取Android良性应用程序和恶意应用程序,并创建成样本库放入到智能代理模型中,通过逆向工程技术对获取的良性应用和恶意应用分别进行反编译,得到smali文件和AndroidManifest文件;
词频计算模块:提取AndroidManifest文件中的exported属性值、debuggable属性值和allowBackup属性值,采用基于词频算法对该属性值进行计算;
特征融合模块:提取AndroidManifest文件中的权限属性和smali文件中的API属性,采用相关性计算方法,首先去除与类别不相关的属性,然后对采用多种特征选择算法对各类别属性进行分别处理并去取出共同属性,最后融合各类别特征,得到融合后的特征集;
检测模块:用于对处理后的特征集进行归一化处理,构建支持向量机分类器,将测试样本集放入分类器中,检测是否是Android恶意程序,再通过对测试样本集在智能代理模型中得到的结果和分类器模型得到的最终结果进行比较,将分类器得到的结果反馈给智能代理模型,动态的改进智能代理模型。