识别多态性恶意软件的制作方法

文档序号:7850705阅读:138来源:国知局
专利名称:识别多态性恶意软件的制作方法
技术领域
本发明涉及识别计算机系统上的多态性恶意软件。
背景技术
计算机和计算机系统的恶意软件感染是一个日益增长的问题。近来,在很多高调的事例中,计算机恶意软件迅速扩散到整个世界并且由此在数据丢失和工作时间损失方面造成了价值数百万英镑的损害。恶意软件经常是通过使用计算机病毒扩散的。早期的病毒是通过将被感染的电子文件拷贝至软盘以及将电子文件从磁盘转移到先前未被感染的计算机来进行扩散的。在用户尝试打开受感染的电子文件时,这时将会触发恶意软件并感计算机。近来,病毒已经由因特网进行扩散,例如用电子邮件扩散。可以预料到的是,在未来,病毒将会通过无线数据传输进行扩散,例如通过使用了蜂窝电话网络的移动通信设备之间的通信进行扩散。市场上可用的反病毒应用有很多种。这些应用往往是通过保持已知病毒和恶意软件的指纹数据库来运作的。对于“实时”扫描应用而言,在用户尝试对文件执行诸如打开、保存或复制之类的操作时,所述请求会被重定向到反病毒应用。如果该应用没有关于电子文件的已有记录,那么所述电子文件将被扫描,以便找到已知的病毒或恶意软件指纹。如果在该文件中识别出病毒或恶意软件,那么反病毒应用可以采取恰当的动作,例如向用户报告,通知管理员,清除或拦截恶意软件病毒。然后,反病毒应用可以将受感染文件的标识添加到受感染文件的注册表中。反病毒应用的数据库既可以保持在计算机系统本地,也可以远离客户计算机系统,例如位于服务器。服务器同样可用于确定电子文件是不是恶意软件。在这种情况下,发现可疑电子文件的客户端设备会向服务器发送与电子文件相关的签名信息以及其他元数据信息,其中所述信息有助于服务器将可疑电子文件签名及其他元数据与指纹数据库中列举的指纹相比较,以便检测恶意软件文件。一旦服务器识别出可疑电子文件(是否是恶意软件),则所述服务器会将此反向报告给客户端。指纹是用于识别恶意文件或干净文件的图案。通常,指纹基于客户端中计算的某种签名。所述签名既可以是简单的完整或部分文件散列(hash),也可以是采用更复杂的静态文件分析或动态行为分析产生的。静态智能签名是通过在可疑电子文件的不同部分静态计算不同散列或者使用其他一些静态文件属性确定的。而动态行为分析则可以是例如对恶意软件如何影响计算机系统环境进行分析,在虚拟环境中运行恶意软件或者在运行时间监视恶意软件。动态签名基于可疑电子文件的行为计算的,例如使用在小型虚拟环境中运行可疑电子文件的结果以及散列来自运行路径分析的结果。客户端发送至服务器的元数据未必就是签名数据。例如,所发送的还可以是文件使用信息、与可疑电子文件相关联的下载URL、文件名和位置、任何相关联的文件或动态链接库的标识、注册表变化等等。所述指纹不但可以用签名数据创建,而且还可以基于其他元数据。例如,基于下载的URL,可以将电子文件标识成是恶意软件或干净的。
使用客户端/服务器模型而不是在计算机设备本地存储反病毒应用和数据库,将会提供若干个优点。这些优点包括以下各项
I)不必将全部恶意软件指纹下载到每一个客户端设备,所下载的只是相关的恶意软件指纹。
2)在检测到新的恶意软件时,在服务器上将会立即“发布”该恶意软件,该信息可被提供给所有客户端设备。每一个客户端设备不必等待下一次的调度数据库更新。这样做将会确保在识别出新的恶意软件之后尽可能快地保护每一个客户端设备免受恶意软件损害。
3)由于反病毒服务器看到的是被查询的签名,并且举例来说,所述服务器可以将这些签名用于用例优先化处理,因此可以使用从反病毒服务器获取的数据来获悉全局恶意软件的状况。此外,所述数据还可用于执行统计分析,以便给出用以确定是否允许执行可疑文件的“声誉裁决”。
在编写恶意软件时,恶意软件创建者会使用多种不同方式来避开检测。一种避开检测的明显方式是以一种致使保存在指纹数据库中的检测指纹不再匹配恶意软件的方式来改变恶意软件。通常,改变完整文件散列之类的静态文件属性较为容易。恶意软件编写者较难回避的是基于行为的签名检测。
多态性恶意软件是可以用不同方式打包以产生打包电子文件的恶意软件,所述电子文件则是二进制可执行文件并且包含“解包器”。打包的电子文件是不同的,并且由此具有不同的散列值。该处理通常是用加密技术完成的。在极端情况下,打包电子文件的每次拷贝都是不同的。这样会使反病毒应用很难仅从其静态签名中识别出打包的二进制可执行文件是恶意软件。
反病毒应用可以通过从恶意软件的解包形式中计算用于创建指纹的签名来解决这个问题。由于反病毒程序只能在知道如何解包原始形式的恶意软件文件并且具有用于解包恶意软件的指纹的情况下才能检测到服务器端的多态性恶意软件,因此,该处理需要反病毒应用具有可靠的解包算法。
由于每一个恶意软件拷贝都是独有的(或者至少是罕见的),因此,多态性是一种用于尝试避开检测的有效隐蔽机制。反病毒厂商很难识别出尚未检测到的新的多态性恶意软件或是已有多态性恶意软件的变种,并且很难将关于这些软件的检测结果添加到数据库中。由于反病毒服务器看到的是查询签名以及其他相关元数据,并且可以保持具有供以后分析的所有元数据以及作为恶意软件的可能标识的最流行未知文件的列表,因此,使用客户端-服务器模型有助于解决这个问题。然而,由于多态性恶意软件的解包版本是独有的 (或者至少是罕见的),因此,其在“最流行未知文件”列表中是不能直接看到的。而这会使其更难被识别和优先化,以便进行进一步的处理。发明内容
发明人已认识到与识别多态性恶意软件相关联的问题。本发明的一个目标是提供用于识别多态性恶意软件的改进方式。
根据本发明的第一方面,所提供的是一种用于识别将电子文件识别为多态性恶意软件的方法。服务器从客户端设备接收与电子文件关联的散列值和元数据。该服务器确定接收到的元数据与数据库中存储的对应元数据相关,所述对应的存储元数据与另一个散列值相关联,另一散射值与所接收的散列值不同。确定所接收的每个散列值都是由少于预定数目的客户端报告的,以及由此确定电子文件可能是多态性恶意软件。
作为选项,该方法还包括将接收到的散列值和元数据与数据库中存储的已知指纹相比较。如果散列值或接收的元数据的一部分(或是其全部)与数据库中存储的指纹的一部分相对应,则确定电子文件是干净的还是恶意软件。可选地,该方法包括如果无法确定电子文件是否可能是多态性恶意软件,则向用户发出警报。
作为选项,元数据将被添加到数据库中。确保可以使用来自客户端设备的查询来扩展数据库,以及改善来自相同或其他客户端设备的未来查询的结果。
作为选项,该方法还包括如果确定电子文件可能是多态性恶意软件,则优先考虑所述电子文件,以便进行进一步的分析。
服务器可以产生可疑文件的指纹,所述指纹基于接收到的元数据为基础的。
根据本发明的第二方面,提供了一种反病毒服务器,包括接收器,用于从客户端设备接收与电子文件相关联的散列值和元数据。所述反病毒服务器配备了用于访问存储有来自其他客户端设备的查询记录的数据库的装置,每一条记录都包括散列值和元数据,所述元数据被存储在相似元数据的群集中。提供了一个用于确定接收的元数据与数据库中存储的相应元数据相关联的处理器,其中对应的存储元数据与另一个散列值相关联,另一散列值与接收的散列值不同。该处理器还被布置为确定服务器接收到少于预定数目并且包含了与接收到的散列值相匹配的散列值的查询,以及因此确定电子文件可能是多态性恶意软件。
作为选项,该处理器布置为将接收到的散列值和元数据与数据库中存储的已知指纹相比较。如果散列值或接收的元数据的一部分(或全部)与数据库中尺寸的指纹的一部分相对应,则处理器确定电子文件是干净的还是恶意软件。
作为选项,处理器还布置为如果无法确定电子文件是否可能是多态性恶意软件, 则向用户发出警报。
该处理器可以布置为将接收到的元数据添加至服务器中的元数据群集。无论该电子文件是否被确定成是恶意软件,该群集都可以被用于进一步的查询。
在本发明的一个实施例中,处理器布置如果确定电子文件可能是多态性恶意软件,则优先考虑所述电子文件,以便进行进一步的分析。
该处理器可以布置为产生可疑文件的指纹,其中所述指纹基于接收的元数据。
根据本发明的第三方面,提供一种包含计算机可读代码的计算机程序,其中当在服务器上运行时,所述代码使服务器执行以上在本发明的第一方面中描述的方法。
根据本发明的第四方面,提供一种计算机程序产品,所述计算机程序产品包括计算机可读介质以及以上在本发明的第三方面中描述的计算机程序,其中所述计算机程序存储在计算机可读介质中。


