CN1773417A - 聚集反病毒软件应用程序的知识库的***和方法 - Google Patents

聚集反病毒软件应用程序的知识库的***和方法 Download PDF

Info

Publication number
CN1773417A
CN1773417A CN200510108474.9A CN200510108474A CN1773417A CN 1773417 A CN1773417 A CN 1773417A CN 200510108474 A CN200510108474 A CN 200510108474A CN 1773417 A CN1773417 A CN 1773417A
Authority
CN
China
Prior art keywords
file
software applications
antivirus software
malware
request
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.)
Granted
Application number
CN200510108474.9A
Other languages
English (en)
Other versions
CN1773417B (zh
Inventor
A·M·马瑞尼斯库
A·F·托马斯
D·A·戈贝尔
M·科斯蒂亚
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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
Priority claimed from US10/984,611 external-priority patent/US7765410B2/en
Priority claimed from US10/984,615 external-priority patent/US7765400B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1773417A publication Critical patent/CN1773417A/zh
Application granted granted Critical
Publication of CN1773417B publication Critical patent/CN1773417B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

依照本发明,提供了聚集多个反病毒软件应用程序的知识库的***、方法和计算机可读介质。诸如反病毒软件应用程序等用户模式应用程序通过通用信息模型获取对文件***操作的访问,这免除了反病毒软件供应商创建内核模式过滤器的需求。当文件***操作对反病毒软件应用程序可用时,本发明会使得每个安装在计算设备上的反病毒软件应用程序执行扫描以便确定数据是否是恶意软件。

Description

聚集反病毒软件应用程序的知识库的***和方法
技术领域
本发明涉及计算机设备,尤其涉及保护计算机设备以免受到恶意软件的危害。
发明背景
随着越来越多的计算机和其他计算设备通过诸如因特网等各种网络互相连接,计算机的安全性变得愈加重要,尤其是来自在网络和信息流上传递的入侵和攻击。本领域的技术人员会认识到这些攻击以许多不同的形式出现,包括但当然不限于计算机病毒、计算机蠕虫、计算机组件更换、拒绝服务攻击、甚至是误用/滥用合法的计算机***特征,所有这些都为了非法目的利用一个或多个计算机***的弱点。虽然本领域的技术人员会认识到各种计算机攻击在技术上互不相同,但为了本发明和描述简单起见,在诸如因特网等计算机网络上传播的恶意计算机程序在下文中一般会被称为计算机恶意软件或简称为恶意软件。
当计算机***被计算机恶意软件攻击或“感染”时,有害的结果各不相同,包括禁用***设备;擦除或破坏固件、应用程序或数据文件;将潜在的敏感数据发送到网络上的另一位置;关闭计算机***;或造成计算机***瘫痪。然而许多(虽然不是全部)计算机恶意软件的另一个有害的方面是被感染的计算机***被用于感染其他***。
对计算机恶意软件,尤其是对计算机病毒和蠕虫的传统防护是市场上可购买的反病毒软件应用程序。一般而言,反病毒软件应用程序扫描数据、查找与计算机恶意软件相关联的可标识模式。在检测与计算机恶意软件相关联的模式时,反病毒软件应用程序会通过隔离恶意软件或删除恶意软件来响应。遗憾的是,反病毒软件应用程序一般对已知的、可标识的计算机恶意软件有效。这通常是通过将数据中的模式与所谓的恶意软件的“签名”匹配来完成的。
通常,由现有反病毒软件应用程序执行的大部分操作是在操作***处于“用户模式”时发生的。如本领域和其他领域的技术人员所公知的,诸如反病毒软件应用程序等计算机应用程序可以在“内核模式”或“用户模式”中执行。“内核模式”是指在操作***的最高特权和保护级别处出现的处理。内核模式程序一直驻留在被保护的存储器中,并提供基本的操作***服务。“用户模式”是指在应用程序层出现的处理,在所述的应用程序层中不能访问内核模式数据。先前,需要访问可从内核模式获得的信息和特征的反病毒软件应用程序的供应商需要建立与操作***交互的内核模式过滤器。遗憾的是,要求每个反病毒软件供应商开发唯一的过滤器来访问从内核模式可用的特征,诸如被调度发生在计算机设备上的输入/输出(下文中被成为“I/O”)。此外,如果每个反病毒软件应用程序具有相应的内核模式过滤器来执行本质上相同的任务,计算设备承受具有在几个全异过滤器中执行的重复代码的性能负担,所述几个全异的过滤器都是在内核中载入的。现有技术的另一个缺点是用户模式界面是不一致的、不统一的并易于出错。因此,需要一种机制,其中被调度为在计算设备上发生的I/O对反病毒软件应用程序可用,而无需反病毒软件供应商执行内核模式过滤器。
许多软件供应商供应反病毒软件应用程序并维护日益增长的恶意软件签名数据库。实际上,反病毒软件供应商最重要的资产之一是从已知恶意软件收集的签名的知识库。然而,商业上可用的反病毒软件应用程序不总是互相兼容的。例如,在某些情况下,当有两种不同的反病毒软件安装在计算设备上,大家知道会发生数据冲突。结果是用户不能在计算设备上安装多个反病毒软件应用程序并从每个应用程序的知识库得益。因此,需要一种机制,用于聚集安装在相同计算设备上的多个反病毒软件应用程序的知识库。
发明内容
本发明针对上述示出的需求,提供了聚集多个反病毒软件应用程序的知识库以确定与一计算设备相关联的数据是否是恶意软件的机制。本发明的一方面是通过通用信息模型允许反病毒软件应用程序访问与I/O请求相关联的数据的方法。通用信息模型免除了反病毒软件供应商通过提供一般可以从内核模式过滤器获取的特征来创建内核模式过滤器的需求。接着通用信息模式可以使反病毒软件应用程序扫描与计算设备相关联的数据以便确定该数据是否是恶意软件。当检测到恶意软件,就防止任何读取、存储或执行恶意软件的尝试。
本发明的另一方面是确定与计算设备相关联的文件先前是否被标识为恶意软件或先前是否被确定为安全的方法。本发明的这个方面包括当一个或多个反病毒软件应用程序扫描文件时将一变量与该文件相关联。该变量指示该文件是否是恶意软件并可以在随后的时间被调用。例如,当用户试图执行该文件时可以调用该变量。如果该变量指示该文件为恶意软件,则用户执行该文件的任何尝试会失败。相反,如果该变量指示该文件不是恶意软件,则执行文件的尝试会成功而无需反病毒软件应用程序对文件执行重复的扫描。
本发明的另一方面是允许反病毒软件应用程序访问文件数据的高效方法。本发明的这个方面包括创建文件映射部分对象,它用于由一个或多个反病毒软件应用程序执行扫描。接着提供与反病毒应用程序交互的用户模式应用程序以及用于访问文件映射部分对象的数据。最后,生成反病毒软件应用程序可访问的文件视图。本发明的这个方面向反病毒软件应用程序提供了一组基本的文件***操作,用于提高执行扫描的速度。
本发明的又一个方面提供了聚集多个反病毒软件应用程序的知识库的计算设备。该计算设备包括安全服务应用程序、一个或多个反病毒软件应用程序以及包含扫描高速缓存和数据映射模块的通用安全过滤器。通用安全过滤器和安全服务应用程序共同工作以便向反病毒软件应用程序提供通用信息模型。通用信息模型允许反病毒软件应用程序访问被调度发生在计算设备上的I/O请求。当截取I/O请求时,反病毒软件应用程序会与通用信息模型交互以便调度扫描。当扫描发生时,安全服务应用程序知道有不同的反病毒软件应用程序被安装在计算设备上,并且能够防止数据冲突。
在另一个实施例中,提供了计算机可读介质,其内容例如使得计算设备依照这里所述的方法运作的程序。
附图说明
结合附图参考以下详细描述,本发明的上述方面和许多附带有点将变得显而易见并变得容易理解,附图中:
图1是示出依照现有技术的计算设备的层次结构的框图;
图2是依照现有技术包括适于扫描恶意软件的反病毒软件应用程序的计算设备的组件的框图;
图3是依照本发明包括适于标识恶意软件的反病毒软件应用程序的计算设备的组件的框图;
图4是示出依照本发明的聚集多个反病毒软件应用程序的知识库的方法的一个示例性实施例;
图5是结合图4中所描述的方法适于存储和调用数据的扫描高速缓存的图示;以及
图6是示出依照本发明会与图4中所描述的方法结合使用以向反病毒软件应用程序提供对文件数据的访问的访问方法的一个示例性实施例的流程图。
具体实施方式
依照本发明,提供了聚集多个反病毒软件应用程序的知识库的***、方法和计算机可读介质。向诸如反病毒软件应用程序等用户模式应用程序提供了通过通用信息模型对诸如I/O请求等文件***操作的访问,这免除了反病毒软件应用程序创建内核模式过滤器的需求。当截取I/O请求时,本发明使安装在计算设备上的每个反病毒软件应用程序执行扫描以便确定与请求相关联的数据是否是恶意软件。虽然会在反病毒软件应用程序的环境中描述本发明,但相关领域和其他领域的技术人员会理解,本发明也可用于软件开发的其他领域。因此,所述的本发明的实施例应该在实质上被构建成说明性的而非限制性的。
图1是依照现有技术配置的计算设备100的框图。计算设备100可以是多种设备中的任意一种,这多种设备包括但不限于个人计算设备、基于服务器的计算设备、个人数字助理、蜂窝电话、具有某些类型的存储器的其他电子设备等等。为了易于说明且因为他们对理解本发明并不重要,图1没有示出许多计算设备的典型组件,诸如键盘、鼠标、打印机和其他I/O设备、显示器等等。
图1所示的计算设备100包括硬件平台102、操作***104和应用程序平台106。为了易于说明且因为他们对理解本发明并不重要,图1没有示出典型地包含在硬件平台102中的组件,诸如中央处理单元、存储器、硬盘驱动器等等。同样地,因为相似的理由,图1没有示出操作***104或应用程序平台106的任何组件。
如图1所示,计算设备100的组件由位于底层的硬件平台102和位于顶层的应用程序平台106分层。图1的分层说明本发明更适宜在分级环境中实现。包含在计算设备100中的每个层次依赖于较低层中的***。更具体地,应用程序平台105在操作***104之上运行且不能直接访问硬件平台102的组件。相反,应用程序平台106对硬件平台102的任何访问由操作***104管理。如本领域和其他领域的技术人员所公知的,操作***104向应用程序平台106提供了应用程序编程接口(“API”),用于定义应用程序106可用的服务。
图2是适于说明向反病毒软件应用程序提供对与I/O请求相关联的数据的访问的现有技术过程的框图。如本领域和其他领域的技术人员公知的,计算机用户具有将数据读出和写入存储设备的持续需求,这些存储设备诸如硬盘、软盘、随机存取存储器、光盘(“CD”)等。例如,多数软件应用程序提供的通用操作是打开存储在存储设备上的文件并在计算机显示器上显示文件内容。然而,由于打开文件会造成执行与文件相关联的恶意软件,因此反病毒软件应用程序一般会在满足打开操作前执行文件的扫描或其他分析。如果检测到恶意软件,则执行扫描的反病毒软件应用程序会例如通过使打开操作失败来防止执行恶意软件。同样,反病毒软件应用程序会向计算机用户示出选项:删除恶意软件或将恶意软件置于“隔离区”。
如本领域和其他领域的技术人员所公知的,在计算设备中作出的I/O请求是由称为I/O***的操作***104(图1)的组件处理的。为了保护计算设备以免受到恶意软件的危害,当接收到I/O请求时会通知反病毒软件应用程序。现在参见图2,将描述向反病毒软件应用程序提供对与I/O请求相关联的数据的访问的公知过程。图2所示的计算设备100包括I/O***200、本地或远程I/O设备202、用户应用程序204、反病毒过滤器206-210和驻留在用户或内核模式中的反病毒软件应用程序/驱动程序212-216。当从诸如用户应用程序204等用户应用程序生成执行I/O的请求时,I/O***200接收到请求。如图2所示,用户应用程序在用户模式中运作并在内核模式中生成由I/O***200满足的I/O请求。在满足请求之前,会通知反病毒过滤器206、208和210要调度满足一I/O请求。作为响应,反病毒过滤器206、208和210中的每一个会通知其各自的反病毒软件应用程序/驱动程序212、214和216,应该扫描与I/O请求相关联的数据。如果与I/O请求相关联的数据是恶意软件,则反病毒软件应用程序/驱动程序会被配置成防止I/O请求被满足。相反,如果I/O请求不涉及恶意软件,则I/O***200会使得I/O请求被满足。例如,I/O***200会使数据被写入到I/O设备202,在一些***中,这些I/O设备202是诸如硬盘、软盘、闪存、磁盘、光盘(“CD”)等本地硬件设备。或者,I/O设备202可以是通过网络连接连接到计算设备100的远程硬件设备。
遗憾的是,图2所示的向反病毒软件应用程序提供对与I/O请求相关联的数据的访问的现有技术过程具有要求反病毒软软件供应商各自开发内核模式过滤器的缺陷。如图2所示,反病毒过滤器206、208和210只与特定的反病毒软件应用程序结合使用。此外,由于每种反病毒软件应用程序维护一内核模式过滤器以便执行必要的相同任务,计算机***遭受到重复的代码同时载入到存储器中的性能负担。
遗憾的是,图2所示的向反病毒软件应用程序提供对与I/O请求相关联的数据的访问的现有技术过程具有潜在地阻碍从计算设备删除恶意软件的缺陷。当在相同的计算设备上安装两个或多个反病毒软件应用程序时,大家知道会发生数据冲突。例如,两个反病毒软件应用程序会确定存储在计算设备上的文件感染了恶意软件。第一反病毒软件应用程序会试图通过删除文件数据来为文件“去除感染”。然而,当第一反病毒软件应用程序试图删除文件数据时,一般会通知第二病毒软件应用程序。在这种情况下,第二反病毒软件应用程序会被配置成防止对受感染文件的任何访问。同样地,第一反病毒软件应用程序会被配置成防止诸如第二反病毒软件应用程序等其他应用程序访问受感染的文件。显然,在这种情况下,第一反病毒软件应用程序或第二反病毒软件应用程序都不能删除恶意软件。
图3是适于说明依照本发明向反病毒软件应用程序提供对与I/O请求相关联的数据的访问的过程的框图。以下旨在提供可以实现本发明的一个合适的计算设备300的示例性概述。图3所示的计算设备300包括可以用与以上参考图2描述的相同名称的组件相似方式操作的几个组件。计算设备300包括I/O***302、I/O设备304、用户应用程序306、反病毒软件应用程序308、310和312、安全服务应用程序314和包括扫描高速缓存318和数据映射模块320的通用安全过滤器316。本发明所实现的软件实现例程包含在安全服务应用程序314和包括扫描高速缓存318和数据映射模块320的通用安全过滤器316中。一般而言,本发明实现的例程向诸如反病毒软件应用程序308、310和312等用户模式应用程序提供了对与I/O请求相关联的数据的访问,该I/O请求被调度为由I/O***302来满足。如图3所示,反病毒软件应用程序308、310和312可以不使用内核模式过滤器运行。同样,计算设备300可以用于聚集多个反病毒软件应用程序的知识库来扫描数据并确定数据是否被恶意软件感染。虽然图3和所附文字使用反病毒软件应用程序来描述本发明的实施例,但本发明的软件实现例程可以与其他类型的应用程序结合使用。类似地,本发明的软件实现例程可与执行特定功能的服务而非应用程序通信。因此,图3所示的计算设备300的组件应该被构建为示例性的而非限制性的。
如上所述,本发明的一些软件实现例程位于通用安全过滤器316内。概括地描述本发明的一个实施例,通用安全过滤器316截取由诸如用户应用程序306等应用程序作出的I/O请求。作为响应,通用安全过滤器316执行被设计成防止恶意软件在计算设备30中传播或执行的例程。更具体地,通用安全过滤器316与安全服务应用程序314(下述)通信,使得反病毒软件应用程序分析与请求相关联的文件并确定文件是否包含恶意软件。如果检测到恶意软件,通用安全过滤器315会与I/O***302通信并防止满足请求。
如图3所示,通用安全过滤器316包括扫描高速缓存318,用于提高本发明分析从I/O***302截取的I/O请求的速度。例如,如本领域和其他领域的技术人员所公知的,用户应用程序会经常对相同的文件作出相继的I/O请求。在这种情况下,本发明会截取第一I/O请求并使得反病毒软件应用程序308、310和312扫描文件并验证该文件没有被感染恶意软件。在文件没有被感染的情况下,相继的I/O请求不会触发对文件的扫描。相反,扫描高速缓存318对于文件是否被感染恶意软件而跟踪文件的状态,这样使得不执行不必要的扫描。文件被分类为(1)已知恶意软件,(2)已知安全或(3)未知。由于扫描文件是资源密集型过程,因此防止不必要的扫描提高了本发明的速度。如下面将要详细描述的,扫描高速缓存318可以与除了被设计成防止恶意软件的传播和执行的***之外的其他跟踪文件状态的***结合使用。例如,一些软件应用程序允许用户“备份”或将数据保存到第二硬件设备。在这种情况下,软件应用程序对于第二硬件设备是否具有文件的最新版本而跟踪计算设备上每个文件的状态。扫描高速缓存318可与这种类型的***结合使用以便跟踪计算设备上的文件的状态。
通用安全过滤器316包括数据映射模块320,它用于提高反病毒软件应用程序308、310和312能够扫描文件的可靠性和速度。一般而言,当新型的反病毒软件应用程序截取文件打开操作,会打开第二文件句柄以读出文件数据。然而,如本领域和其他领域的技术人员所公知的,会“锁定”文件以防止多个应用程序同时访问文件。反病毒软件应用程序在另一个应用程序“锁定”文件的情况下不能读出数据。此外,在现有技术中,打开新的句柄会防止另一应用程序打开文件,这会造成应用程序故障。然而,数据映射模块320向诸如反病毒软件应用程序308、310和312等应用程序提供了对文件数据的访问而无需创建第二文件句柄。然而,数据映射模块320向应用程序提供了对低层对象的访问,文件数据可以从该低层对象读出。无论是否有另一个应用程序“锁定”了文件,都可以访问低层对象。同样,创建第二文件句柄需要相当多的计算资源。因此,允许反病毒软件应用程序使用低层对象来读出文件数据提高了反病毒软件应用程序能够执行扫描以发现恶意软件的速度。如下文将详细描述的,数据映射模块320可与读出文件数据的其他***结合使用。例如,一些软件应用程序在文件被存储在硬件设备上之前加密文件,并且在从硬件设备恢复时解密文件。在这种情况下,数据映射模块320可用于提供加密应用程序以访问文件中的数据的有效方法。
如图3所示,计算设备300包括安全服务应用程序314,其中该安全服务应用程序314用作到安装在计算设备300上的反病毒软件应用程序的接口。安全服务应用程序314允许反病毒软件应用程序注册和创建扫描概况。扫描概况标识出反病毒应用程序发现“感兴趣的”I/O请求。例如,扫描概况会指示当I/O请求是针对关于被恶意软件感染处于“未知”状态的文件时,反病毒软件应用程序会执行扫描。或者,会将扫描概况这样定义,使得当生成某些类型的I/O请求时,反病毒软件应用程序执行扫描。在任一情况下,反病毒软件应用程序向安全服务应用程序314注册并创建定义执行扫描的环境的概况。安全服务应用程序314负责在不同的经注册的反病毒软件应用程序之间的调度扫描。
本发明的实现不限于图3所示的示例性计算设备。例如,图3和所附文本描述了在用户模式中执行的反病毒软件应用程序308、310和312。然而,本发明的软件实现例程可以被配置成与在内核模式中执行的反病毒软件过滤器通信。同样,示出了计算设备300从用户应用程序306接收I/O请求。然而,如本领域和其他领域的技术人员所公知的,可从其他源接收I/O请求,诸如用于远程计算设备之间通信的协议。此外,I/O设备304被示为作为计算设备300的组件的硬件设备。然而I/O设备304可以是通过网络连接连接到计算设备300的远程硬件设备。或者,I/O请求可以不是针对硬件设备的。而是,I/O请求可针对能够使用创建文件命令访问的对象,所述创建文件命令包含但不限于管道、通信资源、磁盘设备、控制台、邮件插槽(mail slot)等等。因此,图3所示的计算设备300的组件应该被构建为示例性的而非限制性的。
图4是被设计成聚集多个反病毒软件应用程序的知识库的一个示例性方法400的流程图。概括而言,方法400通过通用信息模型使得反病毒软件应用程序接触I/O请求。当生成I/O请求时,方法400确定是否需要由安装在计算设备上的一个或多个反病毒软件应用程序扫描。当需要扫描时,方法400标识出对所生成类型的I/O请求感兴趣的反病毒软件应用程序。一个或多个反病毒软件应用程序会通过通用信息模型执行扫描以便确定恶意软件是否与I/O请求相关联。继续参考图1-3和所附的描述,现在将描述图4中所示的聚集多个反病毒软件应用程序的知识库的示例性方法400。
在判决框402处,方法400保持空闲并等待一般由诸如I/O***302(图3)等操作***的内核模式组件接收到的I/O请求。如本领域的技术人员所理解的,会通过多种不同的机制生成I/O请求。例如,文字处理程序的用户会从下拉菜单或其他基于图形的输入***发出“打开文件”命令。为了满足“打开文件”命令,文字处理程序会发出要求从存储设备获取文件数据的API调用。作为另一例子,Web浏览器程序的用户会发出从远程计算机下载文件的命令。为了满足该命令,Web浏览器程序会发出将数据流存储在诸如I/O设备304(图3)等硬件设备的API调用。当生成I/O请求时,I/O***302与硬件设备交互以满足请求。然而,方法400在I/O***302满足I/O请求之前截取I/O请求,以防止对恶意软件的执行和/或传播。
在判决框404处,方法400确定在框402处接收到的I/O请求是否是创建新文件的命令。可在框402处截取的一种类型的I/O请求会创建新文件。这种类型的请求不能使计算设备受到恶意软件的影响。如以下在框422处所述,对创建新文件命令的请求的处理不同于方法400接收到的其他I/O请求。创建新文件的请求会使用多个可以从新型操作***获取的不同命令中的一个生成。例如,在Windows操作***的环境下,会使用被特别设计成创建新文件的API来创建新文件,诸如“CreateFile”API。或者,在某些情况下会使用诸如打开、覆盖和代替API等其他API来创建新文件。如果在框404处接收到的请求是创建新文件的命令,那么方法400前进到下述的框422。或者,如果请求不是创建新文件的命令,那么方法400前进到框406。
在判决框406,方法400确定在框402处截取的I/O请求是否可能使得计算设备受到恶意软件的影响。如本领域和其他领域的技术人员所公知的,某些I/O请求不具有使得计算设备受到恶意软件的影响的可能性。例如,如果I/O请求是“打开文件”命令且特定文件不包含任何数据,那么满足该命令不会使得计算设备受到恶意软件的影响。类似地,在框402处接收到的I/O请求可以是打开或关闭目录的命令。在这种情况下,I/O请求不会将计算设备受到恶意软件的影响。本领域和其他领域的技术人员会理解,其他类型的I/O请求不具有使得计算设备受到恶意软件的影响的可能性。因此,上述例子应该被构建为示例性的而非限制性的。如果在框402处接收到的请求不具有使得计算设备受到恶意软件的影响的可能性,那么方法400前进到下述的框426。或者,如果在框402处接收到的请求不具有使得计算设备受到恶意软件的影响的可能性,那么方法400前进到框408。
在框408处,方法400查询数据库,诸如扫描高速缓存318,并且标识出作为框402处接收到的I/O请求的对象的文件状态。如下面将详细描述的,当一个或多个反病毒软件应用程序扫描文件以查找恶意软件时,一变量与文件相关联。该变量表示三个可能的状态之一:包括(1)已知恶意软件,(2)已知好的或(3)未知。
为了说明起见且仅举例而言,图5示出了示例性扫描高速缓存318的内容。如所示的,扫描高速缓存318由三个列组成,每个包括多个条目。这些列被标识为文件索引502、第一比特504和第二比特506。文件索引502字段包含用于唯一地标识文件的值。如本领域和其他领域的技术人员所公知的,存储设备一般被分为成为卷的逻辑单元。每个卷具有一中央位置,有关卷上文件的信息被存储在所述的中央位置中。例如,WindowsNT文件***(“NTFS”)维护主文件表(“MFT”),该MFT对卷上的每个文件包含一记录。当创建文件时,文件的记录存储在MFT中,并且分配预定量的空间以存储文件属性。例如,向每个文件分配唯一的文件索引以表示MFT中的文件位置。如下文将详细描述的,当一个或多个反病毒软件应用程序依照本发明扫描文件时,MFT中与文件相关联的索引值被输入到索引高速缓存318的文件索引502字段中。第一比特504和第二比特506字段各自存储一值,共同地标识文件的状态。例如,第一比特504和第二比特506字段都含有为“0”或“1”的值。在本发明的一个实施例中,如果第一比特504字段包含“1”而第二比特506字段包含“0”,那么文件的状态是“已知恶意软件”。或者,如果第一比特504字段包含“0”而第二比特506字段包含“1”,那么文件的状态是“已知好的”。同样,如果第一比特504字段包含“0”而第二比特506字段包含“0”,那么文件的状态是“未知”。虽然图5示出了具有特定属性的扫描高速缓存318,但本领域的技术人员会理解,扫描高速缓存318可以带有多于或少于所有所列属性操作。
跟踪文件状态的常规技术与扫描高速缓存318相比是易于出错且资源密集型的。例如,跟踪文件是否感染恶意软件的一种公知技术使用散列表。当截取I/O请求时,会使用基于字符串的文件名作为散列关键字来搜索散列表。然而,文件名称不总是唯一地标识文件。例如,当用户创建“链接”以引用文件时,文件会与一个或多个文件名相关联。在这种情况下,散列表对同一文件会包含多个条目。结果是,当文件被两个或多个文件名引用时,反病毒软件应用程序会执行不必要的扫描。如上所述,扫描高速缓存318使用从MFT获取的唯一文件索引来标识文件以防止发生重复的扫描。同样,与从位图查询比特相比计算散列关键字或搜索基于字符串的文件名是资源密集型的。例如,散列表一般消耗足够的存储空间,使得散列表中的条目最终被删除以容纳新的文件。然而,扫描高速缓存318中的条目需要十分少量的存储空间,使得无需删除条目来容纳新的条目。
如上所述,扫描高速缓存318会与其他***结合使用以跟踪一个或多个文件的状态。仅举例而言,扫描高速缓存318可以与以下应用程序结合来实现:(1)“备份”应用程序,用于对于文件在第二硬件设备上的存储而跟踪文件的状态,(2)加密/解密应用程序,用于跟踪文件是否被加密,(3)以及内容过滤应用程序,用于跟踪文件是否包含不适当的内容。如本领域和其他领域的技术人员所公知的,用于存储附加数据的比特会被加到扫描高速缓存318中,以便容纳这些类型的***的需求。
返回到图4,在判决框410处,方法400确定与文件相关联的状态是否是“已知好的”或没有感染恶意软件。在本发明的示例性实施例中,对于文件是否为“已知好的”的确定是通过分析包含在数据库中的数据作出的,该数据诸如包含在扫描高速缓存318中的比特信息。由于可使用本领域一般公知的技术来查询数据库和分析与文件索引相关联的信息,这里不提供本领域所使用的技术的描述。如果文件被标识为“已知好的”,方法400前进到下述的框426。或者,如果文件与不同于“已知好的”的状态相关联,那么方法400前进到框412。
在判决框412处,方法400确定与文件相关联的状态是否为“已知恶意软件”。类似于文件被标识为“已知好的”的情况,文件是否为“已知恶意软件”的确定是通过分析包含数据库中的数据,诸如包含在扫描高速缓存318中的比特信息来作出的。如果文件状态被标识为“已知恶意软件”,方法400前进到下述的框428。或者,如果文件与未知状态相关联,方法400前进到框414。
在框414处,方法400向在用户模式中执行的反病毒软件应用程序提供对文件数据的访问。如果到达了框414,那么与文件相关联的状态是“未知”,且方法400会使得一个或多个反病毒软件应用程序扫描作为在框402处截取的I/O请求的对象的文件。本发明向反病毒软件应用程序提供了访问文件数据的有效方法,使得可以快速地执行对恶意软件的扫描。以下参考图6描述向反病毒软件应用程序提供对文件数据的访问的方法的一个实施例。
在框416处,方法400选择将对文件执行扫描的反病毒软件应用程序,该文件是在框402处截取的I/O请求的对象。如先前参考图3所述,本发明的各方面允许反病毒软件应用程序注册和创建扫描概况。扫描概况定义反病毒软件应用程序“感兴趣”的I/O请求。方法400检查安装在计算设备上的反病毒软件应用程序的扫描概况,从而选择对所截取的I/O请求“感兴趣”的反病毒软件应用程序。
在框418处,方法400使得所选的反病毒软件应用程序扫描数据并确定作为在框402处接收到的I/O请求的对象的文件否是被感染了恶意软件。如上所述,当确定是否存在感染时,反病毒软件应用程序一般将数据模式与恶意软件“签名”进行匹配。然而,反病毒软件应用程序越来越多地使用主动的恶意软件检测技术。例如,一些反病毒应用程序通过使得数据在虚拟操作环境内“执行”来模拟程序动作。如果检测到在虚拟操作环境中误用/滥用资源,那么反病毒软件应用程序确定文件感染了恶意软件。在任何情况下,在框418处,所选反病毒软件应用程序获取文件数据并执行动作以确定文件数据是否感染了恶意软件。如以下将参考图6详细描述的,会使用对经注册的反病毒软件应用程序可用的通用信息模型来获取文件数据。
除了确定是否存在恶意软件感染外,反病毒软件应用程序会在框418处执行纠正动作。如本领域和其他领域的技术人员所公知的,新型的反病毒软件应用程序会能够删除被标识为恶意软件的数据或纠正恶意软件感染。在框418处删除恶意软件的情况下,接着会允许所选的反病毒软件应用程序采取纠正措施。因为每次时间只能选择一种反病毒软件应用程序,所以在框418处所采取的任何纠正动作是在存在数据冲突的可能性的情况下执行的。换而言之,方法400调度由反病毒软件应用程序采取的纠正措施相继发生,这意味着数据视图对于其他反病毒软件应用程序是一致的。
在判决框420处,方法400确定是否会选择任何其他的反病毒软件应用程序。如先前所述,方法400可用于聚集多个反病毒软件应用程序的知识库以便检测恶意软件的存在。如果将不选择其他反病毒软件应用程序,那么方法400前进到下述的框422。相反,如果将选择其他反病毒软件应用程序,那么方法400返回到框416并在框416到420之间反复直至所有对在框402处截取的I/O请求“感兴趣”的反病毒软件应用程序能够执行扫描。
在框422处,文件的状态存储在诸如扫描高速缓存318等数据库中。如上所述,在某些情况下,方法400会使得反病毒软件应用程序扫描文件并确定文件是否受到感染。在本发明的一个示例性实施例中,如果一个或多个反病毒软件应用程序检测到恶意软件的存在并不能纠正感染,那么文件在扫描高速缓存318中被标记为“已知恶意软件”。在这个实施例中,如果反病毒软件应用程序毒没有检测到恶意软件的存在,那么文件在扫描高速缓存318中被标记为“已知好的”。本领域和其他领域的技术人员会理解,存在用于确定文件是否感染恶意软件的其他可能的实施例。例如,在文件在扫描高速缓存318中被标识为“已知恶意软件”时,方法400会要求安装在计算设备上的大部分反病毒软件应用程序检测恶意软件。更一般地,方法400会被实现成为由反病毒软件应用程序生成的结果组计算加权值的***。在这种情况下,加权值超过了阈值,那么文件在扫描高速缓存318中被标记为“已知恶意软件”。因为基于从应用程序接收到的输入计算加权值的***一般在本领域是公知的,这里不提供对这些***的进一步描述。
如上所述在框404处,在框402处截取的I/O请求可以是创建新文件的命令。在这种情况下,可以满足命令而不会使计算设备受到恶意软件的影响。在框422处,作为命令主题的文件状态在扫描高速缓存318中被标识为“已知好的”。如上所述在框408处,在本发明的一个实施例中,从MFT获取唯一的文件索引值,并用于在扫描高速缓存318中标识文件。然而,当从计算设备删除文件时,MFT会将与所删除的文件相关联的文件索引值重新分配给新的文件。当文件被删除时,本发明不会改变记录在扫描高速缓存318中的文件状态。而是,当接收到创建新文件的命令时,本方法简单地用作为命令对象的文件的状态覆盖已删除文件的状态。
如上所述,方法400使得文件的状态存储在诸如扫描高速缓存318等数据库中。在某些情况下,会在框422处执行其他管理程序以使得扫描高速缓存318能够适应文件***中的增长。例如,在本发明的一个实施例中,当I/O请求针对没有在扫描高速缓存318中维护条目的先前未标识的文件,就创建较大的扫描高速缓存。较小的扫描高速缓存318的内容与先前未标识的文件的状态一起被复制到较大扫描高速缓存。这个实施例的优化使得分配给扫描高速缓存318的存储器为仍然是I/O请求的对象的其他文件按照高于容纳先前未标识的文件所需的最小值预定百分比增长。
在判决框424处,方法400确定与文件相关联的状态是否是“已知恶意软件”。当截取创建新文件的命令或一个或多个反病毒软件应用程序扫描具有“未知”状态的文件时,方法400到达框424处。在任一情况下,与文件相关联的状态存储在诸如扫描高速缓存318等数据库中。因此,在框424处确定文件是否感染恶意软件是通过调用先前存储的数据作出的。如果文件状态被标识为恶意软件,那么方法400前进到下述的框428。或者,如果文件没有被标识为恶意软件,那么方法400前进到框426。
在框426处,方法400将程序执行返回到诸如I/O***302(图3)等操作***组件。如上所述,方法400在满足I/O请求之前截取I/O请求,以防止执行和/或传播恶意软件。如果到达框426,那么在框402处截取的I/O请求或者不能用恶意软件感染计算设备,或者涉及由在安装在计算设备上的反病毒软件应用程序扫描和标识为非恶意软件。在任一情况下,满足I/O请求不会导致执行和/或传播恶意软件。因此,在程序执行返回到I/O***302后,依照现有技术满足I/O请求。接着,方法400前进到框430,并在该处结束。
在框428,方法400将程序执行返回到诸如I/O***302等操作***组件。然而,如果到达框428,在框402处截取的I/O请求会导致执行和/或传播恶意软件。因此在程序执行返回到I/O***302之后,I/O请求失败并将恶意软件感染通知计算机用户。接着方法400前进到框430,并在该处结束。
本发明的实现不限于图4中所示的示例性方法400。例如,方法400被图解为具有分立的开始和结束。然而,在本发明的实际实施例中,I/O请求在连续过程中被截取。当存在足够的信息以认为I/O请求会导致执行和/或传播恶意软件时,方法400会接着使得I/O请求失败。同样,本发明不限于以上提供的例子。例如,方法400主要在扫描文件数据的环境中描述。然而,本领域的技术人员会理解,方法400可用于扫描其他数据单元而不背离本发明的范围。
图6是可以与以上参考图4所描述的方法400结合使用以便以高度优化的方式向反病毒软件应用程序提供对文件数据的访问的一个示例性访问方法600的流程图。概括而言,方法600包括创建一个或多个反病毒软件应用程序用以执行扫描的部分对象。接着向与反病毒软件应用程序交互的用户模式应用程序提供访问部分对象所需的信息。最后,创建部分对象的视图,以允许一个或多个反病毒软件应用程序执行基本的文件***操作。继续参考图1-5和所附描述,现在将描述图6中所示的示例性访问方法600。
在判决框602处,访问方法600保持空闲直至接收到扫描请求。如上所述,安全服务应用程序314(图3)用作到安装在计算设备300上的反病毒软件应用程序的接口。反病毒软件应用程序会创建定义反病毒软件应用程序执行扫描的环境的扫描概况。在框602处,安全服务应用程序314(图3)从反病毒软件应用程序接收扫描请求。因为可以使用本领域中一般公知的技术来实现两种用户模式应用程序之间请求的通信,因此这里将不提供这些技术的进一步描述。
在框604处,创建一个或多个反病毒软件应用程序将扫描的文件的部分对象。如本领域和其他领域的技术人员所公知的,部分对象允许内核和用户模式应用程序共享数据。在本发明的一个示例性实施例中,安全服务应用程序314向通用安全过滤器316作出请求,以创建将被扫描的文件的部分对象。如图2所示,在创建文件映射部分对象之前,操作***104从用户模式转移到内核模式。更具体地,在用户模式中执行的安全服务应用程序314向在内核模式中执行的通用安全过滤器316作出请求之后,操作***104从用户模式转移到内核模式。当完成到内核模式的转移时,通用安全过滤器316通过标识要扫描的文件和调用创建文件映射部分对象的函数来响应请求。
在框606处,访问要扫描的文件所需的信息对用户模式应用程序可用。更具体地,在框604处创建的文件映射部分对象由通用安全过滤器316***到安全服务应用程序314的对象表中。如本领域和其他领域的技术人员所公知的,新型的操作***一般在预定域内执行程序。例如,在一些操作***中,程序只能访问对称为对象表的程序唯一的数据结构中引用的对象。通过将在框604处创建的部分对象***到域安全服务应用程序314相关联的对象表中,在框604处创建的部分对象对安全服务应用程序314可用。如图2所示,在将文件映射部分对象***到安全服务应用程序314的对象表中后,操作***105从内核模式转移到用户模式。
在判决框608处,访问方法600保持空闲并等待反病毒软件应用程序请求文件数据。如上所述,当I/O操作被截取时,一个或多个反病毒软件应用程序会与通用信息模型交互以调度扫描。为了完成扫描,反病毒软件应用程序会需要执行基本文件***操作。例如,一般地,反病毒软件应用程序会“读出”文件数据并将数据与已知恶意软件签名进行比较。依照本发明,反病毒软件应用程序能够使用对向安全服务应用程序314注册的应用程序可用的通用信息模型来执行基本文件***操作。在本发明的一个实施例中,通用信息模型对以API组形式注册的应用程序可用。在任一情况下,在判决框608处,访问方法600保持空闲并等待反病毒软件请求文件数据。
在判决框610处,访问方法600确定要扫描的文件的视图是否需要映射到安全服务应用程序314的存储空间中。为了完成对安全服务应用程序314的虚拟地址空间的有效使用,尤其对于唯一文件可能同时发生的多次扫描,文件的“视图”会被映射到应用程序的存储空间中,以便允许应用程序访问部分的文件数据。因为所有的文件数据不能同时被载入到应用程序的存储器空间中,所以当请求当前视图没有的数据时映射新的视图。如果不能从安全服务应用程序314的存储空间中映射的视图获取在框608处请求的数据,那么访问方法600方法确定需要映射新的视图并前进到框612。相反,如果可以从映射到安全服务应用程序314的存储空间中的视图获取在框608处请求的数据,那么访问方法600前进到下述的框614处。
在框612处,映射在框604处创建的部分对象的视图,允许诸如安全服务应用程序314等用户模式应用程序满足对文件数据的请求。安全服务应用程序314获取由通用安全过滤器316提供的数据,该通用安全过滤器316标识将扫描的文件。如果在安全服务应用程序314的存储空间中已经映射了视图,那么访问方法600向操作***104作出API调用以删除当前的视图。接着,安全服务应用程序314向操作***104作出另一API调用以映射新的视图。在响应中,操作***104为可以从中访问所请求数据的文件映射视图。在Windows操作***的环境中,会使用“MapViewOfFile()”和“UPMapViewOfFile()”API将文件映射入和出应用程序的存储空间。然而,这里所提供的例子应该被构建为示例性的而非限制性的。
在框614处,当发生请求时,在框608处请求的数据被传送到反病毒软件应用程序。当所需的视图被映射(在框612处)到安全服务应用程序314的存储空间中时,***能够使用本领域中一般公知的方法将数据发送到做出请求的反病毒软件应用程序。
在判决框616处,访问方法600确定生成在框602处接收到的扫描请求的反病毒软件应用程序是否完成了访问文件数据。如上所述,安全服务应用程序314通过将一组基本的文件***操作提供给安装在计算设备上的反病毒软件应用程序用作接口。当反病毒软件应用程序完成扫描文件时,应用程序通知安全服务应用程序314扫描已完成,且访问方法600前进到框618,并在此处结束。相反,如果反病毒软件应用程序没有完成扫描文件并继续访问文件数据,那么访问方法600返回到框608到616,直至反病毒软件应用程序完成扫描文件。
访问方法600会与其他***结合使用,以为执行基本文件***操作提供非常快速的方式。仅通过示例,访问方法600可以与以下应用程序结合实现:(1)加密/解密应用程序,用于读出文件和写入文件,以及(2)内容过滤应用程序,用于读出文件数据并确定文件数据是否含有不适当的资料。然而,由于访问方法600可以由任何类型的应用程序使用以执行基本文件***操作,因此这里所提供的例子应该被构建为说明性的而非限制性的。
虽然示出和描述了本发明的优选实施例,应该理解,可以对它们作出各种修改非不背离本发明的精神和范围。

Claims (67)

1.一种在包含多个反病毒软件应用程序的计算设备中聚集反病毒软件应用程序的知识库以防止恶意软件的执行或传播的计算机实现的方法,所述方法包括:
(a)在满足请求前截取所述请求;
(b)向所述反病毒软件应用程序提供对与所述请求相关联的文件的访问;
(c)使所述反病毒软件应用程序分析与所述请求相关联的文件以便确定所述文件是否包含恶意软件;以及
(d)如果所述文件包含恶意软件,那么防止满足所述请求。
2.如权利要求1所述的方法,其特征在于,还包括如果所述文件不含有恶意软件,则允许满足所述请求。
3.如权利要求1所述的方法,其特征在于,还包括创建一数据库,用于跟踪所述反病毒软件应用程序所分析的文件的状态。
4.如权利要求3所述的方法,其特征在于,所述数据库将文件索引值与表示所述文件状态的变量相关联。
5.如权利要求4所述的方法,其特征在于,将所述文件索引值与所述数据库中的变量相关联包括:
(a)确定所述文件索引值是否输入到所述数据库中;以及
(b)如果所述文件索引值不在所述数据库中:
(i)从为卷上的每个文件维护唯一文件索引值的数据结构中获取所述文
件索引值;以及
(ii)将所述文件索引值输入到数据库中。
6.如权利要求5所述的方法,其特征在于,还包括:
(a)如果所述文件包含恶意软件,则将一变量与所述数据库中指示所述文件含有恶意软件的文件索引值相关联;以及
(b)相反,如果所述文件不含有恶意软件,则将一变量与所述数据库中指示所述文件不含有恶意软件的文件索引值相关联。
7.如权利要求6所述的方法,其特征在于,还包括响应于查询返回与所述文件索引值相关联的变量。
8.如权利要求6所述的方法,其特征在于,与所述数据库中的文件索引值相关联的变量由两个比特组成。
9.如权利要求5所述的方法,其特征在于,为卷上的每个文件维护唯一文件索引值的数据结构是主文件表。
10.如权利要求1所述的方法,其特征在于,截取所述请求包括确定所述请求是否有可能使计算设备受到恶意软件的影响。
11.如权利要求10所述的方法,其特征在于,不可能使计算设备受到恶意软件的影响的请求包括:
(a)致使创建新文件的命令;
(b)针对不包含数据的打开文件命令;以及
(c)针对目录的命令。
12.如权利要求1所述的方法,其特征在于,向所述反病毒软件应用程序提供对与所述请求相关联的文件的访问包括:
(a)创建文件映射部分对象;以及
(b)使所述文件映射部分对象可被服务应用程序访问;以及
(c)基于可被所述反病毒软件应用程序访问的文件映射部分对象,创建所述文件的视图。
13.如权利要求12所述的方法,其特征在于,所述文件的视图每次可被一个反病毒软件应用程序访问。
14.如权利要求12所述的方法,其特征在于,所述服务应用程序调度请求以便由所述反病毒软件应用程序访问所述文件。
15.如权利要求12所述的方法,其特征在于,使所述文件映射部分对象可被服务应用程序访问包括将所述文件映射部分对象***到与所述服务应用程序相关联的对象表中。
16.如权利要求1所述的方法,其特征在于,所述反病毒软件应用程序访问与所述请求相关联的文件而无需实现内核模式过滤器。
17.如权利要求1所述的方法,其特征在于,所述反病毒软件应用程序访问与所述请求相关联的文件而无需创建文件句柄。
18.如权利要求1所述的方法,其特征在于,使所述反病毒软件应用程序分析与所述请求相关联的文件以便确定所述文件是否包含恶意软件包括:
(a)创建与在用户模式中执行的所述反病毒软件应用程序通信的服务应用程序;以及
(b)允许所述反病毒软件应用程序向所述服务应用程序注册以及创建扫描概况。
19.如权利要求18所述的方法,其特征在于,所述扫描概况定义所述反病毒软件应用程序何时会访问所述文件。
20.如权利要求18所述的方法,其特征在于,所述扫描概况定义所述反病毒软件应用程序何时会为所述计算设备去除感染。
21.如权利要求1所述的方法,其特征在于,所述文件是否包含恶意软件的确定是在分析所述文件的所有反病毒软件应用程序都标识出恶意软件的签名特征时作出的。
22.如权利要求1所述的方法,其特征在于,所述文件是否包含恶意软件的确定是在分析所述文件的大部分反病毒软件应用程序标识出恶意软件的签名特征时作出的。
23.如权利要求1所述的方法,其特征在于,所述文件是否包含恶意软件的确定是通过计算由所述反病毒软件应用程序生成的结果组的加权值并确定所述加权值是否高于预定的阈值而作出的。
24.一种用于聚集反病毒软件应用程序的知识库以防止恶意软件的执行或传播的***,所述***包含:
(a)一程序模块,它能够满足输入或输出请求;
(b)一内核模式服务应用程序,它用于在所述反病毒软件应用程序检测到恶意软件时防止满足所述请求;以及
(c)一用户模式服务应用程序,它用于在所述反病毒软件应用程序之间调度扫描。
25.如权利要求24所述的***,其特征在于,还包括一数据映射模块,它向所述反病毒软件应用程序提供对与所述请求相关联的文件的访问。
26.如权利要求25所述的***,其特征在于,所述数据映射模块每次允许一个反病毒软件应用程序访问所述文件。
27.如权利要求24所述的***,其特征在于,所述内核模式服务应用程序与所述用户模式服务应用程序通信以截取所述请求,并使所述反病毒软件应用程序分析所述文件并确定所述文件是否含有恶意软件。
28.如权利要求27所述的***,其特征在于,还包括一扫描高速缓存,它能够跟踪由所述反病毒软件应用程序分析的文件的状态。
29.如权利要求24所述的***,其特征在于,所述反病毒软件应用程序向所述用户模式服务应用程序注册,并定义使所述反病毒软件应用程序分析所述文件的请求。
30.一种在包含卷和将文件索引值与变量相关联的数据库的计算设备中的计算机实现方法,用于响应于接收文件状态被标识的通知跟踪所述文件的状态,所述方法包括:
(a)确定所述文件的文件索引值是否包含在所述数据库中;
(b)如果所述文件的文件索引值没有包含在所述数据库中:
(i)获取所述文件的文件索引值;
(ii)将所述文件索引值***到所述数据库中;以及
(c)设置与所述文件索引值相关联的变量的值以表示所述文件的状态。
31.如权利要求30所述的方法,其特征在于,所述变量可以表示以下三个状态之一:
(a)受到恶意软件感染;
(b)没有受到恶意软件感染;以及
(c)关于是否受到恶意软件感染未知。
32.如权利要求31所述的方法,其特征在于,还包括如果所述文件的状态关于是否被恶意软件感染是未知的,则使所述反病毒软件应用程序分析所述文件并确定所述文件是否包含恶意软件。
33.如权利要求32所述的方法,其特征在于,还包括:
(a)如果所述反病毒软件应用程序确定所述文件含有恶意软件,则将所述数据库中与所述文件索引值相关联的变量的值设置为表示受到恶意软件感染的值;以及
(b)相反,如果所述反病毒软件应用程序确定所述文件不含有恶意软件,则将所述数据库中与所述文件索引值相关联的变量的值设置为表示没有受到恶意软件感染的值。
34.如权利要求30所述的方法,其特征在于,获取所述文件的文件索引值包含查询跟踪存储在所述卷上的文件的属性的数据结构。
35.如权利要求30所述的方法,其特征在于,将所述文件索引值***到所述数据库中包括将所述数据库中的条目复制到被分配了附加存储空间的较大数据库中。
36.如权利要求35所述的方法,其特征在于,所述分配给较大数据库的附加存储空间是分配给所述数据库的存储空间的一个百分比。
37.如权利要求30所述的方法,其特征在于,所述数据库包含与已删除的文件相关联的文件索引值,并且其中,响应于截取致使创建新文件的命令,与已删除文件相关联的变量被改变为表示没有受到恶意软件感染的值。
38.一种具有计算机可执行指令的计算机可读介质,当在包括卷和将文件索引值与变量相关联的数据库的计算设备中执行所述计算机可执行指令时,实现一种向用户模式应用程序提供对所述文件中的数据的访问的方法,包含:
(a)确定所述文件的文件索引值是否包含在所述数据库中;
(b)如果所述文件的文件索引值没有包含在所述数据库中:
(i)获取所述文件的文件索引值;
(ii)将所述文件索引值***到所述数据库中;以及
(c)设置与所述文件索引值相关联的变量的值以表示所述文件的状态。
39.如权利要求38所述的计算机可读介质,其特征在于,所述变量可以表示以下三个状态之一:
(a)受到恶意软件感染;
(b)没有受到恶意软件感染;以及
(c)关于是否受到恶意软件感染未知。
40.如权利要求38所述的计算机可读介质,其特征在于,还包括如果所述文件的状态关于是否被恶意软件感染是未知的,则使所述反病毒软件应用程序分析所述文件并确定所述文件是否包含恶意软件。
41.如权利要求40所述的计算机可读介质,其特征在于,还包括:
(a)如果所述反病毒软件应用程序确定所述文件含有恶意软件,则将所述数据库中与所述文件索引值相关联的变量的值设置为表示受到恶意软件感染的值;以及
(b)相反,如果所述反病毒软件应用程序确定所述文件不含有恶意软件,则将所述数据库中与所述文件索引值相关联的变量的值设置为表示没有受到恶意软件感染的值。
42.如权利要求38所述的计算机可读介质,其特征在于,获取所述文件的文件索引值包含查询跟踪存储在所述卷上的文件的属性的数据结构。
43.如权利要求38所述的计算机可读介质,其特征在于,将所述文件索引值***到所述数据库中包括将所述数据库中的条目复制到被分配了附加存储空间的较大数据库中。
44.如权利要求38所述的计算机可读介质,其特征在于,所述分配给较大数据库的附加存储空间是分配给所述数据库的存储空间的一个百分比。
45.如权利要求38所述的计算机可读介质,其特征在于,所述数据库包含与已删除的文件相关联的文件索引值,并且其中,响应于截取致使创建新文件的命令,与已删除文件相关联的变量被改变为表示没有受到恶意软件感染的值。
46.一种在包括用户模式应用程序、内核模式应用程序和文件的计算设备中的计算机实现方法,用于向所述用户模式应用程序提供对所述文件中的数据的访问,所述方法包括:
(a)为所述用户模式应用程序创建接口;
(b)使所述内核模式应用程序创建文件映射部分对象;
(c)向所述接口提供访问所述文件映射部分对象所需的信息;以及
(d)创建所述文件的视图。
47.如权利要求46所述的方法,其特征在于,还包括响应于请求,发送文件数据给所述用户模式应用程序,其中,所述请求是作为应用程序接口调用作出的。
48.如权利要求47所述的方法,其特征在于,所述用户模式应用程序获取对文件数据的访问而没有数据冲突。
49.如权利要求46所述的方法,其特征在于,所述用户模式应用程序是反病毒软件应用程序。
50.如权利要求49所述的方法,其特征在于,所述接口允许所述反病毒软件应用程序创建扫描概况。
51.如权利要求15所述的方法,其特征在于,所述扫描概况定义当所述反病毒软件应用程序将读出所述文件中的数据时的情况。
52.如权利要求50所述的方法,其特征在于,所述扫描概况定义当所述反病毒软件应用程序为所述计算设备去除恶意软件感染时的情况。
53.如权利要求49所述的方法,其特征在于,所述反病毒软件应用程序将所述文件中的数据与恶意软件的签名特征进行比较。
54.如权利要求46所述的方法,其特征在于,使所述内核模式应用程序创建文件映射部分对象包括向操作***作出应用程序接口调用。
55.如权利要求54所述的方法,其特征在于,向所述接口提供访问所述文件映射部分对象所需的信息包括将所述部分对象***到与所述接口相关联的对象表中。
56.如权利要求46所述的方法,其特征在于,创建所述文件的视图包括删除对所述接口可用的存储空间中的当前视图。
57.一种具有计算机可执行指令的计算机可读介质,当在包括用户模式应用程序、内核模式应用程序和文件的计算设备中执行所述计算机可执行指令时,实现一种向所述用户模式应用程序提供对所述文件中的数据的访问的方法,包括:
(a)为所述用户模式应用程序创建接口;
(b)使所述内核模式应用程序创建文件映射部分对象;
(c)向所述接口提供访问所述文件映射部分对象所需的信息;以及
(d)创建所述文件的视图。
58.如权利要求57所述的计算机可读介质,其特征在于,还包括响应于请求发送文件数据给所述用户模式应用程序,其中,所述请求是作为应用程序接口调用作出的。
59.如权利要求58所述的计算机可读介质,其特征在于,当作出请求时,向所述用户模式应用程序提供对文件数据的独占访问。
60.如权利要求57所述的计算机可读介质,其特征在于,所述用户模式应用程序是反病毒软件应用程序。
61.如权利要求60所述的计算机可读介质,其特征在于,所述接口允许所述反病毒软件应用程序创建扫描概况。
62.如权利要求61所述的计算机可读介质,其特征在于,所述扫描概况定义当所述反病毒软件应用程序将读出所述文件中的数据时的情况。
63.如权利要求61所述的计算机可读介质,其特征在于,所述扫描概况定义当所述反病毒软件应用程序为所述计算设备去除恶意软件感染时的情况。
64.如权利要求60所述的计算机可读介质,其特征在于,所述反病毒软件应用程序将所述文件中的数据与恶意软件的签名特征进行比较。
65.如权利要求57所述的计算机可读介质,其特征在于,使所述内核模式应用程序创建文件映射部分对象包括向操作***作出应用程序接口调用。
66.如权利要求65所述的计算机可读介质,其特征在于,向所述接口提供访问所述文件映射部分对象所需的信息包括将所述部分对象***到与所述接口相关联的对象表中。
67.如权利要求57所述的计算机可读介质,其特征在于,创建所述文件的视图包括删除对所述接口可用的存储空间中的当前视图。
CN200510108474.9A 2004-11-08 2005-09-30 聚集反病毒软件应用程序的知识库的***和方法 Expired - Fee Related CN1773417B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US10/984,611 2004-11-08
US10/984,207 US7478237B2 (en) 2004-11-08 2004-11-08 System and method of allowing user mode applications with access to file data
US10/984,611 US7765410B2 (en) 2004-11-08 2004-11-08 System and method of aggregating the knowledge base of antivirus software applications
US10/984,207 2004-11-08
US10/984,615 US7765400B2 (en) 2004-11-08 2004-11-08 Aggregation of the knowledge base of antivirus software
US10/984,615 2004-11-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2010101292668A Division CN101894225B (zh) 2004-11-08 2005-09-30 聚集反病毒软件应用程序的知识库的***和方法

Publications (2)

Publication Number Publication Date
CN1773417A true CN1773417A (zh) 2006-05-17
CN1773417B CN1773417B (zh) 2010-08-25

Family

ID=36317719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510108474.9A Expired - Fee Related CN1773417B (zh) 2004-11-08 2005-09-30 聚集反病毒软件应用程序的知识库的***和方法

Country Status (2)

Country Link
US (1) US7478237B2 (zh)
CN (1) CN1773417B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012992A (zh) * 2010-11-19 2011-04-13 奇智软件(北京)有限公司 一种实时防护文件的监控方法及装置
CN102867148A (zh) * 2011-07-08 2013-01-09 北京金山安全软件有限公司 一种电子设备的安全防护方法及装置
CN106372509A (zh) * 2016-09-30 2017-02-01 北京奇虎科技有限公司 一种查杀未知可疑应用程序的方法及装置
CN110826065A (zh) * 2019-10-30 2020-02-21 亚信科技(成都)有限公司 一种扫描方法、装置及***

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917955B1 (en) * 2005-01-14 2011-03-29 Mcafee, Inc. System, method and computer program product for context-driven behavioral heuristics
US20070174916A1 (en) * 2005-10-28 2007-07-26 Ching Peter N Method and apparatus for secure data transfer
US8171552B1 (en) * 2006-02-14 2012-05-01 Trend Micro, Inc. Simultaneous execution of multiple anti-virus programs
US7581141B2 (en) * 2006-03-01 2009-08-25 Sun Microsystems, Inc. Kernel module compatibility validation
US20070226800A1 (en) * 2006-03-22 2007-09-27 Tony Nichols Method and system for denying pestware direct drive access
US7975298B1 (en) * 2006-03-29 2011-07-05 Mcafee, Inc. System, method and computer program product for remote rootkit detection
US7730538B2 (en) * 2006-06-02 2010-06-01 Microsoft Corporation Combining virus checking and replication filtration
US20080028466A1 (en) * 2006-07-26 2008-01-31 Michael Burtscher System and method for retrieving information from a storage medium
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US8341733B2 (en) * 2007-06-20 2012-12-25 International Business Machines Corporation Creating secured file views in a software partition
US9118706B2 (en) * 2007-06-29 2015-08-25 Verizon Patent And Licensing Inc. Using imported data from security tools
US8107878B2 (en) * 2007-11-07 2012-01-31 Motorola Mobility, Inc. Methods and apparatus for user-selectable programmable housing skin sensors for user mode optimization and control
US8397295B1 (en) * 2007-12-20 2013-03-12 Symantec Corporation Method and apparatus for detecting a rootkit
US9596250B2 (en) * 2009-04-22 2017-03-14 Trusted Knight Corporation System and method for protecting against point of sale malware using memory scraping
US8695094B2 (en) * 2008-06-24 2014-04-08 International Business Machines Corporation Detecting secondary infections in virus scanning
US8621625B1 (en) * 2008-12-23 2013-12-31 Symantec Corporation Methods and systems for detecting infected files
US11489857B2 (en) 2009-04-21 2022-11-01 Webroot Inc. System and method for developing a risk profile for an internet resource
US8621628B2 (en) * 2010-02-25 2013-12-31 Microsoft Corporation Protecting user mode processes from improper tampering or termination
US8918874B2 (en) * 2010-05-25 2014-12-23 F-Secure Corporation Malware scanning
US8776219B2 (en) * 2010-08-27 2014-07-08 Microsoft Corporation Application selection using current detection intelligence
US20120102569A1 (en) * 2010-10-21 2012-04-26 F-Secure Corporation Computer system analysis method and apparatus
CN102467623B (zh) * 2010-11-08 2014-03-26 腾讯科技(深圳)有限公司 一种监控文件执行的方法及装置
US8099596B1 (en) * 2011-06-30 2012-01-17 Kaspersky Lab Zao System and method for malware protection using virtualization
US8677346B1 (en) 2011-09-27 2014-03-18 Symantec Corporation Providing installer package information to a user
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US9088606B2 (en) * 2012-07-05 2015-07-21 Tenable Network Security, Inc. System and method for strategic anti-malware monitoring
US10069854B2 (en) * 2012-11-17 2018-09-04 The Trustees Of Columbia University In The City Of New York Methods, systems and media for evaluating layered computer security products
US10409980B2 (en) 2012-12-27 2019-09-10 Crowdstrike, Inc. Real-time representation of security-relevant system state
US9740886B2 (en) 2013-03-15 2017-08-22 Sony Interactive Entertainment Inc. Enhanced security for hardware decoder accelerator
US20150222646A1 (en) * 2014-01-31 2015-08-06 Crowdstrike, Inc. Tagging Security-Relevant System Objects
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US9798882B2 (en) 2014-06-06 2017-10-24 Crowdstrike, Inc. Real-time model of states of monitored devices
US9940336B2 (en) * 2014-10-24 2018-04-10 Splunk Inc. File monitoring
US9690928B2 (en) * 2014-10-25 2017-06-27 Mcafee, Inc. Computing platform security methods and apparatus
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US10021120B1 (en) * 2015-11-09 2018-07-10 8X8, Inc. Delayed replication for protection of replicated databases
US11188651B2 (en) * 2016-03-07 2021-11-30 Crowdstrike, Inc. Hypervisor-based interception of memory accesses
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode
US10740459B2 (en) 2017-12-28 2020-08-11 Crowdstrike, Inc. Kernel- and user-level cooperative security processing
US10938701B2 (en) * 2018-07-19 2021-03-02 EMC IP Holding Company LLC Efficient heartbeat with remote servers by NAS cluster nodes
CN109828808B (zh) * 2018-12-24 2023-01-31 珠海海鸟科技有限公司 一种防拦截方法及相关设备
US11412005B2 (en) * 2019-08-29 2022-08-09 Juniper Networks, Inc. Lawfully intercepting traffic for analysis based on an application identifier or a uniform resource locator (URL) associated with the traffic
CN112364395A (zh) * 2020-11-11 2021-02-12 中国信息安全测评中心 一种固态硬盘的安全防护方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7150018B2 (en) * 2000-02-16 2006-12-12 Microsoft Corporation Method and system for deterministic ordering of software modules
CA2424352A1 (en) * 2000-05-28 2001-12-06 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US7216366B1 (en) * 2000-11-17 2007-05-08 Emc Corporation Storage based apparatus for antivirus
US7043758B2 (en) * 2001-06-15 2006-05-09 Mcafee, Inc. Scanning computer files for specified content
US8024783B2 (en) * 2004-01-22 2011-09-20 Ryan Riley Modular agent architecture

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012992A (zh) * 2010-11-19 2011-04-13 奇智软件(北京)有限公司 一种实时防护文件的监控方法及装置
CN102012992B (zh) * 2010-11-19 2012-11-21 奇智软件(北京)有限公司 一种实时防护文件的监控方法及装置
CN102867148A (zh) * 2011-07-08 2013-01-09 北京金山安全软件有限公司 一种电子设备的安全防护方法及装置
CN102867148B (zh) * 2011-07-08 2015-03-25 北京金山安全软件有限公司 一种电子设备的安全防护方法及装置
CN106372509A (zh) * 2016-09-30 2017-02-01 北京奇虎科技有限公司 一种查杀未知可疑应用程序的方法及装置
CN106372509B (zh) * 2016-09-30 2019-08-23 北京奇虎科技有限公司 一种查杀未知可疑应用程序的方法及装置
CN110826065A (zh) * 2019-10-30 2020-02-21 亚信科技(成都)有限公司 一种扫描方法、装置及***

Also Published As

Publication number Publication date
CN1773417B (zh) 2010-08-25
US20060101263A1 (en) 2006-05-11
US7478237B2 (en) 2009-01-13

Similar Documents

Publication Publication Date Title
CN1773417B (zh) 聚集反病毒软件应用程序的知识库的***和方法
CN101894225B (zh) 聚集反病毒软件应用程序的知识库的***和方法
JP6224173B2 (ja) マルウェアに対処するための方法及び装置
RU2444056C1 (ru) Система и способ ускорения решения проблем за счет накопления статистической информации
US7765410B2 (en) System and method of aggregating the knowledge base of antivirus software applications
US7765400B2 (en) Aggregation of the knowledge base of antivirus software
US9396333B1 (en) Thin client for computer security applications
US6973577B1 (en) System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
EP2452287B1 (en) Anti-virus scanning
US8161557B2 (en) System and method of caching decisions on when to scan for malware
US7660797B2 (en) Scanning data in an access restricted file for malware
RU2417417C2 (ru) Идентификация в реальном времени модели ресурса и категоризация ресурса для содействия в защите компьютерной сети
US8578374B2 (en) System and method for managing virtual machines
EP2939173B1 (en) Real-time representation of security-relevant system state
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
US10986117B1 (en) Systems and methods for providing an integrated cyber threat defense exchange platform
US20100077481A1 (en) Collecting and analyzing malware data
US7565695B2 (en) System and method for directly accessing data from a data storage medium
US20070256133A1 (en) Blocking processes from executing based on votes
US7346611B2 (en) System and method for accessing data from a data storage medium
RU2747514C2 (ru) Система и способ категоризации приложения на вычислительном устройстве
RU2739833C1 (ru) Система и способ снижения нагрузки на сервис обнаружения вредоносных приложений
US20070124267A1 (en) System and method for managing access to storage media
US7739278B1 (en) Source independent file attribute tracking
US20230036599A1 (en) System context database management

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100825

Termination date: 20190930