一种恶意程序识别系统的制作方法

文档序号:12669973阅读:360来源:国知局
一种恶意程序识别系统的制作方法与工艺

本发明属于计算机安全检测技术领域,具体涉及一种基于时态性质检测的自进化恶意程序识别系统。



背景技术:

随着信息技术的日益发展与计算机的普及,从个人计算机、智能手机,到各种智能家居产品,越来越多的计算设备出现在人们的身旁。计算机在为人类提供了诸多便利,极大提高社会运转效率的同时,也带来了许多的安全性问题。其中绝大部分的问题源自于的恶意程序的传播与执行。常见的恶意程序有病毒、蠕虫、木马、后台程序,它们能够对计算机系统进行控制、信息窃取乃至破坏,并能进行自动复制传播,这极大地危害了广大计算机用户的隐私安全,财产安全,乃至影响到社会、国家的安全。

传统的恶意程序检测主要通过对恶意程序进行扫描,识别其中所包含的特定二进制特征序列,从而判断程序是否为恶意程序。例如,中国专利申请号为201610134408.7的发明专利申请,公开了一种嵌入式处理器的未知恶意代码检测方法,包括创建嵌入式系统自体集、生成检测器集、检测未知恶意代码的步骤;在处理器指令级对系统内正常程序的指令序列信息进行采集编码生成二进制串集合作为自体集,随机生成二进制串作为候选检测器,并将其与自体集中的元素进行否定选择生成检测器集;利用检测器集里的二进制串与从指令级收集到的待检测代码的行为信息二进制串进行匹配;采用双阈值的海民规则进行自体集的二进制串、检测器二进制串以及待检测二进制串之间的模糊匹配,以提高对未知恶意代码的检测率,降低检测系统的资源消耗。

这种检测方法,虽然具有检测速度快的特点,但需要不断更新特征数据库来维持对恶意程序的识别能力,具有滞后性。

另外,随着恶意程序种自修改、死代码插入等各种混淆技术的采用,这种传统检测方法常常会失效。面对恶意程序不断变异的形势,传统恶意程序检测程序常处于被动防御的地位。

模型检测技术的提出,起初用于检查软件模型是否满足需求文档中所描述的性质,若以恶意行为特征作为待验证的性质,自然也可以将模型检测应用于恶意程序的检测。例如,中国专利申请号为200810089576.4的发明专利申请,公开了一种基于语义的恶意代码检测方法,该发明方法包含a)获得已知恶意代码的有穷状态自动机;b)获得待检测的二进制可疑程序的下推自动机;c)使用模型检验方法检测所述的下推自动机和所述有穷状态自动机之间是否存在可以同时被两者接收的输入字符串,若是,则判定上述待检测的可疑程序为恶意程序。

时态性质检测是模型检测技术的一个分支,其主要关注于模型中是否具备时间相关的性质,可以描述一定的时序关系,而通常在恶意程序中,为了完成某类恶意行为,必定具备按照某种顺序执行指令操作的性质,因而,可以引入时态逻辑进行描述,自然,就可以进行性质的验证。目前,随着研究领域的发展,需要研究更多的自动时态性质挖掘方法。



技术实现要素:

针对传统的恶意程序特征序列检测方法,结合模型检测技术,本发明提出了一种基于时态性质检测的自进化恶意程序识别系统。通过二进制分析工具,对程序样本进行递归下降法的反汇编,破除指令重叠、自修改等混淆技术的影响,并生成相应的程序模型,在此基础上,进行时态性质挖掘、筛选与采集,构建出初始的恶意程序时态性质数据库,在之后的恶意程序识别过程中,只需对待识别程序进行性质验证,从而判断程序是否具备恶意性质。并能够以之作为新样本进行性质采集,以扩充恶意程序时态性质数据库,自动地完成系统恶意程序检测能力的增强。

具体的,本发明提供了一种恶意程序识别系统,所述系统包括以下模块:

训练模块:用于根据样本程序,构建恶意程序性质数据库;

识别模块:用于采用模型检测方法对待识别程序进行性质验证,判断是否为恶意程序。

优选的,所述训练模块通过对所述样本程序进行自动的时态性质挖掘,并通过对比正常程序样本与恶意程序样本的性质,筛选出恶意程序所特有的部分,从而建立所述恶意程序性质数据库。

优选的,所述识别模块在所述恶意程序性质数据库的基础上,对待识别的目标程序进行性质验证,根据目标程序是否具备恶意程序性质来判断目标程序是否为恶意程序。

