一种安卓应用程序的加壳识别方法技术

技术编号:19263761 阅读:39 留言:0更新日期:2018-10-27 02:32
本发明专利技术涉及一种安卓应用程序的加壳识别方法,包括从已标记的APK文件中提取应用特征,构建样本集,其中,所述已标记的APK文件包括标记为加固的APK文件和标记为未加固的APK文件;将所述样本集划分为训练集和测试集;根据所述样本集和测试集训练预设分类器,选择最优分类器;将待检测的APK文件输入所述最优分类器来识别其是否加壳。本发明专利技术采用静态方式提取特征,利用机器学习模型对安卓应用程序进行加壳识别,提高了加壳识别的效率和准确率。

A method of hull recognition for Android application

The invention relates to a shell identification method for an Android application program, which comprises extracting application features from a marked APK file and constructing a sample set, wherein the marked APK file includes a marked strengthened APK file and an unpacked APK file, and the sample set is divided into a training set and a test set according to the labeled APK file. The sample set and test set train the preset classifier and select the optimal classifier, and input the APK file to be detected into the optimal classifier to identify whether it is hulled or not. The invention adopts static mode to extract features, uses machine learning model to shell Android application program, and improves the efficiency and accuracy of shell recognition.

【技术实现步骤摘要】
一种安卓应用程序的加壳识别方法
本专利技术涉及计算机
,尤其涉及一种安卓应用程序的加壳识别方法。
技术介绍
近年来,安卓(Android)操作系统的设备,出货量大,市场份额占比高,安卓系统占据着移动市场的统治级地位。然而,安卓系统在自身架构、架构的安全机制以及平台的运营模式方面均存在不足,而且这些不足一旦被攻击者利用,用户的利益将受到侵害,因此,安卓平台日益严重的安全问题,使得恶意软件研究成为当务之急。但是,随着当前安卓加固行业的发展,恶意应用(应用程序,可简称为“应用”)也逐渐使用加固手段来避免检测,因此,在进行恶意应用分析之前,识别应用程序是否加固,成为必要的步骤。如图1所示,当进行批量应用程序分析时,可先对应用程序进行分类,分为加固应用和未加固应用,对加固应用进行脱壳处理,再进行恶意软件分析。现有的加壳识别方法主要包括指纹匹配方法和动态脱壳方法,但是,指纹匹配方法扩展性不强,动态脱壳实现复杂,需要运行应用才能判断,识别效率低。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种安卓应用程序的加壳识别方法,采用静态方式提取特征,利用机器学习模型对安卓应用程序进行加壳识别,提高了加壳识别的效率和准确率。为了解决上述技术问题,本专利技术提供了一种应用程序的加壳识别方法,包括:从已标记的APK文件中提取应用特征,构建样本集,其中,所述已标记的APK文件包括标记为加固的APK文件和标记为未加固的APK文件;将所述样本集划分为训练集和测试集;根据所述样本集和测试集训练预设分类器,选择最优分类器;将待检测的APK文件输入所述最优分类器来识别其是否加壳。进一步的,所述从已标记的APK文件中提取应用特征,包括以下步骤:采用静态分析的方法从已标记的APK文件中提取应用特征。进一步的,所述应用特征包括主程序、DEX比重和APK信息熵。进一步的,所述方法还包括,搭建MapReduce架构的分类集群,计算所述APK信息熵。进一步的,所述将所述样本集划分为训练集和测试集,包括以下步骤:采用随机抽取的方式,将所述样本集划分为训练集和测试集,所述训练集和测试集的比例分别为75%和25%。进一步的,所述根据所述样本集和测试集训练预设分类器,选择最优分类器,包括以下步骤:根据所述样本集和测试集训练预设分类器;采用十折交叉验证方法选出最优分类器。进一步的,所述采用十折交叉验证方法选出最优分类器,包括以下步骤:采用十折交叉验证方法选出每种预设分类器的最优预设分类器,再从所有所述最优预设分类其中选择出最优分类器;或者,采用十折交叉验证方法训练所有的预设分类器,并从中选出最优分类器。进一步的,所述预设分类器包括贝叶斯分类器、J48决策树分类器、K近邻分类器、随机森林分类器、MLP分类器、SVM分类器中的一种或多种。根据本专利技术又一方面,提供一种控制器,其包括存储器与处理器,所述存储器存储有计算机程序,所述程序在被所述处理器执行时能够实现所述方法的步骤。根据本专利技术又一方面,提供一种计算机可读存储介质,用于存储计算机指令,所述指令在由一计算机或处理器执行时实现所述方法的步骤。本专利技术与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本专利技术一种安卓应用程序的加壳识别方法可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:(1)本专利技术采用静态方式提取应用特征,利用机器学习模型对安卓应用程序进行加壳识别,提高了安卓应用程序加壳识别的效率和准确率。(2)本专利技术可以有效地从海量安卓应用程序中筛选出加壳应用程序,适用于安卓恶意应用检测时脱壳前的预处理,且采用静态分析的方式,使本专利技术所述方法简单高效,便于实施操作。(3)本专利技术采用十折交叉验证方法从预设的分类器中选择出最优分类器,进一步提高了所述方法的效率和准确率。(4)本专利技术采用MapReduce架构计算信息上,将耗时的熵计算过程分而治之,达到并行的效果,从而提高系统整体可扩展性和吞吐量,从而高了为提高信息熵计算的速度,进而提高了所述方法的识别效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。附图说明图1为恶意程序分析基本流程示意图;图2为本专利技术一实施例提供安卓应用程序的加壳识别方法示意图;图3为本专利技术一实施例提供信息熵计算示意图;图4为本专利技术一实施例提供的安卓应用程序的加壳识别过程示意图。具体实施方式为更进一步阐述本专利技术为达成预定专利技术目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本专利技术提出的一种安卓应用程序的加壳识别方法的具体实施方式及其功效,详细说明如后。如图1所示,本专利技术实施例提供了一种应用程序的加壳识别方法,包括:步骤S1、从已标记的APK文件中提取应用特征,构建样本集,其中,所述已标记的APK文件包括标记为加固的APK文件和标记为未加固的APK文件;其中,APK全称为AndroidPackage的缩写,即安卓安装包。安卓恶意应用检测主要采用两种方法,即静态分析和动态分析。静态分析是指通过分析程序代码来判断程序行为;动态分析是指在严格控制的环境下执行应用程序,尽可能的触发软件的全部行为并记录,以检测应用程序是否包含恶意行为。由于动态分析在效率相对较低,因此静态分析成为主要的安卓恶意应用检测分析手段。相应的,所述步骤S1中,也可采用静态分析的方法从已标记的APK文件中提取应用特征,采用静态分析的方法,简单高效,便于实施操作,从而提升了所述方法的识别效率。普通应用(即未加壳应用)的主程序类一般空缺应用程序名称(applicationname)属性,而加壳程序会定制应用程序(Application),从而实现壳程序加载。一般加壳程序会将Dex文件的内容抽离后加密,存储到单独文件,因此,加壳程序的Dex比重较低;由于加壳程序会抽取Dex文件中的内容,并且加密后单独存储,而加密后的APK文件信息熵较高。基于上述分析,应用特征可包括主程序、DEX比重和APK信息熵,其中DEX指可执文件,应用特征的具体说明见表1:表1信息熵计算公式为pi为信源取第i个符号的概率,其中,i=1,2,3...n,n为信源个数。pi可通过步骤S11求得:步骤S11、通过搭建MapReduce架构的分类集群,计算所述样本中的APK信息熵。采用MapReduce思想,将耗时的熵计算过程分而治之,达到并行的效果,如图3所示,通过步骤S11可提高信息熵计算的速度,从而提高系统整体可扩展性和吞吐量。步骤S2、将所述样本集划分为训练集和测试集;作为一种示例,步骤S2包括包括以下步骤:采用随机抽取的方式,将所述样本集划分为训练集和测试集,所述训练集和测试集的比例分别为75%和25%,需要说明的是,该训练集和测试集的比例仅为一种示例,实际应用中可适应性调整。本专利技术示例中,可直接基于十折交叉的验证方式来划分样本集,为后续十折交叉的验证做准备。步骤S3、根据所述样本集和测试集训练预设分类器,计算预设分类器最终的准确率,选择最优分类器;作为一种示例,步骤S3可包括以下步骤:步骤S31、根据所述样本集和测试集训练预设分类器,其中,预设分类器可本文档来自技高网...

