对文档进行标记的反病毒清单的制作方法

文档序号:6649438阅读:203来源:国知局
专利名称:对文档进行标记的反病毒清单的制作方法
技术领域
本发明一般涉及计算机病毒检测,尤其涉及病毒扫描。
背景技术
反病毒(AV)程序被设计成防止计算机病毒感染驻留在文件系统中的文件。一般而言,AV程序位于用户或用户的应用程序与计算机系统之间,以确保被计算机病毒感染的文件不会被写入到文件系统中。如果受感染的文件已经驻留在文件系统上,则AV程序帮助确保它们不被执行或复制到其它计算机。
AV程序通过将每一文件与储存在“病毒签名文件”中的“病毒签名”列表进行比较,来扫描计算机文件中的已知病毒。扫描可以在用户请求之后、当诸如应用程序访问大容量存储设备上的文件时,或者在调度的基础上完成。因此,病毒扫描是一项资源密集(CPU和盘I/O)且耗时的任务,尤其是在访问/实时扫描的情况下。通常,用户的文件打开请求必须延迟,直到文件可被扫描且可能被清扫之后。这一资源消耗可导致计算机总体性能的下降,并延缓对用户的响应时间。
病毒AV扫描技术目前正用于当今的行业中。这些技术包括自从最后一次病毒扫描起,对每一文件保存一组参数(即“AV”状态)的概念,使得一旦文件被扫描并发现是未受感染的,则不应当再次要求扫描,除非文件被修改。对AV状态选择的参数是可指示病毒渗透到文件中的可能性的参数,诸如文件长度、文件校验和/标志、或最后一次文件写操作的日期。
一种常见的AV扫描技术是创建存储器内或盘上高速缓存,它包含在最近一次的AV程序执行期间被扫描的文件的AV状态。只要访问文件,或当调度的扫描到期时,就检查该高速缓存。如果文件的AV状态在该高速缓存中,则对照文件的当前参数检查扫描信息高速缓存中该文件的AV状态参数。如果参数匹配,则病毒扫描是不必要的。如果参数不匹配,或者如果文件的AV状态未被高速缓存,则扫描该文件,并更新高速缓存信息。
另一种方法将AV状态(通常只是校验和/标志)储存在外部数据库中,然后当访问文件时,将该外部数据库与AV状态参数的当前值进行比较。该技术通常仅当AV状态信息被彻底保护免遭非授权改变时才是有效的。
以上讨论的AV扫描技术一般要求AV程序的设计者理解需要扫描的文件的基本格式。具体地,AV程序设计者评估由各种软件应用程序生成的文件,使得所设计的AV程序可成功地扫描由这些应用程序生成的“文件格式”。当软件应用程序的数目增加,且因此不同文件格式的数目也增加时,AV程序设计者会发现很难赶得上由软件应用程序生成和使用的文件格式数目的增加。

发明内容
本发明的示例性实施例提供了总体上令计算机相关文件的扫描更加有效的技术。当创建文件时,创建该文件的应用程序将创建一个标记并将其与该文件相关联。或者,可通过被设计成标识可能易受计算机相关病毒感染的地址区域的应用程序来生成标记并将其与现有文件相关联。该标记包括可能被计算机相关病毒和/或恶意软件(malware)渗透的数据的地址位置。使用该标记,反病毒程序可快速标识文件中应当扫描以查找病毒感染的特定部分。文件中的其它数据在扫描过程中被忽略。
依照本发明的一个示例性方法包括依照与文件相关联的标记扫描文件中的计算机相关病毒,该标记标识文件中易受计算机相关病毒感染的地址位置。
依照本发明的另一示例性方法包括创建具有与其相关联的数据的计算机文件;评估与该计算机文件相关联的数据以确定可能被至少一个计算机相关病毒破坏的数据;以及生成包括被确定为可被计算机相关病毒破坏的数据的至少一个地址位置的标记。
依照本发明形成的另一示例性实施例是用于对处理器编程的制品。该制品包括至少一个计算机可读存储设备,该计算机可读存储设备中包括其上嵌入的至少一个计算机程序,该程序促使处理器执行本发明的方法,包括上述示例性方法。


