用于计算机病毒检测的方法、终端、服务器和系统的制作方法
【专利摘要】本发明提供了用于检测计算机病毒的方法、终端、服务器和系统。在终端处执行的方法包括:(a)使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测;(b)在所述初步检测中发现所述数据样本是潜在计算机病毒的情况下,向服务器提交所述数据样本;以及(c)从所述服务器接收所述病毒检测的结果和针对所述多个终端侧病毒检测引擎的可能更新。在服务器处执行的方法包括:(a)从一个或多个终端获取作为潜在计算机病毒的数据样本;(b)针对所述数据样本执行包括静态分析和动态分析在内的病毒检测;以及(c)根据所述病毒检测的结果,向所述一个或多个终端中至少一个终端返回所述结果以及针对所述至少一个终端上的多个终端侧病毒检测引擎的可能更新。
【专利说明】用于计算机病毒检测的方法、终端、服务器和系统
【技术领域】
[0001]本发明涉及计算机安全领域,更具体地涉及用于计算机病毒检测的方法、终端、月艮务器和系统。
【背景技术】
[0002]随着移动终端日益广泛的应用,其已经成为了人们在生产生活中不可或缺的一部分。为了确保移动终端在日常使用中的安全性,就不可避免地要涉及到移动终端的病毒检测问题。
[0003]对于移动终端病毒检测技术的核心“检测引擎”而言,可以使用多个不同的引擎从多个角度对待检测的应用程序(更一般地,数据样本)进行扫描,从而最大程度地检测出可能包含有恶意行为的程序(计算机病毒)。现有的常规病毒检测方法是在服务器端部署多个病毒检测引擎,利用服务器的高计算能力来处理检测样本。然而,随着移动终端的硬件能力的不断提升,可以将多引擎的技术转移到客户端上。但这样也会带来一些其他问题。
[0004]例如,多个引擎之间的结果统一(综合/合并),病毒样本的及时上传等。具体地,现有的病毒检测方案无法提升客户端对变种病毒的识别能力,也无法使服务提供商(例如,第三方杀毒应用提供商)在第一时间掌握用户的移动终端上感染的病毒样本的细节特征,并进而无法避免病毒的大规模爆发和扩散。
【发明内容】
[0005]为了解决上述问题,提供了根据本发明的用于计算机病毒检测的方法、终端、服务器和系统。
[0006]根据本发明的第一方面,提供了一种用于在终端处检测计算机病毒的方法。该方法包括:(a)使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测;(b)在所述初步检测中发现所述数据样本是潜在计算机病毒的情况下,向服务器提交所述数据样本;以及(C)从所述服务器接收所述病毒检测的结果和针对所述多个终端侧病毒检测引擎的可能更新。
[0007]在一些实施例中,步骤(a)包括:顺序使用所述多个终端侧病毒检测引擎对所述数据样本进行初步检测。
[0008]在一些实施例中,步骤(a)还包括:一旦顺序调用的所述多个终端侧病毒检测引擎之一发现所述数据样本是潜在计算机病毒,则步骤(a)立刻结束并继续后续步骤。
[0009]在一些实施例中,步骤(b)包括:向所述服务器发送针对所述数据样本的切片上传请求;从所述服务器接收响应于所述切片上传请求的切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述终端应当向所述服务器发送其中哪些切片的信息;根据所述切片上传指令,将所述数据样本进行切片并上传指定的切片。
[0010]在一些实施例中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0011]在一些实施例中,步骤(b)是在网络空闲时执行的。
[0012]在一些实施例中,步骤(C)包括:从所述服务器接收指示所述数据样本不是计算机病毒的检测结果。
[0013]在一些实施例中,步骤(C)包括:从所述服务器接收指示所述数据样本是计算机病毒的检测结果,以及从所述服务器接收用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
[0014]根据本发明的第二方面,提供了一种用于检测计算机病毒的终端。该终端包括:初步检测单元,用于使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测;样本提交单元,用于在所述初步检测中发现所述数据样本是潜在计算机病毒的情况下,向服务器提交所述数据样本;以及结果接收单元,用于从所述服务器接收所述病毒检测的结果和针对所述多个终端侧病毒检测弓I擎的可能更新。
[0015]在一些实施例中,所述初步检测单元还用于:顺序使用所述多个终端侧病毒检测弓I擎对所述数据样本进行初步检测。
[0016]在一些实施例中,所述初步检测单元还用于:一旦顺序调用的所述多个终端侧病毒检测引擎之一发现所述数据样本是潜在计算机病毒,则所述初步检测单元的操作立刻结束。
[0017]在一些实施例中,所述样本提交单元还用于:向所述服务器发送针对所述数据样本的切片上传请求;从所述服务器接收响应于所述切片上传请求的切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述终端应当向所述服务器发送其中哪些切片的信息;根据所述切片上传指令,将所述数据样本进行切片并上传指定的切片。
[0018]在一些实施例中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0019]在一些实施例中,所述样本提交单元在网络空闲时向所述服务器提交所述数据样本。
[0020]在一些实施例中,所述结果接收单元还用于:从所述服务器接收指示所述数据样本不是计算机病毒的检测结果。
[0021]在一些实施例中,所述结果接收单元还用于:从所述服务器接收指示所述数据样本是计算机病毒的检测结果,以及从所述服务器接收用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
[0022]根据本发明的第三方面,提供了一种用于在服务器处辅助检测计算机病毒的方法。该方法包括:(a)从一个或多个终端获取作为潜在计算机病毒的数据样本;(b)针对所述数据样本执行包括静态分析和动态分析在内的病毒检测;以及(C)根据所述病毒检测的结果,向所述一个或多个终端中至少一个终端返回所述结果以及针对所述至少一个终端上的多个终端侧病毒检测引擎的可能更新。
[0023]在一些实施例中,步骤(a)包括:从一个终端接收针对所述数据样本的切片上传请求;基于所述切片上传请求,查找包括所述一个终端在内的能够与所述服务器通信并具有所述数据样本的一个或多个终端;基于所述切片上传请求,分别生成针对所述一个或多个终端的一个或多个切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述一个或多个终端中的各终端应当向所述服务器各自发送其中哪些切片的信息;向所述一个或多个终端分别发送相应的切片上传指令;从所述一个或多个终端接收所述数据样本的相应切片;以及将所述切片组合为所述数据样本。
[0024]在一些实施例中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0025]在一些实施例中,所述静态分析包括代码分析和特征分析。
[0026]在一些实施例中,所述代码分析包括:将所述数据样本的代码与已知恶意代码串进行匹配,并根据匹配结果来判断所述数据样本是否是计算机病毒。
[0027]在一些实施例中,所述特征分析包括:基于所述数据样本的至少包括包名、签名公钥、文件散列在内的文件特征,根据知识库中的安全规则来判断所述数据样本是否是计算机病毒。
[0028]在一些实施例中,所述动态分析包括:将所述数据样本置于被监控的虚拟环境中运行;获得由所述数据样本在运行期间发生的动作和产生的数据;分析所述动作和所述数据,以判断所述数据样本是否是计算机病毒。
[0029]在一些实施例中,所述病毒检测是由多个服务器侧病毒检测弓I擎来并行执行的。
[0030]在一些实施例中,步骤(C)包括:向所述一个或多个终端中的至少一个终端发送指示所述数据样本不是计算机病毒的检测结果。
[0031]在一些实施例中,步骤(C)包括:向所述一个或多个终端中的至少一个终端发送指示所述数据样本是计算机病毒的检测结果,以及向所述一个或多个终端中的至少一个终端发送用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
[0032]在一些实施例中,针对所述至少一个终端上的多个终端侧病毒检测引擎的更新是根据所述病毒检测的结果通过人工产生的。
[0033]根据本发明的第四方面,提供了一种用于辅助检测计算机病毒的服务器。该服务器包括:样本获取单元,用于从一个或多个终端获取作为潜在计算机病毒的数据样本;病毒检测单元,用于针对所述数据样本执行包括静态分析和动态分析在内的病毒检测;以及结果返回单元,用于根据所述病毒检测的结果,向所述一个或多个终端中至少一个终端返回所述结果以及针对所述至少一个终端上的多个终端侧病毒检测引擎的可能更新。
[0034]在一些实施例中,所述样本获取单元还用于:从一个终端接收针对所述数据样本的切片上传请求;基于所述切片上传请求,查找包括所述一个终端在内的能够与所述服务器通信并具有所述数据样本的一个或多个终端;基于所述切片上传请求,分别生成针对所述一个或多个终端的一个或多个切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述一个或多个终端中的各终端应当向所述服务器各自发送其中哪些切片的信息;向所述一个或多个终端分别发送相应的切片上传指令;从所述一个或多个终端接收所述数据样本的相应切片;以及将所述切片组合为所述数据样本。
[0035]在一些实施例中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0036]在一些实施例中,所述静态分析包括代码分析和特征分析。
[0037]在一些实施例中,所述代码分析包括:将所述数据样本的代码与已知恶意代码串进行匹配,并根据匹配结果来判断所述数据样本是否是计算机病毒。
[0038]在一些实施例中,所述特征分析包括:基于所述数据样本的至少包括包名、签名公钥、文件散列在内的文件特征,根据知识库中的安全规则来判断所述数据样本是否是计算机病毒。
[0039]在一些实施例中,所述动态分析包括:将所述数据样本置于被监控的虚拟环境中运行;获得由所述数据样本在运行期间发生的动作和产生的数据;分析所述动作和所述数据,以判断所述数据样本是否是计算机病毒。
[0040]在一些实施例中,所述病毒检测是由多个服务器侧病毒检测弓I擎来并行执行的。
[0041]在一些实施例中,所述结果返回单元还用于:向所述一个或多个终端中的至少一个终端发送指示所述数据样本不是计算机病毒的检测结果。
[0042]在一些实施例中,所述结果返回单元还用于:向所述一个或多个终端中的至少一个终端发送指示所述数据样本是计算机病毒的检测结果,以及向所述一个或多个终端中的至少一个终端发送用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
[0043]在一些实施例中,针对所述至少一个终端上的多个终端侧病毒检测引擎的更新是根据所述病毒检测的结果通过人工产生的。
[0044]根据本发明的第五方面,提供了一种用于检测计算机病毒的系统。该系统包括一个或多个根据本发明的第二方面所述的终端以及根据本发明的第四方面所述的服务器。
[0045]通过使用本发明的方法、终端、服务器和系统,首先可以提升移动终端上的客户端查毒软件对变种病毒的查杀能力,并第一时间获取移动终端杀毒软件检测到的病毒样本,提升对移动终端病毒的响应能力。此外,可以提升移动终端安全软件公司对终端侧恶意软件的整体识别能力和响应速度。该病毒检测流程从终端侧到服务器侧,再到人工分析团队,最后回到终端侧,每一轮流程都是一个病毒检测能力提升的过程。在终端侧发现包含有恶意行为的病毒时,第一时间反馈该病毒样本,这样就可以及时预警任何可能的安全事件,阻止出现大规模的安全问题。
【专利附图】
【附图说明】
[0046]通过下面结合【专利附图】
【附图说明】本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
[0047]图1是示出了根据本发明的用于检测计算机病毒的系统的示例应用场景的示意图。
[0048]图2是示出了根据本发明的图1所示的示例系统的工作流程示意图。
[0049]图3是示出了在图1所示的示例终端上多病毒引擎操作的示意图。
[0050]图4是示出了在图1所示的示例终端上对数据样本进行切片的示意图。
[0051]图5是示出了根据本发明实施例的在终端处执行的用于检测计算机病毒的示例方法的流程图。
[0052]图6是示出了根据本发明实施例的示例终端的框图。[0053]图7是示出了根据本发明实施例的在服务器处执行的用于辅助检测计算机病毒的示例方法的流程图。
[0054]图8是示出了根据本发明实施例的示例服务器的框图。
【具体实施方式】
[0055]下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。以下,以本发明应用于无线移动通信系统的场景为例,对本发明进行了详细描述。但本发明并不局限于此,本发明也可以应用于固定通信系统、有线通信系统,或者应用于无线移动通信系统、固定通信系统、有线通信系统等的任意混合结构。就移动通信系统而言,本发明并不局限于所涉及的各个移动通信终端的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络,WCDMA,CDMA2000、TD-SCDMA系统等,不同的移动终端可以采用相同的通信协议,也可以采用不同的通信协议。本发明并不局限于移动终端的具体操作系统,可以包括(但不限于)iOS、Windows Mobile、Symbian、Android等,不同的移动终端可以采用相同的操作系统,也可以采用不同的操作系统。
[0056]图1是示出了根据本发明的示例计算机病毒检测系统1000的应用场景的示意图。如图1所示,示例计算机病毒检测系统1000可以包括一个或多个终端(例如,100AU00B、和100C)以及服务器200。下文中,当不特别指定时,将终端100AU00B和100C统称为终端100。为了清楚起见,图中仅示出了三个终端100和一个服务器200,但本发明并不局限于此,可以包括任意数目的终端和/或服务器等等。终端100可以属于用户或者可以由用户操作。终端100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。
[0057]在图1所示实施例中,为了检测终端100上的计算机病毒,将根据本发明的实施例的病毒检测客户端150和/或服务器端250 (以下分别简称为客户端150和服务器端250)分别安装在终端100和/或服务器200上。客户端150和/或服务器端250可以由用户以软件的形式自行安装在终端100和/或服务器200中,或者可以由终端和/或服务器生产厂商以硬件或固件的形式分别安装在终端100和/或服务器200中。在一些实施例中,客户端150和/或服务器端250可以是例如在用户购买了终端100和/或服务器200之后从网络中下载的专门用于本发明的应用软件。在另一些实施例中,客户端150和/或服务器端250可以是例如由生产厂商以固件或硬件形式预先安装在终端100和/或服务器200中的应用程序。在又一些实施例中,客户端150和/或服务器端250可以是由生产厂商生产的硬件模块或终端100和/或服务器200本身。
[0058]接下来,将参考图1?4来详细说明根据本发明的实施例的病毒检测流程。
[0059]首先将参见图2来介绍根据本发明的实施例的大致病毒检测流程。在终端100中引入多病毒引擎检测(例如,图3所示),配合一系列的服务器端系统和流程(例如,服务器端250),将终端100上发现的有潜在恶意行为或者潜在危险级别比较高的应用,在第一时间上传到服务器200上,供服务器200进一步的处理。利用服务器200的计算能力和/或人工分析团队,分析上传的样本的详细信息,作进一步判定后再通过更新终端100上的病毒库以及云端知识库来反哺终端100上的病毒检测应用(例如,客户端150),从而提升终端100的病毒查杀准确性。
[0060]整个流程大致涉及了以下多个子系统和模块,包括:(1)终端100上的应用软件(例如,客户端150),其包含了多个病毒引擎模块(例如,图3所示的引擎A、B、和C)、软件自动切片上传模块(未示出)、以及通讯模块(未示出)等;(2)服务器200上的服务器侧系统(例如,服务器端250),其包含了病毒分析系统(未不出)、上传管理系统、样本文件合并管理系统等;以及(3)人工分析团队(可选),其包括病毒分析师和系统工程师。
[0061]接下来,将详细描述本病毒检测的具体流程。在图3所示的实施例中,首先,终端100上的客户端150内置了两个以上(包含两个)的恶意行为检测引擎(或病毒检测引擎)。在图3所示的实施例中,存在三个引擎A、B和C,本发明不限于此。各个引擎采用相互独立的扫描策略,而这些独立的扫描策略会从多个角度来检测终端100上安装的应用是否可能包含有恶意行为。
[0062]如图3所示,多个引擎之间可以采用串联的机制。即,将待检测的应用软件(数据样本)顺序送到各个引擎上进行扫描分析。如果在某一引擎处检测的结果是安全,则向下一引擎送检。一旦在某一引擎处发现有已知的恶意行为(或潜在恶意行为),就立刻结束整个检测过程,使得不再进行其他引擎的检测操作,从而节省终端100的计算资源和等待时间。当然,多个引擎之间也可以按其他顺序来进行检测。例如,各个引擎之间并行检测,部分引擎并行,部分引擎串行等等。本发明不限于这些检测方式。不管用何种顺序来执行多个引擎的病毒检测时,只要这些引擎之一发现有不能确认的潜在恶意行为时,就可以向服务器200的样本上传管理系统发送针对该数据样本的上传请求(例如,切片上传请求),从而节约终端100的计算资源和等待时间。
[0063]服务器200的样本上传管理系统接收到该上传请求后,遍历检索当前连接到该样本上传管理系统的所有(或部分)终端100,并在其中寻找具有相同数据样本的终端100 (例如,在发起切片上传请求的终端100是终端100A的情况下,可以寻找终端100B和100C)。如果发现一个或多个其他终端100也包含同样的数据样本,则样本上传管理系统可以向这些终端100发送数据上传指令(例如,切片上传指令),以指示各终端进行相应的切片上传操作。
[0064]在切片上传指令中,可以包含用于指示每个终端100如何对该相同的数据样本进行切片的信息,且还应当包含用于指示每个终端100向服务器200的样本上传管理系统上传这些切片中的哪些切片的信息。在一个实施例中,可以按照固定大小对数据样本进行切片。例如,每个切片应当尽可能具有固定大小(例如,最大值1MB)。因此,当具有9.5MB的数据样本被切片时,可以将其切为10个切片,前9个切片具有大小1MB,而第10个切片具有0.5MB大小。更一般地,切片上传指令应当至少包括指示终端100将数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,其中,N为大于等于2的自然数。
[0065]在对数据样本进行切片之后,根据切片上传指令中包含的用于指示每个终端100向服务器200的样本上传管理系统上传这些切片中的哪些切片的信息,每个终端100可以将相应切片上传。例如,在上述示例中,将10个切片段依次编号为O?9,在只有3个终端100 (例如,100AU00B和100C)参与上传的情况下,三个终端100依次被分配到O?2号、3?5号和6?9号的切片上传任务。这些切片可以在终端100的WiFi网络(或其他数据网络)空闲的时候进行上传。
[0066]在另一个示例中,如图4所示,数据样本被等分为7个切片,且3个终端100 (分别对应于客户端1、客户端2和客户端3)被分别分配到编号为O?1、2?3和4?6切片上传的任务。当然,本发明不限于上述切片方式。在本发明的其他实施例中,还可以使用其他切片方式。例如,按照各个终端100与服务器200的连接速率(可用带宽)来按比例分配各自切片的大小和/或需要上传的切片数量。在一个实施例中,当终端100A与服务器200的连接速率为lOOKB/s,终端100B与服务器200的连接速率为200KB/s,以及终端100C与服务器200的连接速率为400KB/S时,可以指示终端100AU00B和100C将数据样本等分为7份,并分别上传切片O、切片I?2、以及切片3?6。从而,可以使得这些切片的传输同时或近似同时完成。当然,在该情况下,也可以将数据样本切为3份,但是这3份的大小比例为1:2:4,从而实现相同的技术效果。
[0067]通过该切片上传方式,可以减少特定一个终端100的数据传输压力。总体上,参与这个系统的终端100越多,则每个终端100所承担的数据通信压力就越低,越有利于数据的成功上传。此外,本发明不限于上述“切片式”上传,实际上终端100也可以采用由其自己来上传整个数据样本的方式或其他任何合适的方式。
[0068]接下来,返回图2,在使用“切片式”上传的情况下,服务器200将上传的样本切片按照编号(或其他用于识别切片的标识符)存放到文件合并管理系统中。在该系统中,根据终端100的上传记录,来判断是否所有切片都已经上传。当确定所有切片都已经上传之后,该系统将全部文件切片进行合并组装,使得各切片被重新组合成一个完整的数据样本并交给服务器200的样本自动分析系统(图2所示)。
[0069]样本自动分析系统可以是基于云计算服务器集群的分析系统。其利用服务器200 (或服务器200的组)的计算能力,根据安全策略和知识库对该数据样本进行自动化分析。在一些实施例中,自动化分析可以包括静态分析和/或动态分析。
[0070]静态分析是对数据样本进行代码和特征的检测分析技术。其一方面扫描数据样本的二进制代码,将其与已知的恶意代码串进行匹配。另一方面,其通过提取数据样本的文件特征(例如,包名、签名公钥、文件散列等),利用知识库中的安全规则进行安全评级。从而综合得出该样本的安全程度。
[0071]动态分析是将待分析的数据样本放到一个被完全监控起来的运行环境(例如,Java虚拟机)中运行。被监控的数据样本在运行过程中所发生的任何动作和产生的数据交互都会被服务器200记录下来。服务器200根据对这些动作和交互数据的分析可以判断出该数据样本的安全特性。
[0072]最后,可以通过将上述分析的结果加以综合来得到该数据样本的总体安全性检测结果。在一些实施例中,可以将分析后的结果转到人工分析平台,供病毒分析师和安全工程师团队进行处理,并生成更新的病毒库和知识库,同时反馈到终端100的终端侧病毒引擎(例如,客户端150)的升级包中。从而,进一步提升了终端100对恶意应用(病毒)的检测能力。
[0073]通过使用上述计算机病毒检测流程,首先可以提升终端100上的客户端查毒软件(例如,客户端150)对变种病毒的查杀能力,并第一时间获取终端100上的杀毒软件检测到的病毒样本,提升对手机病毒的响应能力。此外,可以提升移动终端安全软件公司对终端侧恶意软件的整体识别能力和响应速度。该病毒检测流程从终端侧到服务器侧,再到人工分析团队,最后回到终端侧,每一轮流程都是一个病毒检测能力提升的过程。在终端侧发现包含有恶意行为的病毒时,第一时间反馈该病毒样本,这样就可以及时预警任何可能的安全事件,阻止出现大规模的安全问题。
[0074]图5是示出了根据本发明实施例的用于在终端100处检测计算机病毒的方法400的流程图。如图5所示,方法400可以包括步骤S410、S420和S430。根据本发明,方法400的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图5所示的具体操作顺序。在一些实施例中,方法400可以由图1所示的终端100或其上的客户端150来执行。
[0075]图7是示出了根据本发明实施例的用于在服务器处辅助检测计算机病毒的方法450的流程图。如图7所示,方法450可以包括步骤S460、S470和S480。根据本发明,方法450的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图7所示的具体操作顺序。在一些实施例中,方法450可以由图1所示的服务器200或其上的服务器端250来执行。
[0076]图6是示出了根据本发明实施例的用于检测计算机病毒的示例终端100的框图。如图6所示,终端100可以包括:初步检测单元110、样本提交单元120和结果接收单元130。
[0077]初步检测单元110可以用于使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测。初步检测单元110可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的存储部分(例如RAM、SD卡等)相配合,使用多个终端侧病毒检测弓I擎对待检测的数据样本进行初步检测。
[0078]样本提交单元120可以用于在上述初步检测中发现数据样本是潜在计算机病毒的情况下,向服务器提交该数据样本。样本提交单元120可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的通信部分(例如,无线收发信机等)相配合,在上述初步检测中发现数据样本是潜在计算机病毒的情况下,向服务器200提交该数据样本。
[0079]结果接收单元130可以用于从服务器200接收病毒检测的结果和针对多个终端侧病毒检测引擎的可能更新。结果接收单元130可以是终端100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与终端100的通信部分(例如,无线收发信机等)和存储部分(例如RAM、SD卡等)相配合,从服务器200接收病毒检测的结果和针对多个终端侧病毒检测引擎的可能更新,并在接收到病毒库更新的情况下,对存储部分中存储的病毒库进行更新。
[0080]图8是示出了根据本发明实施例的用于辅助检测计算机病毒的示例服务器200的框图。如图8所示,服务器200可以包括:样本获取单元210、病毒检测单元220和结果返回单元230。
[0081]样本获取单元210可以用于从一个或多个终端100获取作为潜在计算机病毒的数据样本。样本获取单元210可以是服务器200的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与服务器200的通信部分(例如,无线收发信机等)和存储部分(例如RAM、SD卡等)相配合,从一个或多个终端100获取作为潜在计算机病毒的数据样本并将其保存在存储部分中。[0082]病毒检测单元220可以用于针对数据样本执行包括静态分析和动态分析在内的病毒检测。病毒检测单元220可以是服务器200的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与服务器200的存储部分(例如RAM、SD卡等)相配合,针对数据样本执行包括静态分析和动态分析在内的病毒检测。
[0083]结果返回单元230可以用于根据上述病毒检测的结果,向一个或多个终端100中至少一个终端100返回结果以及针对至少一个终端100上的多个终端侧病毒检测引擎的可能更新。结果返回单元230可以是服务器200的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与服务器200的通信部分(例如,无线收发信机等)相配合,根据上述病毒检测的结果,向一个或多个终端100中至少一个终端100返回结果以及针对至少一个终端100上的多个终端侧病毒检测引擎的可能更新。
[0084]以下将结合图5和图6,对根据本发明实施例的在终端100上执行的用于检测计算机病毒的方法400和终端100进行详细的描述。
[0085]方法400开始于步骤S410,在步骤S410中,可以由终端100的初步检测单元110使用多个终端侧病毒检测弓I擎对待检测的数据样本进行初步检测。
[0086]在步骤S420中,在上述初步检测中发现所述数据样本是潜在计算机病毒的情况下,可以由终端100的样本提交单元120向服务器200提交该数据样本。
[0087]在步骤S430中,可以由终端100的结果接收单元130从服务器200接收病毒检测的结果和针对多个终端侧病毒检测引擎的可能更新。
[0088]在一些实施例中,步骤S410可以包括:顺序使用多个终端侧病毒检测引擎对数据样本进行初步检测。
[0089]在一些实施例中,步骤S410还可以包括:一旦顺序调用的多个终端侧病毒检测引擎之一发现数据样本是潜在计算机病毒,则步骤S410立刻结束并继续后续步骤。
[0090]在一些实施例中,步骤S420可以包括:向服务器200发送针对数据样本的切片上传请求;从服务器200接收响应于切片上传请求的切片上传指令,切片上传指令至少包括用于指示如何将数据样本进行切片以及终端100应当向服务器200发送其中哪些切片的信息;根据切片上传指令,将数据样本进行切片并上传指定的切片。
[0091]在一些实施例中,切片上传指令至少可以包括指示终端100将数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0092]在一些实施例中,步骤S420可以是在网络空闲时执行的。
[0093]在一些实施例中,步骤S430可以包括:从服务器200接收指示数据样本不是计算机病毒的检测结果。
[0094]在一些实施例中,步骤S430可以包括:从服务器200接收指示数据样本是计算机病毒的检测结果,以及从服务器200接收用于更新多个终端侧病毒检测引擎的病毒库的更新数据。
[0095]以下将结合图7和图8,对根据本发明实施例的用于在服务器200处辅助检测计算机病毒的方法450和服务器200进行详细的描述。
[0096]方法450开始于步骤S460,在步骤S460中,可以由服务器200的样本获取单元210从一个或多个终端100获取作为潜在计算机病毒的数据样本。[0097]在步骤S470中,可以由服务器200的病毒检测单元220针对数据样本执行包括静态分析和动态分析在内的病毒检测。
[0098]在步骤S480中,可以由服务器200的结果返回单元230根据病毒检测的结果,向一个或多个终端100中至少一个终端100返回结果以及针对至少一个终端100上的多个终端侧病毒检测弓I擎的可能更新。
[0099]在一些实施例中,步骤S460可以包括:从一个终端100接收针对数据样本的切片上传请求;基于切片上传请求,查找包括一个终端100在内的能够与服务器200通信并具有数据样本的一个或多个终端100 ;基于切片上传请求,分别生成针对一个或多个终端100的一个或多个切片上传指令,切片上传指令至少包括用于指示如何将数据样本进行切片以及一个或多个终端100中的各终端100应当向服务器200各自发送其中哪些切片的信息;向一个或多个终端100分别发送相应的切片上传指令;从一个或多个终端100接收数据样本的相应切片;以及将切片组合为数据样本。
[0100]在一些实施例中,切片上传指令至少可以包括指示终端100将数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
[0101]在一些实施例中,静态分析可以包括代码分析和特征分析。
[0102]在一些实施例中,代码分析可以包括:将数据样本的代码与已知恶意代码串进行匹配,并根据匹配结果来判断数据样本是否是计算机病毒。
[0103]在一些实施例中,特征分析包括:基于数据样本的至少包括包名、签名公钥、文件散列在内的文件特征,根据知识库中的安全规则来判断数据样本是否是计算机病毒。
[0104]在一些实施例中,动态分析可以包括:将数据样本置于被监控的虚拟环境中运行;获得由数据样本在运行期间发生的动作和产生的数据;分析动作和数据,以判断数据样本是否是计算机病毒。
[0105]在一些实施例中,病毒检测可以是由多个服务器侧病毒检测弓I擎来并行执行的。
[0106]在一些实施例中,步骤S480可以包括:向一个或多个终端100中的至少一个终端100发送指示数据样本不是计算机病毒的检测结果。
[0107]在一些实施例中,步骤S480可以包括:向一个或多个终端100中的至少一个终端100发送指示数据样本是计算机病毒的检测结果,以及向一个或多个终端100中的至少一个终端100发送用于更新多个终端侧病毒检测引擎的病毒库的更新数据。
[0108]在一些实施例中,针对至少一个终端100上的多个终端侧病毒检测引擎的更新是根据病毒检测的结果通过人工产生的。
[0109]至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。
【权利要求】
1.一种用于在终端处检测计算机病毒的方法,包括: (a)使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测; (b)在所述初步检测中发现所述数据样本是潜在计算机病毒的情况下,向服务器提交所述数据样本;以及 (C)从所述服务器接收所述病毒检测的结果和针对所述多个终端侧病毒检测引擎的可能更新。
2.根据权利要求1所述的方法,其中,步骤(a)包括: 顺序使用所述多个终端侧病毒检测引擎对所述数据样本进行初步检测。
3.根据权利要求2所述的方法,其中,步骤(a)还包括: 一旦顺序调用的所述多个终端侧病毒检测引擎之一发现所述数据样本是潜在计算机病毒,则步骤(a)立刻结束并继续后续步骤。
4.根据权利要求1所述的方法,其中,步骤(b)包括: 向所述服务器发送针对所述数据样本的切片上传请求; 从所述服务器接收响应于所述切片上传请求的切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述终端应当向所述服务器发送其中哪些切片的信息; 根据所述切片上传指令,将所述数据样本进行切片并上传指定的切片。
5.根据权利要求4所述的方法,其中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
6.根据权利要求1所述的方法,其中,步骤(b)是在网络空闲时执行的。
7.根据权利要求1所述的方法,其中,步骤(c)包括: 从所述服务器接收指示所述数据样本不是计算机病毒的检测结果。
8.根据权利要求1所述的方法,其中,步骤(c)包括: 从所述服务器接收指示所述数据样本是计算机病毒的检测结果,以及从所述服务器接收用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
9.一种用于检测计算机病毒的终端,包括: 初步检测单元,用于使用多个终端侧病毒检测引擎对待检测的数据样本进行初步检测; 样本提交单元,用于在所述初步检测中发现所述数据样本是潜在计算机病毒的情况下,向服务器提交所述数据样本;以及 结果接收单元,用于从所述服务器接收所述病毒检测的结果和针对所述多个终端侧病毒检测引擎的可能更新。
10.一种用于在服务器处辅助检测计算机病毒的方法,包括: (a)从一个或多个终端获取作为潜在计算机病毒的数据样本; (b)针对所述数据样本执行包括静态分析和动态分析在内的病毒检测;以及 (C)根据所述病毒检测的结果,向所述一个或多个终端中至少一个终端返回所述结果以及针对所述至少一个终端上的多个终端侧病毒检测引擎的可能更新。
11.根据权利要求10所述的方法,其中,步骤(a)包括:从一个终端接收针对所述数据样本的切片上传请求; 基于所述切片上传请求,查找包括所述一个终端在内的能够与所述服务器通信并具有所述数据样本的一个或多个终端; 基于所述切片上传请求,分别生成针对所述一个或多个终端的一个或多个切片上传指令,所述切片上传指令至少包括用于指示如何将所述数据样本进行切片以及所述一个或多个终端中的各终端应当向所述服务器各自发送其中哪些切片的信息; 向所述一个或多个终端分别发送相应的切片上传指令; 从所述一个或多个终端接收所述数据样本的相应切片;以及 将所述切片组合为所述数据样本。
12.根据权利要求11所述的方法,其中,所述切片上传指令至少包括指示所述终端将所述数据样本分为N个切片的信息,其中,前N-1个切片的大小相等,第N个切片的大小小于等于前N-1个切片的大小,且N为大于等于2的自然数。
13.根据权利要求10所述的方法,其中,所述静态分析包括代码分析和特征分析。
14.根据权利要求13所述的方法,其中,所述代码分析包括: 将所述数据样本的代码与已知恶意代码串进行匹配,并根据匹配结果来判断所述数据样本是否是计算机病毒。
15.根据权利要求13所述的方法,其中,所述特征分析包括: 基于所述数据样本的至少包括包名、签名公钥、文件散列在内的文件特征,根据知识库中的安全规则来判断所述数据样本·是否是计算机病毒。
16.根据权利要求10所述的方法,其中,所述动态分析包括: 将所述数据样本置于被监控的虚拟环境中运行; 获得由所述数据样本在运行期间发生的动作和产生的数据; 分析所述动作和所述数据,以判断所述数据样本是否是计算机病毒。
17.根据权利要求10所述的方法,其中,所述病毒检测是由多个服务器侧病毒检测引擎来并行执行的。
18.根据权利要求10所述的方法,其中,步骤(c)包括: 向所述一个或多个终端中的至少一个终端发送指示所述数据样本不是计算机病毒的检测结果。
19.根据权利要求10所述的方法,其中,步骤(c)包括: 向所述一个或多个终端中的至少一个终端发送指示所述数据样本是计算机病毒的检测结果,以及向所述一个或多个终端中的至少一个终端发送用于更新所述多个终端侧病毒检测引擎的病毒库的更新数据。
20.根据权利要求10所述的方法,其中,针对所述至少一个终端上的多个终端侧病毒检测引擎的更新是根据所述病毒检测的结果通过人工产生的。
21.一种用于辅助检测计算机病毒的服务器,包括: 样本获取单元,用于从一个或多个终端获取作为潜在计算机病毒的数据样本; 病毒检测单元,用于针对所述数据样本执行包括静态分析和动态分析在内的病毒检测;以及 结果返回单元,用于根据所述病毒检测的结果,向所述一个或多个终端中至少一个终端返回所述结果以及针对所述至少一个终端上的多个终端侧病毒检测引擎的可能更新。
22.一种用于检测计算机病毒的系统,包括一个或多个根据权利要求9所述的终端以及根据权利要求21所述的服务器。
【文档编号】G06F21/56GK103593613SQ201310611338
【公开日】2014年2月19日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】张冰 申请人:北京网秦天下科技有限公司