一种基于深度学习的安卓恶意代码检测系统及其方法

文档序号:9453372阅读:441来源:国知局
一种基于深度学习的安卓恶意代码检测系统及其方法
【技术领域】
[0001]本发明涉及安卓恶意代码检测领域,尤其涉及一种基于深度学习的安卓恶意代码检测系统及其方法。
【背景技术】
[0002]Juniper Networks最新的年度安全报告显示,虽然移动行业还不清楚到底市场上应该有两个,三个还是四个智能手机操作系统,但是移动恶意软件的编写者们已经选择了自己的目标,并且正蜂拥向安卓。
[0003]Android平台是恶意软件的“重灾区”,在病毒传播方面,第三方应用商店仍是智能移动终端病毒传播的主要途径,由于Android系统的开放性及广泛的市场占有率,全球96%的病毒来自Android平台。
[0004]查阅大量相关文献可见,目前针对恶意软件的检测主要有两种方法:一种是基于特征码的检测方法,它检查未知软件是否含有特征代码库中的恶意软件特征代码。该方法对压缩、加密、变形的恶意代码不能很好地处理,需要不断更新查毒引擎和特征库,不能检测新出现的恶意软件。
[0005]另一种是基于行为的检测方法。它监视的是程序如何活动,而不是软件的代码。这种方法注重恶意代码运行过程中所表现出的行为特性,因此不受多态、加壳的影响,相对基于特征码的静态检测方法来说具有快速、直观的特点。通常对软件行为的描述主要是利用应用程序编程接口(Applicat1n Programming Interface,API)调用序列、系统特征计数或者软件代码。但是这些描述方法,或者过于粗糙或者容易出现遗漏,往往影响了最终的分类准确率。
[0006]因此,本领域的技术人员致力于开发一种更加准确的恶意代码检测系统及其方法。

【发明内容】