当结合附图参考以下详细描述更好地理解本发明时,可以更容易明白本发明的上述方面和其它附加优点。在附图中图1示出了通过诸如局域网(LAN)或因特网等网络耦合在一起的若干计算机系统;
图2示出了可用做客户机设备、服务器设备或Web服务器的计算机系统的一个示例性例子;图3和4示出了本发明的示例性实施例的操作的系统级综览;图5示出了依照本发明的一个示例性实施例的文件标记的示例性主体;图6示出了依照本发明的一个示例性实施例用于创建包括标记的文件的流程图;以及图7示出了依照本发明的一个示例性实施例可用于扫描包括标记的文件的过程的流程图。
具体实施例方式
在以下对本发明的示例性实施例的详细描述中,参考附图,附图中,作为说明示出了本发明的示例性实施例。这些实施例是以足够的细节来描述的,以使本领域的技术人员能够实施本发明,并且可以理解,可以使用其它实施例,并且可以做出逻辑、机械、电气和其它改变而不脱离本发明的范围。因此,以下详细描述不应当被认为是限制的意义,并且本发明的范围仅由所附权利要求书来定义。
介绍以下描述被分成若干独立的章节。首先,揭示了一个操作环境,并提供了可用于实现本发明的示例性实施例的各种硬件示例。接着,揭示了一个系统级综览,其中包括对反病毒程序与储存在计算机文件系统中并具有依照本发明的一个实施例的标记的文件之间的交互的讨论。最后,揭示了依照本发明的实施例的各种方法。详细参考附图,以协助理解本发明的实施例。
操作环境以下图1和2的描述旨在提供适用于实现本发明的计算机硬件和其它操作组件的综述,但是并非限制可在其中实施本发明的适用环境。本领域的普通技术人员可立即理解,本发明可以用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络个人计算机(PC)、小型机、大型机等等。本发明也可在分布式计算环境中实施,其中,任务由通过通信网络连接的远程处理设备来执行。
图1示出了通过网络16,如局域网(LAN)或因特网耦合在一起的若干计算机系统10。此处所使用的术语“因特网”指的是使用某些协议的网络所组成的网络,这些协议诸如传输控制协议/互联网协议(TCP/IP),以及可能的其它协议,诸如超文本传输协议(HTTP)或构成万维网(WWW)的超文本标记语言(HTML)文档。因特网的物理连接、因特网的协议以及通信过程对本领域的普通技术人员是公知的。
对网络16的访问通常由因特网服务供应商(ISP),诸如ISP 18和20来提供。诸如客户机计算机设备24、28、36和38等客户机系统上的用户通过诸如ISP 18和20等因特网服务供应商来获得对因特网的访问。对因特网的访问允许客户机计算机设备的用户交换信息、接收和发送电子邮件、以及查看文档,如以HTML格式准备的文档。这些文档通常由诸如Web服务器22等被认为在因特网“上”的Web服务器来提供。通常,这些Web服务器由诸如ISP 18等ISP来提供。
Web服务器22通常是至少一个计算机系统,该计算机系统作为服务器计算机系统来操作,并被配置成用WWW的协议来操作。可任选地,Web服务器22可以是向客户机设备提供对因特网的访问的ISP的一部分。Web服务器22如所示耦合至服务器计算机14,后者耦合至Web内容12。Web内容12可以被认为是媒体数据库。可以理解,虽然在图1中示出了两个计算机系统22和14,但Web服务器22和服务器计算机14可以是具有提供Web服务器功能和服务器功能的不同软件组件的一个计算机系统。
客户机计算机设备24、28、36的每一个都可以通过适当的Web浏览软件查看由Web服务器22提供的HTML页面。ISP 18通过通信设备26向客户机设备24提供因特网连接。通信设备26可以被认为是客户机设备24的一部分。客户机设备24可以是PC或其它类似的计算机系统。类似地,ISP 20向客户机设备28、36和38提供了因特网连接。客户机设备28通过通信设备30耦合至ISP 20,而客户机设备36和38是LAN的一部分。客户机36和38通过网络接口40和42耦合至LAN总线34,网络接口可以是以太网接口或其它网络接口。LAN总线34也耦合至网关计算机系统32,后者为LAN提供防火墙和其它因特网相关服务。网关计算机系统32耦合至ISP 20,以向客户机设备36和38提供因特网连接。网关计算机系统32可以是常规服务器计算机系统。Web服务器22也可以是常规服务器计算机系统。
或者,如所公知的,服务器设备44可以通过网络接口46直接耦合至LAN总线34,以向客户机设备36和38提供文件48和其它服务,而无需通过网关系统32连接到因特网。
图2示出了可用做客户机设备、服务器设备或Web服务器的计算机系统60的示例性例子。也可以理解,计算机系统60可用于执行诸如ISP 18和107等因特网服务供应商的许多功能。计算机系统60通过通信设备或网络接口62与外部系统连接。可以理解,通信设备或网络接口62可以是计算机系统60的一个整体部分。接口62可以是模拟调制解调器、ISDN调制解调器、电缆调制解调器、令牌环接口或用于将计算机系统耦合至其它计算机系统的其它这类接口。
计算机系统60包括处理单元64,它可以是诸如IntelPentium微处理器或Motorola PowerPC微处理器等常规微处理器。存储器68通过总线66耦合至处理器64。存储器68可以是动态随机存取存储器(DRAM),并也可包括静态RAM(SRAM)。总线66将处理器64耦合至存储器68,并也耦合至非易失性存储74和显示控制器70以及输入/输出(I/O)控制器76。
显示控制器70以常规方式控制显示设备72上的显示。显示设备72的显示屏可以是阴极射线管(CRT)或液晶显示屏(LCD)。输入/输出设备78可包括键盘、磁盘驱动器、打印机、扫描仪和其它输入和/或输出设备,包括鼠标或其它定位设备。显示控制器70和I/O控制器76可以用常规的公知技术来实现。
数字图像输入设备80可以是数码相机,它耦合至I/O控制器76以允许来自数码相机的图像被输入到计算机系统60中。非易失性存储74通常是磁硬盘、光盘或用于大量数据的其它形式的存储。该数据的某一些由直接存储器访问过程在计算机系统60中的软件执行期间写入到存储器68中。本领域的普通技术人员可以立即认识到,术语“计算机可读介质”包括可由处理单元64访问的任何类型的存储设备。
可以理解,计算机系统60仅是可具有不同体系结构的许多可能的计算机系统的一个示例。例如,PC通常具有多条总线,其中之一可以被认为是外围总线。典型的计算机系统通常包括处理器、存储器、以及将存储器耦合至处理器的总线。
本领域的普通技术人员也可以清楚,计算机系统60由操作系统软件来控制,操作系统软件包括文件系统,诸如磁盘操作系统,后者是操作系统软件的一部分。具有与其相关联的文件管理系统软件的操作系统软件的一个示例是Windows操作系统,包括工作站和服务器版本。这样的操作系统的文件管理系统通常储存在非易失性存储74中,并促使处理器64执行操作系统所要求的各种动作,以输入和输出数据,并将数据存储在存储器中,包括将文件存储在非易失性存储74上。
系统级综览本发明的示例性实施例的操作的系统级综览是参考图3和4来描述的。如图3所示,反病毒程序302可以被结合进计算机中,诸如图1的服务器计算机14或诸如客户机设备24、28、36和38等客户机设备。作为先前结合图2讨论的操作系统的一部分被包括在内的文件系统控制对储存在诸如图2所示的非易失性存储74等非易失性存储中的文件的访问。
图3示出了文件系统300,其中包括对反病毒程序302的使用。文件系统300对每一文件301都维护一个条目数据结构目录306。条目数据结构目录306保持关于每一文件301的信息,诸如文件类型、文件标识符、创建日期等等。该信息储存在条目数据结构目录306的各个字段308中。尽管在图3中只示出了一个文件301,然而本领域的普通技术人员可以理解,也可将多个文件结合到文件系统300中。
当文件301由文件系统300创建、使用或访问时,反病毒程序302将扫描(1)文件301中的已知病毒。反病毒程序302然后将与文件301有关的AV状态信息储存(2)在与反病毒程序302相关联的一个或多个数据库条目304中。如本领域的普通技术人员所理解的,该AV状态信息304可以是加密的形式,以保护它免遭病毒或其类似物的恶意修改。反病毒程序302在写状态信息304的同时,与条目数据结构目录306接口(3),以获取与文件301有关的信息。该信息可包括文件类型、文件标识符、创建日期等等。该信息与状态信息304一起包括在内,以协助反病毒程序302确定应何时以及多久一次扫描文件301中的病毒。例如,如果文件301的创建日期自从反病毒程序302最后一次扫描文件301以来已改变,则反病毒程序302通过将状态信息315与储存在条目数据结构目录306中的创建日期进行比较来做出这一确定。如果该比较显示出差异,则反病毒程序302将在做出该确定的特定时刻扫描文件301。本领域的普通技术人员可以知道,反病毒程序302可做出确定,为除文件创建日期之外的其它原因扫描文件301。例如,可做出对其中也储存了创建数据的文件301的直接扫描,以确定反病毒程序302是否应当继续扫描文件301中的病毒。
图4示出了图3所示的文件301的结构。如图所示,文件301包括标记(后文讨论)以及允许文件系统300根据操作系统要求和/或其它软件应用程序要求访问和使用文件301的附加信息402-418。文件301的文件名部分402被设计成保存文件301的文件名。字段404是被设计成保存文件301的创建日期的区域。附加字段406-418构成文件301的实际数据内容。
字段部分406和412包括可能被恶意软件或其它计算机病毒感染的可执行代码。字段部分410、416和418包括宏条目,它也可能被恶意软件或其它计算机相关病毒感染。字段部分408和414包括纯文本,它一般不会被恶意软件和计算机相关病毒影响。图4所示的文件301的结构是仅作为示例示出的。具体地,如本领域的普通技术人员知道的,文件的结构可以有很大的不同。具体地,某些文件可能不包括如图所示的文本或宏部分。相反,文件可能由文件标识符(402和404)组成,且文件的其余部分可能完全由可执行的代码构成。多个其它文件类型和结构类似地也可由本领域的技术人员所理解。
图5示出了图4所示的标记400的主体。标记400包括可执行代码部分500和可执行宏部分502。可执行代码部分500包括包含在文件301中的可执行代码的地址位置。在这一情况下,地址406和地址412在可执行代码部分500中标识。类似地,可执行宏部分502包括包含在文件301中的宏的地址位置。在这一情况下,地址410、416和418在可执行宏部分502中标识。
如上所述,一般要求常规反病毒程序在能够有效地扫描文件之前理解特定文件类型的结构。具体地,反病毒程序应当理解可执行代码、宏的地址位置,以及可能会被恶意软件或其它计算机相关病毒淹没的其它文件地址位置。一般而言,要求反病毒的开发者对文件的文件类型结构进行逆向工程,以找出恶意软件或其它计算机相关病毒可能驻留的具体位置。如果未理解特定文件的结构,则反病毒程序可能必须扫描整个文件,包括不会被恶意软件和其它计算机相关病毒影响的那些地址区域。很明显,这不是扫描任何给定文件以查找计算机相关病毒的有效方法。
依照本发明的一个示例性实施例的标记400矫正了上述问题。即,诸如反病毒程序302等反病毒程序在扫描诸如文件301等文件中的计算机相关病毒的存在之前,只需审阅标记400的内容。
本发明的示例性实施例的方法在以上章节中,描述了本发明的示例性实施例的操作的系统级综览。在本节中,参考一系列流程图,按照计算机软件来描述本发明的示例性实施例的具体方法。这些方法可以由包括由计算机可执行指令构成的计算机程序的计算机来执行。参考流程图来描述示例性实施例的方法使本领域的普通技术人员能够开发包括这类指令的这类程序,以在适当配置的计算机(执行来自计算机可读介质的指令的处理器或计算机)上实现该方法。如果以符合已认可标准的编程语言来编写,则这类指令可在各种硬件平台上执行,并可用于与各种操作系统接口。
本发明的示例性方法不是参考任何特定编程语言来描述的。可以理解,可使用各种编程语言来实现此处所描述的本发明的技术。此外,说到一种形式或另一种形式的软件(例如,程序、进程、过程、应用程序等)为采取行动或导致结果在本领域中是常见的。这类表达仅仅是表述计算机对软件的执行促使计算机的处理器执行行动或产生结果的简要方法。
图6示出了依照本发明的一个示例性实施例用于创建包括标记400的文件的流程图。应当清楚,通过图6的流程图所示的过程可用结合图1-5所描述的实施例中的任一个来操作。当确认必须创建和/或修改文件时(S600),文件系统或其它软件应用程序将扫描预期文件的数据结构(S602)。对数据结构的扫描被设计成确定数据结构中可能潜在地被计算机相关病毒侵袭的那些区域(S604)。具体地,如在先前的章节中所讨论的,这些区域一般包括可执行代码和/或可执行宏。然而,文件中包含的其它数据也可能易受计算机相关病毒影响。一旦标识了预期文件的数据结构中的这些特定易受攻击区域,就创建包括与代表性数据结构相关联的标记的文件(S606)。该标记将标识数据结构中易受计算机相关病毒攻击,且如果文件的扫描被认为是必要的,则应当由反病毒程序分析的部分。
图7示出了依照本发明的一个实施例可用于扫描包括标记400的过程的流程图。在通过用户交互或通过预先调度的事件执行了反病毒程序之后(S700),多个文件中的至少一个可被标识为需要AV程序扫描(S702)。一旦标识了文件,AV程序简要地分析该文件(S704)。如果所分析的文件包括标记(S706),则对该标记进行语法分析,以确定文件中被标识为易受病毒影响的部分(S708)。如上所述,文件中易受病毒影响的部分一般包括可执行代码和宏。AV程序只扫描被标识为易受病毒影响的那些部分(S710)。如果所标识的文件不包括标记,则AV程序将以常规方式扫描该文件(S712)。依照常规方式的扫描方法可包括必须扫描包含在所标识文件内的所有内容。不论用于扫描所标识的文件的方式是什么,一旦完成了扫描,就在文件系统内更新与所扫描的文件有关的AV状态信息,以实质上防止对自从AV程序的先前扫描以来未修改的文件的不必要扫描(S714)。
尽管示出和描述了本发明的示例性实施例,但可以理解,可以在不脱离本发明的精神和范围的情况下做出各种改变。
权利要求
1.一种方法,包括依照与文件相关联的标记,扫描所述文件中的计算机相关病毒,所述标记标识了所述文件中易受计算机相关病毒感染影响的数据部分的地址位置。
2.如权利要求1所述的方法,其特征在于,所述标记是在创建所述文件时被创建并与所述文件相关联的。
3.如权利要求1所述的方法,其特征在于,所述标记是在创建所述文件之后被创建并与所述文件相关联的。
4.如权利要求1所述的方法,其特征在于,仅扫描由所述标记标识的那些地址位置中的计算机相关病毒。
5.如权利要求4所述的方法,其特征在于,还包括如果找到任何病毒,则从所标识的地址位置中移除这些病毒。
6.如权利要求1所述的方法,其特征在于,所述标记中所标识的地址位置是所述文件中与可执行计算机代码相关联的地址位置。
7.如权利要求1所述的方法,其特征在于,所述标记中标识的地址位置是所述文件中与宏相关联的地址位置。
8.如权利要求1所述的方法,其特征在于,所述标记中所标识的地址位置是所述文件中与可执行计算机代码和宏相关联的地址位置。
9.一种用于对处理器编程的制品,所述制品包括至少一个计算机可读存储设备,所述计算机可读存储设备包括嵌入其中并促使处理器执行如权利要求1所述的方法的至少一个计算机程序。
10.一种方法,包括创建具有与其相关联的数据的计算机文件;评估与所述计算机文件相关联的数据,以确定可能被至少一个计算机相关病毒破坏的那些数据;以及生成标记,所述标记包括被确定为可能被计算机相关病毒破坏的数据的至少一个地址位置。
11.如权利要求10所述的方法,其特征在于,所述标记是直接与所述计算机文件相关联的。
12.如权利要求11所述的方法,其特征在于,所述标记是所述计算机文件的一个整体部分。
13.如权利要求10所述的方法,其特征在于,评估与所述计算机文件相关联的数据,以确定它是否包含可执行代码或宏指令。
14.如权利要求10所述的方法,其特征在于,还包括读取所述标记的内容以确定所述计算机文件中被确定为可被计算机相关病毒破坏的数据的位置。
15.如权利要求14所述的方法,其特征在于,还包括仅在所述计算机文件中在所述标记中标识的地址位置处扫描计算机相关病毒。
16.一种用于对处理器编程的制品,所述制品包括至少一个计算机可读存储设备,所述计算机可读存储设备包括嵌入在其中并促使处理器执行如权利要求10所述的方法的至少一个计算机程序。
全文摘要
创建标记并将其与计算机文件相关联。该标记包括文件中可能被计算机相关病毒和/或恶意软件渗透的数据的地址位置。使用该标记,反病毒程序可标识文件中应当扫描以查找病毒感染的特定部分。在扫描过程中,文件中的其它数据被忽略。
文档编号G06F1/00GK1766779SQ20051010888
公开日2006年5月3日 申请日期2005年9月29日 优先权日2004年10月29日
发明者M·科斯蒂亚 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1