文件完整性保护的制作方法

文档序号:11288732阅读:338来源:国知局
文件完整性保护的制造方法与工艺

本文公开的主题涉及对文件的数据更新和防病毒文件扫描。



背景技术:

经常针对计算机病毒和常常被称为“恶意软件”的其他恶意软件扫描文件。这样的恶意软件包括各种形式的敌意的或侵入式软件。恶意软件的示例包括计算机病毒、蠕虫、特洛伊木马和勒索软件(ransomware)。还有其他示例包括间谍软件、广告软件、恐吓软件和其他恶意程序。恶意软件可以采取可执行程序代码、脚本、活动内容和其他软件的形式。恶意软件通常被伪装成非恶意文件或嵌入在非恶意文件中,以便于传播并增加检测恶意软件的难度。

在某些系统中,在更新文件的写入操作时,将写入数据提交到文件以更新文件,并在更新后的文件上启动防病毒扫描。同样,在一些系统中,为了便于扫描处理,要被扫描的文件被再分成由一个或多个扫描服务器单独扫描的子文件。如果最后的写入命令引入了恶意软件,则防病毒扫描可以频繁地检测到它,并且可能会尝试修复受感染的文件。如果受感染文件的修复失败,则整个文件通常被隔离,以防止对可以传播恶意软件的受感染文件的后续读取操作。因此,用户通常被拒绝访问隔离的文件。然而,针对未被隔离的受感染文件的读取操作可能允许恶意软件的传播。根据第一方面,提供了一种用于更新文件的方法,该方法包括由处理器进行的操作,该操作包括:接收用于更新文件的第一子文件的更新数据;创建与文件的第一子文件对应的第一临时复制子文件;用更新数据来更新第一临时复制子文件,而不是用更新数据来更新第一子文件;扫描更新后的第一临时复制子文件;并且,如果更新后的第一临时复制子文件通过扫描,则用扫描后的第一临时复制子文件的更新来更新第一子文件。



技术实现要素:

根据第二方面,提供一种系统,该系统包括:至少一个存储系统,所述存储系统包括适配为存储文件的至少一个存储单元以及适配为访问和控制所述至少一个存储系统的存储单元的至少一个存储控制器,所述文件具有所述文件的子文件;以及至少一个计算机可读存储介质,具有以该计算机可读存储介质体现的计算机可读程序指令,所述程序指令可由所述存储系统执行以使所述存储系统进行操作,所述操作包括:接收用于更新文件的第一子文件的更新数据;创建与所述文件的第一子文件对应的第一临时复制子文件;使用所述更新数据来更新所述第一临时复制子文件,而不是使用所述更新数据来更新所述第一子文件;扫描更新后的第一临时复制子文件;以及如果所述更新后的第一临时复制子文件通过了扫描,则使用所述第一临时复制子文件的扫描后的更新来更新所述第一子文件。

根据第三方面,提供一种计算机程序产品,用于与至少一个存储系统一起使用,所述存储系统包括适配为存储文件的至少一个存储单元以及适配为访问和控制所述至少一个存储系统的存储单元的至少一个存储控制器,所述文件具有所述文件的子文件,所述计算机程序产品包括至少一个计算机可读存储介质,所述计算机可读存储介质具有以该计算机可读存储介质体现的计算机可读程序指令,所述程序指令可由所述存储系统执行以使所述存储系统进行操作,所述操作包括:接收用于更新文件的第一子文件的更新数据;创建与所述文件的第一子文件对应的第一临时复制子文件;使用所述更新数据来更新所述第一临时复制子文件,而不是使用所述更新数据来更新所述第一子文件;扫描更新后的第一临时复制子文件;以及如果所述更新后的第一临时复制子文件通过了扫描,则使用所述第一临时复制子文件的扫描后的更新来更新所述第一子文件。

根据优选的实施例,提供了用于结合更新文件的写入操作来保护文件完整性的方法,其中创建与文件的原始目标部分对应的临时复制子文件。不是将写入更新数据提交给文件的原始目标部分,而是替代地将写入数据导向为更新该临时复制子文件。可以对更新后的临时复制子文件扫描恶意软件,并且如果更新后的临时复制子文件通过扫描,则可以使用被确定为没有恶意软件的临时复制子文件所包含的扫描后的更新数据来更新文件的原始目标部分。

在一个实施例中,作为更新临时复制子文件而不是原始文件的结果,临时复制子文件在已经使用写入数据更新之后可以可选地与原始文件或其原始子文件分开地扫描病毒或其他恶意软件。因此,在一个实施例中,可以可选地允许在临时复制子文件被更新和扫描的同时对包括对应的原始子文件的原始文件的读取访问。

