一种样本检测方法及装置制造方法及图纸

技术编号:19023743 阅读:29 留言:0更新日期:2018-09-26 19:09
本发明专利技术公开了一种样本检测方法及装置,通过获取待检测样本dex文件中预定义特征值是否满足预设规则来判断样本是否为自定义加壳样本或框架自动生成样本,本发明专利技术的特征为dex文件中用于描述文件数据结构的参数,此参数仅与文件本身有关,由于特征参数位于文件中的固定位置,可以定点精确取值,因此检测效率高;本发明专利技术的预定义规则可以检出所有文件结构一致的样本,优于检测包名等通过具体字符串来聚类的方法,检测启发性高。

【技术实现步骤摘要】
一种样本检测方法及装置
本专利技术涉及信息安全
,尤其涉及一种恶意样本检测方法及装置。
技术介绍
移动互联网近几年的迅猛发展,带来的是平台安全问题的与日俱增。尤以Android平台最为突出,其生态圈繁荣的表象之下,是潜藏着的以巨额利益为驱动的黑色产业链。目前有两类样本的检测比较困难:一、加壳样本是当前比较棘手的待分析样本,它可以隐藏恶意应用的程序结构和关键代码,从而给分析人员的静态分析工作造成巨大困扰,同时由于壳本身往往不具备高价值信息,导致无法提取高启发性的规则以供反病毒引擎批量化检出。目前,主要从包名、AndroidManifest文件中的特征字符串以及结合当前应用的四大组件(Activity、BroadcastReceiver、Service、ContentProvider)的数目等方法来提取加壳样本的检测规则。比普通加壳样本更严峻是,勒索件、色情件等恶意应用中越来越喜欢使用自定义加壳(包括机器批量随机加壳)的情况,这些应用加壳后的包名、类名、AndroidManifest文件等都是随机字符串,因此采用特定包名、AndroidManifest文件中的特征字符串的检测方法已基本无效,而单独使用四大组件数目的方法,其误报率极高。因此,现有的针对普通加壳样本的检测方法已完全不能适用于自定义加壳的情况。二、Android应用自动生成框架是一类可以自动化生成Android应用程序结构和相应代码的机制。使用者只需将一些特定参量作为框架的输入,就可以得到由框架自动生成的Android应用程序。同一种框架自动生成的应用可能具有不同的包名、类名以及字符串,但是其结构是一致的。应予以严重警惕的是,在这些应用程序自动生成框架中,有一类是专门用来生成病毒文件的,尤以后门等间谍类应用最为常见。这些应用有些会直接生成随机的包名、类名或AndroidManifest文件中的字符串,有些会在后期将包名、类名等混淆,导致即使是由同一种框架生成的一批病毒样本,其上述特征量也彼此不同。因此,传统的采用字符串作为规则的检测方法已不再适用于检出这类样本。
技术实现思路
针对上述问题,实有必要提出一种新的样本检测方法及装置,能适用于自定义加壳样本或框架自动生成样本的检测,具有启发性高且误报率低的特点。为了实现上述目的,本专利技术公开了一种样本检测方法,包括以下步骤:获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数;当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配时,判断样本为框架自动生成样本。进一步的,获取待检测样本dex文件中预定义特征值的方法包括从待检测样本文件的dex文件头中提取预定义特征值。进一步的,从待检测样本文件的dex文件头中提取预定义特征值的方法包括:以字节流读取dex文件,按照dex文件头的指定格式从文件头字节序列中按指定字节偏移值提取子序列的值。进一步的,所述预定义特征包括主特征和辅特征,预设第一规则和/或第二规则为当主特征值满足要求时,再判断辅特征值是否满足要求。进一步的,所述主特征为定义的类的总数,所述辅特征包括字符串表中的字符串、类型表中类型、方法原型表中的方法原型、字段表中的字段、dex文件中的方法中的至少一种。进一步的,当辅特征存在多个时,每个辅特征值均满足要求才判断样本为自定义加壳样本。相应的,本专利技术还公开了一种样本检测装置,包括:特征获取模块,用于获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数;判断模块,用于当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配时,判断样本为框架自动生成样本。进一步的,所述特征获取模块获取待检测样本dex文件中预定义特征值的方法包括从待检测样本文件的dex文件头中提取预定义特征值。进一步的,从待检测样本文件的dex文件头中提取预定义特征值的方法包括:以字节流读取dex文件,按照dex文件头的指定格式从文件头字节序列中按指定字节偏移值提取子序列的值。进一步的,所述预定义特征包括主特征和辅特征,预设第一规则和/或第二规则为当主特征值满足要求时,再判断辅特征值是否满足要求。进一步的,所述主特征为定义的类,所述辅特征包括字符串表中的字符串、类型表中类型、方法原型表中的方法原型、字段表中的字段、dex文件中的方法中的至少一种。进一步的,所述判断模块还用于当辅特征存在多个时,每个辅特征值均满足要求才判断样本为自定义加壳样本。本专利技术较现有技术的有益效果在于:本专利技术基于自定义加壳样本、框架自动生成样本的特点及大数据统计分析的结果,通过获取待检测样本dex文件中预定义特征值是否满足预设规则来判断样本是否为自定义加壳样本或框架自动生成样本,本专利技术的特征为dex文件中用于描述文件数据结构的参数,此参数仅与文件本身有关,由于特征参数位于文件中的固定位置,可以定点精确取值,因此检测效率高;本专利技术的预定义规则可以检出所有文件结构一致的样本,优于检测包名等通过具体字符串来聚类的方法,检测启发性高。附图说明图1为本专利技术一种样本的检测方法的流程图。图2为本专利技术一种样本的检测装置的结构示意图。具体实施方式本专利技术是基于自定义加壳样本的特点及大数据统计分析的结果创造而来,为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。本专利技术中的步骤虽然用标号进行了排列,但并不用于限定步骤的先后次序,除非明确说明了步骤的次序或者某步骤的执行需要其他步骤作为基础,否则步骤的相对次序是可以调整的。实施例1:如图1所示,一种样本检测方法,包括以下步骤:S100,获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数。表1示出了一些与文件数据结构相关的特征,不同于加壳样本的包名、AndroidManifest文件中的特征字符串等会自定义随机生成,在dex文件中用于描述文件数据结构的这些特征(class、method、field等)是固定不变的。本实施例以这些预定义特征为例进行说明,实际检测过程不限于这些特征。表1特征特征中文释义string字符串表中的字符串type类型表中类型proto方法原型表中的方法原型field字段表中的字段methoddex文件中的方法classdex文件中定义的类为了获取上述特征,可以遍历dex文件,统计各特征值。当然,为了提高效率,结合dex文件头的结构特点,还可以直接从待检测样本文件的dex文件头中提取预定义特征值。由于特征参数位于文件中的固定位置,可以定点精确取值,因此检测效率高。表2示出了dex头文件的结构,结合表2所示,以字节流读取dex文件,按照dex文件头的指定格式从文件头字节序列中按指定字节偏移值提取子序列的值,该指定子序列的值即为所需特征值。例如,在偏移值为0x38的地址取出字段string_ids_size的值,该值即为字符串表中的字符串的数量;在偏移值为0x60的地址取出字段class_defs_size的值,该值即为dex文件中定义的类的数量。S200,当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配时,判断本文档来自技高网
...