图I以框图形式示意性示出了典型的合法软件应用的散列值以及相关联的元数据;
图2以框图形式示意性示出了多态性恶意软件的散列值以及相关联的元数据;图3以框图形式示意性示出了不同版本的典型的合法软件应用的散列值以及相关联的元数据;图4以框图形式示意性示出了根据本发明实施例的服务器;图5是示出了本发明实施例的步骤的流程图。
具体实施例方式考虑使用反病毒客户端/服务器模型的情景,其中服务器代表客户端来对可疑电子文件进行某种分析,并且可以访问数据。客户端设备上的反病毒应用对客户端设备处的存储器或磁盘进行扫描,并且通过扫描可执行文件来检测可疑电子文件。然后,客户端可以向服务器发送查询,以便确定可疑文件是否是恶意软件。所述客户端可以在服务器查询中使用签名或其他元数据作为键值来识别可疑文件。与可疑电子文件相关的元数据信息的示例包括使用信息,与可疑电子文件相关联的下载URL,文件名和位置,任何相关联的文件或动态链接库的标识,注册表变化,执行日志,电子文件执行的网络连接等等。由此,服务器会接收到反病毒客户端所看到的与可执行文件有关的大量元数据。所述元数据存储在数据库中,并且可以用不同算法“群集”,从而识别与两个可疑文件相关联的元数据之间的相似性。元数据“群集”被用于描述为可能来自若干个客户端设备的、针对不同的独有文件而接收的元数据群组,其中所述元数据被认为具有相似性。如果两个可疑文件之间的相关性很强,则指示这些文件存在某种程度的联系。这两个可疑文件既有可能是恶意软件的不同变种,也有可能是多态性恶意软件的打包示例,还有可能是新版本的合法软件。转到图1,该图示出的是典型的合法可执行二进制文件或非多态性恶意软件的可执行文件的散列值的示例。在该示例中,用户I至N均向服务器发送与同一个可执行二进制文件相关联的查询。由于所述可执行二进制文件对于每一个用户都是相同的,因此,每一个用户都给出了相同散列值5。此外,一个或多个用户还可以发送与该文件相关联的元数据。所述元数据以群集6存储在数据库中并与二进制可执行文件相关联。对于多态性恶意软件来说,若干个不同的散列值与恶意软件产生的每个打包的可执行二进制文件相关联。如上所述,散列值可以与打包的可执行二进制文件一样多。在这种情况下,用户I向服务器发送散列值7,用户2向服务器发送散列值8,用户3向服务器发送散列值9,以及用户N向服务器发送散列值10。此外,用户还会发送与二进制可执行文件相关联的元数据。对所述元数据进行检验,并且找到一些元数据之间的相似性。如果存在足够的相似性,则将这些元数据作为群集11关联在一起。即使具有不同的散列值,所述相似性也足以让服务器肯定每一个散列值与同一个恶意软件相关。作为替换,如果服务器不能做出肯定识别,则它可以向用户标记元数据群集以及相关联的散列值,以便进行进一步调查。元数据与不同的完整文件散列的相关性允许服务器识别出打包的二进制可执行文件是恶意软件。在一些情况中,合法软件应用的二进制可执行文件、DLL、驱动器等等具有不同的散列值。以下描述涉及的是电子文件,并且应该了解,该描述适用于可以用于窝藏恶意软件的任何类型的数据,例如二进制可执行文件、DLL等等,并且还涉及电子文件组合。例如,图3示出的是更新合法电子文件和发布新版本的情景。在这种情况下,用户I和2在其客户端计算机设备上具有版本较老的合法电子文件。所述版本较老的合法电子文件具有与二进制可执行文件相关联的散列值12。另一方面,用户3具有版本较新的合法电子文件,并且所述版本具有与二进制可执行文件相关联的散列值13。用户N可能安装了任一版本。当用户向服务器发送散列值时,他还会发送相关联的元数据。服务器接收到与版本较老的合法电子文件相关联的众多相同散列值,以及与版本较新的合法电子文件相关联的众多相同散列值。在这里为每一个散列值创建了一个元数据群集14、15。服务器会从多个用户那里接收与相同的合法电子文件相关的消息,并且在与合法电子文件相关联的众多请求中,接收到的仅仅是少量相关联的散列值。由此向服务器表明所述合法电子文件不是多态性恶意软件。不同版本的合法电子文件有可能导致关联的元数据发生变化,但在大多数情况中,在关联于散列值12的元数据群集14与关联于散列值13的元数据群集15之间存在某种交叠。如果服务器识别出元数据群集属于某个合法电子文件,那么它可以将源于所接收的元数据的指纹添加到已知属于合法电子文件的指纹白名单中。现在参考图4,该图示出的是反病毒服务器16。服务器16配备了用于在客户端设备认为电子文件可疑的情况下从所述客户端设备接收散列值以及相关联的元数据的接收器17。服务器16还配备了数据库18。应该指出的是,所示出的数据库18位于服务器。然而本领域技术人员将会认识到,在备选实施例中,数据库18可以远离服务器16。由此,如果数据库远离服务器,那么服务器16仅仅需要用于访问数据库18的装置,例如远程连接。所述数据库被用于存储来自客户端设备的先前查询项目(散列值)的记录。每一个记录都包括散列值19-26以及相关联的元数据27-34。元数据进一步被分组成群集35-37。例如,群集35包括元数据28-30,群集36包括元数据31和32,群集37包括元数据33和34。群集38的表格还会与至散列值和元数据的关联配对的链接(用虚线示出)存储在一起。除了群集之外,其他信息同样是可以存储的,例如知道与群集相关联的散列值和元数据是否与恶意软件相关联。应该了解的是,该布置是为了简单起见而被示出的,假定可以相似数据的群集,那么可以采用多种不同的方式来存储数据以及将所述数据与数据库18中的其他数据相关联。例如,元数据以及相关的散列值的项可以与多于一个群集相关联。所提供的处理器39用于将接收到的散列值与数据库18中存储的散列值19-26相比较。如果确定接收到的散列值与少于预定数目的散列值19-26相匹配或者不与散列值19-26中的任何一个匹配,则处理器38继续将接收到的元数据与数据库18中存储的元数据群集35-37相比较。如果处理器38发现在接收的元数据与关联于恶意软件或干净电子文件的元数据群集之一之间存在足够相似性,则可以合理假设所接收的元数据分别与特定的恶意软件或干净的电子文件相关联。提供发射器40将此报告给客户端设备。由此,即使散列值不匹配,服务器也可以通过比较智能签名和行为签名之类的元数据来确定对应电子文件是相同的。还提供了一个存有计算机程序42并采用存储器41的形式的计算机可读介质。在由处理器29执行时,服务器会以如上所述的方式运行。数据库18还可用于存储指纹白名单43。由于白名单43可被认为是与已知的干净电子文件相关联的元数据的群集,因此,所述白名单可以是元数据群集表格43的一部分, 或者也可以将其单独存储。所述白名单可以是在合法电子文件具有多态性的时候创建的。 否则,多态性合法电子文件将会导致服务器错误地将其识别成多态性恶意软件。例如,在创建每一个用户独有的二进制可执行文件时,合法电子文件有可能是多态性的。该处理是可以出于许可或数字权利管理方面的原因进行的。
通过监视来自客户端设备的输入查询和其他元数据,服务器16会自动群集接收自客户端的元数据,从而将相似的元数据链接到相同群集。为了保持数据库18的记录是最新的,包括散列值和元数据在内的来自查询的信息将被存储数据库。散列值和元数据如果相关的则可以与已有元数据群集相链接,或者可以用于创建新的群集。
服务器16可以通过辨认元数据群集的图案以及所接收的元数据与已存储元数据群集之间的相似性来识别出新的多态性恶意软件或是巳知多态性恶意软件的变体。
在一些情况中,元数据群集与所接收的元数据之间的相似度有可能不够明确,从而使得服务器无法确定所接收的元数据是否关联于作为元数据群集的相同电子文件。在这种情况下,处理器39布置为向用户警告所述事实。然后,用户可以调查所接收的元数据和散列值。举例来说,如果不能使用元数据来将电子文件分类成恶意软件或干净的,那么可以获取原始文件并且可以使用其他已知的文件分析方法。
如果服务器16识别出尚未与服务器侧的多态性恶意软件或干净的电子文件相关联的新的感兴趣元数据群集,那么它还可以优先考虑可能的恶意软件情形,以便进行进一步分析。
服务器16还可以自动产生多态性恶意软件的通用指纹,其中所述通用指纹并不基于散列值,而是基于接收到的元数据。无论二进制可执行文件具有怎样的散列值,可疑文件的行为都是独有的,这一点可以用于识别恶意软件。数据库18中的元数据群集的集合提供了用于产生此类指纹的良好起点。
图5是示出了服务器16执行的步骤的流程图。以下编号与图5的编号是对应的。
SI.客户端设备执行扫描并识别出可疑文件。它向服务器16发送与可疑文件相关联的完整文件散列值及元数据。所述元数据可用于创建指纹来识别可疑文件。
S2.服务器16可以通过检查来了解散列值是否与数据库18中的散列值匹配或者元数据是否与数据库18中关于已知恶意软件或干净文件的相应指纹匹配。如果是的话,则该方法进行至步骤S3,如果不是的话,则该方法进行至步骤S4。
S3.当散列值、签名或其他元数据与已知恶意软件或干净文件的指纹相匹配,则将该状态返回给客户端,以便采取进一步动作(这是可选步骤)。
S4.如果使用步骤S2的散列值或指纹检查没有识别出所扫描的文件是干净的文件还是恶意软件,则使用元数据来进一步分析未知文件。将接收的元数据与数据库18中存储的元数据群集相比较。不同的算法可被用于比较不同类型的元数据。元数据是通过运行将紧密关联的文件分类到相同群集的群集算法来处理的。
S5.确定所接收的元数据是否充分对应数据库18中存储的已有元数据群集。如果是的话,则该方法继续步骤S7,否则该方法进行至步骤S6。
S6.使用所接收的元数据来创建新群集,并且该方法进行至步骤S9。
S7.确定元数据群集是否具有与之关联的至少两个(在某些情况中是若干个)不同散列值,如果是的话,则确定这些散列值中的每一个是否是由少于预定数目的客户端设备报告给服务器的。如果是的话,则该文件很有可能是多态性恶意软件,并且该方法进行至步骤S8。否贝U,该文件不太可能是多态性恶意软件,并且该步骤继续步骤S9。S8.确定该文件有可能是多态性恶意软件,并且可以对该文件进行进一步分析。如果结果表明该文件有可能是多态性恶意软件,则进一步的步骤可以包括以下任何处理报告客户端,警告分析员,将源自元数据的签名信息添加至数据库等等。S9.如果还可以使用其他群集算法来识别元数据是否匹配已有群集,则该方法返回步骤S4,否则该方法在步骤SlO结束。本发明允许服务器通过关联于文件的元数据与数据存储中存储的先前从其他客户端请求获取的元数据相比较,以便识别具有独有(或罕见)散列值的多态性恶意软件。该数据库是在接收到每一个新请求的时候动态更新的。由于服务器接收到来自众多不同客户端的众多请求,因此本发明对客户端/服务器模型而言是有效的。所述数据库还可以用于分析多态性恶意软件的趋势,并且确定帮助对抗恶意软件的模式。此外,服务器16还可以基于所接收的元数据来产生指纹,例如使用客户端报告的可疑文件行为分析的结果。这些指纹可以在识别多态性恶意软件的过程中得到使用。本领域技术人员将会了解,在不脱离本发明的范围的情况下,可以对上述实施例进行各种修改。例如,在这里将数据库描述成位于服务器处,但是很明显,该数据库也可以位于与服务器分离的实体上,在这种情况下,服务器会远程向数据库发送查询。
权利要求
1.一种用于识别电子文件是多态性恶意软件的方法,该方法包括 在服务器上,从客户端设备接收与所述电子文件相关联的散列值和元数据; 确定接收的元数据与数据库处存储的对应元数据相关,存储的对应元数据关联于与接收的散列值不同的另一散列值; 确定接收的每个散列值是由少于预定数目的客户端报告的;以及 由此确定所述电子文件可能是多态性恶意软件。
2.根据权利要求I所述的方法,还包括 将接收的散列值和元数据与数据库处存储的已知指纹相比较; 如果接收的散列值和元数据二者中的任何一个与数据库处存储的指纹的至少一部分相对应,则确定电子文件是干净的或是恶意软件。
3.根据权利要求I或2所述的方法,还包括如果不能确定所述电子文件可能是多态性恶意软件,则向用户发出警报。
4.根据权利要求1、2或3所述的方法,还包括将接收的元数据添加到数据库中。
5.根据权利要求I或2所述的方法,还包括如果确定所述电子文件可能是多态性恶意软件,则优先考虑所述电子文件,以进一步分析。
6.根据权利要求I至5中任一权利要求所述的方法,还包括在服务器处,产生可疑文件的指纹,所述指纹基于接收到的元数据。
7.一种反病毒服务器,包括 接收器,用于从客户端设备接收与电子文件相关联的散列值和元数据; 用于访问存有来自其他客户端设备的查询记录的数据库的装置,每一条记录包括散列值和元数据,所述元数据存储在相似元数据的群集中; 处理器,用于确定接收的元数据与存储在数据库处的对应元数据相关,其中存储的对应元数据关联于与接收的散列值不同的另一散列值; 处理器还被布置为确定服务器接收到少于预定数目的包含了与接收到的散列值相匹配的散列值的查询,以及 处理器还被布置为确定电子文件可能是多态性恶意软件。
8.根据权利要求7所述的反病毒服务器,其中处理器被布置为将接收的散列值和元数据与数据库处存储的已知指纹相比较,如果接收的散列值和元数据二者的任何一个与数据库处存储的指纹的至少一部分相对应,则确定所述电子文件是干净的或是恶意软件。
9.根据权利要求7或8所述的反病毒服务器,其中处理器还被布置为如果不能确定电子文件可能是多态性恶意软件,则向用户发出警报。
10.根据权利要求7、8或9所述的反病毒服务器,其中该处理器还被布置为将接收到的元数据添加至元数据群集。
11.根据权利要求7至10中任一权利要求所述的反病毒服务器,其中处理器还被布置为如果确定所述电子文件可能是多态性恶意软件,则优先考虑所述电子文件,以进一步分析。
12.根据权利要求7至11中任一权利要求所述的反病毒服务器,其中处理器还被布置为产生针对可疑文件的签名,其中所述签名基于接收的元数据。
13.—种包括计算机可读代码的计算机程序,其中当在服务器上运行时,所述代码使服务器执行权利要求I至6中任一权利要求所述的方法。
14.一种计算机程序产品,所述计算机程序产品包括计算机可读介质以及根据权利要求13的计算机程序,其中所述计算机程序存储在计算机可读介质上。
全文摘要
一种用于识别电子文件是多态性恶意软件的方法和设备。服务器从客户端设备接收与电子文件关联的散列值和元数据。该服务器确定接收到的元数据与数据库中存储的对应元数据相关,所述保存的相应元数据关联于与所接收的散列值不同的另一个散列值。确定所接收的每个散列值是由少于预定数目的客户端报告的,以及由此确定电子文件可能是多态性恶意软件。
文档编号H04L29/06GK102985928SQ201180034358
公开日2013年3月20日 申请日期2011年5月13日 优先权日2010年7月13日
发明者蒂默·哈莫宁 申请人:F-赛酷公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1