相反,在写入更新将恶意软件引入临时复制子文件的情况下,原始文件及其对应的原始子文件保持不被写入更新所污染。因此,在一个实施例中,可以可选地继续访问原始文件及其对应的原始子文件,因为它们保持未被污染并且其完整性已被保护。

此外,根据一个实施例,如果被污染的临时复制子文件被隔离,则原始文件及其对应的原始子文件可以可选地保持不被隔离,因为其完整性已被保护。因此,可以可选地继续访问原始文件及其对应的原始子文件,因为它们保持未被污染并且未被隔离。

在一个实施例中,可以可选地从可用的临时子文件位置的池来获取临时复制子文件的位置。在另一实施例中,可以可选地进行一次或多次尝试来修复临时复制子文件,以在临时复制子文件被隔离之前消除恶意软件。在另一实施例中,更新数据可以可选地重新发送一次或多次以更新一个或多个附加的临时复制子文件而不是原始文件。

其他实施例面向系统、设备和计算机程序产品。还描述了其他方面。

附图说明

现在将仅通过示例的方式,参考以下附图来描述本发明的优选实施例:

图1是示出了根据本说明书的采用文件完整性保护的数据处理系统的一个实施例的示意性框图;

图2是示出了根据本说明书的被再分用于文件完整性保护的文件的一个实施例的示意性框图;

图3是示出了根据本说明书的更新临时复制子文件用于文件完整性保护的一个实施例的示意性框图;

图4是示出了根据本说明书的创建临时复制子文件用于文件完整性保护的一个实施例的示意性框图;

图5是示出了根据本说明书的更新原始目标子文件用于文件完整性保护的一个实施例的示意性框图;

图6是示出了根据本说明书的更新原始目标子文件用于文件完整性保护的另一方面的示意性框图;

图7是示出了根据本说明书的用于文件完整性保护的临时复制子文件的隔离的一个实施例的示意性框图;

图8是示出了根据本说明书的创建第二临时复制子文件用于文件完整性保护的一个实施例的示意性框图;

图9是示出了根据本说明书的可以结合文件完整性保护使用的防病毒控制文件的一个实施例的示意性框图;

图10是示出了根据本说明书的可以用于文件完整性保护的计算机的一个实施例的示意性框图;

图11是示出了根据本说明书的文件完整性保护设备的一个实施例的示意性框图;以及

图12描绘了根据本说明书的用于文件完整性保护的操作的一个实施例。

图13描绘了根据本说明书的用于文件完整性保护的操作的另一实施例。

图14还描绘了根据本说明书的用于文件完整性保护的操作的另一实施例。

具体实施方式

在根据本说明书的文件完整性保护的一个实施例中,文件被再分成多个子文件,并且最初针对包含在一个子文件中的该文件的一部分的写入更新代替地导向临时复制子文件。在该示例中,临时复制子文件包含该文件的原始目标子文件的复制本,因此对应于原始文件的原始目标子文件。作为更新临时复制子文件而不是原始文件的结果,临时复制子文件在已经用写入数据更新之后,可以可选地与原始文件或其原始子文件分开地针对病毒或其他恶意软件而被扫描。因此,在一个实施例中,可以可选地允许在临时复制子文件被更新和扫描的同时对包括对应的原始子文件的原始文件的读取访问。

在本发明的另一实施例中,如果临时复制子文件通过扫描测试,则可以用干净的临时复制子文件的更新后内容来更新原始目标文件。相反,在写入更新将恶意软件引入临时复制子文件的情况下,原始文件及其对应的原始子文件保持不被写入更新所污染。因此,可以可选地继续访问原始文件及其对应的原始子文件,因为它们保持未被污染并且其完整性已被保护。

因此,在以相同文件为目标的写入更新已经完成并针对恶意软件被扫描之前执行读取命令的那些情况下,可以避免恶意软件的传播,因为读取操作可以可选地导向原始文件或子文件,而可能携带恶意软件的写入更新导向临时复制子文件。因此,即使写入更新数据感染了恶意软件,读取操作不会与被感染的更新数据接触。

此外,即使被污染的临时复制子文件被隔离,原始文件及其对应的原始子文件可以保持不被隔离,因为其完整性已被保护。因此,可以可选地继续访问原始文件及其对应的原始子文件,因为它们保持未被污染且未被隔离。

如本文所使用的,术语“扫描”、“防病毒(anti-virus,av)扫描”和“防病毒(av)程序”是指用于检测包括但不限于计算机病毒的任何恶意软件的扫描和程序。术语“修复”是指处理被检测为受恶意软件感染的被感染文件,以消除恶意软件或使恶意软件无害化。术语“隔离”是指限制或完全阻止对已被隔离的被感染文件的访问,以消除或禁止恶意软件从被感染文件传播。

