关于项存储的反病毒的制作方法

文档序号:6628265阅读:169来源:国知局
专利名称:关于项存储的反病毒的制作方法
技术领域
本发明一般涉及反病毒保护,尤其涉及促进项存储环境中一个或多个反病毒插件的集成的系统和方法,其中可根据链接和属性而描述项。
背景技术
计算机技术的发展(如微处理器速度、存储器容量、数据传输带宽、软件功能等等)一般来说会带动各种行业中计算机应用的进步。即使是通常被配置为服务器阵列的更强大的服务器系统也通常被提供到源自外部源(像万维网)的服务请求。随着本地内联网变得日趋完善,从而需要保养更大网络负载和相关应用程序,因此内部系统需求也随之增加。这样,大量商业数据被保存在管理系统下的数据存储中。
此外,可用电子数据量持续增长,而且将这些数据以可管理的方式保存在数据存储中也变得越发重要了,这就促进用户友好和快速的数据搜索和检索。通常,典型的数据存储可指具有结构化数据的信息的有组织的集合,以便如计算机程序可快速搜索和选择所需数据块。
数据存储内的数据可通过一个或多个表格来组织,其中各个表格包含一组记录,且记录可包含一组字段。记录一般被索引成表格内的行,而记录字段一般被索引成列,这样以使索引的行/列对可引用表格中的特定数据。通常,这样的数据存储可被视作保存为其中具有信息“字段”的“记录”的相关信息的有组织的集合。例如,财务数据存储可具有诸如应收款、应付款、客户信息等这样的财务交易的记录。在实际物理数据存储本身(如实际保存在存储设备中的数据)和系统用户之间,管理或操作系统通常可提供软件垫或层。这样,数据存储可屏蔽用户无需关心底层硬件级细节。一般而言,所有来自用户的访问数据的请求由系统管理器处理。例如,信息可被附加到数据文件,或从数据文件中移除,信息可在这样的文件中被检索或被更新,等等,所有这些都不需要用户知道底层系统实现。
与此同时,传统的数据存储和操作系统通常要依赖多个不兼容的数据存储,这包括;注册表、事件日志消息、联系人信息以及电子邮件,或者简单地使用多个平面数据文件,诸如图像和音频。例如,在传统的数据存储中,被保存的内容通常被用作单独实体,尽管它们在某种程度上也互相关联。因此,当存在大量项时,用灵活且有效的机制基于项的属性和内容来搜索特定项就变得重要了。例如,可能需要技术工人能够搜索独立于格式的内容——不管特定内容是何种文件类型,也不管是何应用程序创建的。
给定基于相关对象工作的新文件系统,同时也可能出现新的难题。例如,病毒可能以新的方式来将其自身保存在这样的文件系统中。通常,传统的病毒检查被限制在对一般保存在执行反病毒程序的相同计算机上的文件执行病毒检查。因此,虽然特定的实体,包括终端用户和网站,在某种程度上能够执行本地保存在其计算机上文件的病毒检查,但那些实体通常不能确定与其它实体控制下的文件相关联的病毒风险,其中,恶意代码可使用存放在存储中的已编码串,该已编码串将在客户空间中被解码并通过电子邮件传播。这样,对传统文件系统而言,病毒可驻留在一个或多个文件流中,尽管这仅是一个文件。
另一个方面,在关系型项存储中,内容可被持久保存在项中,其中,项可包括多个属性,每个属性与各个其它项相关联。这样,保存到项存储中和从存储中读回可包括可聚集在众多项的许多属性上的结果。这可创建不同的范例;诸如创建具有许多属性的更新路径或读取路径。病毒可使用这样的布置而“逐段地(piecemeal)”隐藏其自身,例如,病毒可将已加密主体“X”保存在对象属性中,并通过查询存储器并在客户机上对已加密的属性进行解码来传播,诸如可显现对反病毒程序无害的图像的元数据。
通过将病毒主体分布在多个属性和多个项上,项存储可变成病毒存储。换言之,病毒能以片断的形式被保存,且用聚集这些片断并导致病毒的执行的单纯查询来将其自身写到多个项的属性中。因此,介入更新或读取路径的传统过滤器模型对这样的关系型项存储布置而言一般不再适当。
因此,有必要克服与涉及项存储操作的传统系统和方法项关联的上述缺点。

