实时多引擎选择和组合的制作方法

文档序号:6435321阅读:133来源:国知局

专利名称::实时多引擎选择和组合的制作方法
技术领域
:本发明涉及实时多引擎选择和组合。
背景技术
:分类引擎可用于许多不同的分类设定中,包括但不限于恶意软件(malware)、垃圾邮件(spam)、网站、和图像分类。例如,在恶意软件的上下文中,运行多个而不是一个反恶意软件引擎可以极大提升标识恶意软件的精确度。然而,应用若干引擎可能降低实时应用的性能,因为这些应用受到可用资源量的限制。这显著降低了直接方案的价值。而且,在一组分类引擎中选择出表现最好的单一软件引擎是许多应用中的共同问题。
发明内容下面提供了简明的
发明内容,以便提供对本文所描述的一些新颖实施例的基本理解。本
发明内容不是详尽的概览,并且它不旨在标识关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。所公开的体系结构提供基于引擎处理给定实体的专长而从分类引擎的集合中选择一个或多个候选分类引擎的能力。所述体系结构学习哪一个或多个分类引擎将被应用于一类实体,诸如文件、文本、网站、图像、和其它分类主题。例如,每个分类引擎可能对特定实体(例如,文件)或特定实体集合(例如,若干文件)的探测比其它引擎更好。定义适当的特征集合以确定该实体类别使得能够构建学习机制,从而对于给定实体,可以以高概率针对该实体选择最佳分类引擎或分类引擎集合。如果选择了超过一个分类引擎,则可将结果组合以实现更好的功效。为了为实现上述及相关目的,本文结合下面的描述和附图来描述某些说明性方面。这些方面指示了可以实施本文所公开的原理的各种方式,所有方面及其等效方面旨在落入所要求保护的主题的范围内。结合附图阅读下面的具体实施方式,其他优点和新颖特征将变得显而易见。图1示出了根据所公开的架构的计算机实现的引擎选择系统。图2示出引擎选择系统的一替代实施例,其中该引擎选择系统包括学习组件。图3示出用于训练学习组件的系统。图4示出运行时系统,其中选择组件利用频率技术。图5示出一替代运行时系统,其中特性并行馈送入选择组件中的分类器集合中。图6示出一系统,其中在运行时所有分类器可被应用于给定的未知文件。图7示出了根据所公开的架构的计算机实现的引擎选择方法。图8示出了图7的方法的进一步的方面。图9示出根据所公开的架构执行引擎选择的计算系统的框图。具体实施例方式通过提供基于引擎处理给定实体(例如,文件、文本、文档、图像、网站等)的专长(正确探测一实体为恶意软件的可能性)从一组分类引擎中选择一个或多个候选分类引擎的能力,所公开的架构缓解了利用多个反恶意软件探测器引擎(“昂贵”分类器)对实时应用的性能的潜在负面影响。目标在于在需要时只使用适当的“昂贵”分类引擎(例如,在资源使用、处理延迟等方面是“昂贵”的)。相应地,最先使用“轻量的”(或类别)分类器来协助只选择适当的昂贵分类器,然后最终使用所述昂贵分类器为给定的未知实体输出总的探测输出。例如,当处理文件分类时,对引擎的选择基于该引擎将使用一未知实体(例如,文件)的特性探测到该实体类别的概率。该“未知”实体是潜在地包括恶意软件或者产生不希望的和未授权的结果的动作的实体。该实体可在如下意义上是未知的,即,对该实体一无所知,或者仅知道有关该实体的一些边缘的而非决定性的东西。例如,在该实体是文件的情况下,该文件可能是可执行文件(executable)(例如,扩展名为“exe”),该文件不提供有关它是否是恶意的任何公开信息。然而,如果未知文件的扩展名为PDF(可移植文档格式),那么很容易知道文件的类型,而尚未知道的是该PDF文件是否是恶意的。可以使用投票和/或排序来协助一个或多个候选引擎的选择。排名最高的引擎中的一个或多个可被激活以实现所期望的性能(例如,在假肯定、假否定、资源消耗等方面)。使用统计学的、低性能要求(performance-light)的模块来跳过或选择若干高性能要求(performance-demanding)的过禾呈。利用方法和算法来基于匹配最佳分类引擎(例如,反恶意软件引擎)来学习基于与实体相关联的特性来探测实体类(例如,恶意软件)。例如,如果实体是网站,则特性可包括IP地址、位置、声誉、文件类型等等。如果实体是图像,则特性可包括图像来源(例如,诸如已知可信赖网站、用户的已知可信赖便携式计算机等有声誉的资源)、大小、文件类型、名称等。提供用户选择选项以指定选择引擎的标准,例如,已排序的分类引擎(例如,反恶意软件引擎)的最大数量和/或最大处理时间,以考虑到机器的每种状态(例如,机器是否过载、稳定等)。用户还可以针对特定未知实体(例如,文件)选择最小探测概率。此外,可以随着分类引擎的更新而随着时间的推移重新评估最佳分类。现在将参考附图,全部附图中相同的参考编号用于表示相同的元件。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施例。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。图1示出了根据所公开的架构的计算机实现的引擎选择系统100。系统100包括包括用于处理未知实体106的多个不同的(昂贵)分类引擎104的引擎组件102、检查未知实体110的实体特性112的检查组件108、以及利用一个或多个轻量分类器116来协助从不同分类引擎104中选择一个或多个候选昂贵分类引擎118以处理未知实体110的选择组件114。该选择可以至少部分基于实体特性112。选择组件114可以与执行排序功能的排序组件120相关联。可对所有昂贵分类引擎104执行排序以协助选择用于探测未知实体110的类的最佳引擎。在此情况下,可以不使用选择分类器116。还可以对候选的昂贵分类引擎118执行排序。排序组件120可以简单地将已排序的昂贵分类引擎104的列表输出至选择引擎114。然后已排序的昂贵分类引擎104的子集(一些或全部)被指定为候选引擎118,并被激活以实现预定的性能。一个或多个候选分类引擎118可基于候选引擎将探测到特定类的未知实体(如恶意文件、恶意网站、恶意图像等)的概率被选择。在一个示例中,未知实体110包括(或者就是)未知文件而昂贵分类引擎104是实时应用于未知实体110以确定该未知文件是否是恶意软件的反恶意软件引擎。选择组件114的选择过程可以基于各种因素,这些因素包括但不限于所预测的准确度、所预测的假肯定率和假否定率、探测的概率和资源消耗,本文后面会更加详细地描述这些因素。一个或多个选择的候选分类引擎118输出分类信息(类信息)122。分类信息122可以基于对昂贵分类引擎104的更新而随着时间的推移被重新评估。这里,选择组件114(从多个不同的引擎104中)选择两个候选昂贵分类引擎第一昂贵引擎IM和第三昂贵引擎126,两者中的每一个均在处理和标识未知实体110方面具有一定程度的专长。在多个候选昂贵引擎118被最终选择的情况下,可以使用聚集组件1来处理分类信息122的相应输出并为未知实体110输出总的探测输出130。在只选择单一候选昂贵分类引擎的情况下,可以不使用聚集。注意,在系统100中可能使用多个不同的分类器集合。例如,一组分类器可以用于选择组件114中(或与选择组件114相关联地使用),引擎组件102的引擎104中的一个或多个引擎可以是分类器,以及作为组合候选引擎118的输出的聚集组件128的一部分的可任选的分类器。而且,仅在选择组件114中就可以使用不同种类的分类器。例如,选择分类器116可以包括用于标识实体类型的类型分类器。图2示出引擎选择系统200的一替代实施例,其中引擎选择系统200包括学习组件202。学习组件202学习不同昂贵分类引擎中的哪个昂贵分类引擎应用于一类实体。没有示出学习组件202的输入和输出,因为可以根据需要连接于图示的组件、组件输入和组件输出中的许多个。例如,可以为聚集组件1使用学习来组合候选引擎118的输出(分类信息122)。在另一示例中,用于从候选引擎118中标识候选引擎118的学习可以在选择组件114中进行(或与选择组件114协作进行)。为了训练学习组件202,针对纳入考虑的每种类型的实体(例如,文件)评估所有昂贵引擎104的输出。例如,学习组件202可以使用引擎104中的每一个引擎评估一未知的PDF文件。学习组件202学习候选引擎118的已排序列表(由排序组件120所提供的)以按照所提议的标准之一(例如,标记)评估未知PDF文件。类似的技术也可应用于例如Β0Τ(为用户、另一程序操作或模拟用户动作的机器人程序)可执行文件。在BOT实体的情况下,提供选择组件114中的(选择分类器116中的)一选择分类器以评估该未知文件并预测该文件是Β0Τ,因为该未知文件的目的是预先未知的。离线情况下,可以学习到昂贵引擎104的一子集善于探测Β0Τ,因此这些昂贵引擎被选中作为候选引擎118。这不同于PDF示例,因为从文件名扩展名立即知道该文件是PDF文件。系统200还包括用于针对机器的每种状态和探测阈值的概率指定多个已排序的候选引擎的配置组件204。换言之,引擎选择系统200包括包括用于处理未知文件的多个不同的(昂贵)反恶意软件分类引擎的引擎组件、接收并检查未知文件的文件特性的检查组件、从不同的反恶意软件分类引擎中选择一个或多个候选反恶意软件分类引擎以处理未知文件的选择组件,所述选择至少部分基于对给定候选分类引擎的文件特性输入、以及基于候选反恶意软件分类引擎与未知文件的成功匹配来学习候选反恶意软件分类引擎的学习组件。该一个或多个候选反恶意软件分类引擎可以实时处理未知文件并且每个候选分类引擎输出有关该未知文件的类型的分类信息,该一个或多个候选反恶意软件分类引擎是基于每个候选引擎将正确标识恶意文件的类型的可能性而被选择的。该选择组件利用一个或多个(轻量级)选择分类器,所述选择分类器针对每个反恶意软件分类引擎计算该未知文件的预测的准确度。该一个或多个候选反恶意软件分类引擎实时处理该未知文件且每个相关联的候选分类引擎按照预测的准确度输出有关该未知文件的类型的分类信息,每个反恶意软件分类引擎的预测的准确度部分地基于用于训练给定引擎的训练模型中的假肯定、假否定、或差错中的至少一项。部分基于投票过程或排序过程选择两个或更多个候选反恶意软件分类引擎,且组合相关联的输出以输出总的探测输出。到候选反恶意软件分类引擎的输入包括程序文件、程序文件的特性或程序文件的来源位置中的至少一项。图3示出用于训练学习组件202的系统300。作为训练的一部分,例如在实体为文件的上下文中,学习组件202将被适当标记(诸如良性PDF、恶意PDF、第3类恶意PDF(对于PDF来说),和/或良性可执行文件、恶意可执行文件或BOT可执行文件(对于未知可执行文件来说)等)的不同类型(例如,PDF、BOT等)的文件302作为输入。此示例指示训练可以考虑良性对(versus)恶意,或良性对第N类攻击(其中第N类是攻击家族中的一具体类型),以及各引擎104的输出或在评估已知的已标记训练文件时的其他标记。一组分类器参数304由学习组件302产生,该组分类器参数可由选择分类器116使用以评估未知文件并产生候选引擎118的已排序列表以用于纳入考虑的每种类型的文件。然后将候选引擎118的这个已排序列表与那些引擎所消耗的资源的可任选的估计值一起提供至选择组件114以选择候选引擎118。在应用于未知文件和恶意软件探测的架构的一个更加具体的实现中,可使用(昂贵)反恶意软件分类引擎将引擎选择系统200应用于未知文件(实体)。在一个示例中,反恶意软件分类引擎104可以是不同公司出售的商业产品。在另一示例中,反恶意软件分类引擎104可以是使用机器学习或其他方法(例如,基于统计的方法)训练过的不同类型的统计学的恶意软件分类器。在第三示例中,反恶意软件分类引擎104可以包括既有商用反恶意软件产品又有统计学分类方法的集合。未知文件可能是可执行二进制文件和/或用于生成漏洞利用的数据文件,诸如图像文件(例如,jpeg)、视频文件(例如,wmv)、音乐文件(例如,mp;3)、文档文件(例如,字处理和PDF文件)或其他特定类型的数据文件(例如,xls)ο然而,要意识到,如同上面描述的,所公开的架构不限于未知文件和恶意软件分类,而是可以用于例如具有公知文件扩展名(例如,PDF)的“部分已知”文件。相应地,系统200包括引擎组件102,引擎组件102包括用于实时处理未知文件(未知实体106)的多个不同的反恶意软件分类引擎104。检查组件108接收并检查未知文件(例如,未知实体110)的文件特性112。选择组件114从不同的反恶意软件分类引擎104中选择一个或多个候选反恶意软件分类引擎118以处理该未知文件。如本文所述的,该选择可以仅基于文件特性112,或者对于未知文件的情况可以基于对(轻量级)选择分类器(例如,性能、类别等)的输入,且期望预测该文件是否是例如Β0Τ。如同前面指示的,该选择还可以至少部分基于候选分类引擎所消耗的资源。学习组件202基于候选反恶意软件分类引擎118与未知文件(例如,实体110)的成功匹配来学习候选反恶意软件分类引擎118。在一个示例中,引擎2(ENGINE2)和引擎5(ENGINE5)在探测恶意PDF文件方面可能是特别有效的。如果未知文件是PDF类型的,那么选择组件114会从对引擎104的准确度排序的预先计算的列表中选择这两个引擎作为候选引擎118以正确标识恶意PDF文件。在另一示例中,文件类型分类器(作为选择分类器116之一)基于特性112来指示一未知文件是恶意的,而选择组件114已经学习到引擎6伍呢1服6)和引擎2(ENGINE2)在标识恶意文件方面是特别有效的。那么选择组件114会选择这两个引擎作为候选引擎118。在另一示例中,如果类型分类器(作为选择分类器116之一)预测未知文件例如是BOT,且该系统已学习到反恶意软件引擎6(ENGINE6)、引擎2(ENGINE2)、和引擎5(ENGINE5)在准确标识BOT方面是排名最高的三个反恶意软件引擎,那么如果资源不允许引擎5(ENGINE5)也评估未知文件的话,则选择引擎114将选择引擎6(ENGINE6)和引擎2(ENGINE2)。例如,引擎5(ENGINE5)可能通过对未知文件执行深入且耗时的检查而在预测BOT方面具有非常高的准确度,但是实时约束阻止将这个引擎纳入候选引擎118的列表中。后面在任务是文件的上下文中更加详细地描述所公开的引擎选择架构的各方面和能力。实体分类过程可被概括为三个阶段基于若干文件特性(例如,文件类型、文件大小、头部签名、代码所使用的DLL等)以及可任选地基于由候选引擎消耗的资源来标识最适于该任务的一个或多个候选引擎(其中引擎可以是任何形式的任务执行器)(“元分类”阶段),发送要被检查的实体至一个或多个选中的引擎,以及要么选择最佳引擎的输出要么组合排名最高的诸引擎的输出以产生对未知任务的总分类。在将所公开的架构应用于未知文件的恶意软件探测的上下文中,一个或多个候选反恶意软件引擎可以实时处理未知文件,而轻量级选择分类器预测反恶意软件引擎在处理未知文件中的准确度。该一个或多个候选反恶意软件引擎是基于每个候选引擎标识一类型的恶意软件文件的专长,以及可任选地基于诸如由例如给定引擎或所有引擎总共利用或消耗的资源等其他参数,而被选择的。该一个或多个候选反恶意软件引擎实时处理未知文件,且每个候选引擎输出有关该未知文件的类型的分类信息。每个反恶意软件引擎的所预测的准确度部分地基于用于训练给定引擎的训练模型中的假肯定、假否定或差错中的至少一项。可以部分基于投票过程或排序过程选择两个或更多个候选反恶意软件引擎。对候选反恶意软件引擎的输入可包括程序文件、程序文件的特性或程序文件的来源或来源位置中的至少一项。8学习组件202促进学习哪一个或多个反恶意软件引擎应当被应用于一类文件。每个反恶意软件引擎比另一恶意软件引擎更好地探测一类或多类文件。定义确定文件的类(例如,恶意软件的)的所需的特性集合使得学习机制能够如此构建以便对于给定文件,能以高成功概率为此文件做出最佳反恶意软件引擎的选择。该架构基于能运行多个引擎(应用)的系统,其中每个引擎具有其自己的专长(对该系统是未知或已知的),以基于引擎的结果做出更精确的决策。然而,在一些情况下,运行所有可能的反恶意软件引擎来评估未知文件需要非常高昂的计算机资源量并且延迟对文件的总体确定。所公开的架构部分地关注于从引擎集合中标识单一引擎或一子集的引擎,以在未知文件的分类中使用。如同之前指示的,引擎可以是为恶意软件探测专门指定的反恶意软件分类引擎。替代地,选择组件114可以是适应性的。例如,考虑以下情形引擎一和三是活动的,但是因为对这两个引擎的处理估计可能太保守了,所以仍然有处理时间剩下。那么选择组件114可以选择额外的引擎来协助完成剩余的处理。选择哪些反恶意软件引擎应当被选择的两个标准包括探测的概率和探测的准确度。如果反恶意软件引擎探测到一未知文件是恶意软件,则要么该文件是恶意软件,要么该反恶意软件引擎做出了“假肯定”确定。如果反恶意软件引擎探测到一未知文件不是恶意软件,则要么该文件是良性的,要么该反恶意软件引擎做出了“假否定”确定。在假肯定的情况下,反恶意软件引擎通常被设计为具有非常低的假肯定率如果该文件被探测为是恶意软件,那么它最有可能是恶意软件。在假否定的情况下,新类型的或多态形式的恶意软件经常不会被许多反恶意软件引擎正确地探测为恶意软件。如果反恶意软件引擎没有将一未知文件探测为恶意软件,则有一个合理的概率为该文件是恶意的但是还没有被正确地探测到。所公开的架构可以快速预测(实时地)反恶意软件引擎是否能够正确地分类未知文件以及该分类的准确度。具体来说,如同前面指示的,可以选择一个或多个反恶意软件引擎来评估(扫描)未知文件,该一个或多个反恶意软件引擎有可能以高概率正确探测到未知文件是否是恶意软件,并且在预测中具有高准确度。因为单个反恶意软件引擎可能不能准确探测某些形式的恶意软件,所以可能需要用反恶意软件引擎的子集来扫描该未知文件,该子集的反恶意软件引擎都有可能以合理高的准确率将该未知文件探测为恶意的。多个反恶意软件引擎的这种组合减少了总的假肯定率。因此,本文公开了对反恶意软件引擎的所预测的输出进行排序以进行可能的评估。而且,如果使用多个反恶意软件引擎来评估未知文件,那么必须基于每个反恶意软件引擎的所预测的准确度来组合结果。例如,如果一个候选反恶意软件引擎探测到一未知文件是恶意的,但是之前已经确定那个引擎产生很大百分比的假肯定,那么它的贡献在总的组合后的得分中应该给一个较低的权重。该架构还可以处理如下情形观察每个引擎的总的准确度,并在聚集输出时对这些引擎(及相关联的输出)加权。在一个实例中,该架构假定某些反恶意软件引擎在探测特定类的文件中的恶意软件上比其他反恶意软件引擎更好。例如,已知如下事实不同的恶意软件引擎具有不同的探测率(因为这些引擎可具有不同的签名或针对新的病毒探测具有不同的试探性分类方法)。例如,一个反恶意软件引擎厂商可能雇用在探测和编写针对特洛伊木马(trojan)的签名方面为世界上最好的分析人员,但是这些分析人员在探测病毒方面却不像其他厂商那样好。类似地,另一反恶意软件引擎的内部感测器(sensor)可允许它能够比任何其他反恶意软件引擎更好地检测rootkit。在另一示例中,一种类型的反恶意软件引擎在探测PDF文件漏洞利用方面更好。考虑至少两种用于预测某一反恶意软件引擎的准确度的方法一种方法是基于频率的方法,另一种方法是机器学习方法。图4示出运行时系统400,其中选择组件114利用频率技术。在频率方法中,为每个反恶意软件引擎104创建所预测的准确度的列表。在系统400中,选择组件114(与排序组件120协作)可从相关联的所预测的准确度列表中选择前N个引擎和/或从直接基于文件的特性的列表中选择前N个引擎。例如,考虑该文件是PDF文档的情形。对于PDF,可能有与二进制可执行文件、MP3文件、视频或字处理文件不同的已排序列表。在基于频率的准确度方法中,在一时间段(诸如例如最近一周、最近一个月、最近三个月或最近一年)内针对特定反恶意软件引擎监控假肯定和假否定的数量。在预测反恶意软件引擎的总的准确度时还可以考虑多个时间窗口(例如,最近一周和最近一个月)。一种确定引擎i的准确度%的方法被定义为FPi+FNi^=I--l———-其中Ni是该引擎(例如,反恶意软件)扫描的总的样本的数量,而FPjnFNi分别是该引擎产生的假肯定和假否定的数量。进而,越近出现的差错(例如,假肯定和假否定)可比在更遥远的过去发生的差错用更高的权重加权。例如,如果某一厂商已放出了将很大数量的类似类型的文件探测为恶意软件的通用签名,但是该通用签名具有高的假肯定率且不正确地将某些干净的文件探测为恶意软件,那么这可以被相应地加权。当该通用签名由生产(production)反恶意软件引擎使用时,假肯定率会很高。一旦探测到通用签名中的差错,该差错可被快速移除而假肯定率会降低。类似地,反恶意软件引擎可能在生产签名中不探测新形式的恶意软件,导致很高的假否定率。一旦针对新的恶意软件家族放出了签名或通用签名的新的集合之后,假否定率会降低。换句话说,反恶意软件引擎的准确度会随着时间而改变。—种针对基于频率的准确度处理随时间改变的准确度的方法是基于当前时间和假肯定或假否定被首次探测的时间之间的差而对每个假肯定或假否定赋予权重。发生时间更近的假肯定和假否定与发生时间更早的那些相比被给予更高的权重。然后使用每个个体反恶意软件引擎的准确度(基于本文中下面定义的文件特性)从反恶意软件引擎的集合中选择出最好的个体或子集以用于深度扫描。这种用于确定反恶意软件引擎的准确度的基于频率的方法估算每个引擎的总的准确度所有类型的恶意软件都被认为是等同的。该方法不尝试基于恶意软件的所预测的类型来指定准确度。为了这样做,采用了机器学习方案(下面会考虑)。图5示出了一替代运行时系统500,其中特性502并行馈送入选择组件114中的一组选择分类器504(类似于图1的选择分类器116)。在机器学习和数据挖掘框架中,特征是可以从训练数据中的每个示例提取的特性——诸如字节顺序——分类器可用其生成探测模型。对于实时系统,期望定义不需要附加文件扫描的这样的特征。可被利用的特征包括但不限于来自头部的特征、基于文件特性的特征、基于文件来源的特征、以及基于每个恶意软件引擎在每个恶意软件类型上具有的签名的数量的特征。来自程序头部的特征可包括资源信息。在PE(可移植可执行)文件中(在Windows操作系统中),来自公共对象文件格式(COFF)的信息可被提取,并且例如可以使用文件大小、DLL的名称以及那些DLL和重定位表格内的函数调用的名称。可以对上述信息应用不同的聚集(例如,每个DLL内使用的不同的函数调用的数量)。此简档给出了在特定二进制文件内多么重度地使用了一DLL的粗略度量。直观上,因为对每个资源的调用的数量被计数而不是详细列举被引用的函数,所以这是宏观资源使用模型。代码中每个段落的大小可被认为是程序头部的特征。程序头部的其他特征包括签名人名称、签名人是否为空、签名发放者名称、描述名称、描述是否为空、组织名称、组织是否为空、版本、版本是否为空、以及文件时间戳。基于文件特性的特征可包括文件名称、文件的位置敏感散列、文件是否被打包、以及文件类型(由通用导航器(navigator)从二进制数据提取)。基于文件来源的特征可包括从中获取文件的服务器的名声(特别适用于基于web的系统)以及发送者的可靠度(例如,对于电子邮件消息——检查发件人是否在从收件人接收电子邮件的人的列表中)如果性能允许,可对其他特征(诸如字节顺序(N元语法))并基于文件内容执行文件扫描(等同于运行附加的反恶意软件引擎)。基于这些特征(或附加的特征),可构造静态规则集合或分类器以标识哪个反恶意软件引擎被认为在输入文件的类别类型上是专家。该分类方法可以以至少两种方式做出。在第一种技术中,第一阶段使用文件类别预测器预测未知文件的类别。此类别可以是干净的、病毒、特洛伊木马、rootkit、filedropper等之一。然后为该未知文件的所预测的类别选择最佳反恶意软件引擎的结果或组合来自前N个反恶意软件引擎的结果。在第二种技术中,所有标记的文件(例如,恶意的、良性的)被用于训练预测哪些厂商具有最佳结果的分类器。接下来描述训练机器学习分类器以应用于专家选择。具体说来,算法分为分类器的训练和将分类器应用于未知的且可能实时的数据。关于反恶意软件引擎准确度分类,可以每个反恶意软件引擎(其可在受控环境中被离线训练)提供一分类器。然而,这不应被解释为被如此限制,因为训练也可以对真实示例(例如,在线或离线的、批量的或一个接一个的)执行。在分类器的训练阶段中,每个分类器获取代表要被扫描的文件的特征向量和指示该反恶意软件引擎是否正确地分类该文件(例如,是否是恶意软件)的标签作为输入。用这种方式,每个分类器学习在其上训练该分类器的反恶意软件引擎的优点和缺点。更具体地说,令表示输入文件的一组属性。令权利要求1.一种计算机实现的引擎选择系统(100),所述引擎选择系统(100)具有存储由处理器执行的可执行指令的计算机可读介质,所述引擎选择系统(100)包括包括用于处理未知实体的多个不同分类引擎的引擎组件(102);检查未知实体的实体特性的检查组件(108);以及做出对所述不同分类引擎的一个或多个候选分类引擎的选择以处理所述未知实体的选择组件(114),其中所述选择至少部分基于所述实体特性。2.根据权利要求1所述的系统,其特征在于,所述一个或多个候选分类引擎处理所述未知实体且每个候选分类引擎输出用于探测所述未知实体的分类信息。3.根据权利要求2所述的系统,其特征在于,所述一个或多个候选分类引擎是基于每个候选引擎标识实体类的专长而选择的。4.根据权利要求2所述的系统,其特征在于,基于对所述多个不同分类引擎的更新而随着时间重新评估所述分类信息。5.根据权利要求1所述的系统,其特征在于,所述多个不同分类引擎中的至少一个或所述一个或多个候选分类引擎被排序。6.根据权利要求1所述的系统,其特征在于,所述候选分类引擎是基于所述候选引擎将探测到特定类的未知实体的概率而选择的。7.根据权利要求1所述的系统,其特征在于,所述实体包括未知文件且所述分类引擎是恶意软件引擎,所述恶意软件引擎被实时应用以确定所述未知文件是否是恶意软件。8.根据权利要求1所述的系统,其特征在于,还包括学习组件,所述学习组件学习所述不同分类引擎中的哪个分类引擎被应用于所述实体的一类。9.根据权利要求1所述的系统,其特征在于,还包括用于针对机器的每种状态和探测阈值的概率指定多个已排序候选引擎的配置组件。10.根据权利要求1所述的系统,其特征在于,两个或更多个候选反恶意软件分类引擎是部分基于投票过程或排序过程而选择的,且相关联的输出被组合以输出总的探测输出。11.一种由处理器执行的计算机实现的引擎选择方法,包括检查未知文件的文件特性(700);基于所述文件特性从分类引擎的集合中选择一个或多个候选反恶意软件分类引擎(702);使用所述一个或多个候选反恶意软件分类引擎处理所述未知文件以针对所述候选反恶意软件分类引擎中的每一个候选反恶意软件分类引擎输出分类信息(704);以及基于所述候选反恶意软件分类引擎中的所述一个或多个候选反恶意软件分类引擎的单一输出或多个输出而分类所述未知文件(706)。12.根据权利要求11所述的方法,其特征在于,还包括基于所述候选引擎将探测到所述未知文件为恶意软件的专长或概率而选择所述一个或多个候选反恶意软件分类引擎。13.根据权利要求11所述的方法,其特征在于,还包括基于排序过程或投票过程激活所述一个或多个候选反恶意软件分类引擎。14.根据权利要求11所述的方法,其特征在于,还包括应用概率性机制来跳过或选择高性能要求的过程。15.根据权利要求11所述的方法,其特征在于,还包括基于对所述引擎的更新而随着时间重新评估所述一个或多个候选反恶意软件分类引擎。全文摘要本发明涉及实时多引擎选择和组合。基于分类引擎处理给定实体(例如,文件)的专长来选择分类引擎的架构。对引擎的选择基于该引擎将使用未知实体的特性探测到该未知实体分类的概率。排名最高的一个或多个引擎被激活以实现所需的性能。使用统计的、低性能要求的模块来跳过或选择若干高性能要求的过程。使用方法和算法来基于匹配(一个或多个)最佳分类引擎来基于实体特性探测实体类的学习。提供用于指定已排序的分类引擎的最大数量的用户选择选项,以考虑机器的每个状态。用户可以选择针对特定实体(例如,未知文件)的探测的最小概率。可以随着分类引擎的更新而随着时间的推移重新评估最佳分类。文档编号G06F21/00GK102509039SQ201110306969公开日2012年6月20日申请日期2011年9月27日优先权日2010年9月30日发明者E·谢弗,J·W·斯托克斯,K·拉丁斯基,R·瓦尔沙夫斯基,V·霍洛斯托弗申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1