图1是示出根据本发明的一个实施例的提供文件完整性保护的数据处理系统100的一个实施例的示意性框图。系统100包括可以扫描文件或提供主机功能或这两者的多个服务器110,由服务器110a-101d表示。此外,系统100包括网络120和存储系统。网络120可以是因特网、路由器、广域网、局域网等。存储系统包括第一总线125、第二总线150和由服务器130a、130b表示的一个或多个存储服务器130,该一个或多个存储服务器130与由存储器子系统140a、140b、140c表示的一个或多个存储子系统140结合来提供数据存储功能。在一个实施例中,由服务器110e、110f表示的一个或多个服务器110被包括在存储子系统中。

例如,由服务器110a、110b表示的一个或多个服务器可以提供主机功能,以将数据存储到存储系统180并从存储系统180取回数据。在一些存储系统中,防病毒(av)程序在执行存储功能的服务器外部运行。因此,防病毒软件可以在诸如例如在存储系统180外部的服务器110c和110d或例如在存储系统180内部的服务器110e或110f的一个或多个专用服务器上运行,以验证包含在存储系统180的存储单元内的数据是无病毒的。为了加速文件的扫描并且在文件、特别是大文件被扫描时提供对该文件的继续使用,已知将文件再分为子文件并将子文件的扫描分发到不同的服务器,使得特定文件的各个子文件可以由并行或在不同时间操作的不同的服务器来扫描。此外,文件的子文件可以在文件的其他子文件被扫描时被访问。

以前,存储系统通常提供实时扫描“写入中(onwrite)”操作。例如,关于写入操作,由主机服务器110a、110b提供的写入数据先前直接提交给目标文件,并且在更新后的目标文件上启动av扫描,其中通常在写入操作之后扫描整个文件。如果最后的写入命令引入了恶意软件,并且av扫描检测到它,则尝试对被感染文件的修复。如果被感染文件的修复失败,则被感染文件通常被隔离,阻止对隔离文件的访问。在一些现有系统中,大小可能是太字节(tb)或更大的整个文件可能被隔离,尽管文件的仅相对一小部分实际上被感染。

如前所述,根据本发明的一个实施例,可以通过将文件再分成多个子文件并且代替地将意图对该文件的一部分的写入更新导向临时复制子文件来保护文件完整性。临时复制子文件是作为写入操作的目标的文件的原始部分的复制本。因此,如果恶意软件包含在写入更新数据中,将会污染临时复制子文件,而不是原始目标文件或其子文件。以这种方式,可以避免原始文件或其原始子文件的隔离。

此外,在本文中认识到,先前在“读取”操作和“写入”操作同时发生的情况下,防病毒扫描可能不足以保护文件。例如,在许多现有系统中,av扫描通常仅在“开放用于读取”操作或“写入后关闭”操作时启动。因此,av扫描经常不是在每次读取操作时都启动。因此,如果处理打开文件用于读取操作,而另一处理正向同一文件写入,并且写入操作引入了恶意软件,则现有存储系统中的读取处理可能在av扫描以及任何后续的维修或隔离完成之前已经读取了引入的病毒。

如前所述,根据本发明的一个实施例,可以通过将文件再分成多个子文件并且将最初针对该文件的一部分的写入更新导向临时复制子文件而不是原始文件本身或其子文件来保护文件完整性。因此,如果处理打开文件用于读取操作,而另一处理正在写入最初针对相同文件的被感染数据,则由于根据本发明的一个实施例的文件完整性保护,读取处理将不会在原始文件或其子文件中遭遇恶意软件,因为任何恶意软件将被引入到临时复制子文件,而不是正被读取的原始文件。

图1的每个存储子系统140可以包括控制一个或多个存储装置170的一个或多个控制器160。存储装置170可以是硬盘驱动器、光存储装置、微机械存储装置、半导体存储装置等。存储服务器130可以管理和控制存储系统180。存储服务器130可以分别通过第一总线125和第二总线150与网络120和存储子系统140进行通信。

存储装置170可以存储文件、目录信息、元数据等,以下称为文件。服务器110e、110f可以扫描文件,目的是检测和减轻可能存储在文件中的任何恶意软件。如上所述,服务器110可以在存储系统180的外部和/或存储系统180的内部。

存储系统180中的文件可以增长到各种大小;可以存在非常小至非常大的文件大小。在一些系统中使用单个服务器110扫描这样的大文件可能需要过多的时间。此外,在长扫描时间期间,正被扫描的大文件可能无法访问。使文件这样长的时间段无法访问对于重要的文件来说是麻烦的。如前所述,为了加速文件的扫描,并且提供文件、特别是大文件的继续使用,已知将文件再分为子文件并将子文件的扫描分发到不同的服务器,使得特定文件的各个子文件可以由并行或在不同时间操作的不同的服务器来扫描。

