一种Android恶意应用检测方法与流程

文档序号:24047394发布日期:2021-02-23 19:19阅读:112来源:国知局
一种android恶意应用检测方法
技术领域
[0001]
本发明涉及安全技术领域,尤其是涉及一种android恶意应用检测方法。


背景技术:

[0002]
android恶意应用的出现使得用户数据受到严重威胁,造成用户经济上的损失或者隐私信息的泄露。随着其攻击技术的日趋成熟,新兴的恶意软件难以检测,甚至泄露国家秘密,造成不堪设想的后果。因此,android恶意应用的检测受到了学术界和工业界的广泛关注。
[0003]
现有的检测方法主要有静态分析和动态分析两种,动态分析对实时性和运行环境要求较高、耗时较长,行为难触发,而静态分析具有能耗低、风险小、速度快,对实时性要求低的优点,使其成为了目前使用最为广泛的检测方法。静态检测方法的具体实现是:首先,提取android应用程序的静态特征(例如:权限请求或者api调用),结合静态特征生成应用程序的特征向量;若应用程序被检测到上述特征就会在应用程序的特征向量中被标记为1,否则为0。然后,使用某种机器学习算法对收集到的训练集进行训练,生成检测模型;最后,利用生成的检测模型对待测android应用程序进行检测。目前,实现这种检测方法的文献有:1.魏理豪,艾解清,邹洪,等. android恶意软件的多特征协作决策检测方法[j]. 计算机工程与应用, 2016, 52(20):5-13.2.邵舒迪,虞慧群.基于权限和api特征结合的android恶意软件检测方法[c]// 全国软件与应用学术会议. 2015.3.鲍美英.基于改进决策树分类的android恶意软件检测[j]. 软件, 2017, 38(2):33-36.当前检测方法存在的主要不足是:由于提取的特征是粗粒度的,用于训练的特征缺乏准确性和有效性,致使检测结果没有达到理想的准确率。主要有两点原因:应用程序的开发者为了方便日后的开发和升级会在初始阶段申请过度的权限,这就对基于权限的检测方法造成了一定程度的误判;此外,超过90%的静态分析方法都没有考虑api的反射调用情况,这也是现有恶意软件检测工具性能差的一个主要原因。


技术实现要素:

[0004]
本发明针对现有技术的不足,提出了一种android恶意应用检测方法,该方法对特征提取环节进行了改进,主要是使经常出现在android应用中的两种特征(即权限和api)的获取更加准确和完备。降低无效特征带来的额外系统开销以及对检测结果带来的干扰。提升检测方法准确率的同时,大幅减少结果的误报率。
[0005]
所述一种android恶意应用检测方法包括如下步骤:步骤一:基于语义的过滤算法构建权限-api映射库;步骤二:构建直接调用api集合及构建反射调用api集合;
步骤三:构建权限细粒度特征集合;步骤四:构建特征集合;步骤五:将步骤四收集到的特征作为输入,利用常规机器学习方法建立新模型;步骤六:利用训练后的新模型检测android应用。
[0006]
优选的,所述构建直接调用api集合的步骤为:逐个扫描android应用的.smali文件并逐行分析文件内容,且与步骤一构建的权限-api映射库进行匹配,如果程序包含 invoke-virtual 以及对应的敏感函数, 则表明该应用中确实调用了相关敏感 api;利用获得的敏感 api构建直接调用api集合。
[0007]
优选的,构建反射调用api集合的步骤为:利用droidra工具对android应用程序代码进行反射分析并确定android应用中是否包含反射调用、以及收集反射调用参数;将获得的反射调用参数构建反射调用api集合。
[0008]
优选的,所述构建权限细粒度特征集合的方法为:反编译android应用程序之后,从androidmanifest.xml文件中获取应用程序声明的所有权限并构建粗粒度权限集合;根据步骤一所构建的权限-api映射库,找出已经申请但没有api与之相对应的权限,构建过度申请权限集合;从粗粒度权限集合中移除已经申请却没有实际使用的权限,构建权限细粒度权限集合。
[0009]
优选的,所述构建特征集合由细粒度api集合及细粒度权限集合共同构成,其中所述细粒度api集合包括直接调用api集合和反射调用api集合。
[0010]
优选的,所述反射调用的参数包括类名、方法名以及方法参数。
[0011]
本发明所述技术方案的有益效果在于:与现有的方法相比,实现了利用一种基于细粒度特征的android恶意应用检测方法,对权限和api的细化提取使得对待测apk行为描述更加准确,大量的实验表明本发明方法提升了检测结果的准确率并减小了误报率。
具体实施方式
[0012]
为了使本领域技术人员更好地理解本发明的技术方案,下面结合具体实施例对本发明作进一步的详细说明。
[0013]
本发明是一种基于提取细粒度特征的android恶意应用检测方法,改善了由传统的粗粒度特征提取方法引起的分类准确率低、误报率高的问题。本发明的主要方法有:(1)api的细粒度提取,包括逐个扫描smali文件获取api的直接调用,除此之外,还获取了通过反射方式调用的api,最终构建了完备的api集合。
[0014]
(2)权限的细粒度提取,根据本发明在pscout基础之上构建的api-权限映射库,从声明的全部权限中移除已经申请但实际并未使用的权限,形成最终的准确的权限集合。
[0015]
所述一种android恶意应用检测方法的具体实现步骤如下:步骤一:基于语义的过滤算法构建权限-api映射库;步骤二:构建直接调用api集合及构建反射调用api集合所述构建直接调用api集合的步骤为:逐个扫描android应用的.smali文件并逐行分析
文件内容,且与步骤一构建的权限-api映射库进行匹配,如果程序包含 invoke-virtual 以及对应的敏感函数, 则表明该应用中确实调用了相关敏感 api;利用获得的敏感 api构建直接调用api集合;构建反射调用api集合的步骤为:利用droidra工具对android应用程序代码进行反射分析并确定android应用中是否包含反射调用、以及收集反射调用参数;将获得的反射调用参数构建反射调用api集合;步骤三:构建权限细粒度特征集合反编译android应用程序之后,从androidmanifest.xml文件中获取应用程序声明的所有权限并构建粗粒度权限集合;根据步骤一所构建的权限-api映射库,找出已经申请但没有api与之相对应的权限,构建过度申请权限集合;从粗粒度权限集合中移除已经申请却没有实际使用的权限,构建权限细粒度权限集合。
[0016]
步骤四:构建特征集合,所述构建特征集合由细粒度api集合及细粒度权限集合共同构成,其中所述细粒度api集合包括直接调用api集合和反射调用api集合;步骤五:将步骤四收集到的特征作为输入,利用常规机器学习方法建立新模型;以上对本发明所提供的一种android恶意应用检测方法进行了详细介绍,本文中应用了实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1