用于使用两级文件分类来检测恶意文件的系统和方法与流程

文档序号:19635416发布日期:2020-01-07 11:57阅读:159来源:国知局
用于使用两级文件分类来检测恶意文件的系统和方法与流程

本发明总体涉及文件分类领域,且更具体地涉及用于使用两级文件分类来检测恶意文件的系统和方法。



背景技术:

目前,计算设备(智能手机、计算机、平板电脑等)已经成为几乎每一个人的基本属性。借助这类设备,人们执行众多的日常任务:从通过电子邮件进行通信到在商店里支付购买。这类设备的广泛使用促使罪犯创建恶意程序——专门设计成非法访问用户的数据且作为整体也访问计算设备的资源的程序。

目前,广泛使用防病毒应用来对付恶意程序。这些防病毒应用为设计成检测恶意程序且保护计算设备免受这些恶意程序危害的程序。使用各种方法和技术来提供这类保护:签名分析、行为分析、启发式规则等。但是随着防病毒技术的发展,罪犯也在完善规避这些保护机制的方法。因此,防病毒技术的开发一直都是持续进行的任务,该任务的目标是提高恶意程序的检测质量且减少恶意程序的检测中的第一种和第二种错误。

为了提高恶意程序的检测质量,越来越频繁地使用由于机器学习而获得的分类模型。这类模型从被分析的应用(特别地,可执行文件(诸如pe文件))挑选出每个可能的属性(关于用于创建应用的编译器的信息、关于被执行的文件的大小的信息、机器指令集等),并且基于这些候选分类器属性将被分析的应用分配到应用类别之一;因此,当将被分析的应用分配到恶意应用类别时,恶意应用的检测发生。然而,即使是这样的恶意应用检测方法也需要持续改进,从而为用户的计算设备提供保护。简单的分类模型也正在被更复杂的分类模型(诸如两级模型)代替。然而这些模型具有其缺点:粗略分类以非常肤浅的方式对被分析文件进行分类,且没有考虑同一类别的文件是否相似。本发明的各个方面旨在克服现有方法的缺陷且旨在甚至进一步提高恶意程序的检测质量。



技术实现要素:

本发明旨在使用两级文件分类来检测恶意文件。

在一个示例性方面中,一种用于使用两级文件分类来检测恶意文件的示例性方法包括:通过硬件处理器选择被分析文件的一组属性;通过所述硬件处理器基于所选的该组属性计算所述文件的哈希值;通过所述硬件处理器基于计算的所述文件的所述哈希值从一组分类器中选择用于所述文件的分类器;通过所述硬件处理器基于所选的分类器将所述被分析文件分配到一个或多个类别;确定是否已将所述文件分配到恶意文件类别;以及基于确定,推断所述文件为恶意的。

在另一个示例性方面中,所述一组属性为简单属性,所述简单属性的识别不消耗大于预定阈值的计算支出;或所述一组属性为简单属性和复杂属性两者,所述复杂属性的计算支出超过所述预定阈值。

在另一个示例性方面中,所述简单属性包括所述文件的头部(header)的属性、所述头部中描述的对象的标识、所述对象的大小、和所述对象在所述文件中的顺序。

在另一个示例性方面中,所述哈希值为对于两个相似文件具有相似值的灵活哈希值,其中,当相似度大于预定阈值时,文件被视为相似的。

在另一个示例性方面中,所述一个或多个类别包括恶意文件、受信任文件、和不受信任文件。

在另一个示例性方面中,所述方法还包括:在选择所述分类器之前,为所述一组分类器中的每个分类器分配哈希值。

在另一个示例性方面中,所述方法还包括:选择用于分类模型的监督教导的多个教导文件以产生多个候选分类器,其中,所述多个教导文件对应于所述一组分类器中的已知灵活哈希值,且存在用于所述一个或多个类别中的每一个类别的已知灵活哈希值;通过对多个验证文件分类来验证所述多个候选分类器中的每一个候选分类器,所述多个验证文件至少包括所述多个教导文件;从所述多个候选分类器中选择一个分类器,其中,所选的分类器导致所述多个验证文件的错误分类最少;以及针对所述一个或多个类别中的每一个类别,将所述分类器分配到所述已知灵活哈希值。