图2是示出了根据本发明的一个实施例的可以保护其完整性的文件200的一个实施例的示意性框图。例如,文件200可以存储在图1的存储系统180中。如前所述,诸如文件200的文件可能相当大。例如,在一个实施例中,文件200可以具有超过1太字节(terabyte,tb)的大小。这里,文件200被划分为由子文件205a、205b、205c、205d...所表示的多个子文件205。在一个实施例中,每个子文件205不大于指定的大小。例如,指定的大小可以在诸如1兆比特(mb)到1千兆比特(gb)的范围内变化。在另一示例中,文件200可以被划分,使得每个子文件205不大于10gb的指定大小。认识到,子文件的大小可以根据具体应用而变化。可以多次启动该再分处理,直到整个文件扫描由现有的再分文件扫描过程完成。

根据本发明的一个实施例,通过将以特定文件的一部分为目标、即意图用于该特定文件的一部分的写入更新重导向到包含原始文件的目标部分的复制本的临时复制子文件,可以利用将文件划分为子文件用于文件完整性的保护。图3示出了与用于由诸如主机服务器110a的主机服务器发送的写入更新数据的写入更新操作有关的这样的文件完整性保护的示例。来自主机服务器110a的写入更新数据以包含在文件200的子文件205b内的数据为目标。代替立即将该写入更新数据提交给文件200的目标原始子文件205b,创建与第一原始子文件205b对应的第一临时复制子文件205b1,并将原始子文件205b的内容复制到临时复制子文件205b1。

在一个实施例中,可以通过从可用临时位置210a、210b、210c...的池210(图4)获取特定临时复制子文件的临时存储器位置来创建临时复制子文件,比如临时复制子文件205b1(图3)。在该示例中,可用临时位置210a、210b、210c的池由磁盘驱动器存储位置提供。然而,应当理解,在其他实施例中,取决于具体应用,可用临时位置210a、210b、210c的池可以由易失性或非易失性存储器提供或由其他类型的存储装置提供的存储位置来提供。

在一个实施例中,例如,可以用具有诸如“保护写入时的文件完整性”的适当名称的命令行接口(cli)命令来调用根据本说明书的文件完整性保护。在调用该命令时,为了使能对诸如文件200的特定文件的文件完整性保护处理,文件完整性保护处理使用存储控制器160和存储装置170来创建由可用的临时位置210a、210b、210c...的池210(图4)表示的存储空间,以包含用于文件200的临时复制子文件。在一个实施例中,池210的大小可以取决于文件完整性保护命令被调用的文件200的大小以及对文件200的写入更新的频率。应当理解,取决于具体应用,池210的大小可以变化。

在该示例中,使用可用的临时位置的池210的可用临时复制子文件位置210b来创建临时复制子文件205b1。因此,临时复制子文件205b1的数据结构具有指向可用临时位置的池210的临时复制子文件位置210b的文件位置指针(如箭头212a所表示),作为临时复制子文件205b1的位置。目标原始子文件205b的内容被复制到临时复制子文件205b1的位置,使得临时复制子文件205b1对应于目标原始子文件205b。

当主机发送“写入命令”来更新文件,并且cli命令“保护写入时文件完整性”对该文件启用时,与“写入命令”相关联的写入数据被提交到存储位置中的临时复制子文件,而不是原始文件。因此,在该示例中,一旦与目标原始子文件205b相对应的临时复制子文件205b1可用,接收用于写入操作并且意图针对原始子文件205b的写入更新数据被提交以更新临时复制子文件205b1,如图3的写入数据更新过程箭头所指示的,而不是被提交以更新原始子文件205b。因此,用写入数据更新的临时复制子文件205b1可以与原始文件200及其对应的原始子文件205b分开被扫描恶意软件如图3的防病毒扫描过程箭头所指示的。因此,在一个实施例中,在临时复制子文件205b1被更新和扫描时,可以允许对包括对应的原始子文件205b的原始文件200的访问。

如果临时复制子文件205b1通过了扫描测试,则原始文件200可以用干净的临时复制子文件205b1的扫描和更新后的内容来更新,如图5的如果未感染则扫描写入数据更新过程箭头所指示的。在一个实施例中,可以通过将来自临时复制子文件205b1的临时位置210b(图4)的扫描后、更新后内容复制到目标原始子文件205b的位置来更新原始文件200。在用临时复制子文件205b1的扫描后、更新后内容成功更新原始文件200之后,由临时复制子文件205b利用的临时存储器或存储空间可以被释放以供其它过程使用。因此,可以释放临时复制子文件位置210b并将其返回到临时复制子文件位置的池210。

用临时复制子文件205b1的扫描后、更新后内容来更新原始文件200的技术的另一示例在本文中被称为切换子文件指针处理,并且在以下结合图6进行描述。应当理解,取决于具体应用,可以使用其他技术用来自临时复制子文件205b1的干净的更新数据来更新原始文件200。

