一种安卓恶意应用的检测方法及装置制造方法及图纸

技术编号:27538405 阅读:36 留言:0更新日期:2021-03-03 11:29
本申请公开了一种安卓恶意应用的检测方法及装置,方法包括:首先通过提取全面的安卓应用行为特征,从而最大程度地表示良性应用与恶意应用的行为,并通过提取OpCode特征最大程度的减小混淆技术、变种技术对检测准确率的影响;接着采用元学习方法更新卷积神经网络模型的参数,构建小样本下恶意应用检测模型,实现基于少量样本就可以快速准确地检测安卓应用;同时还利用卷积神经网络的良好分类能力和元学习算法依据先前经验的学习能力,依据少量样本快速识别新出现的未知恶意应用,从而解决了现有技术检测成本非常大以及需要耗费大量的时间,而且无法对新出现的安卓恶意应用进行检测的技术问题。测的技术问题。测的技术问题。

【技术实现步骤摘要】
一种安卓恶意应用的检测方法及装置


[0001]本申请涉及检测
,尤其涉及一种安卓恶意应用的检测方法及装置。

技术介绍

[0002]Android系统是现在最主要的移动设备操作系统,然而因为其开源特征,用户数量多,开发应用门槛不高等原因,使得难以被监管,这也导致了安卓恶意应用越来越多,给用户带来了严重的损失。基于目前的网络安全态势,如何有效地检测出安卓恶意应用成为目前研究的热点。
[0003]目前,对大部分的安卓恶意应用检测方法都是通过收集大量的带标签的安卓应用,然后通过机器学习或深度学习的方式,对大量的样本进行训练;然后由于需要获取大量标签数据并且需要对大量的标签数据进行训练,使得检测成本非常大、并且需要耗费大量的时间,而且无法对新出现的安卓恶意应用进行检测。

技术实现思路