[0007]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题如何准确地检测安卓恶意代码。
[0008]为实现上述目的,本发明提供了一种基于深度学习的安卓恶意代码检测系统和检测方法,能够大大提高系统对于未知恶意代码的甄别能力和检测的准确性。
[0009]本发明提供一种基于深度学习的安卓恶意代码检测系统,在系统架构方面采用Browser/Server架构,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用,又在检测方法上取得重大突破,创新性地将深度学习模型引入了安卓恶意软件检测领域,同时结合了静态分析和动态分析方法,提高了检测的准确性,得到更为全面的软件安全性分析报告。
[0010]本发明所述的一种基于深度学习的安卓恶意代码检测系统,包括:
[0011]特征提取模块,所述特征提取模块被配置为以APK程序作为输入,使用静态特征提取与动态特征提取相结合的方式,输出由O、I组成的所述APK程序的特征向量;
[0012]深度学习模块,所述深度学习模块被配置为使用多层感知器模型对由所述特征向量与监督值组成的样本集进行训练,得到学习成熟的模型;同时以所述特征向量作为输入,使用所述学习成熟的模型,输出结果概率,作为所述APK程序的安全级别;
[0013]报告生成模块,所述报告生成模块被配置为根据所述特征向量与所述安全级别进行分析,并生成评估报告。
[0014]进一步地,所述的检测系统采用浏览器端/服务器端架构,所述服务器端被配置为通过调用所述的特征提取模块、深度学习模块和报告生成模块,进行所述学习成熟的模型的预处理和所述APK程序的检测;所述浏览器端被配置为面向用户进行上传APK文件、搜索shal和呈现所述评估报告。
[0015]本发明还提供了一种基于深度学习的安卓恶意代码检测方法,包括以下步骤:
[0016](SI)以APK程序作为输入,使用特征提取模块提取所述APK程序的动态特征和静态特征,输出由0、I组成的所述APK程序的特征向量;
[0017](S2)使用深度学习模型进行预处理;
[0018](S3)对所述特征向量进行检测;
[0019](S4)根据上述检测的结果生成评估报告。
[0020]进一步地,步骤(S2)中的所述模型预处理包括以下步骤:
[0021](S2-1)采集大量的带有正负标识的所述APK程序,其中安全的软件带有正标识,恶意的软件带有负标识;
[0022](S2-2)批量提取上述APK程序的静态特征,得到静态特征向量;
[0023](S2-3)批量提取上述APK程序的动态特征,得到动态特征向量;
[0024](S2-4)将上述静态特征向量与上述动态特征向量组合成总体特征向量;
[0025](S2-5)以上述总体特征向量为输入维度,结合步骤(S2-1)中所述APK程序对应的监督值,组合成样本集合;
[0026](S2-6)将上述样本集合插入至系统数据库;
[0027](S2-7)以上述系统数据库作为输入,对深度学习模型进行训练,得到学习成熟的模型。
[0028]进一步地,步骤(S3)中所述APK程序的特征向量的检测包括以下步骤:
[0029](S3-1)保存用户上传的APK程序,并生成这个APK程序的SHAl散列值;
[0030](S3-2)对于上述散列值,在系统数据库中进行指纹匹配;
[0031](S3-3)如果上述匹配结果存在,则进入步骤(S3-9),否则进入步骤(S3-4);
[0032](S3-4)提取用户上传的APK程序的静态特征,得到静态特征向量;
[0033](S3-5)提取用户上传的APK程序的动态特征,得到动态特征向量;
[0034](S3-6)将上述静态特征向量与上述动态特征向量组合成总体特征向量;
[0035](S3-7)将上述总体特征向量输入至学习成熟的模型中,输出结果概率;
[0036](S3-8)将上述总体特征向量与上述输出结果概率插入所述系统数据库;
[0037](S3-9)根据所述系统数据库中记录,解析生成安全评估报告。
[0038]进一步地,步骤(S3-4)、(S3-5)中所述的动态特征、静态特征提取包括以下步骤:
[0039](S3-45-1)解压缩用户上传的APK程序,获取文件:AndroidManifest.xml和classes, dex ;
[0040](S3-45-2)使用 AXMLPrinter2 和 TinyXml 工具解析 AndroidManifest.xml 文件,得到上述APK程序申请的所有权限,维度为120,作为静态特征向量的第一部分;
[0041](S3-45-3)用反汇编程序baksmali反编译classes, dex文件,并搜索反汇编得到的源码,获取API的调用情况,抽象成维度为365的特征向量,作为静态特征向量的第二部分;
[0042](S3-45-4)使用DroidBox作为动态监测的沙盒,通过Hook安卓程序中的23个API,得到23维动态特征向量。
[0043]进一步地,所使用的深度学习模型具有如下特征:
[0044](I)采用多层反馈神经网络和多层感知器模型相结合的方式构造整体模型;
[0045](2)采用多层反馈神经网络处理长度不固定的动态行为序列,抽象出动态特征后再和静态特征组合成长度固定的总体特征向量
[0046](3)采用多层感知器模型进行处理分类。
[0047]进一步地,所述多层感知器模型的参数为:
[0048]输入:508维的特征向量,包括静态特征和动态特征;
[0049]输出:安全软件的概率、恶意软件的概率;
[0050]隐含层节点数:80 ;
[0051]隐含层到输出层的连接权值:0.001 ;
[0052]输出层的阈值:0.7;
[0053]学习迭代次数:1000;
[0054]学习速率:0.05。
[0055]进一步地,所述多层感知器模型采用了快速中止的方法,即在每一个迭代结束时计算验证数据的准确度,当上述准确度不再提高时,就停止训练,以免过度拟合。
[0056]进一步地,所述多层感知器模型采用了 5折交叉验证作为命中率测试的方法,即将验证数据集分为五份,轮流使用其中四份作为训练,一份作为验证,十次结果的均值作为命中率测试的最终结果。
[0057]与现有技术相比,本发明提供的基于深度学习的安卓恶意代码检测系统与检测方法具有以下有益效果:运用深度学习模型可以自动抽取特征模式,逐层学习,确保特征的有效、合理利用,从而保证了结果的准确性。
[0058]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【附图说明】
[0059]图1是本发明的一个实施例的基于深度学习的安卓恶意代码检测系统总体架构图;
[0060]图2是图1所示的基于深度学习的安卓恶意代码检测系统的模型预处理工作流程图;
[0061]图3是图1所示的基于深度学习的安卓恶意代码检测系统的APK检测流程图;
[0062]图4是图1所示的基于深度学习的安卓恶意代码检测系统的深度学习模型图;
[0063]图5是图1所示的基于深度学习的安卓恶意代码检测系统的静态特征提取图;
[0064]图6是图1所示的基于深度学习的安卓恶意代码检测系统的动态特征提取图。
【具体实施方式】
[0065]如图1所示,本发明的一个实施例的基于深度学习的安卓恶意代码检测系统包括:
[0066]特征提取模块:以APK程序作为输入,使用静态提取与动态提取相结合的方式,输出0、I组成的向量,作为APK程序的特征向量;
[0067]深度学习模块:使用多层感知器(MLP)模型作为学习模型。一方面对特征向量与监督值组成的样本集进行训练与学习,得到学习成熟的模型;另一方面以特征向量作为输入,使用学习成熟的模型,输出结果概率,作为APK程序的安全级别;
[0068]报告生成模块:根据APK程序的特征向量与安全级别,进行解释与分析,生成评估?艮胃。
[0069]采用本实施例的基于深度学习的安卓恶意代码检测方法包括如下步骤:
[0070](I)以APK程序作为输入,使用特征提取模块提取APK的动态特征、静态特征,输出
0、I组成的向量,作为APK程序的特征向量;
[0071](2)深度学习模型进行预处理后,对(I)所述特征向量进行检测;
[0072](3)报告生成模块根据(2)中的检测结果生成详细的APK分析报告。
[0073]图2示出了图1所示的基于深度学习的安卓恶意代码检测系统的模型预处理流程,步骤(2)中的模型预处理包括以下步骤:
[0074](I)采集大量的带有正负标识的APK程序(安全软件与恶意软件);
[0075](2)批量提取APK程序的静态特征,得到静态特征向量;
[0076](3)批量提取APK程序的动态特征,得到动态特征向量;
[0077](4)组合⑵与(3)中的向量,组成总体特征向量;
[0078](5)以(4)中的总体特征向量为输入维度,结合⑴中对应APK程序的监督值,组成样本集合;
[0079](6)将(5)中的样本集合插入至系统数据库;
[0080](7)以数据库中的样本集合作为输入,对深度学习模型进行训练,得到学习完毕的检测模型。
[0081]图3示出了图1所示的基于深
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1