在另一个示例性方面中,所述方法还包括:基于所述多个验证文件的已知分类计算假阳性系数以帮助选择所述分类器。

在另一个示例性方面中,所述方法还包括:从所述候选分类器中选择假阳性系数最小的分类器。

在另一个示例性方面中,所述方法还包括:当所述哈希值具有与用于来自所述多个教导文件的每个文件的哈希值相同的值时,确定分类器对应于所述哈希值。

在另一个示例性方面中,选择分类器包括:生成对应于所述哈希值的一组候选分类器;验证所述候选分类器的操作质量以生成相应的假阳性系数;选择假阳性系数匹配预定标准的分类器作为用于分类的所述分类器。

在一个示例性方面中,提供一种用于使用两级文件分类来检测恶意文件的示例性系统。所述系统可以包括硬件处理器,所述硬件处理器配置成:选择被分析文件的一组属性;基于所选的该组属性计算所述文件的哈希值;基于计算的所述文件的所述哈希值从一组分类器中选择用于所述文件的分类器;基于所选的所述分类器将所述被分析文件分配到一个或多个类别;确定是否已将所述文件分配到恶意文件类别;以及基于确定,推断所述文件为恶意的。

在另一个示例性方面中,一种示例性非暂时性计算机可读介质,在该非暂时性计算机可读介质中存储有用于使用文件的两级分类来检测恶意程序的指令。在一个方面中,所述指令包括:通过硬件处理器选择被分析文件的一组属性;通过所述硬件处理器基于所选的该组属性计算所述文件的哈希值;通过所述硬件处理器基于计算的所述文件的所述哈希值从一组分类器中选择用于所述文件的分类器;通过所述硬件处理器基于所选的分类器将所述被分析文件分配到一个或多个类别;确定是否已将所述文件分配到恶意文件类别;以及基于确定,推断所述文件为恶意的。

以上对示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在勾画本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且示例性指出的特征。

附图说明

并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。

图1示出根据本发明的示例性方面的用于使用两级文件分类来检测恶意文件的系统的组件的示例图。

图2示出根据本发明的示例性方面的计算文件的灵活哈希值的示例。

图3示出根据本发明的示例性方面的文件分类的示例。

图4示出根据本发明的示例性方面的用于使用两级文件分类来检测恶意文件的示例性方法。

图5示出根据本发明的示例性方面的通用计算机系统的示例图。

具体实施方式

本文中在用于使用两级文件分类来检测恶意文件的系统、方法和计算机程序产品的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。

将贯穿本发明和附图使用如下术语。

恶意应用为能够对计算设备或对计算设备(换言之,计算机系统:个人计算机、服务器、移动手机等)的用户的数据造成损害的应用,例如,网络蠕虫、键盘记录器、或计算机病毒。造成的损害可以为出于盗窃目的而非法访问计算机资源(包括计算机上保持的数据),而且还非法使用所述资源,所述资源包括用于数据存储、执行计算等的资源。

受信任应用为不对计算机或其用户造成损害的应用。受信任应用可以为由受信任软件制造商开发的应用、从受信任源(诸如在受信任网站数据库中所列的网站)下载的应用、或者标识符(或可用于唯一地确定应用的其它数据)(诸如应用文件的哈希和)保持在受信任应用数据库中的应用。也可以将制造商的标识符(诸如数字证书)保持在受信任应用数据库中。

不受信任应用为不受信任的、但也没有例如通过防病毒应用被识别为是恶意的应用。此外,例如借助防病毒扫描,不受信任应用之后可能被识别为是恶意的。

恶意文件是作为恶意应用的组成部分且包含程序代码(可执行代码或可翻译代码)的文件。

不受信任文件是作为不受信任应用的组成部分且包含程序代码(可执行代码或可翻译代码)的文件。

受信任文件是作为受信任应用的组成部分的文件。

预定应用类别至少为受信任应用类别、不受信任应用类别、和恶意应用类别。

