一种基于静态特征提取和选择的Android恶意应用检测方法

文档序号:9564809阅读:411来源:国知局
一种基于静态特征提取和选择的Android恶意应用检测方法
【技术领域】
[0001] 本发明涉及电子计算机网络技术,特别是一种基于静态特征提取和选择的 Android恶意应用检测方法。
【背景技术】
[0002] Android恶意应用检测系统是Android平台防御的重要手段,即通过对Android应 用的静态特征(比如,请求的权限、调用的API等)进行提取和选择,并使用机器学习中的 分类算法来检测Android应用市场中存在的Android恶意应用。
[0003] 随着Android设备和应用的日益流行,Android设备上存储了越来越多的用户隐 私数据,比如账号信息、手机号码、短消息等。Android恶意应用瞄准该平台并制造了大量的 Android恶意应用严重的危害了 Android用户的安全。Android恶意应用检测的方法大致 分为两个类别:静态分析和动态分析。对于静态分析,和PC端恶意应用检测相似,更多了利 用了代码分析和经验规则等人工手段来进行识别,效率低、扩展性差。对于动态分析技术, 因为能够全方位的监控应用行为,它的准确度较高,但是会占用一定的系统资源。
[0004] 由于上述问题的存在,近年陆续在静态分析类别出现了一些通过数据挖掘技术实 现恶意应用检测的研究,区别于传统的静态分析,基于数据挖掘的技术最大的特点就是具 有预测能力、扩展性强,能够避免人工分析效率低等问题。
[0005] Moonsamy [1]提出的CPPM是一种发现正常应用和恶意应用权限模式差别的算法, 它考虑了 required权限和used权限(通过Andrubis提取)两种情况,着重点是发现一 组能够区分正常应用和恶意应用的独有和共有的权限模式。在实验中发现正常应用和恶 意应用都存在over-privileged现象。Zhu[2]也提出了一个基于权限的异常应用检测框 架,它通过权限列表的可靠性来识别存在潜在威胁的应用,并联合应用的描述文本和权限 列表来进行可靠性的判定,运用Multinomial Event Model(NaYveBayes)算法建立两者 的联系。在实验中对5685个免费应用评估了权限预测模型,其真阳性率和假阳性率分别为 90%、30%。Arp[3]提出的Drebin是能够直接在手机上检测恶意应用的工具,它通过全面 的静态分析,尽可能的搜集应用特征(权限,API,IP),并组成一个联合向量空间,该向量能 够作为自动识别恶意应用的标志。通过机器学习技术SVM能够自动发掘指示恶意应用的特 征模式,从而使用该模式生成有意义的解释,说明应用被判定为恶意的理由。在123453个 正常应用和5560个恶意样例试验中,识别出了 94%的恶意应用,仅有1 %的误报率,该方法 在智能手机和电脑端平均用时为IOs和Is。该工具的一个缺点是对混淆代码和动态加载 的恶意应用无效。Wu[4]提出的DroidMat使用基于特征机制的静态方法检测Android恶 意应用,它会提取权限、Intent消息和组件(Activity, Service, Receiver,作为跟踪API 调用的入口),使用K-means聚类算法提高恶意应用建模能力,使用SVD(Singular Value Decomposition)决定聚类的个数,最后通过KNN算法将应用分为两类。实验证明其召回率 和耗时都比Androguard更好,准确率和召回率分别为97. 87%、87. 39%。Aafer [5]提出的 DroidAP頂iner通过提供健壮,轻量级的分类器减少恶意应用的安装。通过在API层次进 行全面的分析以提取相关特征,在Androguard基础上构建DroidAPIMiner用于提取API特 征,使用RapidMiner构建分类器。与上述研究不同,Barrera[6]和Rasthofer[7]并没有直 接关注恶意应用检测,而是将数据挖掘用于对应用本身的安全性分析,他们的实验也不是 针对应用进行分类,但是其成果具有很高的参考价值。Barrera利用SOM算法进行了基于权 限的安全模型经验性分析。在文章中,他们对Android系统的进行了详细的安全性分析,给 出一些提升Android权限模型性能的关键点,并且在增加表现能力的同时不会带来权限数 量或者复杂度的增加,比如提出目前Android权限命名空间存在问题,有些权限应该合并 而有些应该细分。他们关注Android权限模型在实际中如何被使用以及它的缺点,SOM算法 可以将高维数据进行二维可视化,并且可以识别权限间的联系,通过对1100个应用进行分 析,发现只有少数权限被高频使用,大部分权限仅被极少数应用使用这一现象。Rasthofer 提出的Susi是一个能从任何Android API代码中通过机器学习方法SVM识别sources和 sinks的工具,在提供更细粒度参考信息的情况下,Susi还可以把sources和sinks分类。 在AndroicM. 2中运行Susi,准确率高达92 %,找出了大量被其他信息流跟踪工具所遗漏的 sources和sinks,并且在针对11000个恶意样本实验中发现这些sources和sinks中的大 部分都被实际使用。另外Susi在新版本的Android API (Google Glass和the Chromecast API)中也能很好的进行分类。从他们的实验结果可以看出,仅依靠权限对应用是否恶意进 行分类的准确率不高,而且相关文献也证实部分被标记为source的API并没有得到权限保 护,这也就是说不但基于权限的安全机制并不可靠,而且基于权限的恶意应用检测技术的 准确性也得不到保障,因此想要利用数据挖掘进行恶意应用检测,那么应用的特征如何选 取将是影响结果准确性的重要因素,而且也缺少在用户端具有实用性的工具。

【发明内容】

[0006] 本发明所要解决的技术问题是,针对现有技术不足,提供一种基于静态特征提取 和选择的Android恶意应用检测方法。
[0007] 为解决上述技术问题,本发明所采用的技术方案是:一种基于静态特征提取和选 择的Android恶意应用检测方法,包括以下步骤:
[0008] 1)通过AppExtractor自动化工具从所有的应用中提取它们各自对应的特征集合 F,每个特征集合F包括一个label类别标签元素,其中label的值为0或1,分别对应正常 应用和恶意应用;
[0009] 2)对特征集合F进行处理,得到仅包含少部分特征的输出F',F'保留F中的 label类别标签元素;
[0010] 3)以P中的特征为基础,对所有的应用构建特征向量,将所有的特征向量作为 机器学习算法的输入,利用机器学习算法对所有的应用分类,此时所有的应用会被机器学 习算法分配新的类别标签Iaber ;如果一个应用的label和Iabl^值相等,这表明应用 被正确分类,否则被错误分类;label'的取值与label的取值相同;
[0011] 4)对于未知类别的应用,重复步骤1)~步骤3),如果未知类别的应用对应的 Iaber为0,则表示该应用为正常应用;如果Iaber为1,则表示该应用为恶意应用。
[0012] 所述步骤2)的具体实现过程为:
[0013] 1)检查特征集合F中的某一个特征&是否满足如下两个条件:
[0014] Condition Lrc^ a c? r c = N c/(Nm+Nb), c e {m, b}
[0015] Condition 2. Nc/Tc^ β c? ;
[0016]
[0017] 其中,c的取值为m和b,m和b分别表示恶意应用和正常应用两个类别;r。是一个 比率值,其计算公式如Condition 1中所示,Nm和N b分别表示包含特征f ;的恶意应用数量 和正常应用数量;T。可以取值为T "或T b,分别表示恶意应用和正常应用的总数;α。可以取 值为〇"或a b,β。可以取值为β j β b,这四个均为阈值,且
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1