【技术实现步骤摘要】
基于两层机器学习的Android恶意软件检测方法
[0001]本专利技术属于Android恶意软件检测领域,涉及一种基于两层机器学习的Android恶意软件检测方法。
技术介绍
[0002]随着Android智能手机的普及,针对Android平台的恶意应用程序激增。Android占据了智能手机市场非常大的份额。它在不同市场拥有数百万个应用程序,这为Android用户提供了丰富的功能,例如即时消息、基于位置的服务、在线购物和游戏。不幸的是,使用Android操作系统的智能手机近年来越来越多地成为网络犯罪分子的目标,并且更多地受到恶意应用程序的感染。由于Android允许安装来自不可信的第三方市场的应用程序,Android平台很容易受到恶意软件分发应用程序的攻击。目前Android移动恶意软件总数逐年增加达到了很高的数量水平。因此,提出有效的Android恶意软件检测方法,防止恶意软件的传播已经成为一个新兴问题,我们迫切地需要有效的恶意软件检测方法来防止恶意应用程序的扩散。
[0003]事实上,Android平台提供了几种限制恶意软件功能的安全机制,最显著的是Android权限控制机制。要执行某些敏感操作,例如获取联系信息,应用程序必须明确声明这些操作所需的权限并获得用户的同意。然而,这种机制需要开发人员和用户承担重要的责任。开发人员需要遵循最小特权集的原则来指定请求的权限,用户应该了解授予某些权限的风险。大多数用户通常会盲目地向任意应用程序授予权限,从而破坏了权限机制的有效性。因此,权限控制机制很难限制恶意应用 ...
【技术保护点】
【技术特征摘要】
1.一种基于两层机器学习的Android恶意软件检测方法,其特征在于,包括以下步骤:步骤一、构建两层机器学习模型:采用贝叶斯算法、高斯混合模型算法、Mean shift算法作为第一层机器学习算法构建基本分类器,采用MLP算法作为第二层机器学习算法构建元分类器;将基本分类器输出的预测概率作为元分类器的输入,元分类器根据基本分类器的预测性能的权重对预测概率进行加权;权重表示基本分类器对每个预测应用程序类别的相对重要性;步骤二、训练阶段:通过监视已被标记的良性和恶意应用程序的运行状态来提取应用程序的行为特征,所有行为特征存储为行为特征集,并为每个处理过的应用程序生成特征向量;将生成的应用程序的特征向量作为各基本分类器的输入,训练各种基本分类器,把各基本分类器对每个应用程序的预测概率作为元分类器的输入来训练元分类器,得到训练后的两层机器学习模型;步骤三、检测阶段:通过监视未知应用程序的运行状态来提取未知应用程序的行为特征,为每个未知应用程序生成特征向量,两层机器学习模型根据未知应用程序的特征向量预测判断未知应用程序是良性的还是恶意的。2.根据权利要求1所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,提取应用程序的行为特征包括静态行为特征和动态行为特征,提取应用程序的静态行为特征使用的是基于apktool的轻量级程序分析工具,提取应用程序的动态行为特征基于开源动态分析工具DroidBox,从中选择出具有恶意的行为特征,并将其转化成机器学习需要的特征向量传递给两层机器学习模型;机器学习算法经过大量良性及恶意应用程序训练之后生成最终的两层机器学习模型作为预测模型,并将预测结果输出到最终的结果报告中。3.根据权利要求1所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,步骤二中所述的运行状态包括13种应用程序操作:请求权限、API调用、意图类型、网络地址、加密操作、网络操作、文件操作、dex等级负荷、信息泄露、发送SMS、通话、接收者动作、系统调用。4.根据权利要求1所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,获取一组行为日志文件,将日志文件中提取的每个行为视为检测到的行为特征,检测到的行为特征数等于属性数据库D的大小Size(D);如果Size(D)=S,则定义S维的向量空间。5.根据权利要求4所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,通过将每个应用程序的行为日志文件映射到S维向量空间来构造特征向量;然后,通过将每个行为特征的维度设置为1,将所有剩余维度设置为0,构建应用程序的特征向量。6.根据权利要求1所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,在提取特征向量时使用互信息特征选择算法去除冗余的特征降低特征向量的维数;互信息检验根据第i个行为特征b
i
与应用程序类别c之间的相关性去除无关或冗余的行为特征,保留原行为特征的子集。7.根据权利要求6所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,互信息特征选择算法的公式为:
式中,I(b;c)表示互信息特征选择值,b表示行为特征,p(b
i
)表示第i类行为特征b
i
出现在恶意和良性应用程序中的概率,c表示应用程序类别,p(c)表示应用程序类别c的概率,p(b
i
,c)表示行为特征b
i
出现在应用程序类别c中的概率,行为特征b
i
与应用程序类别c之间的相关性与I(b;c)的值成正比。8.根据权利要求7所述的基于两层机器学习的Android恶意软件检测方法,其特征在于,贝叶斯算法对应用程序的预测概率P1(x)采用以下公式计算:式中,n表示应用程序的行为特征总数,x表示测试的应用程序的特征向量;高斯混合模型算法对应用程...
【专利技术属性】
技术研发人员:肖勇才,杨浩,徐建,刘旷也,章玲玲,
申请(专利权)人:国家电网有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。