灵活哈希值(“相似性保留哈希值”,在特定方面中,为“局部性敏感哈希值”)为可基于文件中存储的数据计算的且在这类数据的部分变化下保持值不变的文件的哈希值。参看jonathanmasci等人在https://arxiv.org/pdf/1312.5479.pdf上的“sparsesimilarity-preservinghashing”和ravikumar在https://users.soe.ucsc.edu/~niejiazhong/slides/kumar.pdf上的“localitysensitivehashing”。在本发明的一个试样方面中,存储在文件中的这类数据为简单属性。在一个示例性方面中,灵活哈希值为对于两个相似文件将具有相同值的哈希值(基于文件的属性计算的灵活哈希值匹配)。一组文件的灵活哈希值(对应于一组文件的灵活哈希值)应指值对于所述的组中的每个文件都相同的灵活哈希值。具有匹配值的灵活哈希值的文件、尤其这类组的文件可以被视为在一定准确度(本发明背景下的准确度可以被理解为例如该组的每两个文件之间的相似度的平均值或均方根值)下为相似的,该准确度由计算灵活哈希值本身的方法的准确度来决定。

简单文件属性为识别不消耗显著计算支出的文件属性(以某种方式描述文件的数据)(通常可以从原始形式的文件中挑选出这类属性,而不使用挑选出的数据执行附加计算),其中,可以通过相比于阈值的计算支出确定显著性。简单属性的示例为可执行文件的头部的属性、可执行文件的头部中描述的对象的标识符(诸如名称)、这些对象的大小及其在可执行文件中的连续顺序(首先出现的将是在文件中具有最小地址的对象)。可执行文件的头部中描述的对象至少指文件的节段,包括文件的资源、导入表和导出表、以及地址设置。在特定方面中,可执行文件的头部中描述的对象也指模拟对象,但是这些模拟对象在可执行文件的图像中,该图像是启动可执行文件时在ram中生成的。

复杂文件属性为识别消耗显著计算支出的文件属性(以某种方式描述文件的数据),该显著计算支出例如大于预定阈值。复杂文件属性的示例为:

·关于文件的节段的统计信息:字节值的熵和分布;

·文件的可执行代码的片段;

·字符串常数。

识别文件属性所消耗的显著计算支出至少为:为了识别属性而分配大于阈值的存储区域、以及在大于阈值的时间内执行识别文件属性的操作、以及为了识别文件属性从数据存储设备读取所需的文件数据的增加量超出设立的阈值。

如果两个文件之间的相似度超出预定阈值(例如,超过85%,换言之,超出0.85),则它们应该被视为相似的。可以借助任何的已知方法计算相似度,该已知方法诸如基于计算如下度量的方法:jacquard、dice、levenshtein、hemming等。

本发明中的用于两级文件分类的系统包括多个组件,这些组件可以为真实的设备、系统、元件、和元件组,这些设备、系统、元件、和元件组利用硬件(诸如集成微电路(专用集成电路,asic)或可编程门阵列(现场可编程门阵列,fpga))形式或例如以软件和硬件的组合(诸如微处理器系统和一组软件指令以及神经形态芯片(神经突触芯片))的形式来实现。系统的这类组件的功能可以仅通过硬件实现,且也可以以组合的形式实现(其中,系统的组件的一些功能通过软件来实现且一些功能通过硬件来实现)。在一些示例性方面中,一些组件或全部组件可以被实施在通用计算机系统(诸如在图5中所示)的处理器上。此外,系统组件可以在单一计算设备的界限中实现或分布在多个互连计算设备之间。

图1呈现了一种用于使用两级文件分类来检测恶意文件的系统的组件的示例图。本系统包括如下组件:哈希值计算模块110、分类模块120和文件数据库130。在本发明的一个示例性方面中,哈希值计算模块110和分类模块120位于同一计算设备上。在另一个示例性方面中,哈希值计算模块110位于客户端计算设备(诸如用户的个人计算机)上,而分类模块120位于服务器计算设备上。在该情况下,文件数据库130可以位于服务器设备上或位于客户端计算设备上。