发明内容
下面给出了本发明简化的概要,以提供本发明一个或多个方面的基本理解。本概要不是本发明的详尽评论。其不是要标识本发明的关键或决定性元素,也不是要描述本发明的范围。其唯一目的是以简化形式提出本发明的某些概念,作为下文要给出的更详细说明的序言。
本发明提供了一种系统和方法,通过使用一种与项存储相关联的元数据组件和扫描组件来将一个或多个反病毒(AV)插件的期望和语义构件到关系型项存储中。该元数据组件可提供项存储中的规则集和/或者逻辑,用于指引反病毒插件如,何时扫描内容、如何扫描、何时无效,等等。元数据组件也可提供一分配给项存储的签名值,它可表示扫描数据的时间,它具有在关系型项存储中指定的空间(如指定的列),以标识这一扫描的结果(如干净结果、怀疑结果、感染结果、无需扫描,等等)。可提供应用程序接口(API)以在需要时调用插件,来更新签名并设置新的签名值。另外,各种扫描行为可被引入,以对向用户提供项作为查询结果的速度/准确度,与这些结果没有被完全扫描的风险作出平衡。例如,用户可能愿意牺牲准确度(响应于查询接受不完整的结果),来获得使所有这样的内容对全部扫描的结果起作用的优点。
此外,项存储中的其它规则集可确立项之间的链接,其中,规则集可进一步允许链接被定义并提供分析数据结构的必要信息,以确定文本到元素的链接。可使用一种模式来提供必要的规则集并提供必要信息。例如,可提供文档对象模型来表示相关实体的组件,用于存储器内表示(in-memory representations)。另外,扫描组件能以同步和/或异步模式来提供数据存储中项的排队,以供AV插件扫描和清洁。
依照本发明的一个方面,为提供向存储(及其AV插件)与传统文件(如数据流文件和应用程序)的向后兼容性,可提供在多通用命名约定提供器(MUP)上堆栈的过滤器驱动程序布置——(统一命名约定(UNC)可为提供定位文件的机器无关手段的文件提供命名约定。)过滤器组件在MUP上的这样的直接分层提供了一种文件系统组件,它服务对UNC名称空间的I/O请求。这样,对于可用于项存储的内容的相同可见性就可被提供给AV插件。
在本发明的相关方面中,可提供一组接口作为AV插件与关系型项存储引擎的交互的一部分。这样的接口例如能用于例程的是一系列展位程序和/或占位符的形式,例程可由销售商开发,以将提供的AV插件与关系型项存储链接。
为达到前述和相关目的,本发明可包含以下完整描述的特征。下述描述和附图详细阐明了本发明的某些说明性方面。然而,这些方面表示但仅表示可使用本发明原理的少数不同方法。本发明的其它方面、优点和新颖特征可通过下面本发明的详细描述并结合附图考虑,来变得显而易见。


