当前位置: 首页 > 专利查询>广州大学专利>正文

基于Adaboost的安卓恶意软件检测方法、系统及存储介质技术方案

技术编号:31018006 阅读:18 留言:0更新日期:2021-11-30 03:01
本发明专利技术公开了一种基于Adaboost的安卓恶意软件检测方法、系统及存储介质,本发明专利技术首先基于二进制APK样本文件,通过对原始数据层面的分析,使提取出安卓的权限、API、Intent,其中,权限和Intent使用词袋模型进行处理,生成权限和Intent特征向量,API使用TF

【技术实现步骤摘要】
基于Adaboost的安卓恶意软件检测方法、系统及存储介质


[0001]本专利技术属于网络安全的
,具体涉及一种基于Adaboost的安卓恶意软件检测方法、系统及存储介质。

技术介绍

[0002]对于安卓恶意软件的兴起,主要是因为安卓的开放性,安卓允许安装任意来源的安装包:黑客常常从正常应用商店下载正常的软件,然后自己进行反编译,插入自己的恶意代码,并重新打包第三方应用商店,如果此时用户从第三方应用商店下载数据,那么就可能导致手机感染恶意软件,APK文件传播起来也特别方便。而对于iPhone来说,下载软件一般都是通过自己的appstore,appstore的应用都是官方审核过的。另外,安卓恶意软件开发起来越来越容易,甚至只需要在公开的恶意代码中稍作改动就可以打包成一个新的恶意软件。
[0003]安卓恶意软件的检测的方法主要分为两种,静态检测方法和动态检测方法:
[0004]动态检测方法需要运行安卓软件,主要是在一个受控的环境中(比如沙箱)中运行安卓app,观察其行为和关键API的调用,从而判断软件是否是恶意的,该方法可以深度检测安卓恶意软件的行为。
[0005]静态检测方法不需要运行安卓软件,通过分析APK二进制文件就可以对安卓恶意软件进行检测。静态检测方法包括传统的静态检测方法和基于机器学的静态检测方法。传统的静态检测方法主要是逆向APK文件,分析代码逻辑,知道了代码逻辑就知道了该软件做了什么事情,从而判断其是否是恶意的,或者进行一些关键字符的匹配,如果匹配到恶意的字符串,就认为是恶意的。现有的基于机器学的静态检测方法,直接从安卓的APK文件中逆向提取APK文件的的各种信息,例如权限或者API特征。如果要使用设备的功能,需要在AndroidManifest.xml文件中进行配置相应的权限,否则无法使用。安卓的API是谷歌提供的函数接口,一个功能的实现通常调用各种接口。然后使用权限或者API等特征进行二分类。
[0006]动态检测方法有很大的局限性,首先,安卓软件的运行需要符合要求的系统版本,如果系统版本不符合要求安卓软件则无法运行。其次,在分析安卓恶意软件的时候,如果运行时间太短,可能无法触发恶意软件的恶意行为,比如一些恶意行为只在特定的时间段或者特定的场景展现出来,在沙箱中运行并不一定能够捕捉到,因此分析的时候很难覆盖恶意软件的所有行为。最后,安卓恶意软件可能会拥有反沙箱的机制,当安卓恶意软件检测到自己是在虚拟的环境中时,可能不运行程序或者不展现恶意行为。如果没有捕捉到恶意软件的恶意行为,动态检测方法就会有很高的误报率。
[0007]传统的静态检测方法需要很强的专家经验,例如分析代码逻辑,关键字符串匹配,需要不断地更新特征库才能进行检测。而现有的基于机器学习的静态检测方法往往选取单一的特征,例如权限或者API,然后只考虑是否使用该权限或者是否调用该API,并未考虑API的重要程度,实际上对于不同的APK来说,不同API的重要程度并不同,例如出现了一次
的API和出现了多次的API,在传统基于机器学习的检测方法中都会被认为只是出现过的API,重要程度一样,但实际上多次被调用的API可能会更重要一些。另外,传统检测的结果分为恶意软件和良性软件,对恶意软件并未进行具体分类。

技术实现思路

[0008]本专利技术的主要目的在于克服现有技术的缺点与不足,提供一种基于Adaboost的安卓恶意软件检测方法、系统及存储介质,通过本专利技术可以提高安卓恶意软件检测的准确率。
[0009]为了达到上述目的,本专利技术采用以下技术方案:
[0010]本专利技术一方面提出了一种基于Adaboost的安卓恶意软件检测方法,包括下述步骤:
[0011]收集安卓软件APK文件;
[0012]基于APK文件,提取出安卓的权限特征、Intent特征和API特征;
[0013]对Intent特征和权限特征进行特征选择,并用词袋模型进行处理,生成权限和Intent特征向量;
[0014]对API特征进行清洗,使用bi

gram获取API分布特征,利用TF

IDF算法对API和bi

gram的集合进行特征选择和向量化,选择前M个TF

IDF值最大的API或者API的bi

gram的集合,生成API特征向量;
[0015]将生成的API特征向量拼接到权限和Intent特征向量右边,形成新的向量;
[0016]基于Adaboost算法设计检测模型,该模型可识别未知软件是否属于恶意软件。
[0017]作为优选的技术方案,所述权限特征提取如下:
[0018]使用Androguard工具获取AndroidManifest.xml配置文件,使用正则匹配对AndroidManifest.xml进行解析,匹配uses