优选的,所述系统具备以下两个数据库:正常程序时态性质数据库,存储正常程序样本挖掘所得的性质;恶意程序时态性质数据库,存储恶意程序样本挖掘所得的性质。

优选的,所述恶意程序识别系统具备自进化能力,在使用过程中,根据判断结果,将已测试程序进行标注,放入训练模块中处理,以进行时态性质数据库的扩充。

更优选的,所述训练模块包括如下组成单元:

控制流图生成单元,用于从样本程序库中读取一个已知恶意与否的样本程序,采用IDA Pro使用递归下降法对该样本程序的目标代码进行反汇编、库函数调用识别,相应控制流图的生成;

转换单元,用于将样本程序的控制流图转换为迁移系统模型;

时态性质挖掘单元,用于在迁移系统模型上运行时态性质挖掘算法,以一些常见的时态性质为模板,挖掘指令路径中存在的时态性质;

时态性质存储单元,用于根据所述样本程序是否为恶意程序,将挖掘到的时态性质分别存入正常程序时态性质数据库与恶意程序时态性质数据库;

判断单元,用于判断样本程序库中是否还有程序样本;

筛选及更新单元,用于对比正常程序性质数据库与恶意程序性质数据库中的性质,筛选出那些仅属于恶意程序数据的性质,更新恶意程序性质数据库。

更优选的,所述控制流图生成单元、转换单元、时态性质挖掘单元、时态性质存储单元、判断单元依次连接,所述判断单元还连接控制流图生成单元和筛选及更新单元。

优选的,所述识别模块中包括以下组成单元:

流图构建单元,用于读取待识别程序,对待识别程序的目标代码进行反汇编、库函数识别以及控制流图的生成;

流图转换单元,用于将待识别程序的控制流图转换为迁移系统模型;

检测单元,用于使用时态逻辑模型检查器检查迁移系统模型中是否具有恶意程序性质数据库中的时态性质;

判定单元,用于判断迁移系统模型是否具备某项恶意程序性质;如果迁移系统模型具备某项恶意程序性质,就输出结果,表示其具备恶意特征,否则,则认定为正常程序。

更优选的,所述流图构建单元、流图转换单元、检测单元、判定单元依次连接。

本发明的有益效果如下:本发明可以有效识别恶意程序,同时可以将运行过程中识别出来的程序作为样本进行进一步的性质挖掘,以更新扩充恶意程序性质数据库,从而自动地逐步增强系统的恶意程序识别能力。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明的一种基于时态性质检测的自进化恶意程序识别系统构成示意图;

图2是本发明的训练模块的结构示意图;

图3是本发明的训练模块的工作流程图;

图4是本发明的识别模块的结构示意图;

图5是本发明的识别模块的工作流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,本发明公开一种基于时态性质检测的自进化恶意程序识别系统100,所述系统包括以下模块:

训练模块110,用于根据样本程序构建恶意程序性质数据库。训练模块110通过对样本程序进行自动的时态性质挖掘,并通过对比正常程序样本与恶意程序样本的性质,筛选出恶意程序所特有的部分,从而建立恶意程序性质数据库。例如,所述恶意程序所特有的部分可以是恶意程序中所包含的特定二进制特征序列。

识别模块120,用于采用模型检测方法对待识别程序进行性质验证,判断是否为恶意程序。识别模块120在训练模块得出的所述恶意程序性质数据库的基础上,对待识别的目标程序进行性质验证,根据目标程序是否具备恶意程序性质来判断目标程序是否为恶意程序。

本发明所述恶意程序识别系统,具备自进化能力:在使用过程中,根据判断结果,将已测试程序进行标注,放入训练模块中,以进行时态性质数据库的扩充。优选的,根据本发明的一个优选实施例,所述系统还具备以下两个数据库:正常程序时态性质数据库130(DB1):存储正常程序样本挖掘所得的性质;恶意程序时态性质数据库140(DB2):存储恶意程序样本挖掘所得的性质。恶意程序识别系统还可以将运行过程中识别出来的程序作为样本进行进一步的性质挖掘,以更新扩充恶意程序性质数据库,从而自动地逐步增强系统的恶意程序识别能力。

如图2所示,本发明中的所述训练模块110中包括以下组成单元:

控制流图生成单元111,用于从样本程序库中读取一个样本程序,即一个已知恶意与否的程序,采用IDA Pro使用递归下降法对该样本程序的目标代码进行反汇编、库函数调用识别,相应控制流图的生成;该单元的目的是破除指令重叠、自修改等混淆技术的影响。