图1依照本发明的一个方面,示出了使用反病毒(AV)插件的关系型项存储的框图。
图2依照本发明的一个方面,示出了扫描组件的框图。
图3依照本发明的一个方面,示出了用于后台扫描的方法。
图4a-4e依照本发明的示例性方面,描述了创建并扫描行的各个阶段。
图5依照本发明的一个方面,示出了用于特定系统体系结构的过滤器的分层布置。
图6依照本发明的一个方面,示出了用于将文档转换为驻留在项存储的存储器中的数据结构的系统的简要示例性描述。
图7依照本发明的一个方面,示出了项存储中数据的后台扫描队列的循环。
图8依照本发明的一个方面,示出了项存储中数据的后台清洁队列。
图9是示出可使用本发明的各方面的合适计算环境的示意框图。
图10依照本发明的一个方面,示出了可使用反病毒扫描方法的客户机-服务器系统。
具体实施例方式
现在参考附图来描述本发明,其中,相同的参考标号都用于指代相同的元素。在下面的描述中,为解释起见,阐明了许多特定细节,以提供对本发明的彻底理解。然而,明显的是,没有这样的特定细节也可实现本发明。在其它实例中,以框图的形式示出了公知的结构和设备,以便于描述本发明。
如在本申请中所使用的,术语“组件”、“处理程序”、“模型”、“系统”等等是指计算机相关的实体,或者为硬件、硬件和软件的组合、软件、或者执行中软件。例如,组件可以是,但不局限于,在处理器上运行的进程、处理器、对象、可执行代码、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用程序和服务器可以是组件。一个或多个组件可驻留在进程和/或执行线程中,且组件可被定位在一台计算机上和/或分布在两台或多台计算机之间。而且,这些组件可从其上储存了各种数据结构的各种计算机可读介质执行。组件可通过本地和/或远程进程来通信,诸如依照具有一个或多个数据包的信号(如来自与本地系统、分布式系统中的另一个组件交互,和/或通过诸如因特网等网络经由信号与其它系统交互的一个组件的数据)。
首先参考图1,依照本发明的一个方面,示出了与反病毒(AV)插件130交互的关系型项存储100的框图。通常,数据项存储100可以是关系型数据库,其采用三个特征,即项、链接和属性。项可表示诸如客户机等用户希望表示为项的“事物”,并可由项ID唯一地标识。链接提供两个项之间命名的有向关系。属性将有标签的值与项相关联。项是根据链接和属性来描述的。链接表示项关联,而属性表示关于项的其它信息。
此外,在这样的关系型数据存储环境中,数据可保存为一个或多个表格中的行。数据存储可用事务T1到TN(N为整数)的形式由一个或多个查询访问。这样的事务例如可包括数据项存储100中的数据的行级操作。事务112、114、116可基于由数据存储授权的有差别的访问级别(如只读访问、读/写访问等等)来访问数据存储,对该数据存储而言,数据是非常重要的。
本发明的项存储100可包括元数据组件110以及扫描组件120。元数据组件110可提供数据存储110中的规则集和/或逻辑,以指引AV插件130的操作。元数据组件110可提供AV插件130的语义,诸如何时扫描、如何扫描、何时无效等等。
此外,元数据组件110可提供当在数据存储100上执行病毒扫描时已知的当前病毒状态的可接受阻挡级别(bar level)的指定。例如,可接受阻挡级别可由时间标记来指定,其中,存储器可被分配一全局AV签名时间标记,它具有分配给“VIRUSSIGNATURETS”的值。
用于启动应用程序接口(API)以调用插件来更新签名并设置新的签名值的示例性数据定义语言(DDL)可包括GetNewVirusSignature()GetCurrentVirusSignature()依照本发明的一个方面,与数据存储100的表格相关联的行可包括两列,用于定义两种属性即“最后一次病毒签名扫描(Last Virus Signature Scan)”和“扫描状态(Scan State)”,这将在下文中更详细的说明。简言之,“最后一次病毒签名扫描”表示对在行上完成最后一次病毒扫描(AV)的每一行保存的时间标记,而“扫描状态”表示行内容是“干净”、“可疑”还是或者“被感染”。当行被创建时,系统自动将“最后一次病毒签名扫描”的值设置为零,且行内容的状态为“可疑”。可提供应用程序接口(API)以调用反病毒插件130,它用于如所需地扫描数据存储100,以及更新签名和设置新的签名值。因此,元数据组件可提供与项存储100相关联的签名值,它可表示数据扫描时间,并在关系型存储器指定空间以标识这一扫描的结果(如,干净结果、可疑结果、被感染结果)。应当认识到的是,虽然使用反病毒检查可能是系统默认的,但是当用户选择不扫描指定项时,也可指定“不必检查”的元数据组件。
项存储100还可包括扫描组件120,它可以可靠方式使用插件130。扫描组件能以同步和/或异步模式提供项存储中的项的排队(如最近更新、变化等等),以供由第三方销售商提供的AV插件程序扫描和清洁。
现在参考图2,框图示出了扫描组件120,以进一步包括异步排队组件210(后台扫描),以及同步排队组件220(访问时扫描)(On-access Scan)。一般而言,AV插件在进入项存储时不能检测到新的逐段病毒。这样,可允许AV插件能够分析项存储200的全部内容。因此,AV插件不被约束在项存储200的特定域中,即使用户可被连接到该特定域。另外,项存储200可进一步使用调度组件230,它对项存储内容进行排队,以供AV插件程序扫描。应当认识到的是,调度组件230也可以是扫描组件120的一部分,即使图2将其示出为单独组件。这样的组件可对内容进行排队或出队、调用AV插件、以及基于该结果来更新元数据组件。
通常,项存储200可通过自动将新的或已更新的项入队用于病毒扫描或病毒清洁,来使用异步排队组件210用于“后台扫描”队列。队列中的项可由项存储200例如通过调度组件230来出队,且可同步地调用适当的AV接口。
用于由AV插件处理的未扫描项的时间表可在“ItemHasVirus(具有病毒的项)”API中提供。这样的调用可被同步地返回,且项存储200可基于该调用的布尔结果来更新项存储中相关联的AV元数据组件。例如,若接口返回“TRUE(真)”值,则对象可被指定为包含病毒,且行的AV状态被更新到lastVirusSignatureScanTS=@@VIRUSSIGNATURETS AND scanState=”infected”。
同样,若接口返回“FALSE(假)”值,则对象被发现是没有病毒的。因此,行的AV状态可被更新到lastVirusSignatureScanTS=@@VIRUSSIGNATURETSAND scanState=”clean”。
现在参考存储内的同步排队组件220(访问时扫描),可使用这样的组件,使得无论何时在项存储上执行读取,一般确保结果通常仅包含具有“clean(干净)”scanState(扫描状态)的项。这样,读取路径上的同步AV通常可保证客户机可接收最新的结果集,除非实际病毒在处理队列时被检测到。尽管如此,可存在这样的情形,即可能对这样的确保支付高额价格。例如,第一用户将多幅新照片存放在项域中,其中第二用户搜索Word文档。现在,当查询对第一用户的照片存放的扫描起副作用时,可要求第二用户等待。
与此同时,每次当执行查询时,若执行查询的项范围不是完全的AV扫描,则结果可能是不完全的。因此,本发明引入“强迫”扫描,作为同步排队组件的一部分,基于设置“会话变量”的,确定应用程序应当运转的方式。应用程序可依赖于最有利的方法并接受事务结果——即使这是不完整的,这是因为AV插件还没有在项存储200的所有组件上调用。或者,若项存储200发现可潜在地对查询结果起作用的某些项还没有被扫描到,则对扫描起侧面影响,以将这样内容的包括到事务结果中。
这样,为控制项是否应被内嵌检查,引入一种新的会话级设置选项@@VIRUSCHECKONREAD。当该字段被分配值“0”时,则所有的读查询通常仅考虑其scanState=“clean”的行。同样的,当被分配值“1”时,scanState!=“clean”的行被强制在查询执行期间扫描。
然后,谓词可被改变以说明WHERE(lastVirusSignatureScanTS=@@VIRUSSIGNATURETS ANDscanSate=”clean”)OR(@@VIRUSCHECKONREAD=1ANDlastSignatureScan!=@@VIRUS SIGNATURETS ANDItemHasVirus(ItemId)=0))类似的谓词可在存储中的其它持久保存的数据上被评估,如扩展(Extension)和链接(Link)。在这种情况下,函数ExtensionHasVirus()或LinkHasVirus()将被调用。
在本发明的另一方面中,调度组件230可调度已感染项,以供AV插件CleanItem API处理。该调用可同步地返回,并可基于该调用的布尔结果在项存储200中更新AV元数据。例如,若接口返回“TRUE”值,则对象已被清洁了。然后,行的AV状态可被更新到lastVirusSignatureScanTS=@@VIRUSSIGNATURETS,且scanSate的值=“clean”。另一方面,若接口返回FALSE,则对象通常未被清洁,且行的AV状态被更新到lastVirusSignatureScanTS=@@VIRUSSIGNATURETS,且scanState的值=“infected(已感染)”。
图3依照本发明的一个方面,示出后台扫描的方法300。首先,在310处,项存储基于AV插件在项存储内容上的结果来完成元数据组件的更新。接下来在315,存储的存储范围签名被更新,以反映最近的AV插件扫描。接下来,在320处,项存储可将过期的项放回到队列中,供后续AV扫描。另外,最近的更新也可在这样的优先级队列上等待。如前面详细解释的,队列中的项可由项存储出队,且适当的AV接口可在325处被同步调用。然后,方法循环回到步骤310,此时项存储基于AV插件的结果来完成元数据组件的更新。虽然这里用一系列表示各种事件和/或动作的方框来示出并描述示例性方法,但是本发明并不受所示的这些块的顺序限制。例如,依照本发明,除此处所示的顺序之外,某些动作或事件能以不同的次序发生和/或与其它的动作或事件同时发生。另外,并非需要所有示出的方框、事件或动作来实现依照本发明的方法。而且,应当认识到的是,依照本发明的示例性方法和其它方法可与此处示出和描述的方法相关联地,以及与未示出或描述的其它系统和装置相关联地实现。
现在参考图4a-4e,示出了与项存储的表格相关联的行,它包括两列,以定义两种属性,即“最后一次病毒签名扫描”,以及“扫描状态”。一般而言,关系型数据存储的核心操作特征是在表格上执行相联查询的能力。保存在表格中的实体集合可使用设置处理语言(如SQL(结构化查询语言))来访问。该语言将一个或多个表格指定为数据源,并仅输出满足给定条件的行(若有的话)。例如,如上所述,项存储可以是关系型数据库、对象数据库和/或对象关系数据库。对于关系型数据库,一组具有相同结构的实体被称作表格,且每个实体被称作行。该结构的分量被称作列。关系型数据库可包括一个或多个表格。在图4a-4e中提供的示例性表格签名更新可依照本发明的一个方面来经受病毒扫描。应当认识到的是,本发明的数据存储构想传统数据流和关系型对象形式的数据的存在。例如,当查询结果依赖于病毒攻击时,这样表格的内容需要来自病毒攻击。特别地,当恶意代码可利用存放在存储中的已编码串时,该已编码串可在客户机空间中被解码并通过电子邮件传播。例如,病毒可将已加密的主体“X”保存在项属性中,这样以使它可通过查询存储并在客户机上对已加密的属性进行解密,来传播其自身。在执行查询时,本发明的数据存储可使用一种排队机制,用于以同步和/或异步模式对表格中的项进行排队,以供由销售商提供的反病毒插件进行扫描和清洁。之后,关系型项存储引擎可基于查询,尤其是用户上下文信息,而提供对查询信息的响应。
图4a描述了行的创建,其中,系统自动设置lastVirusSignatureScanTS=0且scanState=“suspect(可疑)”。行可保持这样的数值,直到AV插件已经扫描了该行,之后,其将包含扫描的时间标记加上扫描结果,如在图4b中由“干净”状态所示。图4c示出了行的更新,其中项存储自动设置scanState=“suspect”,但是不改变lastVirusSignatureScanTS的值。反病毒插件负责对扫描项、链接或扩展行,并表明或者项是没有病毒的,或者该项被感染。图4d示出干净状态,其中项存储将lastVirusSignatureScanTS设置为@@VIRUSSIGNATURETS的当前值,并将scanState属性设置为“clean”。同样的,图4e示出项被感染的替换情形。这样,项存储将lastVirusSignatureScanTS设置为@@VIRUSSIGNATURETS,scanState属性为“infected(已感染)”,可导致项的“隔离”。因此,这些项需要在其内容可对将来的查询再次可用之前由插件来清洁。
图5依照本发明的一个方面,示出了特定分层布置的框图。通常,本发明的项存储构想传统数据流和关系型对象形式的数据的存在。因此,为提供项存储及其AV插件与传统文件(如数据流文件和应用程序)的向后兼容性,本发明使用一种用于过滤器文件的新体系结构,其中,多统一命名约定提供器(MUP)组件515注册为文件系统,且UNC提供器通常不注册为文件系统。一般而言,可确保所有的UNC I/O通常能通过MUP。因此,如图5所示,诸如AV过滤器等的文件过滤器的堆栈(510、520、530)可将其自身附加到MUP上(如,将层本身加到MUP上)并过滤所有的UNC I/O,这包括项存储中项的文件流I/O。统一命名约定(UNC)可为提供用于定位文件的机器无关装置的文件提供一种命名约定。MUP组件515用作用于UNC名字空间访问的文件系统,其中对项存储可见的目录和文件名的相同名字空间也对AV插件可见。
如所述,内核模式550可用作计算机操作系统的核心程序或核心。这样的操作系统一般负责处理数据和管理输入和输出。内核模式550作为操作系统的一部分,其被首先加载并保持在主存储器中。除负责进程管理、文件管理以及存储器管理等之外,内核组件550通常提供应用程序和驱动程序所需的本质服务或过程。例如,过程可对应于I/O调度、缓冲、假脱机、出错处理等等。此外,应当注意到,此处使用的术语内核模式550服务旨在覆盖可位于内核地址空间中的任何服务、步骤、驱动程序、应用程序或其它组件。
在本发明的相关方面中,可提供一组接口,作为由销售商提供的插件与关系型项存储引擎的交互的一部分。这样的接口例如可以是用于可由销售商开发以将提供的AV插件与关系型项存储链接的一系列占位程序和/或占位符的形式。这样的接口可由销售商实现,用于扫描并清洁项、扩展和链接。例如BOOL ScanItem (ItemId itemId)BOOL ScanExtension(ItemId itemId,ExtensionId extId)BOOL ScanLink (ItemId itemId,LinkId linkId)每个接口可返回一布尔状态值。若项被发现包含病毒(或参与逐段攻击)的话,该值可被设置为“真”,若项没有病毒,则该值被设置为“假”。用于清洁过程的类似示例可包括BOOL CleanItem(ItemId itemId)BOOL CleanExtension (ItemId itemId,ExtensionId extId)BOOL CleanLink(ItemId itemId,LinkId linkId)每个接口可返回一布尔状态值,若存储对象被成功地清洁的话,该值可被设置为“真”,若AV插件不能清洁存储对象的话,该值可被设置为“假”。这样的功能可在对存储对象需要AV扫描操作,,或当对受感染的对象需要AV清洁操作时,由项存储器调用。在两种情况下,使用上述的存储机制如所需地从存储中取出项数据通常是AV销售商的责任。进一步要认识到的是,扫描和清洁方面可组合或在单独的阶段中执行。接口可按需由项存储调用,用于同步或异步扫描和清洁。另外,通常所有的项存储内容是可由AV插件通过使用具有特许连接的标准查询机制来访问的。另外,伪AV插件的安装可例如通过使用经签署的组件来避免。每个接口也可支持“*void”插件上下文,以通过每个API。
图6依照本发明的一个方面示出系统610的简要示例性描述,该系统用于将XML文档612转换成驻留在符合文档对象模型618的项存储中的存储器中的数据结构620。XML文档612由分析器614分析,以将语义元素和属性的列表提供给转换组件616。然后,该语义元素和属性列表可被转换或映射到符合文档对象模型618的项存储的数据结构620。如在XML文档612中所述,该文档包括具有父子链接的多个元素。用XML DOM表示的数据元素可包括一分层结构,“人们(People)”作为顶层节点,第一叶节点或分支-元素“John”具有子结点“爱(Loves)”和“Mary”,且第二叶节点或分支具有节点“Mary”。被选择用来从第二分支中检索或匹配信息的分析器将检索元素“Mary”,而不知道链接“John爱Mary(John Loves Mary)”。然而,本发明的项存储可根据元素或项之间的链接来对表示结构建模,因此,链接“John爱Mary”可容易地与本模型辨别。如可在数据结构620中看到的,分析器可通过跟随“人们”节点和“Mary”节点之间的链接以确定Mary是一个人,并跟随“Mary”节点和“John”节点之间的链接以确定Mary为John所爱,来检索有关“Mary”的信息。因此,本模型根据链接,并另外根据元素(或项)和属性来呈现数据结构,如XML DOM中的情况。
图7依照本发明的一个方面,示出了后台扫描序队列操作的循环。该循环最初在项存储基于AV插件在项存储内容上的结果完成元数据组件的更新时开始。接下来,沿着箭头720顺时针移动,更新项存储范围的签名,以反映最近的AV插件扫描。接着沿着箭头740移动,项存储可将过期的项放回到队列中,供后续的AV扫描。另外,跟随箭头760,最近更新也可在这样的优先级队列上等待。队列中的项可由项存储出队,且可如箭头780所示的同步地调用适当的AV接口。然后扫描循环可如箭头790所示循环返回,这时项存储基于AV插件的结果而完成元数据组件的更新。如先前所解释的,元数据组件也可提供分配给项存储的签名值,它可表示数据扫描时间,并在关系型项存储中指定空间(如,指定列),以标识该扫描的结果(如干净结果、可疑结果、被感染结果、不必要扫描等等)。这用图表795来表示。这样,可提供待决的扫描作为项生命周期的一部分。
反病毒插件负责扫描项、链接或扩展行,以及表明项是没有病毒的,或者项已感染病毒。为清洁已感染的项,如图8中所示,可对已感染的项进行调度,以供AV插件CleanItem API处理。该调用可被同步地返回,且AV元数据可在项存储800中被更新。若调用成功(例如,若接口返回“真”值),则对象可被认为是干净的,并在相关联的行中表明这种情况。
现在参考图9,示出了客户机以及服务器端上的合适计算环境的简要概括描述,其中可实现本发明的各种方面。虽然上文已经在诸如在一台和/或多台计算机上运行的计算机程序等计算机可执行指令的通用上下文中描述了本发明,但是本领域的技术人员会认识到,本发明也可结合其它程序模块而实现。一般而言,程序模块包括例程、程序、组件、数据结构等等,它们执行特定的任务和/或实现特定的抽象数据类型。此外,本领域的技术人员会认识到,本发明的方法可在其它计算机系统配置中实现,这包括单处理器或多处理器计算机系统、小型机、大型机,以及个人计算机、手持式计算设备、基于微处理器或可编程消费者电子设备等等。如先前解释的,本发明的所示方面也可在分布计算环境中实现,在这样的分布计算环境中,任务是由通过通信网络链接的远程处理设备执行的。然而本发明的某些方面(若不是所有)可在独立的计算机上实现。在分布计算环境中,程序模块可位于本地和远程存储器存储设备中。示例包括计算机920,包括处理单元921、系统存储器922,以及将系统存储器在内的各种系统组件耦合到处理单元921的系统总线923。处理单元921可以是可在市场上买到的各种处理器的任一种。双微处理器和其它多处理器体系结构也可用作处理单元921。
系统总线可以是几种类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线,以及使用任何多种可在市场上买到的总线体系结构的局部总线。系统存储器可包括只读存储器(ROM)924和随机存取存储器(RAM)925。基本输入/输出系统(BIOS)包含诸如在启动阶段帮助在计算机920内的元件之间传递信息的基本例程,被保存在ROM 924中。
计算机920还包括硬盘驱动器927、例如读自或写到可移动磁盘929的磁盘驱动器928,以及用于读自或写到CD-ROM盘931或用于读自或写到其它的光介质的光盘驱动器930。硬盘驱动器927、磁盘驱动器928以及光盘驱动器930分别通过硬盘驱动器接口932、磁盘驱动器接口933和光盘驱动器接口934与系统总线923相连。驱动器及其相关联的计算机可读介质为计算机920提供了数据、数据结构、计算机可执行指令等的非易失性存储。尽管上面的计算机可读介质的描述是指硬盘、可移动磁盘和CD,但是本领域的技术人员应当认识到,可由计算机读取的其它类型介质,如磁带、闪存卡、数字视频盘、伯努利盒式磁带等等,也可用于示例性操作环境中,并且任何这样的介质可包含用于执行本发明方法的计算机可执行指令。
许多程序模块可保存在驱动器和RAM 925中,这包括操作系统935,一个或多个应用程序936、其它程序模块939以及程序数据939。所示计算机中的操作系统935实际上可以是任何可在市场上买到的操作系统。
用户可通过键盘940和诸如鼠标942这样的定位设备将命令和信息输入到计算机920中。其它的输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它的输入设备一般通过耦合到系统总线的串行端口接口946与处理单元921相连,但是也可通过其它接口相连,如并行端口、游戏端口或通用串行总线(USB)。监视器949或其它类型的显示设备也可通过诸如视频适配器949这样的接口与系统总线923相连。除监视器之外,计算机通常包括其它的外围输出设备(未示出),如扬声器和打印机。
计算机920可在使用到一个或多个诸如远程计算机949这样的远程计算机的逻辑连接的网络化环境中工作。远程计算机949可以是工作站、服务器计算机、路由器、对等设备或其它普通网络节点,且通常包括相对于计算机920所描述的许多或所有元件,尽管仅在图9中示出了存储器存储设备950。图9中示出的逻辑连接可包括局域网(LAN)951和广域网(WAN)952。这样的网络化环境常见于办公室、企业范围计算机网络、内联网和因特网。
当在LAN网络化环境中使用时,计算机920可通过网络接口或适配器953与局域网951相连。当在WAN网络化环境中使用时,计算机920通常可包括调制解调器954,和/或与LAN上的通信服务器相连,和/或具有用于通过广域网952,如因特网建立通信的其它装置。调制解调器954可为内置或外置的,可通过串行端口接口946与系统总线923相连。在网络化环境中,相对计算机920描述的程序模块或其部分可被保存在远程存储器存储设备中。应当认识到,所示的网络化连接是示例性的,也可使用用于在计算机之间建立通信链路的其它装置。
依照在计算机程序设计领域的技术人员的实践,已经参照由像计算机920这样的计算机所执行的动作和操作的符号表示而描述了本发明,除非另外指明。这样的动作和操作有时候被称为计算机执行的。应当认识到的是,动作和符号地表示的操作包括处理单元921对表示数据比特的电信号的操纵,它促使电信号表示的合成转换或简化,以及存储器系统(包括系统存储器922、硬盘驱动器927、软盘驱动器928,以及CD-ROM 931)中存储位置处的数据比特的维持,从而重新配置或改变了计算机系统的操作,以及其它信号处理。维持这样的数据比特的存储器位置是具有对应于数据比特的特定电、磁或光属性的物理位置。
现在参考图10,依照本发明的一个方面示出了使用AV插件方法的客户机-服务器系统1000。一个或多个客户机1020可以是硬件和/或软件(如线程、进程、计算设备)。系统1000也可包括一个或多个服务器1040。该一个或多个服务器1040也可以是硬件和/或软件(如线程、进程、计算设备)。例如,这样的服务器1040可容纳线程以通过采用本发明来执行转换。客户机1020和服务器1040能以根据本发明发送的数据包的形式在两个或多个计算机进程之间进行通信。客户机/服务器也可共享相同的进程。如图所示,系统1000包括可促进一个或多个客户机1020与一个或多个服务器1040之间的通信的通信框架1080。一个或多个客户机1020可任选地连接到一个或多个可储存对客户机1020本地的信息的客户机数据存储1010。此外,客户机1020可访问并更新位于运行服务器进程的服务器计算机1040中的数据库1060。在本发明的一个方面中,通信框架1080可以是互联网,其客户机进程是web浏览器,且服务器进程是web服务器。这样,典型的客户机1020可以是通用计算机,如具有中央处理单元(CPU)、系统存储器、调制解调器或者用于将个人计算机连接到因特网的网络卡、显示器以及其它诸如键盘、鼠标这样的组件等等的传统个人计算机。同样的,典型的服务器1040可以是大学或公司大型计算机,或者专用工作站等等。
应当认识到,即使主要在一个存储范围内的AV插件的上下文中描述了本发明,但是工作流可对多个存储实现。一般而言,对于在多个机器的多个存储器部署,可导致多个存储上对反病毒的不一致保证级别。为减轻这样的不一致性,特定的示例性方法要允许客户机存储的插件能够扫描读自另一个存储上共享的内容。这通常需要以由客户机应用程序小孩的项的串行化形式包括始发的存储的反病毒特征。根据这条信息和本地政策,可用于客户机存储的插件可扫描从源存储中读取的内容。更具体的说,这样的反病毒插件被限制在一个存储之内。因此,若在不同机器上运行的应用程序通过共享从项存储中读取内容,则应用程序就由主存该共享的存储中的反病毒插件保护。在不同的机器上的多个存储部署中,这就导致多个存储之间反病毒的不一致保证级别。一个解决方案是允许客户机存储的插件扫描从另一存储上的共享中读取的内容。这可能需要以由客户机应用程序消耗的项的串行化形式包括始发存储的反病毒特征。根据该信息和本地政策,可用于客户机存储的插件可扫描从源存储中读取的内容。
尽管已经相对于某些所示方面描述了本发明,但是应当认识到,当阅读并理解了本说明书以及附图之后,本领域熟练的其它技术人员可做出等效变更和修改。尤其对于由上述组件(组件、设备、电路、系统等等)执行的不同功能,用于描述这些组件的术语(包括对“装置”的参考)旨在对应于执行所述组件的指定功能的任何组件(如,在功能上等效),即使与所述结构在结构上并不等效,也对应于执行此处所示的本发明的示例性方面的功能的任何组件,除非另外指明。在这点上,应当认识到,本发明包括系统以及计算机可读介质,其具有用于执行本发明的各种方法的动作和/或事件的计算机可执行指令。此外,在详细描述或权利要求书中使用了术语“包括”、“具有”以及其不同形式的意义上,这些术语可以与术语“包含”所类似的方式为包括性的。
权利要求
1.一种项存储,包含元数据组件,它提供用于与所述项存储交互的反病毒插件的操作的语义;以及扫描组件,它将所述项存储的内容排队到所述反病毒插件,用于对其进行病毒扫描。
2.如权利要求1所述的项存储,其特征在于,所述元数据组件提供一表示所述内容的扫描时间的签名值。
3.如权利要求1所述的项存储,其特征在于,所述元数据组件提供所述内容的扫描状态。
4.如权利要求3所述的项存储,其特征在于,所述扫描状态被设置为可疑、干净和已感染中的至少一个。
5.如权利要求3所述的项存储,其特征在于,所述扫描状态被设置为不必扫描。
6.如权利要求1所述的项存储,其特征在于,所述扫描组件以同步和异步方式中的至少一种对所述内容进行排队。
7.如权利要求1所述的项存储,其特征在于,还包含分析器,用于分析所述项存储的数据结构,以确定文本到元素的链接。
8.如权利要求1所述的项存储,其特征在于,所述元数据组件向所述项存储提供一签名值。
9.如权利要求8所述的项存储,其特征在于,所述签名值表示扫描所述项存储内容的时间。
10.如权利要求1所述的项存储,其特征在于,所述扫描组件包含异步排队组件和同步排队组件中的至少一个。
11.如权利要求1所述的项存储,其特征在于,还包含调度组件,它调度所述插件的扫描进程。
12.一种其上具有数据结构的计算机可读介质,包含计算机可执行组件,它提供用于与项存储交互的反病毒插件的操作的语义;以及另一计算机可执行组件,它将所述项存储的内容排队到所述反病毒插件,用于对其进行病毒扫描。
13.一种用于扫描项存储的方法,包含定义项存储中多个项之间的关系型模式;通过所述项存储提供用于反病毒插件的操作的语义;以及扫描所述项存储的内容。
14.如权利要求13所述的方法,其特征在于,还包含向所述项存储提供一签名值,所述签名值指定扫描时间。
15.如权利要求13所述的方法,其特征在于,还包含向扫描的内容提供扫描状态。
16.如权利要求13所述的方法,其特征在于,还包含对内容进行排队以供扫描。
17.如权利要求16所述的方法,其特征在于,还包含将内容从所述扫描中出队。
18.如权利要求13所述的方法,其特征在于,所述扫描动作包含以同步方式进行扫描。
19.如权利要求13所述的方法,其特征在于,所述扫描动作包含以异步方式进行扫描。
20.如权利要求13所述的方法,其特征在于,还包含自动将所述项存储的已修改内容入队,以供扫描。
21.如权利要求13所述的方法,其特征在于,还包含自动将所述项存储的新内容入队,以供扫描。
22.如权利要求18所述的方法,其特征在于,还包含执行强制扫描。
23.如权利要求13所述的方法,其特征在于,还包含响应于针对所述项存储的查询,对内容的扫描进行侧面影响。
24.如权利要求23所述的方法,其特征在于,还包含清洁已感染的内容。
25.一种其上储存了用于实行权利要求13所述的方法的计算机可执行指令的计算机可读介质。
26.一种项存储,包含元数据组件,它提供用于与所述项存储交互的反病毒插件的操作的语义;扫描组件,它将所述项存储的内容排队到所述反病毒插件,用于对其进行病毒扫描;以及一组占位程序,它促进所述AV插件与所述项存储的交互。
27.一种项存储,包含多个过滤器,它被布置在多UNC提供器上,以提供服务I/O请求和UNC名字的文件系统组件,多UNC提供器,它用作对所述文件系统的远程访问,以及一个或多个反病毒插件,它扫描所述文件系统,对所述文件系统可见的目录和文件名的相同名字空间也对所述反病毒插件可见。
28.如权利要求27所述的项存储,其特征在于,所述过滤器是内核模式过滤器。
29.一种项存储,包含用于向所述项存储提供用于操作反病毒插件的语义的装置;以及用于将所述项存储的内容排队到所述反病毒插件以供其病毒扫描的装置。
30.如权利要求29所述的项存储,其特征在于,还包含用于清洁已感染项的装置。
31.如权利要求29所述的项存储,其特征在于,还包含用于向所述AV插件提供与所述项存储的文件系统相同的对内容的可见性的装置。
32.一种用于结合AV插件作为多存储的一部分的方法,包含以由客户机应用程序消耗的项的串行化形式包括始发存储的反病毒特征;以及通过对所述客户机可用的AV插件,扫描从所述客户机存储的共享中读取的所述始发存储的内容。
全文摘要
用于集成反病毒AV插件作为项存储器的一部分的系统和方法。由关系性项存储通过使用与项存储相关联的元数据组件和扫描组件来提供用于AV插件的操作的语义。元数据组件可提供与项存储项关联的、可表示数据扫描时间以及每个被扫描项的结果的签名值。扫描组件能以同步和/或异步模式提供数据存储中项的排对,以供销售商提供的AV插件扫描和清洁。
文档编号G06F1/00GK1713107SQ20051008235
公开日2005年12月28日 申请日期2005年6月21日 优先权日2004年6月21日
发明者B·S·拉曼, J·科雷恩, M·科斯蒂, N·R·埃利斯, R·库玛, S·H·阿加瓦尔, S·阿南德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1