permission标签下的以android.permission开头的权限,得到该APK文件所有的以android.permission开头的权限;
[0019]所述Intent特征的提取方法如下:
[0020]使用Androguard工具获取AndroidManifest.xml配置文件,使用正则匹配对AndroidManifest.xml进行解析,匹配intent

filter标签下android.intent开头的Intent,得到该APK文件所有的以android.intent开头的Intent;
[0021]所述API特征提取方法如下:
[0022]使用Androguard工具从APK文件中获取.dex文件,从而获得类名,从类名中提取方法名,并获取每一个方法调用的API,将提取的每一个APK文件的API保存。
[0023]作为优选的技术方案,Intent和权限特征选择,具体为:
[0024]使用python的os.walk库遍历所有文件,记录所有的提取的Intent和权限特征,并对特征在APK文件中出现的次数进行统计,选择出现次数排前80%的Intent和权限特征作为Intent和权限特征空间;
[0025]权限和Intent特征向量化,具体为:
[0026]使用python的os.walk库遍历每一类文件夹下的APK文件,对于一个APK文件,遍历Intent和权限特征空间的每一个特征,若特征空间中的特征在该APK文件中存在,相应的位置就标记为1,如果不存在,就标记为0;直到遍历完所有的APK文件。
[0027]作为优选的技术方案,所述对API特征进行清洗,规则如下:
[0028](1)过滤掉长度小于3的API;
[0029](2)过滤掉不含有“a、e、i、o、u”元音字母的API;
[0030]所述获取API分布特征,具体为:
[0031]使用bi

gram模型获取分布特征,bi...

【技术保护点】

【技术特征摘要】
1.基于Adaboost的安卓恶意软件检测方法,其特征在于,包括下述步骤:收集安卓软件APK文件;基于APK文件,提取出安卓的权限特征、Intent特征和API特征;对Intent特征和权限特征进行特征选择,并用词袋模型进行处理,生成权限和Intent特征向量;对API特征进行清洗,使用bi

gram获取API分布特征,得到bi

gram的集合,利用TF

IDF算法对API进行特征选择和向量化,选择前M个TF

IDF值最大的API或者API的bi

gram的集合,生成API特征向量;将生成的API特征向量拼接到权限和Intent特征向量右边,形成新的向量;基于Adaboost算法设计检测模型,该模型可识别未知软件是否属于恶意软件。2.根据权利要求1所述基于Adaboost的安卓恶意软件检测方法,其特征在于,所述权限特征提取如下:使用Androguard工具获取AndroidManifest.xml配置文件,使用正则匹配对AndroidManifest.xml进行解析,匹配uses

permission标签下的以android.permission开头的权限,得到该APK文件所有的以android.permission开头的权限;所述Intent特征的提取方法如下:使用Androguard工具获取AndroidManifest.xml配置文件,使用正则匹配对AndroidManifest.xml进行解析,匹配intent

filter标签下android.intent开头的Intent,得到该APK文件所有的以android.intent开头的Intent;所述API特征提取方法如下:使用Androguard工具从APK文件中获取.dex文件,从而获得类名,从类名中提取方法名,并获取每一个方法调用的API,将提取的每一个APK文件的API保存。3.根据权利要求1所述基于Adaboost的安卓恶意软件检测方法,其特征在于,Intent和权限特征选择,具体为:使用python的os.walk库遍历所有文件,记录所有的提取的Intent和权限特征,并对特征在APK文件中出现的次数进行统计,选择出现次数排前80%的Intent和权限特征作为Intent和权限特征空间;权限和Intent特征向量化,具体为:使用python的os.walk库遍历每一类文件夹下的APK文件,对于一个APK文件,遍历Intent和权限特征空间的每一个特征,若特征空间中的特征在该APK文件中存在,相应的位置就标记为1,如果不存在,就标记为0;直到遍历完所有的APK文件。4.根据权利要求1所述基于Adaboost的安卓恶意软件检测方法,其特征在于,所述对API特征进行清洗,规则如下:(1)过滤掉长度小于3的API;(2)过滤掉不含有“a、e、i、o、u”元音字母的API;所述获取API分布特征,具体为:使用bi

gram模型获取分布特征,bi

gram模型是n

gram模型的一种,n

gram模型起源于马尔科夫模型,该模型认为一个词的出现仅仅依赖于它前面出现的n

1个词,考虑到恶意软件检测的速度,假定一个API的出现仅仅依赖于它前面出现的一个API,即bi

gram模型,
使用该模型对API生成bi

gram的集合。5.根据权利要求4所述基于Adaboost的安卓恶意软件检测方法,其特征在于,所述利用TF

IDF对API进行特征选择和向量化,具体为:把APK文件中的API调用看成单词或者短语,认为API的重要性随着它在APK文件中出现的频率而增加,但同时随着它在所有的APK中出现的次数而下降,认为这种重要的API具有很好的区分类别的能力,TF

IDF的值代表了该API的重要程度。6.根据权利要求5所述基于Adaboost的安卓恶意软件检测方法,其特征在于,所述API的重要程度的计算方式如下:首先计算API的词频TF和API逆文档频率I...

【专利技术属性】
技术研发人员:李树栋张海鹏吴晓波韩伟红方滨兴田志宏殷丽华顾钊铨
申请(专利权)人:广州大学
类型:发明
国别省市:

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

1