如先前结合图4所述,临时复制子文件205b1具有指向可用临时位置的池210的临时复制子文件位置210b的文件位置指针(如箭头212a所表示的),作为临时复制子文件205b1的位置。类似地,目标原始子文件205b具有指向文件200内的原始子文件位置的文件位置指针(如箭头212b所表示的),作为目标原始子文件205b的位置。代替将更新后和扫描后的临时子文件205b1的数据从池的临时复制子文件位置210b复制到文件200内的原始位置处的目标原始子文件205b,临时复制子文件205b1和目标原始子文件205b的文件指针可以通过如图6所描绘的切换它们而被更新。

一旦切换,目标原始子文件205b具有指向可用临时位置的池210的临时复制子文件位置210b的文件位置指针(如箭头212c所表示的),作为目标原始子文件205b的位置,并且临时复制子文件205b1具有指向文件200内的原始子文件位置的文件位置指针(如箭头212d所表示的),作为临时复制子文件205b1的位置。包含更新后数据的是临时复制子文件205b1。如上所述,只有当临时复制子文件205b1被扫描并确认为没有恶意软件时,才进行切换。以这种方式,可以使用扫描后的写入更新数据更新文件200的目标原始子文件205b,而不将其从临时复制子文件205b1实际复制到原始子文件205b。

以这种方式,使用临时复制子文件205b1的更新后和扫描后的内容来更新原始目标子文件205b包括更新用于原始目标子文件205b的文件指针,以将临时复制子文件205b1的临时复制子文件位置210b标识为原始目标子文件205b的位置,而不是将文件200内的原始位置标识为原始目标子文件205b的位置。此外,更新用于临时复制子文件205b1的池指针,以将临时复制子文件205b1的位置标识为文件200内的目标子文件205b的原始位置,而不是标识临时复制子文件205b1的原始临时复制子文件位置210b。在一些实施例中,与将扫描更新后的数据从临时复制子文件复制到原始子文件相比,根据本文所述的过程更新文件指针可以更快速和有效地实现。

相反,在av扫描显示写入更新将恶意软件引入临时复制子文件205b1的情况下,原始文件200及其对应的目标原始子文件205b保持未被写入更新污染。因此,可以继续访问原始文件200及其对应的原始子文件205b,因为它们保持未被污染并且其完整性已被保护。

可以尝试修复被感染的临时复制子文件205b1,如图3的如果感染尝试修复过程箭头所指示的。在由图3的防病毒扫描过程箭头所表示的修复尝试之后,已经用写入数据更新的临时复制子文件205b1可以仍与原始文件200及其对应的原始子文件205b分开地被重新扫描恶意软件。

如果修复的临时复制子文件205b1通过了重新扫描测试,则可以使用如上所述的更新技术用干净的临时复制子文件205b1的重新扫描和更新后的内容来更新原始文件200,如图5的如果未感染则扫描写入数据更新过程箭头所指示的。相反,在av重新扫描显示临时复制子文件205b1的修复失败,使得临时复制子文件205b1仍然被写入更新所污染的情况下,临时复制子文件205b可以被隔离,如图7所示。结果,被隔离的临时子文件205b1所占用的存储空间210b(图4)被标记为不可用。应当理解,在临时复制子文件被隔离之前的修复尝试和失败的重新扫描的次数可以取决于具体应用而变化。

此外,如果被污染的临时复制子文件205b1被隔离,则原始文件200及其对应的原始子文件205b可以保持不被隔离,如图7所示,因为其完整性已被保护,因为临时位置中的子文件205b1处于隔离状态并且尚未提交到文件200内的位置。因此,对原始文件200及其对应的原始子文件205b1的访问继续,因为它们保持未被污染和未被隔离。

然而,在隔离临时复制子文件205b1时,文件200将不包含由隔离的写入更新数据表示的最新更新。在一个实施例中,可以请求提供原始写入更新数据的原始主机服务器110a重新发送写入更新数据。在本发明的另一实施例中,在隔离第一临时复制子文件205b1的情况下,可以创建由临时复制子文件205b2(图8)表示的第二临时复制子文件。在一个实施例中,可以通过以与上面结合临时复制子文件205b1所述相似的方式获取临时存储位置来创建诸如临时复制子文件205b2(图8)的第二临时复制子文件。在该示例中,使用可用临时位置的池210的可用临时复制子文件位置210d来创建临时复制子文件205b2。因此,临时复制子文件205b2的数据结构具有指向可用临时位置的池210的临时复制子文件位置210d的文件位置指针(如箭头212e所表示),作为临时复制子文件205b2的位置。目标原始子文件205b的内容被复制到临时复制子文件205b2的位置,使得临时复制子文件205b2以与第一临时复制子文件205b1相同的方式对应于目标原始子文件205b。

