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

一种基于稀疏表示和模型融合的Android Malware分类方法技术

技术编号:20655257 阅读:57 留言:0更新日期:2019-03-23 06:54
本发明专利技术公布了一种基于稀疏表示和模型融合的Android Malware安卓恶意软件的分类方法,通过采用稀疏表示的方法,表示安卓恶意程序Android Malware的行为特征;再采用Stacking模型融合方法进行分类预测,由此提升模型预测性能。本发明专利技术方法对从程序中提取的原始特征进行了稀疏表示,获得恶意程序更加本质的特征;模型的拟合可在基础模型之上,从而实现更加高泛化能力的模型,提高安卓恶意软件分类的精确程度。

【技术实现步骤摘要】
一种基于稀疏表示和模型融合的AndroidMalware分类方法
本专利技术属于信息安全
,涉及恶意软件检测技术,尤其涉及一种基于稀疏表示和模型融合的AndroidMalware(Androidmalicioussoftwar,安卓恶意软件)分类方法。
技术介绍
在移动安全领域,Android系统由于其普及性和开放性,成为了众多黑客攻击的对象,Android恶意软件成为Android系统面临的巨大威胁。2017年,根据Newzoo的报告,全球安卓手机用户达到了23亿。2017年,根据腾讯的报告,感染安卓手机病毒用户数达到了1.88亿。如此众多安卓手机用户和手机病毒,单靠人工检测显得身单力薄。能够自动地进行恶意程序分类检测这一问题已经迫在眉睫。用机器学习的方法,通过对安卓恶意程序特征(行为特征)的学习,可以让机器学习模型自动对恶意程序进行分类。但是,现有机器学习技术检测恶意代码,主要是将提取的特征直接输入单个模型训练,实际的检测效果十分有限。
技术实现思路
为了克服上述现有技术的不足,本专利技术提供一种基于稀疏表示和模型融合的AndroidMalware(Androidmalicioussoftwar,安卓恶意软件)分类方法,通过采用机器学习方法,高效、准确地对安卓恶意程序进行分类,使得恶意程序识别接近自动化,能够更好地解决现实中对于安卓恶意程序分类的需求。为方便起见,本专利技术中定义以下术语简称及相应的全称:RF:RandomForest,随机森林;ET:ExtremelyRandomizedTrees,极端随机树;AB:AdaBoost;GBDT:GradientBoostingDecisionTree;XgBoost:ExtremeGradientBoosting。本专利技术通过学习Android程序的行为特征,现有技术往往只是把提取的特征直接进行学习,而本专利技术采用稀疏表示的方法,本专利技术用K-SVD算法(一种经典的字典训练算法)对从恶意程序中提取的原始特征进行稀疏表示,能够进一步发现更为本质的特征。现有技术对特征的学习通常直接针对单个模型学习,本专利技术采用Stacking模型融合方法,提升模型整体的预测性能。本专利技术提供的技术方案是:一种基于稀疏表示和模型融合的AndroidMalware安卓恶意软件分类方法,通过采用稀疏表示的方法,挖掘得到AndroidMalware代码更加本质的行为特征;采用Stacking模型融合方法,提升模型的预测性能;包括如下步骤:A.提取安卓恶意程序的行为特征,执行如下操作:A1.下载并安装开源的QEMU模拟器;A2.针对安卓恶意程序的数据集,在QEMU模型器上运行数据集中的每一个安卓恶意程序,对其系统调用的API进行检测;A3.得到API时序调用序列及其相关信息(包括类名、函数名、函数参数),标记病毒类型存入病毒库;B.稀疏表示API时序调用序列数据,作为恶意程序的行为特征,执行如下操作:B1.设置F是n*p的恶意程序/代码行为特征的矩阵,其中,n表示样本(恶意程序/代码行为特征数据)的数量,p表示从恶意程序代码中提取出行为特征的维度;B2.使用K-SVD算法进行训练学习,目标函数为下式:D,X=argmin{||X||0};s.t.||F-D*X||2≤ε其中,D是从数据集中学习出的字典集,X是数据集的稀疏表示,ε是重构特征矩阵是允许误差的最大值。B3.经过学习得到恶意代码行为特征矩阵的稀疏表示X;C.模型的Stacking融合,执行如下操作:C1.选择{RF,ET,AB,GBDT},作为第一层的基础模型,对X做出预测并且输出每个类对应的概率;C2.将XgBoost作为第二层的融合模型,输入是第一层基础模型的预测结果,输出最终的分类结果即恶意程序类型;通过上述步骤,实现基于稀疏表示和模型融合的AndroidMalware安卓恶意软件分类。与现有技术相比,本专利技术的有益效果是:本专利技术提供了一种基于稀疏表示和模型融合的AndroidMalware安卓恶意软件的分类方法,通过采用稀疏表示的方法,描述代码更加本质的特征;并采用Stacking模型融合方法,提升模型的预测性能。本专利技术方法对从程序中提取的原始特征进行了稀疏表示,得到安卓恶意程序中更加本质的特征;模型的拟合可以在基础模型之上,从而实现更加高泛化能力的模型,提高安卓恶意软件分类的精确程度。附图说明图1为本专利技术方法的流程框图。具体实施方式下面结合附图,通过实施例进一步描述本专利技术,但不以任何方式限制本专利技术的范围。图1是本专利技术提供的基于稀疏表示和模型融合的AndroidMalware的分类方法的实施流程。本专利技术的具体实施方式如下:A.收集各种安卓恶意程序的数据集,方式如下:A1.向一些开源的组织申请下载安卓恶意程序的数据,比如:AndroidMalwareDataset,http://amd.arguslab.org/),把下载收集到的安卓恶意程序APP放到一个文件下,构建自己的安卓恶意程序样本集;B.恶意程序行为特征提取,方式如下:B1.下载并安装开源QEMU模拟器,把恶意程序样本放入QEMU环境中运行;B2.识别样本的主程序,不同类型恶意程序的主进程不同;B3.对当前主进程枚举,得到受监控进程列表;B4.对每一个受监控进程,通过进程PC指针对比每一个调用的主程序API,进行API的捕获,得到API的时序调用序列及其相关信息(类名、函数名、函数参数);B5.将这些信息(API的时序调用序列及其相关信息)存入病毒库,标记病毒类型。C.对行为特征稀疏表示,方式如下:通过K-SVD算法进行训练学习,从数据集中学习得到字典集D和数据集的稀疏表示X;C1.使用K-SVD算法,随机初始化字典(变量)X;C2.让字典D保持不变,求出每一个样本的稀疏编码X,目标函数:D,X=argmin||X||0;s.t.||F-D*X||2≤ε注:D是从数据集中学习出的字典集,X是数据集的稀疏表示,ε是重构特征矩阵是允许误差的最大值;F是(n×p)的行为特征的矩阵,n是样本数,p是样本维度;C3.更新字典D,更新对应的非零编码X;C4.重复步骤C2和C3,直至收敛。经过学习得到表示行为特征的稀疏表示X;D.模型训练和模型融合,方式如下:D1.调用sklearn.ensemble的python库中的RF、ET、AB、GBDT,作为第一层的基础模型,调用sklearn.model_selection的GridSearchCV,对X进行自动调参的训练;D2.将X分成训练集和测试集,用5-Fold的交叉验证,每次留出其中的1份,用其余的4份作为训练,训练出的模型在留出的一份和测试集上分别做预测。这一过程循环5次,保存每次预测出的结果(每个类对应的概率),对于每一个的基础模型重复以上的过程;D3.由于输出的是离散型随机变量的分布,所以我们取5次在测试集上预测结果的算数平均数,作为最终的预测结果;D4.将第一层基础模型的预测结果作为第二层模型的输入,第二层模型使用XgBoost作为stacking融合模型,对XgBoost进行训练,得到训练好的第二层模型;D5.将D3步骤最终得到的第一层测试集的预测结果作为第二层模型的输入,预测出最终的结果。需要注意的是,公布实本文档来自技高网...