哈希值计算模块110被设计成从文件中挑选出一组简单属性,以及基于识别的这组简单属性计算文件的灵活哈希值。存在用于计算灵活哈希值使得这类哈希值对于两个相似文件来说匹配的各种方法,诸如“lsh”(“局部性敏感哈希值”)、以及在满足“相似性保留”条件(哈希值对于用于计算哈希值的数据的变化的稳定性)下借助监督学习或部分监督学习生成的其它哈希函数。用于两个文件的哈希值的一致(concurrence)的情况(冲突)将意味着这些文件为相似的。在公开ru2013129552中描述了计算这类哈希值的示例之一(其中,用卷积代替哈希值的概念)。

为了创建灵活哈希值115,哈希值计算模块110从文件105中挑选出一组简单属性。在本发明的一个示例性方面中,哈希值计算模块110利用用于文件105的一个节段的复杂属性来补充所述一组简单属性。

通过上述方法挑选出的文件105的该组属性被哈希值计算模块110用来计算灵活哈希值115。

在本发明的一个示例性方面中,使用如下方法计算灵活哈希值115:灵活哈希值形成为来自所识别的文件105的该组属性的属性的表示(诸如字节表示)的连结(concatenation)。在一个示例性方面中,组成该组属性的文件105的每个复杂属性的表示在被包括在灵活哈希值之前首先经历借助哈希函数的处理。在一个示例性方面中,这类哈希函数为满足“相似性保留”条件的哈希函数,例如,局部性敏感哈希值或半监督哈希值。应当注意,计算灵活哈希值的技术保证了用于两个相似文件的哈希值115的一致,在这两个相似文件中,来自识别的该组属性的特定属性(诸如出自整个组的两个属性)是不同的。

通过哈希值计算模块110将计算出的文件105的灵活哈希值115发送到分类模块120。

根据一个方面,分类模块120可以将文件105分配到文件类别之一。在一个示例性方面中,这种类别为某一预定类别,诸如受信任文件类别、恶意文件类别、或不受信任文件类别。在本发明的一个示例性方面中,如果还未将文件105分配到任一预定类别,则另一文件类别可以为文件105被分配到的类别(诸如“未知文件”类别)。为了将文件105分配到特定类别,分类模块120使用分类器。分类器,我们将意指分类模型(换言之,分类算法)。这些分类器的示例可以为如下分类模型(分类器的类型):

·决策树;

·“梯度提升”;

·“随机森林”;

·基于神经网络的模型。

相应地,分类模块120也对分类器进行选择,该选择的分类器之后将用于将文件105分配到文件类别之一。在本发明的一个示例性方面中,基于文件105的灵活哈希值115进行分类器的选择。在该情况下,将每个分类器绑定到至少一个灵活哈希值。在本发明的一个示例性方面中,将可供分类模块120使用的所有分类模型存储在分类模块120中,例如存储在出于该目的而设计的数据库中。

图2示出计算用于文件105的灵活哈希值的哈希值计算模块110的操作的图。应当注意,通过哈希值计算模块110计算灵活哈希值115的步骤之前是教导哈希值计算模块110的步骤(在图中未示出该步骤)。

教导哈希值计算模块110,使得对于两个相似文件(具体地,这些文件的两组属性)计算的灵活哈希值匹配。对此,可以使用监督教导方法。教导哈希值计算模块110的步骤使用来自文件数据库130(从该文件数据库130挑选出多组属性)的用于教导的文件的特定目的的集合,所述集合不仅包含文件,而且还包含关于文件彼此间的相似性(文件彼此间的相似度)的信息。在一个示例性方面中,文件的相似性关系为文件的相似度。在另一个示例性方面中,文件的相似性关系为文件是否相似的指示:“文件相似”或“文件不相似”。在本发明的一个示例性方面中,所述数据库130还包含关于将来自上述文件集合的文件分配到的类别(受信任文件类别、恶意文件类别或不受信任文件类别)的信息。当通过哈希值计算模块110计算灵活哈希值115时,也可以在教导步骤中使用这类信息以减少第一种错误和第二种错误的数量。也这样做来降低对于两个文件计算出相同的灵活哈希值115的概率,这两个文件之一例如被分配到受信任文件类别,且另一个文件被分配到恶意文件类别。在本发明的一个示例性方面中,由信息技术领域的专家将存储在所述文件数据库130中的信息置于该文件数据库130中。