一旦与目标原始子文件205b相对应的临时复制子文件205b2可用,由原始主机服务器110a重新发送的对于意图用于原始子文件205b的写入操作的写入更新数据就被提交,以与上面结合临时复制子文件205b1所述的相同的方式更新临时复制子文件205b2。因此,可以以与上面结合临时复制子文件205b1所述的相同的方式来针对恶意软件扫描用写入数据更新的临时复制子文件205b2。

如果临时复制子文件205b2通过了扫描测试,则原始文件200可以使用干净的临时复制子文件205b2的扫描和更新后的内容以上面结合临时复制子文件205b1所述的方式来更新。在使用临时复制子文件205b2的扫描后、更新后的内容成功地更新原始文件200后,临时复制子文件205b2所利用的临时存储器或存储空间可以被释放并返回到临时复制子文件位置的池210。

相反,在av扫描显示重新发送的写入更新这次向临时复制子文件205b2再次引入了恶意软件的情况下,可以尝试一次或多次修复和重新扫描被感染的临时复制子文件205b1,如上面结合临时复制子文件205b1所述的。如果重新发送的写入更新数据再次被隔离,则可以使用诸如“不是最新的(notuptodate)”的适当指示来标记文件200,例如,以指示特定文件区域(在该示例中为子文件205b)未被更新。在该示例中,还可以向用户通知特定文件区域(在该示例中为子文件205b)未被更新,并且临时复制子文件205b1和205b2已被隔离。此外,可以请求原始主机服务器(在该示例中为主机服务器110a)不重新发送被发现包含恶意软件的并且如上所述无法修复的特定写入更新数据。此外,在一个实施例中,可以拒绝从相同主机(在该示例中为主机服务器110a)到相同子文件(在该示例中为子文件205b)的任何后续写入更新。

在本发明的另一实施例中,一旦用户已经被通知子文件205b尚未被更新并已被通知隔离临时复制子文件205b1、205b2,用户就可以选择删除隔离的子文件205b1、205b2的隔离的子文件数据。如果这样,则被感染的存储位置210b、210d被清理,并且对这些区域执行另一av扫描。如果发现先前包含隔离的临时复制子文件的存储位置没有恶意软件,则可以将该存储位置返回到临时存储位置的池210。此外,在一个实施例中,可以接受从相同主机(在该示例中为主机服务器110a)到其临时复制子文件205b1、205b2先前被隔离的子文件205b的后续写入更新。

从上面可以看出,发送对文件的“打开读取”命令的主机接收无病毒的文件数据。如前所述,主机将被通知该文件包含由于病毒检测而未被更新的区域(在该示例中为子文件)。如现有技术中那样,由于文件未被更新,如果没有使用新的av软件更新av扫描引擎,则来自主机的“打开读取”命令将不会导致av扫描。

如前所述,在隔离第一临时复制子文件205b1时,文件200将不包含由隔离的写入更新数据表示的最新更新。在另一实施例中,可以请求提供原始写入更新数据的原始主机服务器110a不发送写入更新数据到子文件205b。而是,例如,可以请求诸如主机服务器110b的第二主机提供目标是更新子文件205b的写入更新数据。在该示例中,由第二主机服务器110b提供的写入更新数据可以与由第一主机服务器110a提供的写入更新数据相同,但是可以没有恶意软件。

因此,在该示例中,在第一临时复制子文件205b1被隔离的情况下,可以创建由临时复制子文件205b2(图8)表示的第二临时复制子文件,以与上面结合第一主机服务器110a所述的相似的方式从第二主机服务器110b接收写入更新数据。如果包含来自第二主机服务器110b的写入更新数据的临时复制子文件205b2通过了扫描测试,则可以使用干净的临时复制子文件205b2的扫描和更新后的内容以上面结合临时复制子文件205b1所述的方式来更新原始文件200。在使用临时复制子文件205b2的扫描后、更新后的内容成功地更新原始文件200后,临时复制子文件205b2所利用的临时存储器或存储空间可以被释放并返回到临时复制子文件位置的池210。此外,可以允许第一主机服务器110a恢复发送以子文件205b为目标的后续写入更新。

相反,如果由第二主机服务器110b发送的写入更新数据也被隔离,则例如可以使用诸如“不是最新的”的适当指示来标记文件200,以指示特定文件区域(在该示例中为子文件205b)未被更新。在该示例中,还可以向用户通知特定文件区域(在该示例中为子文件205b)未被更新,并且临时复制子文件205b1和205b2已被隔离。此外,可以请求第二主机服务器(在该示例中为主机服务器110b)不重新发送被发现包含恶意软件的并且如上所述无法修复的特定写入更新数据。此外,在一个实施例中,可以拒绝从相同主机(在该示例中为主机服务器110b)到相同子文件(在该示例中为子文件205b)的任何后续写入更新。