[0004]本申请实施例提供了一种安卓恶意应用的检测方法及装置,用于解决现有技术检测成本非常大以及需要耗费大量的时间,而且无法对新出现的安卓恶意应用进行检测的技术问题。
[0005]有鉴于此,本申请第一方面提供了一种安卓恶意应用的检测方法,所述方法包括:
[0006]S1、采集包括恶意应用和良性应用的安卓应用数据集,所述数据集由元训练集和元测试集组成,并将所述元训练集和所述元测试集均划分为多个任务,所述任务包括支撑集和查询集;
[0007]S2、对所述安卓应用进行反编译得到反编译文件,提取所述反编译文件的API包特征、权限特征、组件特征、硬件特征、intent特征和OpCode特征,得到所述安卓应用的总体特征;
[0008]S3、分别获取所述API包特征、所述权限特征、所述组件特征、所述硬件特征、所述intent特征和所述OpCode特征的特征值后并依次进行前后拼接,得到所述总体特征的特征向量;
[0009]S4、建立包括由多个卷积层和多个池化层交替排列以及全连接层构成的卷积神经网络模型,并对所述卷积神经网络模型的参数进行初始化;
[0010]S5、从所述多个任务中提取若干个任务得到批任务,通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数集,基于reptile算法,根据所述更新参数集计算得到所述批任务的平均损失梯度,通过所述平均损失梯度对所述卷积神经网络模型的参数进行更新;
[0011]S6、判断所述卷积神经网络模型是否达到预置训练次数,若否,返回步骤S5,若是,通过所述元训练集对所述卷积神经网络模型进行元训练,得到所述安卓应用的检测模型,将所述元测试集的特征向量输入到所述检测模型进行计算,得到所述安卓应用的分类结
果。
[0012]可选地,所述通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数,之后还包括:
[0013]基于reptile算法,根据所述更新参数集分别计算所述批任务中的每个任务的损失梯度,分别根据所述损失梯度对所述卷积神经网络模型的参数进行更新后,通过每个任务对应的所述查询集对所述卷积神经网络模型进行分类准确率测试。
[0014]可选地,步骤S2,具体包括:
[0015]通过androguard反编译工具对所述安卓应用进行反编译得到反编译文件,对所述API包特征、所述权限特征、所述组件特征、所述硬件特征、所述intent特征的使用情况进行提取;并通过apktool反编译apk文件得到Dalivk指令集,对所述Dalivk指令集中反应程序语义的指令集进行提取,得到所述安卓应用的总体特征。
[0016]可选地,步骤S3,具体包括:
[0017]获取所述API包特征被所述安卓应用调用的次数,得到所述API包特征的特征值;
[0018]获取所述权限特征的独立状态,得到所述权限特征的特征值;
[0019]获取所述组件在所述安卓应用的数量值,得到所述组件特征的特征值;
[0020]获取所述硬件特征被所述安卓应用调用的次数,得到所述硬件特征的特征值;
[0021]获取所述intent特征在所述安卓应用出现的次数,得到所述intent特征的特征值;
[0022]根据所述OpCode特征建立N-Gram模型,对所述反编译文件提取N-gram特征,得到所述OpCode特征的特征值;
[0023]将所述API包特征的特征值、所述权限特征的特征值、所述组件特征的特征值、所述硬件特征的特征值、所述intent特征的特征值依次进行前后拼接,得到所述总体特征的特征向量。
[0024]可选地,步骤S4,具体包括:
[0025]建立包括由多个卷积层和多个池化层交替排列以及全连接层构成的卷积神经网络模型,所述全连接层设置有dropout方法以及SoftMax层,并将激活函数设置为ReLu函数或者Leaky ReLu函数;通过正态分布随机数方式对所述卷积神经网络模型的参数进行初始化。
[0026]可选地,所述通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数集,具体包括:
[0027]将每个所述支撑集分别划分为多个样本,通过所述样本对所述卷积神经网络模型进行前行传播,当各所述支撑集的每个样本完成前行传播时,得到所述卷积神经网络模型的更新参数集。
[0028]本申请第二方面提供一种安卓恶意应用的检测装置,所述装置包括:
[0029]采集单元,用于采集包括恶意应用和良性应用的安卓应用数据集,所述数据集由元训练集和元测试集组成,并将所述元训练集和所述元测试集均划分为多个任务,所述任务包括支撑集和查询集;
[0030]提取单元,用于对所述安卓应用进行反编译得到反编译文件,提取所述反编译文件的API包特征、权限特征、组件特征、硬件特征、intent特征和OpCode特征,得到所述安卓
应用的总体特征;
[0031]预处理单元,用于分别获取所述API包特征、所述权限特征、所述组件特征、所述硬件特征、所述intent特征和所述OpCode特征的特征值后并依次进行前后拼接,得到所述总体特征的特征向量;
[0032]建模单元,用于建立包括由多个卷积层和多个池化层交替排列以及全连接层构成的卷积神经网络模型,并对所述卷积神经网络模型的参数进行初始化;
[0033]训练单元,用于从所述多个任务中提取若干个任务得到批任务,通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数集,基于reptile算法,根据所述更新参数集计算得到所述批任务的平均损失梯度,通过所述平均损失梯度对所述卷积神经网络模型的参数进行更新;
[0034]分析单元,用于判断所述卷积神经网络模型是否达到预置训练次数,若否,触发所述训练单元,若是,通过所述元训练集对所述卷积神经网络模型进行元训练,得到所述安卓应用的检测模型,将所述元测试集的特征向量输入到所述检测模型进行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种安卓恶意应用的检测方法,其特征在于,包括:S1、采集包括恶意应用和良性应用的安卓应用数据集,所述数据集由元训练集和元测试集组成,并将所述元训练集和所述元测试集均划分为多个任务,所述任务包括支撑集和查询集;S2、对所述安卓应用进行反编译得到反编译文件,提取所述反编译文件的API包特征、权限特征、组件特征、硬件特征、intent特征和OpCode特征,得到所述安卓应用的总体特征;S3、分别获取所述API包特征、所述权限特征、所述组件特征、所述硬件特征、所述intent特征和所述OpCode特征的特征值后并依次进行前后拼接,得到所述总体特征的特征向量;S4、建立包括由多个卷积层和多个池化层交替排列以及全连接层构成的卷积神经网络模型,并对所述卷积神经网络模型的参数进行初始化;S5、从所述多个任务中提取若干个任务得到批任务,通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数集,基于reptile算法,根据所述更新参数集计算得到所述批任务的平均损失梯度,通过所述平均损失梯度对所述卷积神经网络模型的参数进行更新;S6、判断所述卷积神经网络模型是否达到预置训练次数,若否,返回步骤S5,若是,通过所述元训练集对所述卷积神经网络模型进行元训练,得到所述安卓应用的检测模型,将所述元测试集的特征向量输入到所述检测模型进行计算,得到所述安卓应用的分类结果。2.根据权利要求1所述的安卓恶意应用的检测方法,其特征在于,所述通过所述批任务中的每个任务的支撑集分别对所述卷积神经网络模型进行训练,得到所述卷积神经网络模型的更新参数,之后还包括:基于reptile算法,根据所述更新参数集分别计算所述批任务中的每个任务的损失梯度,分别根据所述损失梯度对所述卷积神经网络模型的参数进行更新后,通过每个任务对应的所述查询集对所述卷积神经网络模型进行分类准确率测试。3.根据权利要求1所述的安卓恶意应用的检测方法,其特征在于,步骤S2,具体包括:通过androguard反编译工具对所述安卓应用进行反编译得到反编译文件,对所述API包特征、所述权限特征、所述组件特征、所述硬件特征、所述intent特征的使用情况进行提取;并通过apktool反编译apk文件得到Dalivk指令集,对所述Dalivk指令集中反应程序语义的指令集进行提取,得到所述安卓应用的总体特征。4.根据权利要求1所述的安卓恶意应用的检测方法,其特征在于,步骤S3,具体包括:获取所述API包特征被所述安卓应用调用的次数,得到所述API包特征的特征值;获取所述权限特征的独立状态,得到所述权限特征的特征值;获取所述组件在所述安卓应用的数量值,得到所述组件特征的特征值;获取所述硬件特征被所述安卓应用调用的次数,得到所述硬件特征的特征值;获取所述intent特征在所述安卓应用出现的次数,得到所述intent特征的特征值;根据所述OpCode特征建立N-Gram模型,对所述反编译文件提取N-gram特征,得到所述OpCode特征的特征值;将所述API包特征的特征值、所述权限特征的特征值、所述组件特征的特征值、所述硬件特征的特征值、所述intent特征的特征值依次进行前后拼接,得到所述总体特征的特征
向量。5.根据权利要求1所述的安卓恶意应用的检测方法,其特征在于,步骤S4,具体包括:建立包括由多个卷积层和多个池化层交替排列以及全连接层构成的卷积神经网络模型,所述全连接层设置有dropout方法以及SoftMax层,并将激活函数设置为ReLu函数或者Leaky ReLu函数;通过正态分布随机数方式对所述卷积神经网络模型的参数进行初...

【专利技术属性】
技术研发人员:黄剑锋林华智苏庆刘添添李小妹
申请(专利权)人:广东工业大学
类型:发明
国别省市:

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

1