【技术保护点】
1.一种样本检测方法,其特征在于,包括以下步骤:获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数;当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配时,判断样本为框架自动生成样本。

【技术特征摘要】
1.一种样本检测方法,其特征在于,包括以下步骤:获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数;当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配时,判断样本为框架自动生成样本。2.如权利要求1所述的检测方法,其特征在于,获取待检测样本dex文件中预定义特征值的方法包括从待检测样本文件的dex文件头中提取预定义特征值。3.如权利要求1所述的检测方法,其特征在于,所述预定义特征包括主特征和辅特征,预设第一规则和/或第二规则为当主特征值满足要求时,再判断辅特征值是否满足要求。4.如权利要求3所述的检测方法,其特征在于,当辅特征存在多个时,每个辅特征值均满足要求才判断样本为自定义加壳样本。5.一种样本检测装置,其特征在于,包括:特征获取模块,用于获取待检测样本dex文件中预定义特征值,所述特征为用于描述文件数据结构的参数;判断模块,用于当样本的特征值与第一预设规则进行匹配时,判断样本为自定义加壳样本;当样本的特征值与第二预设规则进行匹配...

【专利技术属性】
技术研发人员:高坤张耕毓刘宇豪马志远
申请(专利权)人:武汉安天信息技术有限责任公司
类型:发明
国别省市:湖北,42

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

1