在本发明的另一实施例中,一旦用户已经被通知子文件205b尚未被更新并已被通知隔离临时复制子文件205b1、205b2,在该示例中用户也可以选择删除隔离的子文件205b1、205b2的隔离的子文件数据。如果这样,则被感染的存储位置210b、210d被清理,并且对这些区域执行另一av扫描。如果发现先前包含隔离的临时复制子文件的存储位置没有恶意软件,则可以将该存储位置返回到临时存储位置的池210。此外,在一个实施例中,将接受从相同主机(在该示例中为主机服务器110a、110b)的以其临时复制子文件205b1、205b2被隔离的子文件205b为目标的后续写入更新。

在一个实施例中,例如,可以选择每个子文件205的大小与服务器110扫描诸如原始子文件205b及其对应的临时复制子文件205b1、205b2的子文件的能力成比例。大小可以是固定的,或者可以是动态分配的。应当理解,可以取决于特定应用而利用其它大小和用于选择子文件大小的其它技术。

图9是示出防病毒控制文件302的一个实施例的示意性框图。防病毒控制文件302包括用于要被扫描的每个子文件原件或临时文件的条目220。在一个实施例中,每个条目220包括状态230、服务器标识符235和子文件地址240。

状态230可以从由排队、被隔离和被清理状态组成的组中选择。排队状态可以指示原始或临时复制子文件205被调度为由服务器110扫描,但尚未被发现是没有恶意软件的。在一个实施例中,可以访问处于排队状态的子文件205。或者,可以不访问具有排队状态的子文件205。如本文所使用的,访问是指子文件205由应用、操作系统等从其读取和/或向其写入。

被隔离状态可以指示在子文件205中发现了恶意软件。在一个实施例中,可以不访问具有被隔离状态的子文件205。具有被隔离状态的子文件205可以被调度用于减轻、删除或其他处理。减轻可以包括从子文件205中删除恶意软件的修复、使用备份复制本盖写子文件205、以及使用错误代码和/或冗余数据重建子文件205等。

被清理状态可以指示子文件205已被扫描并且没有发现恶意软件。在一个实施例中,具有被清理状态的子文件205可以被访问。例如,如果大数据库文件200的第一子文件205a已经被扫描并且具有被清理状态,则可以访问第一子文件205a。

服务器标识符235可以标识被分配用于扫描子文件205的服务器110。在一个实施例中,服务器标识符235是网络地址。或者,服务器标识235可以是逻辑名称。

子文件地址240可以包括子文件250的起始地址和结束地址。在一个实施例中,子文件地址240包括构成子文件的多个段的起始地址和结束地址。

图10是示出了计算机300的一个实施例的示意性框图。计算机300可以是服务器110。或者,计算机300可以是存储服务器130、控制器160等。计算机300可以包括处理器305、存储器310和通信硬件315。存储器310可以是半导体存储装置、硬盘驱动器或其组合。存储器310可以存储计算机可读程序代码。处理器305可以执行计算机可读程序代码。计算机300可以通过通信硬件315与外部设备进行通信。

图11是示出了文件完整性保护设备350的一个实施例的示意性框图。设备350可以体现在计算机300中。设备350包括防病毒控制文件320、划分模块325、访问模块330和子文件更新模块360。

在一个实施例中,防病毒控制文件320、划分模块325、访问模块330和子文件更新模块360可以体现在存储计算机可读程序代码的计算机可读存储介质中。计算机可读存储介质可以是存储器310。处理器305可以执行计算机可读程序代码来进行防病毒控制文件320、划分模块325、访问模块330和子文件更新模块360的功能。

划分模块325可以将文件200划分成多个子文件205并创建临时复制子文件。访问模块330可以维持每个子文件205的状态。此外,访问模块330可以如本文所述使用单独的服务器110扫描每个子文件205。如果子文件通过扫描,则子文件更新模块360可以使用扫描后的更新数据来更新子文件。

图12示出了根据本说明书的用于文件完整性保护的操作的一个实施例。在主机提供目标是更新文件的一部分的写入数据的写入数据更新的开始时(块400),写入数据更新而是用于更新(块404)与包含写入数据操作的目标部分的文件的子文件对应的临时复制子文件。在使用写入更新来更新文件的临时复制子文件时,针对恶意软件扫描(块408)更新的临时复制子文件。如果扫描后、更新后的临时复制子文件通过(块412)扫描,则可以使用临时复制子文件的扫描后、更新后的内容来更新(块416)该文件或其原始子文件。此外,可以去除应用于针对该文件的子文件的被感染的写入数据的先前源的任何阻止(block)(块420),以允许恢复先前被阻止的源对子文件的访问。