当计算灵活哈希值时,哈希值计算模块110从文件105中挑选出一组属性,该组属性至少包含简单属性,这些属性有条件地被指定为“简单属性1”、“简单属性2”等。在给出的示例中,文件105是恶意的还是受信任的、或文件属于哪个文件类别是未知的。通过方法之一教导的哈希值计算模块110基于文件105的属性计算该文件105的灵活哈希值115。

图2通过圆形标记指定类别已知的文件。可以将这类文件和类别信息存储在文件数据库130中。黑色标记指定属于第一类别的文件、白色标记指定属于第二类别的文件、以及部分带阴影的(例如灰色)标记指定属于第三类别的文件。在一特定方面中,这些类别为预定文件类别。作为示例,第一文件类别为恶意文件类别、第二文件类别为受信任文件类别、以及第三文件类别为不受信任文件类别。应当注意,所述文件的集合与用于教导哈希值计算模块110的文件的集合匹配。但是在本发明的另一个示例性方面中,所述文件(在图2中由标记指示的文件)的集合可以不同于用于教导哈希值计算模块110的文件的集合,例如,可以用新文件补充这类集合(然而这些文件属于特定类别也是已知的),以及可以由信息技术领域的专家将这些补充文件添加到例如文件数据库130中。

首先由哈希值计算模块110通过计算灵活哈希值将所述文件(对应于图2中的标记)分解成多组文件。每组文件对应于针对该组文件计算的特定灵活哈希值(hash_1、hash_2等),即,该组将包含具有匹配的灵活哈希值的文件。例如,对于有条件地指定为hash_1的组的每个文件,通过哈希值计算模块110基于该组文件属性计算的灵活哈希值将具有会表示为hash_1的值。应当注意,哈希值计算模块110可以将来自不同类别的文件非常好地放在同一组中(通过利用用于这些文件的匹配值计算灵活哈希值)。相应地,对应于特定灵活哈希值的各个组可以包含仅一个类别(例如,恶意文件类别,如在组hash_1中)的文件和几个类别(例如,恶意文件类别和受信任文件类别,如在组hash_2、hash_4或hash_l中)的文件。

因此,通过哈希值计算模块110对用于文件105的灵活哈希值的计算可以被称为将文件105分配到特定的一组文件,该组文件具有匹配的灵活哈希值(组hash_1、hash_2、hash_3等)。

通过哈希值计算模块110将用于文件105的灵活哈希值115(为文件105被分配到的组的标识符)发送到分类模块120。

图3示出分类模块120的操作的示例。为了将文件105分配到文件类别之一(诸如预定类别之一),分类模块120选择用于文件105的、对应于文件105的灵活哈希值115的分类器。在一个示例性方面中,如下确定分类器与特定灵活哈希值的对应关系:如果来自文件数据库130的一组文件用于教导分类器且灵活哈希值对于来自该组的文件匹配,则分类器对应于该灵活哈希值。例如,如果这组文件hash_3(参看图2)用于教导分类器,则该分类器将对应于灵活哈希值hash_3(以及相应地被表示为“分类器hash_3”)。

为了使分类模块120能够选择用于文件105的分类器,分类模块120首先生成一组这类分类器,之后将从该组分类器中选择对文件105分类所需的一组候选分类器。使用如下方法生成对应于特定已知灵活哈希值(即,值对于被视为属于特定文件类别(诸如恶意文件类别、或恶意文件类别和受信任文件类别)的文件来说相同的灵活哈希值)的分类器,该特定已知灵活哈希值诸如哈希值hash_4。使用来自一组文件的文件(诸如被指定为hash_4的文件)作为用于不同类型的分类模型的监督教导的教导选择,上文已给出这类分类模型的示例。在教导步骤期间,将关于给定组的文件的归属的信息(特别地,hash_4)用于不同类别的文件(尤其恶意的、受信任的或不受信任的)。应当注意,通过分类模块120对任何分类器的教导不仅关于来自特定教导选择的文件、而且还基于这些文件的属性组来进行,每个这类属性组至少包括复杂文件属性。