【技术保护点】
1.一种基于稀疏表示和模型融合的安卓恶意程序Android Malware分类方法,通过采用稀疏表示的方法,表示安卓恶意程序Android Malware的行为特征;再采用Stacking模型融合方法进行分类预测,由此提升模型预测性能;包括如下步骤:A.提取安卓恶意程序的行为特征;执行如下操作:A1.下载并安装QEMU模拟器;A2.针对安卓恶意程序的数据集,在QEMU模型器上运行数据集中的每一个安卓恶意程序,对其系统调用的API进行检测;A3.得到API时序调用序列及相关信息,标记病毒类型并存入病毒库;B.稀疏表示API时序调用序列数据,作为恶意程序的行为特征;具体执行如下操作:B1.设置F是n*p的恶意程序行为特征的矩阵,其中,n表示恶意程序的数量,p表示从恶意程序中提取出行为特征的维度;B2.使用K‑SVD算法进行训练学习,目标函数为下式:D,X=argmin{||X||0};s.t.||F‑D*X||2≤ε其中,D是从数据集中学习得到的字典集;X是数据集的稀疏表示;ε是重构特征矩阵是允许误差的最大值;B3.经过学习得到恶意程序行为特征矩阵的稀疏表示X;C.模型的Stacking融合,执行如下操作:C1.选择{RF,ET,AB,GBDT}作为第一层的基础模型,对X做出预测并输出每个类对应的概率;C2.将XgBoost作为第二层的融合模型,模型输入是第一层基础模型的预测结果,输出最终的分类结果,即恶意程序类型;通过上述步骤,实现基于稀疏表示和模型融合的Android Malware安卓恶意软件分类。...

【技术特征摘要】
1.一种基于稀疏表示和模型融合的安卓恶意程序AndroidMalware分类方法,通过采用稀疏表示的方法,表示安卓恶意程序AndroidMalware的行为特征;再采用Stacking模型融合方法进行分类预测,由此提升模型预测性能;包括如下步骤:A.提取安卓恶意程序的行为特征;执行如下操作:A1.下载并安装QEMU模拟器;A2.针对安卓恶意程序的数据集,在QEMU模型器上运行数据集中的每一个安卓恶意程序,对其系统调用的API进行检测;A3.得到API时序调用序列及相关信息,标记病毒类型并存入病毒库;B.稀疏表示API时序调用序列数据,作为恶意程序的行为特征;具体执行如下操作:B1.设置F是n*p的恶意程序行为特征的矩阵,其中,n表示恶意程序的数量,p表示从恶意程序中提取出行为特征的维度;B2.使用K-SVD算法进行训练学习,目标函数为下式:D,X=argmin{||X||0};s.t.||F-D*X||2≤ε其中,D是从数据集中学习得到的字典集;X是数据集的稀疏表示;ε是重构特征矩阵是允许误差的最大值;B3.经过学习得到恶意程序行为特征矩阵的稀疏表示X;C.模型的Stacking融合,执行如下操作:C1.选择{RF,ET,AB,GBDT}作为第一层的基础模型,对X做出预测并输出每个类对应的概率;C2.将XgB...

【专利技术属性】
技术研发人员:文伟平胡浩然汪子龙
申请(专利权)人:北京大学
类型:发明
国别省市:北京,11

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

1