IDA Pro,是交互式反汇编器专业版(Interactive Disassembler Professional)的简称,或简称为IDA,是一个基于控制台的MS-DOS应用程序。

IDA是一种递归下降反汇编器。但是,为了提高递归下降过程的效率,IDA在区分数据与代码的同时,还设法确定这些数据的类型。虽然在IDA中看到的是汇编语言形式的代码,但IDA的主要目标之一,在于呈现尽可能接近源代码的代码。此外,IDA不仅使用数据类型信息,而且通过派生的变量和函数名称来尽其所能地注释生成的反汇编代码。这些注释将原始十六进制代码的数量减到最少,并显著增加了向用户提供的符号化信息的数量。

转换单元112,用于将样本程序的控制流图转换为迁移系统模型。

时态性质挖掘单元113,用于在迁移系统模型上运行时态性质挖掘算法,以一些常见的时态性质为模板,挖掘指令路径中存在的时态性质。

时态性质存储单元114,用于根据所述样本程序是否为恶意程序,将挖掘到的时态性质分别存入正常程序时态性质数据库与恶意程序时态性质数据库。

判断单元115,用于判断样本程序库中是否还有程序样本。所述判断单元连接控制流图生成单元111和筛选及更新单元116。

筛选及更新单元116,用于对比正常程序性质数据库DB1与恶意程序性质数据库DB2中的性质,筛选出那些仅属于恶意程序数据的性质,更新恶意程序性质数据库DB2,即将DB2内容更新为DB2-DB1的差集。

如图3所示,本发明中的所述训练模块的工作方法包括如下步骤:

步骤A1:从样本程序库中读取一个样本程序,即一个已知恶意与否的程序,采用IDA Pro使用递归下降法对该样本程序的目标代码进行反汇编、库函数调用识别,相应控制流图的生成;该步骤的目的是破除指令重叠、自修改等混淆技术的影响。

步骤A2:将样本程序的控制流图转换为迁移系统模型;

步骤A3:在迁移系统模型上运行时态性质挖掘算法,以一些常见的时态性质为模板,挖掘指令路径中存在的时态性质;

步骤A4:根据所述样本程序是否为恶意程序,将挖掘到的时态性质分别存入正常程序时态性质数据库与恶意程序时态性质数据库;

步骤A5:若样本程序库中不再具备程序样本,则跳到下一步骤A6,否则回到步骤A1;

步骤A6:对比正常程序性质数据库DB1与恶意程序性质数据库DB2中的性质,筛选出那些仅属于恶意程序数据的性质,更新恶意程序性质数据库DB2,即将DB2内容更新为DB2-DB1的差集。

如图4所示,本发明中的所述识别模块120中包括以下组成单元:

流图构建单元121,用于读取待识别程序,对待识别程序的目标代码进行反汇编、库函数识别以及控制流图的生成。

流图转换单元122,用于将待识别程序的控制流图转换为迁移系统模型。

检测单元123,用于使用时态逻辑模型检查器检查迁移系统模型中是否具有恶意程序性质数据库DB2中的时态性质。

判定单元124,用于判断迁移系统模型是否具备某项恶意程序性质。如果迁移系统模型具备某项恶意程序性质,就输出结果,表示其具备恶意特征,否则,则认定为正常程序。

如图5所示,本发明中的所述识别模块的工作方法包括如下步骤:

步骤B1:读取待识别程序,对待识别程序的目标代码进行反汇编、库函数识别以及控制流图的生成;

步骤B2:将待识别程序的控制流图转换为迁移系统模型;

步骤B3:使用时态逻辑模型检查器检查迁移系统模型中是否具有恶意程序性质数据库DB2中的时态性质;

步骤B4:如果迁移系统模型具备某项恶意程序性质,就输出结果,表示其具备恶意特征,否则,则认定为正常程序。

本发明通过二进制分析工具IDA Pro,对程序样本进行递归下降法的反汇编,破除指令重叠、自修改等混淆技术的影响,并生成相应的程序模型,在此基础上,进行时态性质挖掘、筛选与采集,构建出初始的恶意程序时态性质数据库,在之后的恶意程序识别过程中,对待识别程序进行性质验证,从而判断程序是否具备恶意性质。并能够以之作为新样本进行性质采集,以扩充恶意程序时态性质数据库,自动地完成系统恶意程序检测能力的增强。

需要说明的是:

在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1