一种恶意软件的检测方法、装置及存储介质制造方法及图纸

技术编号:27568821 阅读:16 留言:0更新日期:2021-03-09 22:15
本申请实施例公开了一种恶意软件的检测方法、装置及存储介质,所述方法包括:从采集到的软件安装包中,提取各个所述软件安装包所对应的敏感API;基于各个所述软件安装包所对应的敏感API,生成对应的敏感API序列;基于所述敏感API序列,训练得到软件检测模型;基于所述软件检测模型进行恶意软件的检测。通过本申请的技术方案,将软件安装包中的敏感API进行数字序列化,并基于敏感API序列训练得到的软件检测模型进行恶意软件的检测,能够及时有效地对新型恶意软件进行识别和分析。对新型恶意软件进行识别和分析。对新型恶意软件进行识别和分析。

【技术实现步骤摘要】
一种恶意软件的检测方法、装置及存储介质


[0001]本申请实施例涉及计算机技术,涉及但不限于一种恶意软件的检测方法、装置及存储介质。

技术介绍

[0002]Android系统是一种基于Linux的操作系统,安卓系统的源代码具备自由性及开放性等特点。根据数据调研机构Kantar公布的2018年第二季度中国智能手机市场的统计结果可知,安卓系统以将近80%的占比稳坐智能手机系统的第一名,且移动应用市场的安卓应用数量以数百万计,下载量远超过800亿次。
[0003]但是,由于安卓系统的开源性以及安卓应用市场的开放性,导致市面上出现很多恶意软件。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种恶意软件的检测方法、装置及存储介质,以解决现有技术中由于新的样本数量有限,结合历史恶意软件样本的训练得到的模型无法正确检测出软件是否友好的问题。
[0005]第一方面,本申请实施例提供了一种恶意软件的检测方法,所述方法包括:从采集到的软件安装包中,提取各个所述软件安装包所对应的敏感应用程序编程接口(Application Programming Interface,API);基于各个所述软件安装包所对应的敏感API,生成对应的敏感API序列;基于所述敏感API序列,训练得到软件检测模型;基于所述软件检测模型进行恶意软件的检测。
[0006]第二方面,本申请实施例提供了一种恶意软件的检测装置,所述装置包括:提取单元,用于从采集到的软件安装包中,提取各个所述软件安装包所对应的敏感API;生成单元,用于基于各个所述软件安装包所对应的敏感API,生成对应的敏感API序列;模型训练单元,用于基于所述敏感API序列,训练得到软件检测模型;检测单元,用于基于所述软件检测模型进行恶意软件的检测。
[0007]第三方面,本申请实施例提供了一种恶意软件的检测装置,所述恶意软件的检测装置至少包括:处理器和用于存储能够在所述处理器上运行的可执行指令的存储器,其中:处理器用于运行所述可执行指令时,所述可执行指令执行上述实施例提供的恶意软件的检测方法。
[0008]第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述实施例提供的恶意软件的检测方法。
[0009]本申请实施例所提供的一种恶意软件的检测方法、装置及存储介质,通过将软件安装包中的敏感API进行数字序列化,并基于敏感API序列训练得到的软件检测模型进行恶意软件的检测,能够及时有效地对新型恶意软件进行识别和分析。
附图说明
[0010]图1为本申请实施例提供的恶意软件的检测方法的实现流程示意图一;
[0011]图2为本申请实施例提供的恶意软件的检测方法的实现流程示意图二;
[0012]图3为本申请实施例提供的对Apk进行反编译的源码示意图;
[0013]图4为本申请实施例提供的实现正则表达式的源码示意图;
[0014]图5为本申请实施例提供的实现提取敏感API的源码示意图;
[0015]图6为本申请实施例提供的基于模糊近邻度聚类与重采样的迁移学习算法的数据处理流程示意图;
[0016]图7为本申请实施例提供的获取敏感API序列项集的源码示意图;
[0017]图8为本申请实施例提供的获取频繁一项集的源码示意图;
[0018]图9为本申请实施例提供的获取频繁二项集的源码示意图;
[0019]图10为本申请实施例提供的一种恶意软件的检测装置的结构示意图;
[0020]图11为本申请实施例提供的一种恶意软件的检测装置的具体硬件结构。
具体实施方式
[0021]相关技术中,Android恶意软件检测主要包括静态检测、动态检测和混合检测等检测方式。这里,软件由一个或多个应用程序组合而成。
[0022]其中,静态检测可以在不执行应用程序源代码的情况下,通过分析应用程序的源代码来检测应用程序中的恶意代码。例如,在基于签名的恶意软件的检测过程中,可以通过调用图分析工具或者进行复杂的执行链仿真来检测恶意代码。在Android系统中,由于元数据存储在Android清单文件中,因此,既不需要实际执行环境,也不需要访问真实或仿真的数据,便可以访问扩展应用程序的元数据。
[0023]动态检测需要执行应用程序的源代码,通常通过对应用程序的源代码本身进行测试,从而了解源代码中包含的特征信息。其中,当前分析的源代码的执行路径、所有相关的运行时信息是已知的。这里,可以通过访问系统详细的状态信息对系统的行为进行动态分析。其中,动态分析有助于监视文件系统、查看密钥信息并允许用户执行运行时操作,由于大多数动态功能都保留下来,可以用于检测转换后的恶意软件变体。
[0024]混合检测结合了静态检测和动态检测的优点,既可以检测经过加壳、混淆等技术的软件,也能一定程度提高检测效率、杜绝全部软件均使用动态检测等弊端,但混合检测对技术的要求最高,混合检测的关键点和难点是如何科学的综合静态检测和动态检测这两种检测方法。
[0025]相关技术中,虽然通过静态检测的方法可以检测应用程序所有可能的执行路径,但是该检测方法只能访问应用程序包本身,当应用程序真正执行的时候,如果访问的恶意API改变了该应用程序的某些参数从而控制了该应用程序,所带来的应用程序问题难以检测,会导致严重后果。
[0026]由于动态检测需要运行应用程序来检测其具体行为,因此通常需要用户进行交互以触发恶意软件行为,以运行应用程序,这期间可能对用户造成不良影响,而且动态执行应用程序来检测恶意软件的过程需要耗费相当长的时间。此外,恶意软件可能会检测到动态分析组件,并且在此情况下选择不显示恶意行为,最终导致检测的结果不具有现实意义。
[0027]当积累了一定数量的恶意软件的样本后,很多检测方法都选择使用机器学习的手段来提取恶意软件的特征,训练模型对新的样本进行判断分类。但在信息高度发达的今天,新型恶意软件以极快的速度出现和传播,其侵犯用户权益的方式也是层出不穷。当新的恶意软件出现的时候,基于传统的机器学习所得到的训练模型的局限性主要体现如下:新的样本数量有限,结合旧时恶意软件样本的训练得到的模型无法正确判断软件是否友好。由于新样本数量与恶意软件库样本总数量的比例往往是存在悬殊的,此时利用传统机器学习的模型训练方法无法满足新型恶意软件的分类检测。
[0028]由于新型恶意软件在行为上常常出现异于现有恶意软件的特性,加之其出现的时间短、样本少,传统机器学习检测恶意软件的方法训练得到的模型往往不能及时有效的对这些新型恶意软件进行识别和分析。
[0029]针对相关技术中所存的在问题,本申请实施例提供了一种恶意软件的检测方法,基于迁移学习的聚类重采样的方式从现有的源域中获得知识,以在有新型样本出现时,提高机器学习的判断能力。该方法主要包括反编译安装包(Android Package,Apk)、提取敏感API并获得敏感本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意软件的检测方法,其特征在于,所述方法包括:从采集到的软件安装包中,提取各个所述软件安装包所对应的敏感应用程序编程接口API;基于各个所述软件安装包所对应的敏感API,生成对应的敏感API序列;基于所述敏感API序列,训练得到软件检测模型;基于所述软件检测模型进行恶意软件的检测。2.根据权利要求1所述的方法,其特征在于,所述从采集到的软件安装包中,提取各个所述软件安装包所对应的敏感API,包括:遍历采集到的所述软件安装包;对各个所述软件安装包进行反编译,得到各个所述软件安装包所对应的反编译文件;从各个所述反编译文件中,提取各个所述软件安装包所对应的敏感API。3.根据权利要求2所述的方法,其特征在于,所述从各个所述反编译文件中,提取各个所述软件安装包所对应的敏感API,包括:基于正则表达式从各个所述反编译文件中,提取各个所述软件安装包所对应的敏感API。4.根据权利要求1所述的方法,其特征在于,所述基于各个所述软件安装包所对应的敏感API,生成对应的敏感API序列,包括:对各个所述敏感API进行编号;根据各个所述软件安装包所对应的敏感API的编号,生成各个所述软件安装包所对应的敏感API序列。5.根据权利要求1所述的方法,其特征在于,所述基于所述敏感API序列,训练得到软件检测模型,包括:基于聚类分析算法,对所述敏感API序列进行重采样;基于重采样的敏感API序列训练Apriori模型,得到软件检测模型。6.根据权利要求5所述的方法,其特征在于,所述基于重采样的敏感API序列训练Apr...

【专利技术属性】
技术研发人员:叶天娇
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1