基于API的安卓恶意程序检测方法、装置及存储介质制造方法及图纸

技术编号:20160901 阅读:23 留言:0更新日期:2019-01-19 00:13
本发明专利技术实施例提供了一种基于API的安卓恶意程序检测方法,包括:对APK文件进行反编译得到smali文件,采用Pscout工具获取敏感API集合,将smali文件中的API与敏感API集合中的API进行匹配,由匹配成功的API组成匹配敏感API集合;采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合;根据净化后的匹配敏感API集合,构造第一特征向量,采用TF‑IDF算法重构所述第一特征向量,得到第二特征向量;将第二特征向量作为训练集,训练深度学习模型得到有效分类模型,采用有效分类模型对安卓程序进行检测,获取安卓恶意程序。本发明专利技术实施例还提供了一种主动交互装置及非暂态可读存储介质,用来实现所述方法。本发明专利技术能够对安卓恶意程序进行精确检测。

【技术实现步骤摘要】
基于API的安卓恶意程序检测方法、装置及存储介质
本专利技术实施例涉及网络安全
,尤其涉及一种基于API的安卓恶意程序检测方法、装置及存储介质。
技术介绍
安卓恶意应用攻击技术已经日趋成熟,新兴的恶意软件层出不穷,具有涉及领域广、影响范围大、难以检测、泄露国家秘密以及造成用户经济损失等诸多特点。已有许多国内外学者对安卓系统的检测做了诸多研究。目前主流的安卓恶意软件检测方式是:首先,提取安卓应用程序的静态特征或动态特征,结合静态特征或动态特征生成应用程序的特征向量;若应用程序被检测到上述特征就会在应用程序的特征向量中被标记为1,否则为0。然后,使用某种机器学习算法对收集到的训练集进行训练,生成检测模型;最后,利用生成的检测模型对待测安卓应用程序进行检测。然而,特征向量的值采用二进制(0,1)只能表示检测到了某种敏感行为,然而具有某种敏感行为不能说明在该应用中就代表恶意,安卓应用程序的恶意程度与该程序本身所期望的功能相关。因此,找到能够精确检测安卓系统中的恶意应用程序的方法就成为业界亟待解决的技术问题。
技术实现思路
针对现有技术存在的上述问题,本专利技术实施例提供了一种基于API的安卓恶意程序检测方法、装置及存储介质。一方面,本专利技术实施例提供了一种基于API的安卓恶意程序检测方法,包括:对APK文件进行反编译得到smali文件,采用Pscout工具获取敏感API集合,将所述smali文件中的API与所述敏感API集合中的API进行匹配,由匹配成功的API组成匹配敏感API集合;采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合;根据所述净化后的匹配敏感API集合,构造第一特征向量,采用TF-IDF算法重构所述第一特征向量,得到第二特征向量;将所述第二特征向量作为训练集,训练深度学习模型得到有效分类模型,采用所述有效分类模型对安卓程序进行检测,获取安卓恶意程序;其中,所述第二特征向量中特征值为1或0,且每个特征值代表所述净化后的匹配敏感API集合中的一个API。另一方面,本专利技术实施例提供了一种主动交互装置及一种非暂态可读存储介质。所述一种主动交互装置包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行所述一种基于API的安卓恶意程序检测方法。所述一种非暂态可读存储介质存储程序指令,用于执行所述一种基于API的安卓恶意程序检测方法。本专利技术实施例提供了一种基于API的安卓恶意程序检测方法、装置及存储介质,通过将匹配敏感API集合中由第三方库调用的API剔除,并对第一特征向量进行重构,能够对安卓恶意应用程序进行精确检测,提升了检测准确率,降低了检测误报率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术第一实施例中基于API的安卓恶意程序检测方法的整体流程图;图2是本专利技术实施例中基于API调用结构树构造特征向量示意图;图3是本专利技术实施例的硬件装置工作示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种基于API的安卓恶意程序检测方法、装置及存储介质。现有的安卓系统中,APK文件通过类的方式会形成一系列函数,这些函数会调用一些应用程序,而调用这些应用程序都是通过API进行的。在通过API调用这些应用程序的过成中,一定概率上会调用到具有恶意攻击性的应用程序,这些恶意应用程序会对系统造成危害,成为系统正常运行及信息安全的重大隐患。本专利技术针对这些场景,提出了行之有效的解决办法,并列举了不同的实施例予以详细说明。请参见图1,图1是本专利技术第一实施例中基于API的安卓恶意程序检测方法的整体流程图,包括:S101:对APK文件进行反编译得到smali文件,采用Pscout工具获取敏感API集合(在另一实施例中,所述敏感API集合包含1280个敏感API),将所述smali文件中的API与所述敏感API集合中的API进行匹配,由匹配成功的API组成匹配敏感API集合。在另一实施例中,将所述smali文件中的API与所述敏感API集合中的API进行匹配,包括:采用baksmali文本编辑器阅读所述smali文件,读取所述smali文件中包含的API,将读取的smali文件中的API与所述敏感API集合中的API进行匹配。S102:采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合(在另一实施例中,S102具体包括:将所述LibD工具识别出的第三方库的名称添加到名称列表中,根据函数需要调用的API列表,将所述名称列表中由第三方库调用的API删除)。其中,净化后的匹配敏感API集合是指:在匹配敏感API集合中包含由第三方库调用的API,这些API会导致敏感信息误报,所以将这些API从匹配敏感API集合去除,得到的新的集合就定义为净化后的匹配敏感API集合。S103:根据所述净化后的匹配敏感API集合,构造第一特征向量,采用TF-IDF算法重构所述第一特征向量,得到第二特征向量。在另一实施例中,所述根据所述净化后的匹配敏感API集合,构造第一特征向量,包括:若应用程序被检测到,则所述净化后的匹配敏感API集合中对应的API,在所述第一特征向量中标记为1,否则标记为0。在另一实施例中,所述采用TF-IDF算法重构所述第一特征向量,得到第二特征向量,包括:确定所述第一特征向量的类别,保持原特征值0不变,计算所述第一特征向量中原特征值1代表的API的敏感系数,根据所述敏感系数重新定义所述原特征值1为1或0,以重新定义后的特征值及所述原特征值0组成所述第二特征向量。所述根据所述敏感系数重新定义所述原特征值1为1或0,包括:若所述敏感系数大于预设阈值,则原特征值1仍为1;若所述敏感系数小于预设阈值,则原特征值1为0。其中,预设阈值可以为0.6。其中,每个API的敏感系数定义为:式中,DFs为该API在类别c中出现的文档频率,Nc为类c中总的样本数。如果DF(s,c)大于预设阈值(如0.6),则该API在第二特征向量中的特征值仍置为1,如果DF(s,c)小于预设阈值(如0.6),则该API在第二特征向量中的特征值重置为0。S104:将所述第二特征向量作为训练集,训练深度学习模型得到有效分类模型,采用所述有效分类模型对安卓程序进行检测,获取安卓恶意程序。其中,所述第二特征向量中特征值为1或0,且每个特征值代表所述净化后的匹配敏感API集合中的一个API。深度学习模型为现有技术中任意一种可以用来分类的学习模型(例如,深度神经网络、循环神经网络、卷本文档来自技高网...

【技术保护点】
1.一种基于API的安卓恶意程序检测方法,其特征在于,包括:对APK文件进行反编译得到smali文件,采用Pscout工具获取敏感API集合,将所述smali文件中的API与所述敏感API集合中的API进行匹配,由匹配成功的API组成匹配敏感API集合;采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合;根据所述净化后的匹配敏感API集合,构造第一特征向量,采用TF‑IDF算法重构所述第一特征向量,得到第二特征向量;将所述第二特征向量作为训练集,训练深度学习模型得到有效分类模型,采用所述有效分类模型对安卓程序进行检测,获取安卓恶意程序;其中,所述第二特征向量中特征值为1或0,且每个特征值代表所述净化后的匹配敏感API集合中的一个API。

【技术特征摘要】
2018.07.19 CN 20181079687361.一种基于API的安卓恶意程序检测方法,其特征在于,包括:对APK文件进行反编译得到smali文件,采用Pscout工具获取敏感API集合,将所述smali文件中的API与所述敏感API集合中的API进行匹配,由匹配成功的API组成匹配敏感API集合;采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合;根据所述净化后的匹配敏感API集合,构造第一特征向量,采用TF-IDF算法重构所述第一特征向量,得到第二特征向量;将所述第二特征向量作为训练集,训练深度学习模型得到有效分类模型,采用所述有效分类模型对安卓程序进行检测,获取安卓恶意程序;其中,所述第二特征向量中特征值为1或0,且每个特征值代表所述净化后的匹配敏感API集合中的一个API。2.根据权利要求1所述的基于API的安卓恶意程序检测方法,其特征在于,所述敏感API集合包含1280个敏感API。3.根据权利要求1所述的基于API的安卓恶意程序检测方法,其特征在于,所述采用LibD工具剔除所述匹配敏感API集合中由第三方库调用的API,得到净化后的匹配敏感API集合,包括:将所述LibD工具识别出的第三方库的名称添加到名称列表中,根据函数需要调用的API列表,将所述名称列表中由第三方库调用的API删除。4.根据权利要求1所述的基于API的安卓恶意程序检测方法,其特征在于,所述根据所述净...

【专利技术属性】
技术研发人员:刘超喻民李佳楠朱大立姜建国黄伟庆
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1