CN110659484B - 生成对于文件信息的请求以执行防病毒扫描的系统和方法 - Google Patents
生成对于文件信息的请求以执行防病毒扫描的系统和方法 Download PDFInfo
- Publication number
- CN110659484B CN110659484B CN201910420248.6A CN201910420248A CN110659484B CN 110659484 B CN110659484 B CN 110659484B CN 201910420248 A CN201910420248 A CN 201910420248A CN 110659484 B CN110659484 B CN 110659484B
- Authority
- CN
- China
- Prior art keywords
- file
- hash
- decision
- request
- information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/567—Computer malware detection or handling, e.g. anti-virus arrangements using dedicated hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了生成对于文件信息的请求以执行防病毒扫描的系统和方法。在一个方面中,示例性方法包括:拦截文件;同步地计算所述文件的一部分的第一散列;在判决缓存中进行搜索;当找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;当所述第一散列属于所述恶意文件列表时,同步地计算第二散列;在所述判决缓存中搜索所述第二散列,并做出关于所述文件的有害性的最终决定;当所述第一散列不属于所述恶意文件列表时,授权访问所述文件;异步地生成对于关于所述文件的信息的请求;计算第二散列,在判决缓存中搜索所述信息,并做出关于所述文件的有害性的决定。
Description
技术领域
本发明涉及计算机安全领域,更具体地涉及用于提高文件的防病毒扫描的有效性的系统和方法。
背景技术
计算机病毒、蠕虫、特洛伊木马(Trojan horse)、黑客程序(rootkit)以及间谍软件程序(spyware program)是影响全世界计算机系统的恶意程序的示例。尽管各种类型的恶意程序之间存在技术差异,但在大多数情况下,它们被称为“病毒”。整个病毒群旨在对计算机本身和用户的个人数据造成伤害。
阻止恶意程序的一种方法是使用防病毒软件(杀毒软件)。杀毒软件是一种程序包,其旨在检测和移除计算机中的恶意程序,以及消除恶意程序的存在产生的后果。为了检测恶意应用,防病毒程序对用于存储数据的本地设备以及网络设备(诸如硬盘)上存在的文件执行完整或选择性的扫描。
通常的杀毒软件包括用于扫描文件和数据库的机制。该数据库至少包含用于识别已知恶意程序的防病毒记录(模式)。每条防病毒记录可以以签名(代码段的校验和)、启发式规则等形式在指示的数据库中表示。为了扫描文件中是否存在恶意代码,扫描机制解析文件并将其内容与数据库中的防病毒记录进行比较。还可以使用正在检查的文件的散列值,而不是直接与防病毒记录进行比较。文件的散列值是通过借助于特定散列函数(诸如MD5(消息摘要算法)或SHA1(安全散列算法))应用散列算法来转换该文件的结果。
执行防病毒扫描的一个时间是在尝试访问文件(OAS(On-Access Scan),按访问扫描)时的扫描,例如,在启动或解析文件时的扫描。当在尝试访问时执行扫描时,拦截文件的启动。然后,执行该文件的防病毒扫描。在执行文件的防病毒扫描的过程中,可以计算文件的散列值并将该散列值与数据库中存储的散列值进行比较,其中,该数据库可以与防病毒应用定位在一起(在同一计算机系统)或远程地定位——在远程(网络)服务器上。尽管散列值的计算及其比较是有效的解决方案,但是散列值的计算和随后的比较也需要相当长的时间,在此期间无法访问文件。此外,文件越大,计算文件的散列值所需要的时间越长,并且执行病毒扫描所需要的时间也越长。因此,可能会显著延迟对文件的访问。
用于执行防病毒扫描的另一种方法是使用同步文件扫描技术和异步文件扫描技术。在同步模式下,当尝试访问文件时,防病毒程序阻止其它程序对正在扫描的文件执行的所有动作,直到扫描完成为止。阻止文件还可以防止执行来自文件的恶意代码并及时隔离恶意文件。相反,当访问文件时执行恶意代码的威胁很小,并且不需要阻止文件时,可以建议进行异步文件扫描。在异步模式下,访问文件时不会发生阻止,而是文件本身与文件上发生的其它动作(例如,文件的执行)并行扫描。然而,现今的防病毒扫描技术利用通过不同方法进行文件扫描的技术,这些技术特别地描述首要地通过一种方法或另一种方法扫描文件的可能性,但是没有解决做出关于选择相应扫描的需要(最佳)类型的决定的问题。
防病毒系统的又一缺陷是在防病毒扫描的操作中可能发生错误。该错误被分为所谓的第一类错误(假阳性)和第二类错误(假阴性)。当防病毒系统检测恶意对象时,虽然该对象实际上不存在威胁,但发生第一类错误。在防病毒系统的背景下,第二类错误涉及存在病毒或其它恶意对象的情况,但防病毒系统并未检测到它。换句话说,系统中发生了错误警报。为了提高防病毒系统的工作质量,有必要降低第一类错误和第二类错误发生的概率。
因此,需要创建一种缩短执行防病毒扫描的时间(例如,用于计算文件的散列值的时间),并且还对防病毒扫描的类型做出最佳选择的解决方案。
发明内容
本发明的各个方面涉及在执行防病毒扫描时生成对于关于文件的信息的请求的领域。
在一个示例性方面中,在包括硬件处理器的计算机中实现一种方法,该方法包括:在文件的启动期间拦截所述文件;同步地计算所述文件的一部分的第一散列;在判决缓存(verdict cache)中同步地搜索所述第一散列;当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列,在所述判决缓存和/或远程服务器中同步地搜索所述第二散列,并基于所述同步搜索的结果做出关于所述文件的有害性或安全性的最终决定;以及当所述第一散列不属于所述恶意文件列表时,授权访问所述文件,异步地生成对于关于所述文件的信息的请求,该信息至少包括关于所述文件的有害性的指示,异步地计算所述文件的第二散列,根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息,并基于所述异步搜索的结果做出关于所述文件的有害性或安全性的决定。
根据本发明的一个方面,提供一种用于在执行防病毒扫描时生成对于关于文件的信息的请求的系统,所述系统包括硬件处理器,所述硬件处理器被配置为:在文件的启动期间拦截所述文件;同步地计算所述文件的一部分的第一散列;在判决缓存中同步地搜索所述第一散列;当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列,在所述判决缓存和/或远程服务器中同步地搜索所述第二散列,并基于所述同步搜索的结果做出关于所述文件的有害性或安全性的最终决定;以及当所述第一散列不属于所述恶意文件列表时,授权访问所述文件,异步地生成对于关于所述文件的信息的请求,该信息至少包括关于所述文件的有害性的指示,异步地计算所述文件的第二散列,根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息,并基于所述异步搜索的结果做出关于所述文件的有害性或安全性的决定。
在一个示例性方面中,提供一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于在执行防病毒扫描时生成对于关于文件的信息的请求的指令集,其中,所述指令集包括用于执行以下操作的指令:在文件的启动期间拦截所述文件;同步地计算所述文件的一部分的第一散列;在判决缓存中同步地搜索所述第一散列;当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列,在所述判决缓存和/或远程服务器中同步地搜索所述第二散列,并基于所述同步搜索的结果做出关于所述文件的有害性或安全性的最终决定;以及当所述第一散列不属于所述恶意文件列表时,授权访问所述文件,异步地生成对于关于所述文件的信息的请求,该信息至少包括关于所述文件的有害性的指示,异步地计算所述文件的第二散列,根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息,并基于所述异步搜索的结果做出关于所述文件的有害性或安全性的决定。
在一个方面中,所述判决缓存为本地数据库的一部分,所述判决缓存至少包含关于文件的第一散列和第二散列的信息,并且所述本地数据库还包含关于恶意文件和受信任文件的决定。
在一个方面中,生成用于计算所述第一散列的机制,生成的所述机制包含用于选择在计算所述第一散列期间使用的文件的最优部分的标准,所述标准基于对所述文件的元数据的分析。
在一个方面中,在所述最终决定指示所述文件为安全文件时,所述方法还包括:在所述最终决定的做出中异步地扫描错误警报,异步地扫描所述错误警报包括:向所述远程服务器发出请求,该请求包含所述第二散列;以及在接收到来自所述远程服务器的对所述请求的响应后,基于包含在所述响应中的信息做出关于所述文件的有害性或安全性的决定,所述决定维持判定所述文件为安全文件的先前的决定,或者更改所述先前的决定,该更改将要指示所述文件为恶意文件。
在一个方面中,当所述第一散列不属于所述恶意文件列表时,在位于所述远程服务器上的所述判决缓存中异步地搜索关于所述文件的信息之前,所述方法基于所述第二散列使用本地数据库执行所述文件的防病毒扫描,所述本地数据库包含关于恶意文件和安全文件的信息。
在一个方面中,所述方法确定在所述本地数据库中是否找到所述第二散列,并且当在所述本地数据库中未找到所述第二散列时,所述方法将所述请求发送到所述远程服务器。
在一个方面中,当在所述本地数据库中找到所述第二散列且所述第二散列被确定为恶意文件的散列时,所述方法停止所述文件的执行,将请求发送到所述远程服务器以在所述决定的做出中排除错误警报,并同步地扫描所述文件;以及当在所述本地数据库中找到所述第二散列且所述第二散列被确定为安全文件的散列时,所述方法终止所述文件的扫描,针对所述第二散列,异步地将所述请求发送到所述远程服务器,基于所述第二散列的搜索接收来自所述远程服务器的响应,并基于所接收的响应做出关于所述文件的有害性的最终决定。
根据本发明的教导的请求的生成允许解决文件扫描问题的更有效的解决方案。通过使用用于生成文件的“短”散列值的机制,然后执行同步操作模式或异步操作模式的选择来实现有效性的提高。例如,可以通过如下操作实现在启动文件时时间延迟的减少:首先计算文件的短散列(short hash)值,然后基于对该短散列值的搜索结果,选择生成对于关于文件的信息的请求的最佳类型,其中,以这种方式进行选择来确保计算机的安全性。
此外,本发明的方法有利地缩短了执行防病扫描所需的时间。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1为示出根据本发明的各方面的用于生成对于关于正在被扫描的文件的信息的请求的示例性系统的框图。
图2为示出根据本发明的各方面的防病毒代理的组成的示例的框图。
图3为示出在文件的防病毒扫描期间生成对于关于文件的信息的请求的示例性方法的流程图。
图4为示出生成对于关于文件的信息的请求以验证不存在错误响应的示例性方法的流程图。
图5示出了可以在其上实现根据本发明的各个方面的通用计算机系统的示例。
具体实施方式
本文中在用于生成对于关于文件的信息的请求的系统、方法和计算机程序的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
图1为示出用于生成对于关于正在被扫描的文件的信息的请求的系统100的框图。在一个方面中,在文件的防病毒扫描期间生成对于关于文件的信息的请求是通过最合适类型的防病毒扫描所执行的。在一个方面中,所请求的关于文件的信息至少包括关于正在被扫描的文件的危害性或安全性的信息。在一个方面中,所述信息构成指示特定信息的标记。这类信息例如可以涉及恶意文件的种类、修复文件的方法、文件的散列值等。因此,系统100使得可以通过在计算机上执行文件之前缩短文件的防病毒扫描所需的时间来优化防病毒应用的操作。
系统100至少包括一个计算机110a。在本发明中,用于生成对于关于正在被扫描的文件的信息的请求的系统的模块可以被理解为使用硬件(诸如专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)或现场可编程门阵列(Field-Programmable GateArray,FPGA))或例如以软件和硬件的组合形成(诸如微处理器系统和软件指令集)、以及在神经网络芯片上实现的实际设备、系统、部件或部件组。系统的这些模块的功能可以仅由硬件实现,也可以以组合的形式实现,其中,系统模块的一些功能通过软件实现,以及一些功能通过硬件实现。在一些方面中,一些模块或所有模块可以在通用计算机(诸如图5中所示出的通用计算机)的处理器上执行。
系统组件可以在单个计算设备的范围内实现,或者也可以分布在多个互连的计算设备之间。计算机的实现可以理解为意味着个人计算机(诸如台式计算机、笔记本和上网本)以及利用无线通信的电子设备(诸如移动电话、智能电话和平板电脑)两者。在图1中,计算机110a、计算机110b以及计算机110c以个人计算机的形式实现。应当注意,在进一步提及其中一台计算机时,除了特别指示正在讨论一特定方面的情况之外,另外的计算机上也可以发生类似的操作。
计算机110a包括各种程序,诸如硬件、软件和/或系统程序。在一个方面中,计算机110a至少包含防病毒应用(未示出)。在通常情况下,防病毒应用的目的是检测恶意文件并抵抗对保存在计算机110a上的用户数据的攻击(例如,经由恶意文件进行的攻击)。防病毒应用及其组件以程序的形式实现,而这种实现不受任何限制。防病毒应用的一个示例为来自卡巴斯基实验室股份制公司(АОKaspersky Lab)的卡巴斯基全方位安全(KasperskyTotal Security)应用。
在一个方面中,防病毒应用可以以防病毒代理的形式实现,与防病毒应用相比,防病毒代理的区别特征是其由有限的保护组件所组成。通常,防病毒代理与远程安全系统进行交互,远程安全系统具有更完整的保护组件和分析组件的阵列。因此,由于防病毒代理,优化了计算机的不同元件(诸如数据存储介质、处理器、存储器等)的工作量。
图2为示出根据本发明的各方面的防病毒代理的结构的示例的框图。在一个方面中,图2的防病毒代理210至少包括:监控模块230和判决缓存250。监控模块230用于如下操作中的一者或多者:跟踪文件的启动和/或执行(例如,在计算机110上的文件的执行)、在文件的防病毒扫描之前执行文件启动的拦截和/或停止、以及例如根据代理210的各方面停止防病毒扫描(例如,通过自身进行的防病毒扫描)。在通常情况下,本发明中使用的术语“文件”指的是可执行文件。防病毒代理210的判决缓存250被设计为存储防病毒代理为实现其目的所需的信息。
在一个方面中,存储的信息是关于恶意对象和安全对象的信息(例如,关于恶意文件或安全文件的信息)。在一个方面中,存储在判决缓存中的信息在一段时间内以特定频率更新或根据需要更新。在一个方面中,判决缓存中的信息被存储和提供(例如,提供给监控组件230)。在一个方面中,判决缓存中的信息以优选的形式(例如,以文件的散列值(散列表)的形式)提供。提供给监控组件的信息使得防病毒代理能够完成其任务。在一个方面中,文件的散列值有两种类型:短散列和完全散列(full hash)。
注意,判决缓存250不包含关于安全文件的短散列值的信息,而是仅包含关于完全散列的信息。然而,防病毒代理210还可以包含防病毒应用的其它组件。给定组件的存在将取决于防病毒代理的特定方面。换句话说,基于这些特定方面,组件及其任务可以变化。防病毒代理的组件的任务的示例为:按需对保存在客户端计算机上的文件进行防病毒扫描(按需扫描)、按访问进行防病毒扫描(按访问扫描)、防止来自网络的攻击、行为检测、系统事件的监控、搜索系统异常、分析组件、专家评估等。
在一个方面中,防病毒代理210与各种其它电子设备交互,例如与其它计算机110b和110c和/或外部服务器(例如,安全服务器130、信息服务器160)交互。计算机110a的交互是通过各种网络完成的。根据本发明的各个方面,网络可以为全球网络150(诸如因特网)或局部网络(诸如网络140)。网络还可以被表示为企业网络、私人网络等。此外,经由这些网络的链接将根据电子设备本身的能力来实现。因此,例如,如果客户端计算机为无线通信设备(诸如智能手机),则链接将通过无线网络发生。无线网络的示例为3G网络、4G网络、无线保真蓝牙和其它网络。当计算机为便携式计算机时,该链接可以通过无线网络或通过有线网络(例如,基于以太网的连接)来实现。
在一个方面中,防病毒代理210经由全球网络150与位于局部网络140中的安全服务器130和/或与信息服务器160交互。安全服务器130和信息服务器160可以通过图5中示出的计算机系统的一方面来实现。在一个示例性方面中,安全服务器130包括其上正在使用应用“卡巴斯基安全中心(Kaspersky Security Center)”应用的服务器,其中,安全服务器130还包含数据库120。在另一示例性方面中,信息服务器160包括在卡巴斯基安全网络(Kaspersky Security Network,KSN)的基础架构中使用的数据库。KSN是对卡巴斯基实验室股份制公司的知识数据库提供关于文件、互联网资源和软件的声誉以及其它信息的访问的服务。同样,一个或两个服务器(即,服务器130和服务器160)可以为任何合适的硬件和/或应用软件、和/或系统软件、或其组合。在图1示出的方面中,服务器130和服务器160被示为单个服务器。然而,在本发明的其它方面中,服务器130和服务器160的功能可以借助于多个服务器以分布式方式来实现。
在一个方面中,用于对计算机101a上的文件执行防病毒扫描的防病毒代理210的功能包括如下中的至少一者:
i)(例如在计算机上的文件启动期间)拦截文件的打开,从而停止可执行文件的执行;
ii)执行在计算机上的文件的第一(短)散列值的同步计算;
iii)在包含散列的判决缓存中对第一散列值执行同步搜索,并对至少已知的恶意文件做出决定;
iv)根据搜索结果,选择生成同步类型或异步类型的对于关于文件信息的请求,然后根据生成的请求搜索信息,其中:当选择同步类型时,文件的执行保持停止;当选择异步类型时,文件的启动恢复,并且生成包含文件的第二(完全)散列值的计算的请求;
v)根据生成的请求执行对文件的决定(判定)的搜索,以便完成防病毒扫描;以及
vi)关于所扫描的文件做出所扫描的文件的有害性或安全性的决定。
在一个方面中,防病毒代理210的功能还包括:针对存在或不存在第一类错误和第二类错误进行扫描,其中,错误的存在或不存在与做出的关于被扫描文件的有害性或安全性的决定有关。在一个方面中,针对是否存在错误进行的扫描是为了当将文件定义为安全时确定与错误决定相关的错误。
下面将详细描述防病毒代理210在客户端计算机110a上执行文件的防病毒扫描以及缩短文件的延迟时间的可能性的工作。
出于本描述的目的,假设在计算机110a上正在启动来自可执行文件的进程。在这种情况下,为了执行该文件的防病毒扫描,防病毒代理210拦截该文件,从而停止执行该文件。根据本发明的该方面,该任务可以借助于防病毒代理210本身或借助于其内置组件(诸如如上所述的监控模块230)来执行。
防病毒代理210然后执行拦截的文件的防病毒扫描。根据本发明的该方面,防病毒代理210执行其自身对扫描的文件的分析以确定是否存在恶意程序代码,使用用于分析的远程服务器(诸如远程安全服务器130)进行该分析,或者使用两者的组合(即防病毒代理210自身的分析和通过远程服务器的分析的组合)进行分析。在一个方面中,可以通过将分析分成多个阶段来执行各种分析的组合。在执行防病毒扫描期间,防病毒代理210同样在文件分析期间从其阻断的角度,即,在不同的分析步骤中选择最佳扫描类型,防病毒代理210执行分析并在同步扫描模式和异步扫描模式之间进行选择(从而生成对于关于文件的信息的请求)。同步扫描模式指示文件延迟达用于执行防病毒扫描的时间,即,不执行文件。异步扫描模式指示启动文件以便进一步执行,而防病毒扫描自身与文件的执行并行继续。基于散列值的计算以及对判决缓存250中的散列的搜索,然后在扫描模式之间做出决定来做出相应的扫描类型的选择。
应当注意,无论本发明的各个方面如何,防病毒代理210都包含判决缓存250。在一个方面中,判决缓存250为包含关于散列形式的文件的信息的数据库,所述散列至少具有两种类型:文件的短散列和文件的完全散列。在另一方面中,判决缓存可以为另一个数据库的一部分。在又一方面中,判决缓存还可以至少包含关于对应于完整散列的文件的有害性和/或安全性的决定。在另一方面中,判决缓存为包含关于相应文件的、文件的散列和决定(判定)的列表的内存区域。在一个方面中,判决缓存是在本地或远程(例如,位于安全服务器130上的数据库120中)实现的。在本发明的一优选但非强制性方面中,对于远程实现的情况,服务器和安装有防病毒代理210的用户计算机之间的交互通过有线通信发生,并且该服务器与安装有防病毒代理210的用户计算机在同一网络中。
在一个方面中,文件的短散列(也称为文件的第一散列)是仅从文件的特定的一部分或多个部分计算的。与整个文件的散列相比,短散列的好处是缩短用于其计算时间,并且文件越大,该好处就越重要。在一个方面中,文件的完全散列(也称为第二散列)是从整个文件计算的。完全散列的好处是最小的冲突似然率(即,两种不同文件的散列的一致),使得可以精确地以高可能性确定数据库或判决缓存中是否存在关于文件的特别决定。相反,文件的短散列可以同时对应于多个文件,因此需要在进一步分析中精化以便消除冲突的可能性。在一个方面中,用于选择(确定)用于计算文件的短散列的文件部分的过程是基于反复试验的过程。在另一方面中,文件的该部分的选择也可以基于预定的算法。例如,文件的该部分的选择可以基于文件的类型,其中,对于每种类型的文件,定义文件的用于创建第一散列的部分。特别地,可以为不同的文件类型选择文件的特定大小的不同的独特部分。在另一方面中,选择文件的用于散列的部分的过程考虑了关于文件的不同数据(即,文件元数据),使得可以选择文件的最独特部分用于散列(第一散列的计算)。用于选择的文件的元数据的示例包括:大小、类型、名称、与创建和编辑有关的数据、关于作者/所有者的信息、标题字段的值(如果以文件格式提供)以及其它数据。
在本发明的一个方面中,防病毒代理210在拦截文件进程的启动之后,执行计算机上的文件的第一散列的同步计算,并在判决缓存中执行对第一散列的同步搜索。在一优选的方面中,判决缓存250与防病毒代理210一起位于同一计算机上。根据从搜索获得的结果,防病毒代理210选择用于在进一步分析/评估文件期间使用的操作模式。换句话说,在同步操作模式和异步操作模式之间进行选择。当在判决缓存中找到第一散列值的情况下,文件的分析以同步模式继续,在此期间为生成对该文件的第二请求并将该第二请求发送到判决缓存250。第二请求的生成包括:同步计算第二散列以及将计算出的第二散列发送到判决缓存250。然后在判决缓存中执行同步搜索。相反,如果在判决缓存中没有找到第一散列,则选择异步操作模式进行进一步扫描,在此期间恢复正在被扫描的文件的进程的执行/启动,并且计算文件的第二散列并将该第二散列发送到判决缓存。在从判决缓存获得响应之后,防病毒代理210基于所接收的响应做出关于文件的有害性/恶意性的决定。
在一个方面中,如果基于针对文件的第一散列发送到判决缓存250的请求,确定该文件被指定为安全文件,然后,将基于异步操作模式进一步计算第二散列,并将请求发送到判决缓存250和/或发送到远程数据库120,以便排除做出错误决定(即,当做出关于文件为安全的判定时,防病毒代理210的错误警报)的可能性。
应当注意,一旦在判决缓存中找到第一散列,则将第二散列发送到该同一判决缓存。在未找到第一散列的情况下,如果判决缓存仅包含关于恶意文件的信息,则将相应文件的第二散列转发到远程服务器(安全服务器或信息服务器)以排除所述的错误警报。
在另一方面中,判决缓存位于局部网络140中的安全服务器130的数据库120中。在这种情况下,防病毒代理执行类似于上述方面的交互,即,将在同步模式下计算文件的第一散列并将该第一散列发送到判决缓存,同时,将基于从判决缓存中接收的关于第一散列的响应,生成对于关于文件的信息的请求,在此期间,计算第二散列,然后将第二散列发送到判决缓存。因此,如果在判决缓存中未找到第一散列,或在判决缓存中找到第一散列但文件被指定到安全类型的文件或安全文件组,那么异步计算第二散列和进一步的异步操作发生。例如,进一步的异步操作可以包括对正被扫描的文件进行发送、搜索以及做出决定。如果找到第一散列,则防病毒代理210将以同步模式操作。应当注意,安全文件组指的是第一散列相同的至少两个文件。
在本发明的又一方面中,防病毒代理210在拦截文件之后,例如使用本地数据库250执行文件的本地防病毒扫描。在文件被确定为安全的情况下,针对做出的决定的错误警报而扫描该文件。为了针对错误警报而扫描文件,防病毒代理210执行同步计算并在本地判决缓存中搜索文件的第一散列,本地判决缓存包含文件的第一散列,但仅包含恶意文件的第一散列。如果在本地判决缓存中找到第一散列,则防病毒代理210在同步模式下生成文件的第二散列并在本地判决缓存中搜索第二散列。如果在本地判决缓存中未找到文件的第二散列,则防病毒代理210恢复文件的操作并在异步模式下执行进一步扫描,其中,进一步扫描包括发送将对于关于(包含文件的第二散列的)文件的信息的请求发送到远程服务器(诸如安全服务器130)。在从远程服务器接收到响应之后,防病毒代理210做出另一决定。如果获得的响应确认了第一决定,则完成防病毒代理210对文件的操作。如果响应包含否定所做出的决定的信息,即文件为恶意的,则停止文件的一个或多个操作,并执行涉及文件的修复或移除的动作。
在另一方面中,在做出关于文件的决定之后,防病毒代理210执行针对错误警报的扫描,而不管先前是否使用了散列值的计算。在这种情况下,当已经确定文件为恶意的时,进一步计算文件的完全散列并且做出的到远程服务器130的请求同步地发生。否则,当已经确定文件为安全的时,完全散列的计算以及生成到远程服务器130的请求异步地发生。在获得响应之后,基于所获得的响应,防病毒代理210完成对正在被扫描的文件的工作或者对做出的决定进行校正。
图3为示出根据本发明的各方面的在文件的防病毒扫描期间生成对于关于文件的信息的请求的示例性方法的流程图。可以借助于图1中描述的系统来执行图3的方法。
在步骤305中,所述方法在用户的计算机(例如,诸如图1中的计算机110a)上的文件(可执行文件)启动期间拦截该文件,该文件被拦截以便执行防病毒扫描。当拦截该文件时,将阻止从该文件创建的进程的启动。在完成防病毒扫描时或在从防病毒系统获得用于启动文件的相应指令之后,恢复文件的进一步执行。在步骤310中,所述方法同步地计算文件的一部分的第一散列。在一优选的方面中,基于现有技术实现用于计算第一散列的机制。例如,在一个方面中,生成用于计算第一散列的机制,其中,所生成的机制包含用于选择文件的最优部分以供在第一散列的生成(计算)期间所使用的标准。用于选择的标准的示例是基于数据(诸如文件类型、文件大小以及其它元数据)的分析。因此,为了计算第一散列,文件的所述部分的选择是基于借助于标准对文件的元数据进行分析——从而允许确定文件的最优(最独特)部分。
在步骤315中,在生成第一散列之后,所述方法在判决缓存中同步搜索第一散列。在一个方面中,判决缓存为本地数据库的一部分,该数据库除了判决缓存之外还包含对恶意文件和受信任文件两者的决定。所述判决缓存至少包含关于文件的短散列(第一散列)和完全散列(第二散列)的信息。
在步骤320中,所述方法确定是否在判决缓存中找到了第一散列。如果在判决缓存中找到第一散列,则所述方法前进到步骤330,否则,所述方法前进到步骤350。在步骤330中,所述方法确定第一散列是否属于恶意文件列表。如果是,则所述方法前进到步骤335,在步骤335中,进行所述文件的第二散列的同步计算。应当注意,文件的第二散列的计算是从整个文件进行的。然后,在步骤340中,在已在步骤335中生成第二散列之后,在判决缓存中对第二散列进行同步搜索,并且如果需要,在远程安全服务器130的数据库120中进行同步搜索。在步骤380中,所述方法做出关于文件的有害性的最终决定,该最终决定是根据针对第二散列的搜索结果做出的。
在步骤350中,防病毒代理授权访问文件,即允许在计算机上启动文件的进程。然后,在步骤360中,所述方法异步生成对于关于文件的信息的请求,并计算该文件的第二散列。在步骤370中,所述方法根据文件的第二散列在位于远程服务器(例如,安全服务器130的数据库120)上的判决缓存中执行针对关于文件的信息的异步搜索。在步骤380中,所述方法基于搜索结果做出关于文件的有害性或安全性的最终决定。
在本发明的一个方面中,可以省略步骤330。在这种情况下,判决缓存将仅包含关于恶意文件的信息,或者包含仅针对恶意文件的第一散列值。因此,在判决缓存中找到第一散列表示该文件可能属于恶意文件,因此该方法从步骤320前进到步骤335。
图4为示出生成对于关于文件的信息的请求以便验证不存在错误响应的示例性方法的流程图。可以借助于图1中描述的系统来实现图4的方法。
在步骤405中,借助于防病毒代理拦截在客户端计算机110a上正在启动的可执行文件。接下来,防病毒代理执行文件扫描以确定是否存在恶意代码。为了执行文件的扫描,在步骤410中,所述方法使用同步类型的扫描生成文件的一部分的第一散列。注意,以上关于图1描述了用于生成第一散列的各个方面。在步骤415中,防病毒代理的方法同步地在判决缓存中搜索所生成的文件的第一散列,其中,判决缓存仅包含关于包含恶意代码的文件(即恶意文件)的信息。在步骤420中,所述方法确定在判决缓存中是否找到所生成的文件的第一散列。如果找到第一散列,则防病毒代理210的方法前进到步骤430。否则,即未找到第一散列,则所述方法前进到步骤450。
在步骤430中,所述方法从整个文件同步生成文件的第二散列,并将第二散列发送到判决缓存或访问判决缓存。在步骤440中,所述方法在判决缓存中同步搜索第二散列。然后,在步骤480中,防病毒代理基于针对第二散列的搜索结果做出关于文件有害性的最终决定。因此,如果在判决缓存中找到第二散列,则确定文件为恶意的。当文件被确定为恶意的时,可以移除或修复该文件,或者可以询问用户如何处理该文件。如果在判决缓存中未找到第二散列,则确定文件为安全的。然后,所述方法授权访问该文件。
在步骤450中,所述方法授权访问该文件以用于在计算机上执行该文件。然后,在步骤460中,防病毒代理异步生成对于关于文件的信息的请求,将生成的请求发送到远程服务器以用于进一步分析。此外,在步骤460中,在生成所述请求期间,所述方法还计算整个文件的第二散列。
在一个方面中,在步骤465中,防病毒代理在将请求发送到服务器之前(如步骤470所示),基于第二散列(如果防病毒代理中存在第二散列的话)使用本地数据库执行文件的防病毒扫描,该本地数据库包含关于恶意文件和安全文件的信息。在步骤467中,所述方法确定在本地数据库中是否找到第二散列。在步骤470中,如果在本地数据库中不存在任何决定,则将该请求发送到远程服务器。换句话说,如果在本地数据库中未找到第二散列,则将在步骤460中生成的请求发送到远程服务器。如果在本地数据库中找到决定,则防病毒代理做出如下决定之一:
-如果本地数据库能够将第二散列确定为恶意文件的散列,则防病毒代理前进到步骤469。在步骤469中,所述方法停止执行文件并向远程服务器发送请求以在做出决定时排除错误警报,之后使用同步扫描;以及
-如果本地数据库能够将第二散列确定为安全文件的散列,则防病毒代理完成其对文件的工作并前进到步骤470。然后,在步骤470中,所述方法异步地将请求发送到远程服务器,并等待来自远程服务器的针对关于文件的第二散列的搜索/分析的结果的响应。在步骤480中,在获得对请求的响应之后,所述方法使用搜索结果来做出关于文件的有害性的最终决定。
应当注意,在一个方面中,在确定文件为安全的之后,在步骤480中,可以异步地执行在该决定的做出中对错误警报的扫描。当在指示的判决缓存中找到文件的第一散列但是尚未找到该文件的第二散列时,执行这样的扫描是最关键的。对错误警报的扫描包括:防病毒代理向远程服务器发出包含第二散列的请求。在收到回复之后,防病毒代理基于回复中包含的信息做出关于文件的最终决定:要么维持先前的决定,要么更改先前的决定及其所产生的后果(例如,阻止文件)。在另一方面中,当确定文件为恶意的时,可以针对错误警报执行扫描。在这种情况下,扫描继续为同步类型,即将阻止文件至少直到该扫描结束。
根据该方面,所述决定包括发现该文件为恶意的或安全的或消除先前做出的错误决定。
图5为示出根据示例性方面的其上可实施本发明的各方面的通用计算机系统20的框图。应当注意,计算机系统20可以对应于系统100和/或其单独组件。
如图所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关联的存储器。如将由本领域的普通技术人员所领会,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。系统存储器可以包括永久性存储器(ROM)24和随机存取存储器(Random-Access Memory,RAM)25。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的模块之间传输信息的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如CD-ROM、DVD-ROM和其它光学媒介)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息媒介为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
在一个示例性方面中,硬盘27、可移动磁盘29和可移动光盘31可以借助控制器55连接到系统总线23。将由本领域的普通技术人员所理解,也可以利用能够以计算机可读的形式存储数据的任何类型的媒介56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等等)。
计算机系统20具有可以存储操作系统35的文件系统36、以及额外的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员将领会,输入设备也可以以其它方式来连接,诸如但不限于借助并行端口、游戏端口、或通用串行总线(Universal SerialBus,USB)来连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在上面描述计算机系统20的性质时所述的模块中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area computer Network,LAN)50和广域计算机网络(Wide-Area computer Network,WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机20系统可以采用调制解调器54或本领域的普通技术人员所熟知的实现与广域计算机网络(诸如因特网)的通信的其它模块。调制解调器54可以是内部设备或外部设备,且可以通过串行端口46连接到系统总线23。本领域的普通技术人员将领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、组件、或使用硬件(例如通过专用集成电路(Application Specific Integrated Circuit,ASIC)或现场可编程门阵列(Field-Programmable Gate Array,FPGA))实现的组件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以被执行在通用计算机(例如上文在图5中更详细描述的通用计算机)的处理器上。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
Claims (20)
1.一种用于生成对于关于文件的信息的请求的方法,所述方法包括:
在所述文件的启动期间拦截所述文件;
同步地计算所述文件的一部分的第一散列;
在判决缓存中同步地搜索所述第一散列;
当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;
当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列,在所述判决缓存和/或远程服务器中同步地搜索所述第二散列,并基于所述同步地搜索所述第二散列的结果做出关于所述文件的有害性或安全性的最终决定;以及
当所述第一散列不属于所述恶意文件列表时,授权访问所述文件;异步地生成对于关于所述文件的所述信息的请求,该信息至少包括关于所述文件的有害性的指示;异步地计算所述文件的第二散列;根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息,并基于所述异步地搜索的结果做出关于所述文件的有害性或安全性的决定。
2.如权利要求1所述的方法,其中,所述判决缓存为本地数据库的一部分,所述判决缓存至少包含关于文件的第一散列值和第二散列值的信息,并且所述本地数据库还包含关于恶意文件和受信任文件的决定。
3.如权利要求1所述的方法,其中,生成用于计算所述第一散列的机制,生成的所述机制包含用于选择在计算所述第一散列期间使用的所述文件的最优部分的标准,所述标准基于对所述文件的元数据的分析。
4.如权利要求1所述的方法,其中,当所述最终决定指示所述文件为安全文件时,所述方法还包括:
在所述最终决定的做出中异步地针对错误警报进行扫描,针对所述错误警报的异步扫描包括:向所述远程服务器发出请求,该请求包含所述第二散列;并在接收到来自所述远程服务器对所述请求的响应后,基于包含在所述响应中的信息做出关于所述文件的有害性或安全性的决定,所述决定维持判定所述文件为安全文件的先前的决定,或者更改所述先前的决定,该更改将要指示所述文件为恶意文件。
5.如权利要求1所述的方法,还包括:
在所述第一散列不属于所述恶意文件列表时,在位于所述远程服务器上的所述判决缓存中异步地搜索关于所述文件的所述信息之前,基于所述第二散列使用本地数据库执行所述文件的防病毒扫描,所述本地数据库包含关于恶意文件和安全文件的信息。
6.如权利要求5所述的方法,还包括:
确定在所述本地数据库中是否找到所述第二散列,并且当在所述本地数据库中未找到所述第二散列时,将所述请求发送到所述远程服务器。
7.如权利要求6所述的方法,还包括:
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为恶意文件的散列时,停止所述文件的执行,将请求发送到所述远程服务器以在所述决定的做出中排除错误警报,并同步地扫描所述文件;以及
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为安全文件的散列时,终止所述文件的扫描,针对所述第二散列,异步地将所述请求发送到所述远程服务器,基于所述第二散列的搜索接收来自所述远程服务器的响应,并基于所接收的响应做出关于所述文件的有害性的最终决定。
8.一种用于生成对于关于文件的信息的请求的系统,包括:
至少一个处理器,所述至少一个处理器被配置为:
在所述文件的启动期间拦截所述文件;
同步地计算所述文件的一部分的第一散列;
在判决缓存中同步地搜索所述第一散列;
当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;
当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列,在所述判决缓存和/或远程服务器中同步地搜索所述第二散列,并基于所述同步地搜索所述第二散列的结果做出关于所述文件的有害性或安全性的最终决定;以及
当所述第一散列不属于所述恶意文件列表时,授权访问所述文件;异步地生成对于关于所述文件的信息的请求,该信息至少包括关于所述文件的有害性的指示;异步地计算所述文件的第二散列;根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息,并基于所述异步地搜索的结果做出关于所述文件的有害性或安全性的决定。
9.如权利要求8所述的系统,其中,所述判决缓存为本地数据库的一部分,所述判决缓存至少包含关于文件的第一散列和第二散列的信息,并且所述本地数据库还包含关于恶意文件和受信任文件的决定。
10.如权利要求8所述的系统,其中,所述处理器还被配置为:生成用于计算所述第一散列的机制,生成的所述机制包含用于选择在计算所述第一散列期间使用的所述文件的最优部分的标准,所述标准基于对所述文件的元数据的分析。
11.如权利要求8所述的系统,其中,当所述最终决定指示所述文件为安全文件时,所述处理器还被配置为:
在所述最终决定的做出中异步地针对错误警报进行扫描,针对所述错误警报的异步扫描包括:向所述远程服务器发出请求,该请求包含所述第二散列;并在接收到来自所述远程服务器的对所述请求的响应后,基于包含在所述响应中的信息做出关于所述文件的有害性或安全性的决定,所述决定维持判定所述文件为安全文件的先前的决定,或者更改所述先前的决定,该更改将要指示所述文件为恶意文件。
12.如权利要求8所述的系统,其中,所述处理器还被配置为:
在所述第一散列不属于所述恶意文件列表时,在位于所述远程服务器上的所述判决缓存中异步地搜索关于所述文件的所述信息之前,基于所述第二散列使用本地数据库执行所述文件的防病毒扫描,所述本地数据库包含关于恶意文件和安全文件的信息。
13.如权利要求12所述的系统,其中,所述处理器还被配置为:
确定在所述本地数据库中是否找到所述第二散列,并且当在所述本地数据库中未找到所述第二散列时,将所述请求发送到所述远程服务器。
14.如权利要求13所述的系统,其中,所述处理器还被配置为:
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为恶意文件的散列时,停止所述文件的执行;将请求发送到所述远程服务器以在所述决定的做出中排除错误警报;并同步地扫描所述文件;以及
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为安全文件的散列时,终止所述文件的扫描;针对所述第二散列,异步地将所述请求发送到所述远程服务器;基于所述第二散列的搜索接收来自所述远程服务器的响应;并基于所接收的响应做出关于所述文件的有害性的最终决定。
15.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于生成对于关于文件的信息的请求的计算机可执行指令,所述计算机可执行指令包括用于执行如下操作的指令:
在所述文件的启动期间拦截所述文件;
同步地计算所述文件的一部分的第一散列;
在判决缓存中同步地搜索所述第一散列;
当在所述判决缓存中找到所述第一散列时,确定所述第一散列是否属于恶意文件列表;
当所述第一散列属于所述恶意文件列表时,同步地计算所述文件的第二散列;在所述判决缓存和/或远程服务器中同步地搜索所述第二散列;并基于所述同步地搜索所述第二散列的结果做出关于所述文件的有害性或安全性的最终决定;以及
当所述第一散列不属于所述恶意文件列表时,授权访问所述文件;异步地生成对于关于所述文件的所述信息的请求,该信息至少包括关于所述文件的有害性的指示;异步地计算所述文件的第二散列;根据所述第二散列,在位于远程服务器上的判决缓存中异步地搜索关于所述文件的所述信息;并基于所述异步地搜索的结果做出关于所述文件的有害性或安全性的决定。
16.如权利要求15所述的非暂时性计算机可读介质,其中,所述判决缓存为本地数据库的一部分,所述判决缓存至少包含关于文件的第一散列和第二散列的信息,并且所述本地数据库还包含关于恶意文件和受信任文件的决定。
17.如权利要求15所述的非暂时性计算机可读介质,其中,所述计算机可执行指令还包括用于生成用于计算所述第一散列的机制的指令,生成的所述机制包含用于选择在计算所述第一散列期间使用的所述文件的最优部分的标准,所述标准基于对所述文件的元数据的分析。
18.如权利要求15所述的非暂时性计算机可读介质,其中,当所述最终决定指示所述文件为安全文件时,所述计算机可执行指令还包括用于如下操作的指令:
在所述最终决定的做出中异步地针对错误警报进行扫描,针对所述错误警报的异步扫描包括:向所述远程服务器发出请求,该请求包含所述第二散列;并在接收到来自所述远程服务器的对所述请求的响应后,基于包含在所述响应中的信息做出关于所述文件的有害性或安全性的决定,所述决定维持判定所述文件为安全文件的先前的决定,或者更改所述先前的决定,该更改将要指示所述文件为恶意文件。
19.如权利要求15所述的非暂时性计算机可读介质,其中,所述计算机可执行指令还包括用于如下操作的指令:
在所述第一散列不属于所述恶意文件列表时,在位于所述远程服务器上的所述判决缓存中异步地搜索关于所述文件的所述信息之前,基于所述第二散列使用本地数据库执行所述文件的防病毒扫描,所述本地数据库包含关于恶意文件和安全文件的信息。
20.如权利要求19所述的非暂时性计算机可读介质,其中,所述计算机可执行指令还包括用于如下操作的指令:
确定在所述本地数据库中是否找到所述第二散列,并且当在所述本地数据库中未找到所述第二散列时,将所述请求发送到所述远程服务器;
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为恶意文件的散列时,停止所述文件的执行;将请求发送到所述远程服务器以在所述决定的做出中排除错误警报,并同步地扫描所述文件;以及
当在所述本地数据库中找到所述第二散列且所述第二散列被确定为安全文件的散列时,终止所述文件的扫描;针对所述第二散列,异步地将所述请求发送到所述远程服务器;基于所述第二散列的搜索接收来自所述远程服务器的响应,并基于所接收的响应做出关于所述文件的有害性的最终决定。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018123687A RU2701842C1 (ru) | 2018-06-29 | 2018-06-29 | Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты) |
RU2018123687 | 2018-06-29 | ||
US16/188,449 US10867043B2 (en) | 2018-06-29 | 2018-11-13 | Method and system for generating a request for information on a file to perform an antivirus scan |
US16/188,449 | 2018-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659484A CN110659484A (zh) | 2020-01-07 |
CN110659484B true CN110659484B (zh) | 2023-04-25 |
Family
ID=68170675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910420248.6A Active CN110659484B (zh) | 2018-06-29 | 2019-05-20 | 生成对于文件信息的请求以执行防病毒扫描的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10867043B2 (zh) |
CN (1) | CN110659484B (zh) |
RU (1) | RU2701842C1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2701842C1 (ru) * | 2018-06-29 | 2019-10-01 | Акционерное общество "Лаборатория Касперского" | Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты) |
RU2702053C1 (ru) * | 2018-12-28 | 2019-10-03 | Акционерное общество "Лаборатория Касперского" | Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов |
CN114024697A (zh) * | 2020-07-16 | 2022-02-08 | 青岛海尔工业智能研究院有限公司 | 安全控制方法、装置、系统、电子设备、及存储介质 |
CN111881448B (zh) | 2020-07-30 | 2022-10-14 | 山石网科通信技术股份有限公司 | 恶意文件的确定方法及装置 |
US11895129B2 (en) * | 2021-06-29 | 2024-02-06 | Juniper Networks, Inc. | Detecting and blocking a malicious file early in transit on a network |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352497B1 (en) * | 2009-02-09 | 2013-01-08 | American Megatrends, Inc. | Page object caching for variably sized access control lists in data storage systems |
US8607066B1 (en) * | 2008-08-04 | 2013-12-10 | Zscaler, Inc. | Content inspection using partial content signatures |
US9292689B1 (en) * | 2008-10-14 | 2016-03-22 | Trend Micro Incorporated | Interactive malicious code detection over a computer network |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
US7681237B1 (en) * | 2004-05-13 | 2010-03-16 | Symantec Corporation | Semi-synchronous scanning of modified files in real time |
US7694150B1 (en) * | 2004-06-22 | 2010-04-06 | Cisco Technology, Inc | System and methods for integration of behavioral and signature based security |
US20130246378A1 (en) * | 2007-04-30 | 2013-09-19 | Stephen Owen Hearnden | Partial hash system, method, and computer program product |
US8302193B1 (en) | 2008-05-30 | 2012-10-30 | Symantec Corporation | Methods and systems for scanning files for malware |
US8353037B2 (en) * | 2009-12-03 | 2013-01-08 | International Business Machines Corporation | Mitigating malicious file propagation with progressive identifiers |
US8584235B2 (en) * | 2011-11-02 | 2013-11-12 | Bitdefender IPR Management Ltd. | Fuzzy whitelisting anti-malware systems and methods |
US8656494B2 (en) * | 2012-02-28 | 2014-02-18 | Kaspersky Lab, Zao | System and method for optimization of antivirus processing of disk files |
US9202050B1 (en) * | 2012-12-14 | 2015-12-01 | Symantec Corporation | Systems and methods for detecting malicious files |
RU2523112C1 (ru) * | 2012-12-25 | 2014-07-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу |
GB2518636B (en) | 2013-09-26 | 2016-03-09 | F Secure Corp | Distributed sample analysis |
US9852295B2 (en) | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
RU2617923C2 (ru) * | 2015-09-30 | 2017-04-28 | Акционерное общество "Лаборатория Касперского" | Система и способ настройки антивирусной проверки |
US10726128B2 (en) * | 2017-07-24 | 2020-07-28 | Crowdstrike, Inc. | Malware detection using local computational models |
RU2701842C1 (ru) * | 2018-06-29 | 2019-10-01 | Акционерное общество "Лаборатория Касперского" | Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты) |
-
2018
- 2018-06-29 RU RU2018123687A patent/RU2701842C1/ru active
- 2018-11-13 US US16/188,449 patent/US10867043B2/en active Active
-
2019
- 2019-05-20 CN CN201910420248.6A patent/CN110659484B/zh active Active
-
2020
- 2020-11-16 US US17/098,512 patent/US11520889B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8607066B1 (en) * | 2008-08-04 | 2013-12-10 | Zscaler, Inc. | Content inspection using partial content signatures |
US9292689B1 (en) * | 2008-10-14 | 2016-03-22 | Trend Micro Incorporated | Interactive malicious code detection over a computer network |
US8352497B1 (en) * | 2009-02-09 | 2013-01-08 | American Megatrends, Inc. | Page object caching for variably sized access control lists in data storage systems |
Also Published As
Publication number | Publication date |
---|---|
US11520889B2 (en) | 2022-12-06 |
US20210064752A1 (en) | 2021-03-04 |
CN110659484A (zh) | 2020-01-07 |
RU2701842C1 (ru) | 2019-10-01 |
US20200004965A1 (en) | 2020-01-02 |
US10867043B2 (en) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659484B (zh) | 生成对于文件信息的请求以执行防病毒扫描的系统和方法 | |
RU2551820C2 (ru) | Способ и устройство для проверки файловой системы на наличие вирусов | |
US8356354B2 (en) | Silent-mode signature testing in anti-malware processing | |
US10430586B1 (en) | Methods of identifying heap spray attacks using memory anomaly detection | |
RU2536664C2 (ru) | Система и способ автоматической модификации антивирусной базы данных | |
EP2860657B1 (en) | Determining a security status of potentially malicious files | |
US20180089430A1 (en) | Computer security profiling | |
RU2487405C1 (ru) | Система и способ для исправления антивирусных записей | |
RU2523112C1 (ru) | Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу | |
US8656494B2 (en) | System and method for optimization of antivirus processing of disk files | |
US9202050B1 (en) | Systems and methods for detecting malicious files | |
US20150154398A1 (en) | Optimizing virus scanning of files using file fingerprints | |
KR101937325B1 (ko) | 악성코드 감지 및 차단방법 및 그 장치 | |
TW201812634A (zh) | 威脅情報雲 | |
US11477232B2 (en) | Method and system for antivirus scanning of backup data at a centralized storage | |
US11822659B2 (en) | Systems and methods for anti-malware scanning using automatically-created white lists | |
US11550920B2 (en) | Determination apparatus, determination method, and determination program | |
US11275836B2 (en) | System and method of determining a trust level of a file | |
EP3758330B1 (en) | System and method of determining a trust level of a file | |
EP3588350B1 (en) | Method and system for generating a request for information on a file to perform an antivirus scan | |
RU2696236C1 (ru) | Способ формирования запроса информации о файле при антивирусной проверке с целью исключения ложного срабатывания | |
JP7498758B2 (ja) | 同期中にデータを保護するためのシステム及び方法 | |
CN112149126B (zh) | 确定文件的信任级别的系统和方法 | |
US20240283814A1 (en) | Detection and prevention of sideloaded attack chains via cloud and fuzzy hashing | |
US20220382862A1 (en) | System and method for detecting potentially malicious changes in applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |