一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Android加壳恶意应用识别和分类的方法

2022-12-31 14:31:50 来源:中国专利 TAG:

一种android加壳恶意应用识别和分类的方法
技术领域
1.本发明涉及加壳恶意应用识别技术领域,为一种android加壳恶意应用识别和分类方法,具体是一种基于指纹特征库和分类映射库进行规则匹配来对android加壳恶意应用进行识别和分类的方法。


背景技术:

2.android加壳恶意应用:android恶意应用加壳技术是指通过对apk的加壳防护,提高逆向工作人员对apk分析的难度,进一步保护apk中的一些重要源码和文件信息。近年来android应用遭受的威胁逐渐增加,主要包括:反编译、二次打包、动态调试、hook、数据窃取、交易劫持等方面。与此同时android安全防护技术也在快速发展,主要分为静态防护技术和动态防护技术。其中静态防护技术最具代表就是android应用加壳技术,android应用加壳技术又分为dex加壳技术和so加壳技术。当前android恶意应用主要采用dex加壳防护技术,可以有效的对抗反病毒检测引擎,给用户和手机设备带来严重的危害。
3.android加壳恶意应用壳识别与分类:android恶意应用加壳主要是指通过dex加壳技术来规避平台的病毒检索引擎。其壳的识别和分类是对加壳技术的指纹识别并按相应的特性分类,主要任务是收集厂商的加壳指纹特征库和厂商的指纹分类映射库,主要任务是通过规则匹配的方式识别出android恶意应用中的加壳恶意应用,目的是对加壳恶意应用进行识别和分类。
4.近年来,android加壳恶意应用识别技术不断发展,当前主要分为基于熵值的壳识别、基于机器学习或深度学习的壳识别、基于指纹特征库的壳识别技术。其中基于熵值的壳识别技术不能很好的应对混淆技术对熵值的影响,基于机器学习的壳识别技术,虽然能很好的应对未知壳识别的问题,但是现有的机器学习的壳识别技术重点在于如何选取合适的特征,特征集的选择决定了壳识别的效率,而且并不能很好的应对混合加壳的识别问题。基于指纹特征库的识别技术虽然能解决混合加壳识别的问题,但是当前很多加壳应用指纹已经失效,而且也并未能为脱壳工作提供相应的解决方案。因此需要通过构建指纹特征库和指纹分类映射库的方式对android加壳恶意应用进行有效的处理,进而对android恶意应用的加壳恶意应用进行识别和分类,可以应对混合加壳的识别分类,还能提供相应的脱壳技术方案。


技术实现要素:

5.本发明所要解决的技术问题是提供一种android加壳恶意应用识别和分类方法,基于构建的指纹特征库和指纹分类映射库,可以在保证较高准确率的情况下,实现对android加壳恶意应用识别和分类的功能。技术方案如下:
6.一种android加壳恶意应用识别和分类方法,包括以下步骤:
7.步骤1:收集android加壳厂商、现有壳识别工具的加壳指纹特征,并进行手动逆向分析,得到加壳厂商的加壳指纹特征标签,进而构建指纹特征库;
8.步骤2:将android加壳恶意应用按加壳技术的特性归类,根据不同厂商的加壳服务的特点建立加壳指纹和加壳类别的映射关系,得到指纹分类映射标签,进而构建加壳指纹分类映射库;
9.步骤3:收集学术界和工业界主流的脱壳工具,针对分类出来的不同加壳方式的android加壳恶意应用,得出加壳厂商的恶意应用对应的脱壳工具标签,以提供脱壳方案;
10.步骤4:使用解包工具对android加壳恶意应用进行解包,提取相应的特征并和步骤1中的指纹特征库进行匹配,得到对应的加壳指纹特征标签,从而识别出android加壳恶意应用的加壳厂商类别以及混合加壳的类别;
11.步骤5:将步骤4中得到的加壳厂商类别与步骤2中构建的加壳指纹分类映射库进行匹配,得到android加壳恶意应用所属的加壳类别,实现对android加壳恶意应用的快速分类;
12.步骤6:针对步骤5中的分类结果,使用步骤3中收集的脱壳工具,为每一种android加壳恶意应用提供对应的脱壳方案。
13.进一步的,步骤2中加壳指纹分类映射库的构建具体包括:
14.步骤2.1:将android加壳应用的特性分为三类:第一代加壳技术——dex整体加壳、第二代加壳技术——dex函数抽取、第三代加壳技术——dex2c/vmp;
15.步骤2.2:调研不同的厂商主页中的加壳的方式;
16.步骤2.3:针对厂商主页上没有明确映射关系的,分析特定时间段内的android加壳恶意应用样本,并手动逆向分析壳的特征,得到厂商的加壳技术映射关系,以及不同厂商企业版和免费版之间加壳技术的区别,
17.步骤2.4:进一步统计出不同厂商的加壳方式和加壳类别的映射关系,构建加壳指纹分类映射库。
18.与现有技术相比,本发明的有益效果是:本发明基于构建的指纹特征库、指纹分类映射库和脱壳工具集,可有效地在android恶意应用中实现加壳恶意应用的识别与分类,可以针对混合加壳应用进行识别,还可以为android加壳恶意应用提供有效的脱壳方案。
附图说明
19.图1为本发明中android加壳恶意应用识别和分类的流程图。
20.图2为本发明中步骤2中android加壳技术的类别划分图。
具体实施方式
21.下面结合附图和具体实施方式对本发明作进一步详细的说明。
22.先收集android加壳恶意应用的加壳特征并构建加壳指纹特征库,然后统计不同加壳厂商的加壳类别对应关系,从而构建指纹分类映射库,最后通过android恶意应用解包程序对应用进行解包,并通过指纹特征库和分类映射库进行规则匹配,提出一种android加壳恶意应用识别和分类方法,流程图如图1所示,包括以下步骤:
23.步骤1:收集android加壳厂商、现有壳识别工具的加壳指纹特征,并进行手动逆向分析,得到加壳厂商的加壳指纹特征标签,从而构建指纹特征库。
24.从各种android加壳应用壳识别工具和加壳厂商指纹,并通过手动分析android加
壳应用指纹,最后可以从dex文件特征、so文件特征、elf文件特征三个层面构建了41家厂商51种类别的指纹特征库。
25.步骤2:将android加壳恶意应用按加壳技术的特性归类,如图2所示,根据不同厂商的加壳服务的特点建立加壳指纹和加壳类别的映射关系,得到指纹分类映射标签,从而构建加壳指纹分类映射库。
26.本发明分类的方法是构建android加壳恶意应用的指纹分类映射库实现,需要构建加壳厂商特征与加壳技术类别之间的映射关系。具体步骤为:
27.首先根据android加壳应用的特性去分为三类:第一代加壳技术——dex整体加壳、第二代加壳技术——dex函数抽取、第三代加壳技术——dex2c/vmp。然后去不同的厂商调研加壳的方式,这里很多厂商会在主页中有明确的加壳形式,例如顶象的加壳方式分为基础版、企业版。基础版只包含第一代加壳技术、企业版包含第一、二、三代加壳技术。
28.其次针对厂商主页上没有明确映射关系的,去分析近四年的android加壳恶意应用样本,并手动逆向分析壳的特征,选取了virusshare2019-2022年的android恶意样本各200份,通过人工逆向分析得到了厂商的加壳技术映射关系,以及不同厂商企业版和免费版之间加壳技术的区别。
29.最后进一步统计出不同厂商的加壳方式和加壳类别的映射关系,构建加壳指纹分类映射库。通过大量调研,厂商针对第二类和第三类单独加壳方式较少,而且由于第二、三的加壳方式并未在厂商中发现,最终指纹分类映射库中分为四个类别:第一代加壳、第一、二混合加壳、第一、三混合加壳、第一、二、三混合加壳。
30.步骤3:使用解包工具对android加壳恶意应用进行解包,提取相应的特征并和步骤1中的指纹特征库进行匹配,得到对应的壳指纹标签,从而识别出android加壳恶意应用的加壳厂商类别以及混合加壳的类别。
31.获得指纹分类映射库后,本发明收集了学术界和工业界主流的脱壳工具,可以针对分类出来的不同加壳方式的android恶意应用,提供合适的脱壳方案。
32.步骤4:使用解包工具对android加壳恶意应用进行解包,提取相应的特征并和步骤1中的指纹特征库进行匹配,得到对应的壳指纹标签,从而识别出android加壳恶意应用的加壳厂商类别以及混合加壳的类别。
33.本发明采用的是指纹特征匹配的方法,为了提高android加壳恶意应用壳识别的效率,本实施例收集并构建了41家厂商51种类别的指纹特征库,可以更加准确的识别壳的厂商种类。
34.为了进一步验证android恶意应用的壳识别方法的准确性,本实施例收集了virusshare上2016-2022共286097个android恶意应用的数据集,并使用该方法和其他工具对数据集进行相应处理,最后不断优化识别的准确率。
35.步骤5:将步骤4中得到的加壳厂商类别与步骤2中构建的加壳指纹分类映射库进行匹配,得到android加壳恶意应用所属的加壳类别,实现对android加壳恶意应用的快速分类。
36.本实施例通过对步骤4得到的android加壳恶意应用的厂商类别结果,然后使用步骤2中的指纹分类特征库进行处理,可以将android加壳恶意应用进行快速的分类。然后在每种类别的加壳恶意应用中随机抽取50个样本,并进行人工的分析,进一步去验证分类的
准确率。
37.步骤6:最后针对步骤5中的分类结果,然后使用步骤3中收集的脱壳工具,就可以快速为每一种android加壳恶意应用提供合适的脱壳方案。
38.具体而言,假设本发明输入序列为s=[s1,...,sn],其中sn是第n个android恶意应用的输入向量,通过步骤4就可以得到输入序列s。
[0039]
l=[l1,...,ln]是加壳厂商的加壳指纹标签,其中,ln是第n家厂商的加壳指纹特征标签,通过步骤1就可以得到指纹特征标签序列l。
[0040]
w=[w1,...,wn]是加壳厂商的指纹分类映射标签,其中,wn是第n家厂商的指纹分类映射标签,通过步骤2就可以获得指纹分类映射标签序列w。
[0041]
v=[v1,...,vn]是加壳厂商的恶意应用对应的脱壳工具标签,其中,vn是第n家加壳厂商的恶意应用对应的脱壳工具标签,可以通过步骤3获得。
[0042]
步骤4中首先使用解包工具对输入序列s进行处理,然后使用指纹特征标签l对提取的指纹进行规则匹配,就可以得到si所对应的加壳指纹标签li。这样就可以快速精确的识别android加壳恶意应用的加壳厂商类别。其中,si和li各自代表步骤4中的输入和输出两个标签。
[0043]
步骤5中使用指纹分类映射标签w对输入序列l进行处理,就可以得到li对应的指纹分类映射标签wi。这样就可以快速的对android加壳恶意应用进行分类。其中li和wi各自代表步骤5中的输入和输出两个标签。
[0044]
步骤6中使用脱壳工具标签对v输入序列w进行处理,就可以得到wi对应的脱壳工具标签vi。这样就可以为android加壳恶意应用提供合适的脱壳方案。其中wi和vi各自代表步骤5中的输入和输出两个标签。
[0045]
最终可以通过如上步骤实现对android加壳恶意应用壳的识别和分类。
[0046]
本发明方法所述的android加壳恶意应用识别和分类的方法通过构建了指纹特征库、指纹分类映射库、脱壳工具集,可以实现对android加壳恶意应用快速的识别和分类,可以解决混合加壳识别的问题,还可以为android加壳恶意应用提供有效的脱壳方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献