相反,如果更新后、扫描后的临时复制子文件扫描失败(块412),使得发现临时复制子文件感染了恶意软件,则可以可选地进行尝试(块434)来修复发现感染了恶意软件的扫描后、更新后的临时复制子文件。在完成修复尝试后,可以重新扫描临时复制子文件(块436)以确定修复尝试是否成功。如果临时复制子文件再次扫描失败,即修复尝试不成功(块436),则临时复制子文件可以被隔离(块440)。在一个实施例中,可以确定(块448)是否请求重新发送写入更新数据。可以对写入更新数据的原始源或不同的源做出重新发送写入更新数据的请求。如果请求并接收到写入更新数据的重新发送,则可以使用重新发送的写入更新数据来更新(块404)另一临时复制子文件,并且可以重复块404-448的操作。

如果确定(块448)不请求重新发送写入更新数据,则可以暂时阻止(块450)被感染的写入更新数据的源进一步访问被写入数据更新作为目标的子文件。在一个实施例中,可以如下面结合图13更详细地描述的来进行进一步的操作。

如果修复尝试(块434)允许更新后的临时复制子文件通过(块436)扫描,指示修复成功,则可以使用临时复制子文件的扫描后、更新后的内容更新(块416)该文件或其原始子文件。此外,可以去除应用于针对该文件的子文件的被感染的写入数据的先前源的任何阻止(块420),以允许恢复先前被阻止的源对子文件的访问。

如前所述,如果进行确定(块448)请求不进一步重新发送写入更新数据,则可选地可以进行进一步的操作。图13描绘了可以在隔离(块440,图12)临时复制子文件之后开始(块500)的操作的一个示例。在一个实施例中,进一步的操作可以包括删除(块504)隔离的临时复制子文件的内容,并扫描(块508)删除的临时复制子文件的位置,以确保它们没有恶意软件。如果是这样,可以将临时复制子文件的位置返回(块516)到临时复制子文件的池,用于由其他处理使用。或者,如果删除的临时复制子文件的位置的扫描(块508)指示恶意软件仍存在,则临时复制子文件的位置的隔离可以继续(块520)。在一些实施例中,可以进行一个或多个附加的尝试来清理被发现带有恶意软件的临时复制子文件位置。

如先前结合图12所述,在临时复制子文件被隔离(块440,图12)的情况下,可以确定(块448)是否请求重新发送写入更新数据。图14针对其中对不同于写入更新数据的原始源的源进行重新发送写入更新数据的请求的实施例。

在该实施例中,可以使用来自第二源的重新发送的写入更新数据以更新(块404,图12)另一临时复制子文件而不是原始文件200的原始目标子文件205b(图8),并且可以关于第二临时复制子文件重复块404-448(图12)的操作。因此,在从第二主机接收(块600)重新发送的写入更新数据后,意图用于更新子文件205b的重新发送的更新数据而是被用于更新(块604)与包含写入数据操作的目标部分的文件200的子文件205b对应的第二临时复制子文件205b2。在使用写入更新来更新该文件的第二临时复制子文件后,针对恶意软件扫描(块608)更新后的第二临时复制子文件。如果扫描后、更新后的第二临时复制子文件通过(块612)扫描,则可以使用第二临时复制子文件的扫描后、更新后的内容来更新(块616)文件200或其原始子文件205b。此外,可以去除应用于诸如针对该文件的子文件的被感染的写入数据的原始源的先前源的任何阻止(块620),以允许恢复先前被阻止的源对子文件的访问。

相反,如果更新后、扫描后的第二临时复制子文件205b2扫描失败(块612),使得发现第二临时复制子文件感染了恶意软件,则可以进行尝试(块634)来修复被发现感染了恶意软件的扫描后、更新后的第二临时复制子文件。在完成修复尝试后,可以重新扫描(块636)第二临时复制子文件以确定修复尝试是否成功。如果第二临时复制子文件再次扫描失败,即修复尝试不成功(块636),则第二临时复制子文件可以被隔离(块640)。在一个实施例中,可以确定(块448)是否从第二源或另一源请求重新发送写入更新数据。如果请求并接收写入更新数据的重新发送,则可以使用重新发送的写入更新数据来更新(块604)另一(诸如第三)临时复制子文件,并且可以重复块604-648的操作。

如果确定(块648)不再次请求重新发送写入更新数据,则可以暂时阻止(块650)被感染的写入更新数据的第二源进一步访问被该写入数据更新作为目标的子文件。在一个实施例中,可以对隔离的第二临时复制子文件进行进一步的操作,如上面结合图13更详细地解释的。

如果修复尝试(块634)允许更新后的第二临时复制子文件通过(块636)扫描,指示修复成功,则可以使用第二临时复制子文件的扫描后、更新后的内容更新(块616)文件200或其原始子文件205b。此外,可以去除(块620)应用于对于文件的子文件的被感染的写入数据的先前源的任何阻止,以允许恢复先前被阻止的源对子文件的访问。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是——但不限于——电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1