在教导之后,候选分类器(其中,每个分类器是作为对应于特定灵活哈希值(特别地,灵活哈希值hash_4)的分类器的候选)经历验证步骤(特别地,验证分类器的操作质量)。在验证步骤中,可以使用选择的文件,该选择的文件具有大量文件(所选择的用于验证的文件)而是不仅仅来自组hash_4的文件(对于我们的示例)。验证步骤的任务是从先前教导的分类器中选择一个分类器作为对应于特定灵活哈希值(尤其hash_4)的分类器。对于在验证步骤中使用的各个文件,同样也知道该文件是否属于文件类别之一。作为验证的结果,通过各个候选分类器对用于验证的所有文件分类。使用先前已知的关于文件与所选择的用于验证每个候选分类器(用于对应于特定灵活哈希值(并因此对应于具有匹配哈希值的该组文件)的分类器的角色)的文件的类别的从属关系的信息,计算假阳性系数。选择假阳性系数最小的分类器作为对应于特定灵活哈希值的分类器。

假阳性系数为例如在0和1之间的数字,当在分类器的验证步骤期间提交的第一种错误和/或第二种错误越多时,该数字越大。在一个示例性方面中,通过如下公式计算假阳性系数:

其中,fp(假阳性)为假阳性的数量,这些假阳性为文件到特定类别的错误分配(例如,如果对于所选择的用于验证的文件来说已知它属于受信任文件类别,但是分类器将该文件错误地分配到恶意文件类别),nc为在该“特定”类别中的文件的总数量(对于上文给出的示例,nc为在受信任文件类别中的文件的数量),以及f为假阳性系数。

在另一个示例性方面中,可以使用任何其它公式,由此假阳性系数f随着假阳性的数量fp增加而增大。

在又一个示例性方面中,对应于特定灵活哈希值的分类器被选择为假阳性系数最小的和针对所选的一组文件不具有任何假阳性的分类器。该组文件可以包含不组成具有匹配哈希值(针对该匹配哈希值选择相应分类器)的文件组的文件。在特定方面中,这种文件为由受信任软件开发商创建的受信任文件。受信任开发商的列表可以被存储在分类模块120中、或在分类模块120之外被存储在远程服务器上,且由信息技术领域的专家更新。在本发明的一特定方面中,受信任软件开发商为如下公司:微软、谷歌、迈克菲、因特尔、卡巴斯基实验室等。

在另一个示例性方面中,对应于特定灵活哈希值的分类器被选择为假阳性系数不高于特定阈值(诸如10-5)且具有最高检测系数的分类器。通过如下公式计算检测系数:

其中,tp为所选择的用于验证的文件到相应类别的正确分配的数量。

在又一个示例性方面中,当文件类别为至少受信任文件类别和恶意文件类别时,通过如下公式计算检测系数:

其中,tp为所选择的用于验证的文件中来自恶意文件类别的文件被正确分配到恶意文件类别的文件的数量,以及np为在所选择的用于验证的文件中来自恶意文件类别的文件的数量。

应当注意,如果候选分类器都不满足分类器的选择条件,例如,如果所有候选分类器的假阳性系数都高于给定阈值,则分类模块120不使任何分类器与特定灵活哈希值相关联。

上文所述的分类器的验证和指定步骤由分类模块120针对每个已知的灵活哈希值且相应地也针对已知的文件组来执行。已知的灵活哈希值为基于文件(具体地基于文件的一组属性,该文件与特定类别的从属关系是已知的)计算的哈希值。已知的文件组为已知的灵活哈希值为相同值的一组文件。在生成该组分类器的步骤中,由分类模块120使用的文件以及用于验证分类器的文件可以被储存在文件数据库130中。应当注意,两个灵活哈希值(诸如hash_3和hash_l)可以与同一类型的、但针对不同的选择文件所教导的分类器相关联,例如,针对如下所选文件教导分类器hash_3,该所选文件包括值匹配灵活哈希值hash_3的一组文件;而针对如下所选文件教导分类器hash_l,该所选文件包括值匹配灵活哈希值hash_l的一组文件。