【技术保护点】
1.一种应用程序的加壳识别方法,其特征在于:包括:从已标记的APK文件中提取应用特征,构建样本集,其中,所述已标记的APK文件包括标记为加固的APK文件和标记为未加固的APK文件;将所述样本集划分为训练集和测试集;根据所述样本集和测试集训练预设分类器,选择最优分类器;将待检测的APK文件输入所述最优分类器来识别其是否加壳。

【技术特征摘要】
1.一种应用程序的加壳识别方法,其特征在于:包括:从已标记的APK文件中提取应用特征,构建样本集,其中,所述已标记的APK文件包括标记为加固的APK文件和标记为未加固的APK文件;将所述样本集划分为训练集和测试集;根据所述样本集和测试集训练预设分类器,选择最优分类器;将待检测的APK文件输入所述最优分类器来识别其是否加壳。2.根据权利要求1所述的应用程序的加壳识别方法,其特征在于:所述从已标记的APK文件中提取应用特征,包括以下步骤:采用静态分析的方法从已标记的APK文件中提取应用特征。3.根据权利要求1所述的应用程序的加壳识别方法,其特征在于:所述应用特征包括主程序、DEX比重和APK信息熵。4.根据权利要求3所述的应用程序的加壳识别方法,其特征在于:所述方法还包括,搭建MapReduce架构的分类集群,计算所述APK信息熵。5.根据权利要求1所述的应用程序的加壳识别方法,其特征在于:所述将所述样本集划分为训练集和测试集,包括以下步骤:采用随机抽取的方式,将所述样本集划分为训练集和测试集,所述训练集和测试集的比例分别为75%和25%。6.根据权利要求1所...

【专利技术属性】
技术研发人员:王适文何能强严寒冰孙才俊秦素娟张华丁丽李佳狄少嘉徐原何世平温森浩李志辉姚力张洪朱芸茜郭晶朱天高胜胡俊王小群张腾李挺陈阳李世淙徐剑吕利锋党向磊刘婧饶毓张帅贾子骁肖崇蕙吕志泉韩志辉马莉雅雷君周彧高川周昊楼书逸文静贾世琳
申请(专利权)人:国家计算机网络与信息安全管理中心中时瑞安北京网络科技有限责任公司
类型:发明
国别省市:北京,11

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

1