CN103207970B - 病毒文件扫描方法及装置 - Google Patents

病毒文件扫描方法及装置 Download PDF

Info

Publication number
CN103207970B
CN103207970B CN201310156238.9A CN201310156238A CN103207970B CN 103207970 B CN103207970 B CN 103207970B CN 201310156238 A CN201310156238 A CN 201310156238A CN 103207970 B CN103207970 B CN 103207970B
Authority
CN
China
Prior art keywords
file
classification
stage
scanning
scanned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310156238.9A
Other languages
English (en)
Other versions
CN103207970A (zh
Inventor
姚彤
刘智锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201310156238.9A priority Critical patent/CN103207970B/zh
Publication of CN103207970A publication Critical patent/CN103207970A/zh
Application granted granted Critical
Publication of CN103207970B publication Critical patent/CN103207970B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机安全技术领域,其公开了一种病毒文件扫描方法及装置。该病毒文件扫描方法包括:预先将从计算机上获取的待扫描文件划分为N个类别,根据所述N个类别将病毒扫描过程对应划分为N个阶段,其中,N为大于1的自然数;按照预设顺序执行病毒扫描过程的各个阶段,其中,每个阶段用于扫描指定的一个类别的文件。根据本发明的文件扫描方法及装置,通过将待扫描文件划分为N个类别,并将扫描过程对应划分为N个阶段,在每个阶段仅扫描同一类别的文件。由于每个阶段扫描的文件类别相同,因此计算出的扫描进度更为精确,而且客户端/服务器还可以根据需要对扫描阶段进行控制。由此解决了现有技术中扫描进度不准确,且客户端/服务器无法对扫描过程进行控制的问题。

Description

病毒文件扫描方法及装置
技术领域
本发明涉及计算机安全技术领域,具体涉及一种病毒文件扫描方法及装置。
背景技术
随着计算机技术在社会生活中各个领域的广泛运用,恶意程序(Malwar,malicioussoftware)也如同其附属品一样接踵而来。由于这些恶意程序所具有的感染性、复制性及破坏性,其已成为困扰计算机使用的一个重大问题。其中,恶意程序是一个概括性的术语,指任何故意创建用来执行未经授权并通常是有害行为的软件程序。例如,计算机病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒(batch,windowsshell,java等)、木马、犯罪软件、间谍软件和广告软件等,都可以称之为恶意程序。
以木马为例,木马能够盗取网银密码、盗取网游装备、泄露隐私照片等等。一般来说,木马有两种方式传播:第一种是通过系统漏洞或者第三方漏洞入侵,第二种是通过文件入侵,即客户端/服务器主动或者误点木马程序。
例如,explorer.exe是最容易启动木马程序的进程,winrar.exe仅次于explorer.exe。其中,explorer.exe代表客户端/服务器在操作系统中双击打开了木马程序;winrar.exe代表客户端/服务器在winrar这个压缩软件中双击打开了木马程序。由于winrar在国内是一款装机必备的软件,其占据了90%以上的压缩市场份额,足见木马通过压缩包传播的广泛程度。为了有效地识别出类似于上述的恶意程序,避免对客户端/服务器的计算机造成损害,通常采用文件扫描的方式来发现恶意程序,通过文件扫描可以有效地确定出不安全的文件。但是,在传统的文件扫描方法中,对所有类型的文件都统一采用逐一扫描的方式进行扫描,由于不同类型的文件的扫描时间差别较大,导致计算出来的扫描进度不够准确,使客户端/服务器无法准确了解当前的扫描进度。而且,把所有文件都放在一起扫描时,客户端/服务器也无法对扫描过程进行控制。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的病毒文件扫描方法及装置。
依据本发明的一个方面,提供了一种病毒文件扫描方法,包括:预先将从计算机上获取的待扫描文件划分为N个类别,根据N个类别将病毒扫描过程对应划分为N个阶段,其中,N为大于1的自然数;按照预设顺序调用病毒扫描引擎,执行病毒扫描过程的各个阶段,其中,每个阶段用于扫描指定的一个类别的文件。
可选地,将待扫描文件划分为N个类别进一步包括:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于所述第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别;则N个阶段具体包括:用于扫描第一类别的文件的第一阶段,用于扫描第二类别的文件的第二阶段,以及用于扫描第三类别的文件的第三阶段。
可选地,预设顺序为:依次执行第一阶段,第二阶段和第三阶段。
可选地,依次执行所述第一阶段,第二阶段和第三阶段进一步包括:在第一阶段中,获取所有的待扫描文件,对于获取到的第一类别的文件,直接对其进行扫描;对于获取到的第二类别和第三类别的文件,对其进行缓存;在第二阶段中,对缓存的第二类别的文件进行扫描;在第三阶段中,对缓存的第三类别的文件进行扫描。
可选地,在执行扫描过程的每个阶段时,进一步包括步骤:根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,扫描进度包括剩余扫描时间和/或扫描文件的百分比。
可选地,按照预设顺序执行扫描过程的每个阶段时进一步包括:在接收到进入下一阶段的跳转请求后,跳过扫描过程的当前阶段,直接执行扫描过程的下一阶段。
依据本发明的另一方面,提供了一种病毒文件扫描装置,包括:类别划分单元,适于预先将从计算机上获取的待扫描文件划分为N个类别,其中,N为大于1的自然数;阶段划分单元,适于根据所述N个类别将病毒扫描过程对应划分为N个阶段;扫描单元,适于按照预设顺序调用病毒扫描引擎,执行病毒扫描过程的各个阶段,其中,每个阶段用于扫描指定的一个类别的文件。
可选地,类别划分单元进一步适于:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于所述第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别;则阶段划分单元划分的N个阶段具体包括:用于扫描第一类别的文件的第一阶段,用于扫描第二类别的文件的第二阶段,以及用于扫描第三类别的文件的第三阶段。
可选地,预设顺序为:依次执行第一阶段,第二阶段和第三阶段。
可选地,该装置进一步包括:缓存单元,适于对扫描单元在第一阶段中获取到的第二类别和第三类别的文件进行缓存。
可选地,该装置进一步包括:计算单元,适于在扫描单元执行扫描过程的每个阶段时,根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,扫描进度包括剩余扫描时间和/或扫描文件的百分比。
可选地,扫描单元进一步适于:在接收到进入下一阶段的跳转请求后,跳过扫描过程的当前阶段,直接执行扫描过程的下一阶段。
根据本发明的病毒文件扫描方法及装置,通过将待扫描文件划分为N个类别,并将扫描过程对应划分为N个阶段,在每个阶段仅扫描同一类别的文件。由于每个阶段扫描的文件类别相同,因此计算出的扫描进度更为精确,而且客户端/服务器还可以根据需要对扫描阶段进行控制。由此解决了现有技术中扫描进度不准确,且客户端/服务器无法对扫描过程进行控制的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的病毒文件扫描方法的流程图;
图2示出了本发明实施例提供的病毒文件扫描装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提供了一种病毒文件扫描方法,该方法可应用到计算机的各类扫描引擎中。使用该扫描方法进行扫描可以是依用户的指示进行扫描,例如,用户在开启病毒查杀软件或者木马查杀软件的扫描引擎时,通过扫描引擎的查杀页面生成扫描请求并发送到服务器/客户端,服务器/客户端通过接收到的扫描请求获知需要进行扫描的文件并进行扫描;或者,也可以是服务器/客户端主动发起扫描,例如,由服务器/客户端在满足预定条件时主动地发起扫描,该预定条件例如可以是定时扫描或定期扫描等。
图1示出了上述病毒文件扫描方法的流程图,如图1所示,该病毒文件扫描方法始于步骤S110。在步骤S110中,预先将从计算机上获取的待扫描文件划分为N个类别,该计算机主要是指客户端/服务器对应的计算机,即客户端软件所连接的电脑或者是工作站等任何的具有数据处理能力的设备。其中,N为大于1的自然数,关于N的具体数值可根据实际情况灵活设置。其中,关于从计算机上获取待扫描文件的过程将在后续的步骤S130中描述。也就是说,在步骤S110中,也可以先不获取到待扫描文件,而根据以往的扫描经验来对常规的待扫描文件进行类别划分。
在步骤S110中对待扫描文件进行分类时,主要是根据待扫描文件的特征信息进行划分的,把具有相似特征的扫描文件划分为一类文件,以便于在后续过程中对不同类型的文件分阶段进行扫描。
在本实施例中,以N=3为例,将所有的待扫描文件划分为三个类别:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于该第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别。假设第一阈值的取值为300M。相应地,将以非压缩格式存储的文件中文件大小小于300M的文件划分为第一类别,该类别的文件也可以称作普通文件,普通文件的特征在于扫描速度较快。将以非压缩格式存储的文件中文件大小大于或等于300M的文件划分为第二类别,该类别的文件也可以称作大文件,大文件的特征在于扫描速度较慢,具体原因在于,由于文件较大,因此计算文件特征哈希值(md5值)以及验证签名信息等过程非常耗时。上述的第一类别和第二类别的文件都属于非压缩文件,通过文件大小来区分类别(在实际情况中,还可以根据需要设置第二阈值甚至第三阈值,由此将非压缩文件进一步划分为更多的类别,以便于更精确地分阶段处理)。另外,除了非压缩文件之外的其他文件,即以压缩格式存储的文件被划分为第三类别,该类别的文件也可以直接称作压缩文件,压缩文件的特征在于必须先进行解压缩之后才能对文件进行扫描,而解压缩的过程需要耗费系统大量的等待时间,由此降低扫描速度。另外,在扫描压缩文件时,还可以进一步根据压缩文件的压缩格式来确定相应的解压缩方式以及扫描方式。
通过步骤S110的处理,待扫描文件被划分为三个类别,每个类别的文件都具有相似的扫描方式,以及大致相同的扫描时间。
接下来,在步骤S120中,根据上述N个类别将病毒扫描过程对应划分为N个阶段。
依然以上述N=3的例子来说,在步骤S120中,相应地将整个扫描过程划分为三个阶段,其中的一个阶段对应着步骤S110中的一类文件。例如,整个扫描过程中的第一阶段用于扫描上述的第一类别的文件,即普通文件;第二阶段用于扫描上述的第二类别的文件,即大文件;第三阶段用于扫描上述的第三类别的文件,即压缩文件。
上述的步骤S110和步骤S120也可以合并为一个步骤。执行完步骤S110和步骤S120之后,接下来执行步骤S130。另外,由于上面的步骤S110和步骤S120通常在客户端/服务器第一次发起扫描过程之前已经预先设置好,这样,当客户端/服务器再次发起扫描过程时,也可以直接从步骤S130开始执行。
在步骤S130中,按照预设顺序调用病毒扫描引擎,执行病毒扫描过程的各个阶段,其中,每个阶段用于扫描指定的一个类别的文件。上述的预设顺序例如可以是:依次执行上述的第一阶段,第二阶段和第三阶段。
可选地,在步骤S130中,调用病毒扫描引擎按照上述的预设顺序执行扫描过程时,在扫描过程的第一阶段中,首先通过枚举文件的方式获取客户端/服务器对应的计算机中所有的待扫描文件。具体地,获取所有待扫描文件的过程可通过如下步骤实现:首先,遍历待扫描文件目录,从该待扫描文件目录中提取待扫描文件的路径;然后,通过待扫描文件的路径找到待扫描文件;最后,读取该待扫描文件的特征信息,其中,待扫描文件的特征信息包括:文件名、后缀名、文件的大小、文件的格式、文件的最后修改时间和文件的创建时间等。另外,在获取的过程中,进一步通过文件的特征信息一一判断获取到的文件属于哪一类别,如果判断出获取到的文件属于普通文件,则在获取到该文件后直接对其进行扫描,以便节约处理时间;如果判断出获取到的文件属于大文件或压缩文件,则将其缓存起来,留待后续阶段的处理。然后,在后续的第二阶段中,对缓存的第二类别的文件进行扫描;在第三阶段中,对缓存的第三类别的文件进行扫描。
而且,在每个阶段的扫描过程中,还可以在扫描时将扫描到的文件的特征信息(例如文件路径、文件大小、文件最后修改时间、文件创建时间、全文的md5值和/或SHA1值等)存储在本地数据库里。这样,在客户端/服务器下次发起扫描时,可以根据特征信息来确定是否有必要对文件进行扫描,例如,如果发现某一文件在上次扫描之后并未修改过,则在本次扫描过程中可以不对该文件进行扫描,由此能够提高扫描效率。
另外,在执行步骤S130的每个阶段时,还可以根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,扫描进度包括剩余扫描时间和/或扫描文件的百分比等。例如,在用于扫描普通文件的第一阶段中,由于普通文件的字节数较少,扫描时间较短,因此,根据普通文件的剩余扫描数量计算出来的剩余扫描时间相对较短;在用于扫描大文件的第二阶段中,由于大文件的字节数较多,扫描时间较长,因此,根据大文件的剩余扫描数量计算出来的剩余扫描时间相对较长;在用于扫描压缩文件的第三阶段中,由于压缩文件需要先解压,扫描时间往往与解压后的文件大小存在很大关联,另外,很多压缩文件在解压之前都可以预先根据文件头中的相关信息获知解压后的文件大小,由此能够预见大概的扫描时间,因此,根据压缩文件的剩余扫描数量计算剩余扫描时间时可以进一步结合每个未扫描的压缩文件解压后的大小来准确估算剩余扫描时间。具体地,在上述计算扫描进度的过程中所用到的每一类别的待扫描文件的个数以及文件信息(例如压缩文件的文件头中的相关信息)可以在上述获取所有的待扫描文件的过程中一并记录下来,以方便后续扫描阶段的使用。
另外,在执行步骤S130的每个阶段时,还可以进一步接收客户端/服务器发出的进入下一阶段的跳转请求。在接收到进入下一阶段的跳转请求后,跳过病毒扫描过程的当前阶段,直接执行病毒扫描过程的下一阶段。例如,由于压缩文件只有在客户端/服务器解压时才有可能启动恶意程序,不解压时则一般不会产生风险,而且,对于很多压缩格式的安装文件,客户端/服务器往往长期都不使用,因此,没有必要在每次扫描时都对压缩文件进行扫描。所以,客户端/服务器可以在进入压缩文件的扫描阶段时,直接跳过该阶段,以便节约扫描时间。同理,客户端/服务器也可以跳过普通文件或大文件的处理阶段,直接进入下一阶段。
在每个阶段的扫描过程中,对扫描到的每个文件进一步判断其是否为携带病毒的恶意文件。具体地,在判断恶意文件时,可以由客户端将扫描到的文件的相关信息及文件属性发送给服务器端。其中,文件的相关信息包括特征数据、文件大小、安全级别、签名信息以及版本信息等;文件属性包括文件名、文件大小、程序文件摘要MD5或SHA1、签名信息和版本信息等。发送给服务器端的文件的相关信息及文件属性可以是上述信息的任意组合。服务器端在接收到文件的相关信息及文件属性之后,根据已有的病毒数据库,判断待测文件的性质;或者,根据白名单来检测待测文件是否为病毒文件。如果判断出待测文件为病毒文件,则发出报警提示;如果待测文件为安全文件,则直接放行;如果待测文件为未知文件,则需要进一步分析其行为特征,据此做出进一步的判定。
例如,以判断PE文件是否为恶意文件为例来说,由于PE文件可以分成四个部分:文件头、代码段、引入表及数据段,其中,病毒代码可能只隐藏在代码段内,因此,对于PE文件而言,服务器端主要分析其代码段的内容即可得出其是否为恶意文件的结论。
在上述判断过程中所用到的病毒数据库和白名单通常存储在服务器端,并且,该病毒数据库和白名单能够根据病毒的更新情况进行相应地更新。因此,由服务器端判断恶意文件的方式能够确保判断的准确性和及时性。另外,为了能够在网络故障时执行上述的判断过程,也可以将该病毒数据库和白名单存储在客户端本地,由客户端进行判断,并定期从服务器获取数据进行更新。这样,即使在网络故障的情况下,也可以由客户端对扫描文件是否为病毒文件做出判断。
另外,虽然本实施例中是按照依次执行步骤S110、S120和S130的顺序进行描述的,但是,本领域技术人员能够理解的是,上述的步骤S110、S120和S130并不限于上文描述的顺序,例如,步骤S110和S120也可以在执行步骤S130的过程中同时进行,即:也可以在获取待扫描文件并进行扫描的同时来划分文件类型和扫描阶段,而且,还可以在本次扫描的过程中或本次扫描完成后对之前已经划分好的文件类型和扫描阶段重新进行调整。
综上所述,在本实施例中,由于将待扫描文件根据文件特点划分为了多个类别,并为每个类别相应分配一个扫描阶段,这样,每个扫描阶段中扫描的都是特性相似的文件,每个文件的扫描时间也大致相同,由此估算出的该阶段的剩余扫描时间也更为精确,能够使客户端/服务器准确了解当前的扫描进度。而在现有技术的扫描过程中,由于不分类别也不分阶段,将所有的文件都在一个流程中进行扫描,而大文件以及压缩文件所耗费的扫描时间比普通文件要长很多,导致计算出来的剩余扫描时间误差很大,且在一段时间内(例如3分钟内)实时计算出来的剩余扫描时间往往忽长忽短,变化较大,无法起到有效地提示作用。并且,在本实施例中可以对扫描阶段进行控制,客户端/服务器可以根据需要选择跳过一些不必要的扫描阶段,以节约时间。另外,客户端/服务器也可以根据需要直接选择一个扫描阶段进行扫描,例如,客户端/服务器可以直接选择普通文件的扫描阶段、大文件的扫描阶段或压缩文件的扫描阶段。由此使得整个扫描过程可以根据客户端/服务器的需要进行灵活地控制,满足了客户端/服务器的多样化需求。
在上面的实施例中,主要是根据待扫描文件的扫描时间来确定文件类别的。在实际情况中,还可以根据待扫描文件的其他特征来确定文件类别。例如,也可以根据待扫描文件感染恶意程序的概率划分文件类别,将感染恶意程序的概率大于预设的第一阈值的文件划分为第一类别的文件(例如,后缀名为exe或dll的文件);将感染恶意程序的概率低于预设的第二阈值的文件划分为第三类别的文件(例如,后缀名为txt的文件);将感染恶意程序的概率介于第一阈值和第二阈值之间的文件划分为第二类别的文件(例如,后缀名为doc的文件)。这一划分方式的好处在于,客户端/服务器可以先扫描感染恶意程序的概率最大的第一类别的文件,从而能够在有限的时间内快速发现恶意程序,使得扫描过程更加高效。
本发明实施例还提供了一种病毒文件扫描装置,如图2所示,该病毒文件扫描装置包括:类别划分单元21、阶段划分单元22以及扫描单元23。下面详细介绍一下各个单元的具体工作过程:
类别划分单元21预先将从计算机上获取的将待扫描文件划分为N个类别,其中,N为大于1的自然数,关于N的具体数值可根据实际情况灵活设置。
具体地,类别划分单元21主要是根据待扫描文件的特征信息对文件类别进行划分的,把具有相似特征的扫描文件划分为一类文件,以便于在后续过程中对不同类型的文件分阶段进行病毒扫描。
在本实施例中,以N=3为例,将所有的待扫描文件划分为三个类别:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于该第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别。假设第一阈值的取值为300M。相应地,将以非压缩格式存储的文件中文件大小小于300M的文件划分为第一类别,该类别的文件也可以称作普通文件,普通文件的特征在于扫描速度较快。将以非压缩格式存储的文件中文件大小大于或等于300M的文件划分为第二类别,该类别的文件也可以称作大文件,大文件的特征在于扫描速度较慢,具体原因在于,由于文件较大,因此计算文件特征哈希值(md5值)以及验证签名信息等过程非常耗时。上述的第一类别和第二类别的文件都属于非压缩文件,通过文件大小来区分类别(在实际情况中,还可以根据需要设置第二阈值甚至第三阈值,由此将非压缩文件进一步划分为更多的类别,以便于更精确地分阶段处理)。另外,除了非压缩文件之外的其他文件,即以压缩格式存储的文件被划分为第三类别,该类别的文件也可以直接称作压缩文件,压缩文件的特征在于必须先进行解压缩之后才能对文件进行扫描,而解压缩的过程需要耗费系统大量的等待时间,由此降低扫描速度。
通过类别划分单元21将待扫描文件划分为三个类别,每个类别的文件都具有相似的扫描方式,以及大致相同的扫描时间。
阶段划分单元22根据上述N个类别将病毒扫描过程对应划分为N个阶段。依然以上述N=3的例子来说,阶段划分单元22相应地将整个扫描过程划分为三个阶段,其中的一个阶段对应着类别划分单元21所划分的一类文件。例如,整个扫描过程中的第一阶段用于扫描上述的第一类别的文件,即普通文件;第二阶段用于扫描上述的第二类别的文件,即大文件;第三阶段用于扫描上述的第三类别的文件,即压缩文件。
扫描单元23按照预设顺序,调用病毒扫描引擎执行扫描过程的各个阶段,每个阶段用于扫描指定的一个类别的文件。上述的预设顺序例如可以是:依次执行上述的第一阶段,第二阶段和第三阶段。
具体地,在扫描单元23按照上述的预设顺序执行扫描过程的第一阶段时,首先通过枚举文件的方式获取客户端/服务器中所有的待扫描文件。在获取的过程中,进一步通过文件的文件头、后缀名等信息一一判断获取到的文件属于哪一类别,如果判断出获取到的文件属于普通文件,则可以在获取的过程中直接对其进行扫描,以便节约处理时间;如果判断出获取到的文件属于大文件或压缩文件,则将其缓存在缓存单元24中,留待后续阶段的处理。
而且,在每个阶段的扫描过程中,还可以在扫描时将扫描到的文件的特征信息(例如文件路径、文件大小、文件最后修改时间、文件创建时间、全文的md5值和/或SHA1值)存储在本地数据库里。这样,在客户端/服务器下次发起扫描时,可以根据特征信息来确定是否有必要对文件进行扫描,例如,如果发现某一文件在上次扫描之后并未修改过,则在本次扫描过程中可以不对该文件进行扫描,由此能够提高扫描效率。
可选地,该文件扫描装置还可以进一步包括计算单元25,用于在扫描单元23执行每个阶段的扫描时,根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,扫描进度包括剩余扫描时间和/或扫描文件的百分比等。例如,在用于扫描普通文件的第一阶段中,由于普通文件的字节数较少,扫描时间较短,因此,根据普通文件的剩余扫描数量计算出来的剩余扫描时间相对较短;在用于扫描大文件的第二阶段中,由于大文件的字节数较多,扫描时间较长,因此,根据大文件的剩余扫描数量计算出来的剩余扫描时间相对较长;在用于扫描压缩文件的第三阶段中,由于压缩文件需要先解压,扫描时间往往与解压后的文件大小存在很大关联,另外,很多压缩文件在解压之前都可以预先根据文件头中的相关信息获知解压后的文件大小,由此能够预见大概的扫描时间,因此,根据压缩文件的剩余扫描数量计算剩余扫描时间时可以进一步结合每个未扫描的压缩文件解压后的大小来准确估算剩余扫描时间。具体地,在上述计算扫描进度的过程中所用到的每一类别的待扫描文件的个数以及文件信息(例如压缩文件的文件头中的相关信息)可以在上述获取所有的待扫描文件的过程中一并记录下来,以方便后续扫描阶段的使用。
另外,在扫描单元23执行每个阶段的扫描时,还可以进一步接收客户端/服务器发出的进入下一阶段的跳转请求。在接收到进入下一阶段的跳转请求后,跳过病毒扫描过程的当前阶段,直接执行病毒扫描过程的下一阶段。例如,由于压缩文件只有在客户端/服务器解压时才有可能启动恶意程序,不解压时则一般不会产生风险,而且,对于很多压缩格式的安装文件,客户端/服务器往往长期都不使用,因此,没有必要在每次扫描时都对压缩文件进行扫描。所以,客户端/服务器可以在进入压缩文件的扫描阶段时,直接跳过该阶段,以便节约扫描时间。同理,客户端/服务器也可以跳过普通文件或大文件的处理阶段,直接进入下一阶段。
该文件扫描装置还可以进一步包括判断单元26,用于在每个阶段的扫描过程中,对扫描到的每个文件进一步判断其是否为恶意文件,如果判断结果为是,则弹出恶意文件提示,以便由客户端/服务器选择是否对该文件进行查杀;或者,也可以直接对该文件进行查杀,以防止其对计算机造成危害。
综上所述,在本实施例中,由于将待扫描文件根据文件特点划分为了多个类别,并为每个类别相应分配一个扫描阶段,这样,每个扫描阶段中扫描的都是特性相似的文件,每个文件的扫描时间也大致相同,由此估算出的该阶段的剩余扫描时间也更为精确,能够使客户端/服务器准确了解当前的扫描进度。而在现有技术的扫描过程中,由于不分类别也不分阶段,将所有的文件都在一个流程中进行扫描,而大文件以及压缩文件所耗费的扫描时间比普通文件要长很多,导致计算出来的剩余扫描时间误差很大,且在一段时间内(例如3分钟内)实时计算出来的剩余扫描时间往往忽长忽短,变化较大,无法起到有效地提示作用。并且,在本实施例中可以对扫描阶段进行控制,客户端/服务器可以根据需要选择跳过一些不必要的扫描阶段,以节约时间。另外,客户端/服务器也可以根据需要直接选择自己感兴趣的一个扫描阶段进行扫描,例如,客户端/服务器可以直接选择普通文件的扫描阶段、大文件的扫描阶段或压缩文件的扫描阶段。由此使得整个扫描过程可以根据客户端/服务器的需要进行灵活地控制,满足了客户端/服务器的多样化需求。
在上面的实施例中,主要是根据待扫描文件的扫描时间来确定文件类别的。在实际情况中,还可以根据待扫描文件的其他特征来确定文件类别。例如,也可以根据待扫描文件感染恶意程序的概率划分文件类别,将感染恶意程序的概率大于预设的第一阈值的文件划分为第一类别的文件(例如,后缀名为exe或dll的文件);将感染恶意程序的概率低于预设的第二阈值的文件划分为第三类别的文件(例如,后缀名为txt的文件);将感染恶意程序的概率介于第一阈值和第二阈值之间的文件划分为第二类别的文件(例如,后缀名为doc的文件)。这一划分方式的好处在于,客户端/服务器可以先扫描感染恶意程序的概率最大的第一类别的文件,从而能够在有限的时间内快速发现恶意程序,使得扫描过程更加高效。
另外,本发明实施例还提供了一种病毒文件扫描方法,包括:枚举所有的待扫描文件,并且,在枚举过程中调用病毒扫描引擎对枚举到的预设的第一类别的待扫描文件直接进行病毒扫描,对枚举到的预设的第二类别和第三类别的文件进行缓存;枚举完所有文件之后,对缓存的第二类别的文件进行病毒扫描;扫描完第二类别的文件之后,对缓存的第三类别的文件进行病毒扫描。其中,第一类别的文件可以是普通文件,第二类别的文件可以是大文件,第三类别的文件可以是压缩文件,具体划分类别的方式可参照第一实施例中的描述,此处不再赘述,而且,枚举待扫描文件的具体过程也可以参照第一实施例中的步骤S130中的描述。该病毒扫描方法在枚举文件的同时即可完成对普通文件的扫描,提高了扫描效率,且在枚举文件之后还可以进一步对大文件和压缩文件分别进行扫描,由此使整个扫描过程划分为几个不同的阶段,每一阶段处理的待扫描文件类型相同,因此能够得出更准确的扫描进度供用户参考。
根据本发明的文件扫描方法及装置,通过将待扫描文件划分为N个类别,并将扫描过程对应划分为N个阶段,在每个阶段仅扫描同一类别的文件。由于每个阶段扫描的文件类别相同,因此计算出的扫描进度更为精确,而且客户端/服务器还可以根据需要对扫描阶段进行控制。由此解决了现有技术中扫描进度不准确,且客户端/服务器无法对扫描过程进行控制的问题。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (13)

1.一种病毒文件扫描方法,包括:
预先将从计算机上获取的多个待扫描文件划分为N个类别,根据所述N个类别将所述多个待扫描文件的病毒扫描过程对应划分为N个阶段,其中,N为大于1的自然数;
按照预设顺序调用病毒扫描引擎,执行所述多个待扫描文件的病毒扫描过程的各个阶段,其中,每个阶段用于扫描所述多个待扫描文件中指定的一个类别的文件;
其中,所述将从计算机上获取的多个待扫描文件划分为N个类别具体包括:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于所述第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别。
2.如权利要求1所述的方法,其中,所述N个阶段具体包括:用于扫描所述第一类别的文件的第一阶段,用于扫描所述第二类别的文件的第二阶段,以及用于扫描所述第三类别的文件的第三阶段。
3.如权利要求2所述的方法,其中,所述预设顺序为:依次执行所述第一阶段,第二阶段和第三阶段。
4.如权利要求3所述的方法,其中,所述依次执行所述第一阶段,第二阶段和第三阶段进一步包括:
在所述第一阶段中,获取所有的待扫描文件,对于获取到的第一类别的文件,直接对其进行扫描;对于获取到的第二类别和第三类别的文件,对其进行缓存;
在所述第二阶段中,对缓存的第二类别的文件进行扫描;
在所述第三阶段中,对缓存的第三类别的文件进行扫描。
5.如权利要求1所述的方法,在执行扫描过程的每个阶段时,进一步包括步骤:根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,所述扫描进度包括剩余扫描时间和/或扫描文件的百分比。
6.如权利要求1所述的方法,所述按照预设顺序执行病毒扫描过程的每个阶段时进一步包括:
在接收到进入下一阶段的跳转请求后,跳过病毒扫描过程的当前阶段,直接执行病毒扫描过程的下一阶段。
7.一种病毒文件扫描装置,包括:
类别划分单元,适于预先将从计算机上获取的多个待扫描文件划分为N个类别,具体包括:将以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件划分为第一类别,将以非压缩格式存储的文件中文件大小不小于所述第一阈值的文件划分为第二类别,将以压缩格式存储的文件划分为第三类别;其中,N为大于1的自然数;
阶段划分单元,适于根据所述N个类别将所述多个待扫描文件的病毒扫描过程对应划分为N个阶段;
扫描单元,适于按照预设顺序调用病毒扫描引擎,执行所述多个待扫描文件的病毒扫描过程的各个阶段,其中,每个阶段用于扫描所述多个待扫描文件中指定的一个类别的文件。
8.如权利要求7所述的装置,进一步包括:
计算单元,适于在扫描单元执行扫描过程的每个阶段时,根据该阶段要扫描的类别中的文件特征,计算并显示该阶段的扫描进度,其中,所述扫描进度包括剩余扫描时间和/或扫描文件的百分比。
9.如权利要求7所述的装置,所述扫描单元进一步适于:在接收到进入下一阶段的跳转请求后,跳过病毒扫描过程的当前阶段,直接执行病毒扫描过程的下一阶段。
10.如权利要求7所述的装置,其中,所述阶段划分单元划分的N个阶段具体包括:用于扫描所述第一类别的文件的第一阶段,用于扫描所述第二类别的文件的第二阶段,以及用于扫描所述第三类别的文件的第三阶段。
11.如权利要求10所述的装置,其中,所述预设顺序为:依次执行所述第一阶段,第二阶段和第三阶段。
12.如权利要求10所述的装置,进一步包括:缓存单元,适于对扫描单元在第一阶段中获取到的第二类别和第三类别的文件进行缓存。
13.一种病毒文件扫描方法,包括:
枚举所有的待扫描文件,并且,在枚举过程中调用病毒扫描引擎对枚举到的预设的第一类别的多个待扫描文件直接进行病毒扫描,对枚举到的预设的第二类别和第三类别的多个文件进行缓存;
枚举完所有文件之后,对缓存的第二类别的多个文件进行病毒扫描;
扫描完第二类别的文件之后,对缓存的第三类别的多个文件进行病毒扫描;
其中,预设的第一类别的待扫描文件是以非压缩格式存储的文件中文件大小小于预设的第一阈值的文件,预设的第二类别的多个文件是以非压缩格式存储的文件中文件大小不小于所述第一阈值的文件,预设的第三类别的多个文件是以压缩格式存储的文件。
CN201310156238.9A 2013-04-28 2013-04-28 病毒文件扫描方法及装置 Active CN103207970B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310156238.9A CN103207970B (zh) 2013-04-28 2013-04-28 病毒文件扫描方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310156238.9A CN103207970B (zh) 2013-04-28 2013-04-28 病毒文件扫描方法及装置

Publications (2)

Publication Number Publication Date
CN103207970A CN103207970A (zh) 2013-07-17
CN103207970B true CN103207970B (zh) 2016-06-08

Family

ID=48755187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310156238.9A Active CN103207970B (zh) 2013-04-28 2013-04-28 病毒文件扫描方法及装置

Country Status (1)

Country Link
CN (1) CN103207970B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778411B (zh) * 2015-04-22 2017-10-27 百度在线网络技术(北京)有限公司 病毒扫描方法和病毒扫描装置
CN108052833A (zh) * 2017-12-11 2018-05-18 北京明朝万达科技股份有限公司 一种可执行文件数据防泄漏扫描方法、系统及网关
CN108229168B (zh) * 2017-12-29 2021-07-20 哈尔滨安天科技集团股份有限公司 一种嵌套类文件的启发式检测方法、系统及存储介质
CN109145602B (zh) * 2018-07-06 2020-06-02 成都亚信网络安全产业技术研究院有限公司 一种勒索软件攻击的防护方法及装置
CN110941478B (zh) * 2018-09-21 2024-03-01 北京奇虎科技有限公司 文件扫描任务的执行方法、装置及计算设备
CN110674505A (zh) * 2019-08-22 2020-01-10 苏州浪潮智能科技有限公司 一种漏洞扫描剩余时间估算方法和装置
CN113157655A (zh) * 2020-01-22 2021-07-23 阿里巴巴集团控股有限公司 一种数据压缩、解压方法、装置、电子设备和存储介质
CN111416812B (zh) * 2020-03-16 2022-06-21 深信服科技股份有限公司 一种恶意脚本检测方法、设备及存储介质
CN113987516B (zh) * 2021-11-02 2022-11-29 湖北天融信网络安全技术有限公司 一种漏洞扫描方法、装置、存储介质和电子设备
CN115270077B (zh) * 2022-08-16 2024-01-26 南京网藤科技有限公司 平滑计算进度的方法、装置、电子设备和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907834A (en) * 1994-05-13 1999-05-25 International Business Machines Corporation Method and apparatus for detecting a presence of a computer virus
CN1752888A (zh) * 2005-11-08 2006-03-29 朱林 用于移动/智能终端的病毒特征提取和检测系统及方法
CN102799826A (zh) * 2012-07-19 2012-11-28 腾讯科技(深圳)有限公司 应用程序安装包解压过程的检测方法与装置、客户端设备
CN102902915A (zh) * 2012-09-29 2013-01-30 北京奇虎科技有限公司 对文件行为特征进行检测的系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100503386B1 (ko) * 2003-03-14 2005-07-26 주식회사 안철수연구소 제어흐름과 자료흐름을 고려한 악성 행위 패턴 감지 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907834A (en) * 1994-05-13 1999-05-25 International Business Machines Corporation Method and apparatus for detecting a presence of a computer virus
CN1752888A (zh) * 2005-11-08 2006-03-29 朱林 用于移动/智能终端的病毒特征提取和检测系统及方法
CN102799826A (zh) * 2012-07-19 2012-11-28 腾讯科技(深圳)有限公司 应用程序安装包解压过程的检测方法与装置、客户端设备
CN102902915A (zh) * 2012-09-29 2013-01-30 北京奇虎科技有限公司 对文件行为特征进行检测的系统

Also Published As

Publication number Publication date
CN103207970A (zh) 2013-07-17

Similar Documents

Publication Publication Date Title
CN103207970B (zh) 病毒文件扫描方法及装置
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
US8056136B1 (en) System and method for detection of malware and management of malware-related information
Crussell et al. Andarwin: Scalable detection of android application clones based on semantics
US8726387B2 (en) Detecting a trojan horse
CN103390130B (zh) 基于云安全的恶意程序查杀的方法、装置和服务器
US9170908B2 (en) System and method for dynamic analysis bytecode injection for application dataflow
CN102819713B (zh) 一种检测弹窗安全性的方法和系统
US11086983B2 (en) System and method for authenticating safe software
US20080022407A1 (en) Detecting malicious activity
US20120102569A1 (en) Computer system analysis method and apparatus
JP2017511923A (ja) ウイルス処理方法、装置、システム、機器及びコンピュータ記憶媒体
CN106803040B (zh) 病毒特征码处理方法及装置
CN110084064B (zh) 基于终端的大数据分析处理方法及系统
US9087194B2 (en) Providing information to a security application
CN112084497A (zh) 嵌入式Linux系统恶意程序检测方法及装置
CN110071924B (zh) 基于终端的大数据分析方法及系统
KR20100026196A (ko) 정상 파일 데이터베이스 제공 시스템 및 방법
US11522885B1 (en) System and method for information gain for malware detection
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
US9348999B2 (en) User terminal, reliability management server, and method and program for preventing unauthorized remote operation
US11436331B2 (en) Similarity hash for android executables
CN113094283A (zh) 一种数据获取方法、装置、设备及存储介质
US20200329056A1 (en) Trusted advisor for improved security
CN102262717A (zh) 用于更改原始安装信息及检测安装信息的方法、装置及设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220726

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.