将由分类模块120基于灵活哈希值115选择的分类器应用于包括复杂属性的该组属性。由分类模块120从文件105挑选出该组属性并将其发送到对应于文件105的灵活哈希值115的分类器。基于该组属性,先前教导的分类器将文件105分配到预定文件类别之一。

在本发明的一个示例性方面中,如果文件105的灵活哈希值115对应于已经针对(包含灵活哈希值相同的一组文件的)所选文件教导的分类器,从而将来自给定组的所有文件都分配到一个特定类别(比如说“类别x”或恶意文件类别),则分类模块120将文件105分配到该类别而不使用该组所对应的分类器。当对特定集合的文件分类时,这类方法减少了确定每个文件的类别所花费的时间,这是因为特定文件类别的确定将在不使用分类器且不从文件105挑选出复杂属性的情况下进行,因此更加快速。在这种分类期间的检测系数将不小于在每个文件经历使用分类器的分类的情况下的检测系数。

在将文件105分配到恶意文件类别的情况下,文件105被分类模块120识别为恶意的。在将文件105分配到受信任文件类别的情况下,文件105被分类模块120识别为受信任的。

图4示出用于使用两级文件分类来检测恶意文件的方法的示例。在步骤401中,哈希值计算模块110从文件105中选择一组属性,该组属性至少包含文件105的简单属性。在该情况下,文件105为需要确定属于特定类别的文件。此后,在步骤402中,哈希值计算模块110基于挑选出的该组属性计算文件105的灵活哈希值115。然后在步骤403中由分类模块120使用计算的灵活哈希值115选择对应于该灵活哈希值115的分类器。在本发明的一个示例性方面中,分类模块120将表征该组文件(即,来自灵活哈希值匹配的组的文件)的灵活哈希值的至少一个值分配到每个分类器(先前已被教导),这些文件被包括在针对该分类器的教导选择中。使用所选的分类器,分类模块120执行文件105的分类——在步骤404中,分类模块120将文件105分配到文件类别之一(特别地,分配到以下类别之一,其中,根据用于教导分类模块120所使用的相应分类器的选择来分配文件)。如果将文件105分配到恶意文件类别,则在步骤406中通过分类模块120将文件105识别为恶意的。否在,在步骤407中不将文件105识别为恶意的。

文件的两级分类的本方法比基于使用单一分类器确定文件类别的方法具有如下优势。对应于灵活哈希值的分类器的集合的使用使得能够在对未知文件(其类别是未知的)的集合分类时实现更小数量的第一种错误和第二种错误,这是因为针对每组文件、尤其具有匹配的灵活哈希值的一组文件,都确定了具有例如最小假阳性系数和/或最大检测系数的分类器(相应地实现)。因此,本方法在提出的本发明的背景下的使用使得能够实现如下技术效果:提高文件分类的质量(减少第一种错误和第二种错误的数量)、以及尤其在恶意文件的检测期间减少第一种错误和第二种错误的数量。

图5为示出根据示例性方面的其上可实施本发明的各方面的通用计算机系统20的框图。应当注意,计算机系统20可以对应于系统100和/或其单独组件。

如所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员所领会,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。系统存储器可以包括永久性存储器(rom)24和随机存取存储器(random-accessmemory,ram)25。基本输入/输出系统(basicinput/outputsystem,bios)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用rom24加载操作系统时的那些基本程序。

计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如cd-rom、dvd-rom和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。

示例性方面包括使用借助控制器55连接到系统总线23的硬盘27、可移动磁盘29和可移动光盘31的系统。本领域的普通技术人员将理解,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(ram)等等)。

计算机系统20具有可以存储操作系统35的文件系统36、以及额外的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(universalserialbus,usb)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等。

计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。

网络连接可以形成局域计算机网络(local-areacomputernetwork,lan)50和广域计算机网络(wide-areacomputernetwork,wan)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在lan或wan网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。可以是内部设备或外部设备的调制解调器54可以通过串行端口46连接到系统总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。

在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括ram,rom,eeprom,cd-rom,闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、组件、或使用硬件(例如通过专用集成电路(asic)或现场可编程门阵列(fpga))实现的组件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图5中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。

为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求书中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

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