用户可修改文件的有效白名单的制作方法

文档序号:6649437阅读:178来源:国知局
专利名称:用户可修改文件的有效白名单的制作方法
技术领域
本发明涉及计算机软件和计算机安全,更具体地,本发明涉及计算机上接收到的用户可修改文件的有效、安全白名单。
背景技术
操作计算机,尤其是操作一台连接至网络的计算机的一个不幸的事实是,计算机经常受到攻击。这些攻击以多种形式出现,包括,但不限于,计算机病毒、蠕虫、计算机恶意利用(即,滥用或误用合法的计算机服务)、广告软件或间谍软件等等。尽管这些多种计算机攻击的每一个的操作机制相当不同,然而,大体上,它们都被设计成在计算机上执行某些未被授权的、通常不受欢迎的、经常具有攻击性的活动。对于本发明的目的,这些攻击在下文中可以一般地被称为是恶意软件。
因为恶意软件对计算机一般而言是现实情况,尤其是对网络计算机,因此发明和使用了多种工具来防止恶意软件在计算机上实现其恶意的意图。这些工具包括,防火墙、代理和在易受攻击应用程序上的安全设置。然而,大多数常用的用于保护计算机不受恶意软件攻击的工具是反病毒软件。
本领域的技术人员可以理解,大多数反病毒软件作为模式识别服务来操作。具体地,当一个文件由计算机接收时,不论该文件是可执行文件、文字处理文档、图像或其它类型的,保护该计算机的反病毒软件“分析”该文件以确定它是否被认为是恶意软件。反病毒软件通过为该文件生成一散列值,称为签名,来“分析”该文件。生成签名,以使另一文件极不可能也拥有相同的签名,从而该签名被认为是对该文件唯一的。一旦签名生成,该签名而后与一所谓的签名文件中的已知恶意软件的其它签名进行比较。这样,如果文件的所生成的签名与在该签名文件中已知恶意软件的签名相匹配,则反病毒软件就发现该文件是恶意软件,并采取合适的措施。
不幸的是,签名识别要求该恶意软件是先前已知的(且被识别),以便保护计算机免受该恶意软件的攻击。这样,反病毒软件不是时间零点(time-zero)保护,即,一旦恶意软件被发布到网络上,即时间零点,就保护计算机免受其害。而是,存在一个易受攻击性窗口,在此期问发布一个新的、未知的恶意软件,而反病毒软件能够保护计算机免受该新的恶意软件的攻击的时间在该窗口之后。
图1是示出与当前的反病毒软件签名识别相关联的易受攻击性窗口的示例性的时间线100的框图。如图1所示,在某些时间点,如由事件102所指出的,恶意的一方将一新的、未知的恶意软件发布到诸如因特网等网络上。显然,一旦该新的、未知的恶意软件被发布,连接至网络的计算机处于危险中,或是易受攻击的。因此,易受攻击性窗口被打开了。
尽管检测网络上新的恶意软件的实际时间取决于众多因素,包括该恶意软件的恶性,然而根据可用的统计数字,一般反病毒软件团体,即反病毒软件的提供者,需要4小时到3天来检测或知道该新的恶意软件。一旦被检测到,如事件104所指出的,该反病毒团体能够开始标识该恶意软件。除了为新的恶意软件生成签名外,标识该恶意软件通常也涉及研究/确定该恶意软件的最终后果、确定其攻击模式、标识被该攻击所暴露的系统的弱点、以及设计从受感染的计算机中去除该恶意软件的计划。
当一般花费大约4小时(至少用于签名标识)标识了该恶意软件之后,反病毒软件提供者会在其下载服务中张贴一更新的签名文件,如事件106所指出的。不幸的是,计算机(不论自动地或在计算机用户的命令下)不会立即更新其签名文件。大多数计算机通常花费4小时到一周来更新其签名文件,如事件108所指出的。当然,仅在更新的签名文件被下载至计算机之后,反病毒软件才能够防护计算机免受该新的恶意软件的攻击,从而关闭易受攻击性窗口110。确实,取决于个别情况,诸如当计算机的拥有者在度假时,用最新的签名文件更新计算机可以花费比一个星期长得多的时间。
正如可见的那样,新的、未知的恶意软件无论在何处都有从几小时到几周的时间以在网络团体上进行恶意的破坏而不被任何反病毒软件检查到。反病毒软件不是时间零点保护。好消息是,大多数计算机在恶意软件试图攻击任何一台计算机之前被保护了。不幸的是,某些还是在易受攻击性窗口内被暴露了,且被恶意软件感染。对于大多数人,尤其是那些非常依赖于其计算机的人,该易受攻击性窗口是完全不能接受的。
本领域的技术人员可以容易地认识到,重要的是为文件生成一个签名,使得该签名唯一地标识该文件。计算上生成肯定地标识文件且同时不会标识任何其它文件的签名,涉及复杂的算法和数学。不幸的是,为了生成那样唯一的签名,使用的算法对于文件是非常敏感的。对文件的任何修改会导致签名生成算法生成与原始文件不同的签名。换言之,对已知恶意软件的一个简单的、掩饰性的修改会导致签名生成算法返回一完全不同的签名。这样,对已知恶意软件(即,由其在签名文件中的签名标识的)的一个掩饰性的修改足以使得至少在被修改的恶意软件被识别且其签名被生成和存储在签名文件中之前,该修改过的恶意软件能够逃脱检测。
恶意软件的问题通常由于恶意软件经常嵌入在用户可修改文件中的事实而增加。例如,恶意软件可以被掩饰在嵌入在文字处理文档内的可执行脚本中,并作为该可执行脚本来发布。在这些情况下,恶意软件部分(即,嵌入的脚本)是与文档的可编辑部分是完全无关的。这样,尽管对嵌入的恶意脚本没有影响,对文字处理文档数据区的不论小的或大的修改,会导致整个恶意软件产生与其原始签名不同的签名。这些用户可修改文件包括,但不限于,文字处理文档、电子表格、图像、HTML文档等。此外,恶意软件创建者为了领先于反病毒软件检测,已经开始创建自修改恶意软件为仍然能不被反病毒软件检测到而随机地修改文件中的某些部分的文档。因此,显然,在许多情况下,领先于所发布的恶意软件是非常困难的,尤其是当为了阻止恶意软件,该恶意软件必须已知时。
鉴于上述问题,所需要的是这样一种系统和方法,它允许(即列出白名单)那些已知是非恶意软件(即可信的)文件能够自由通过反病毒软件或其它安全措施,而同时不信任所有其它文件,从而使得计算机能关闭通常与反病毒软件相关联的易受攻击性窗口。还需要基于签名信息而不是整个文件来标识列为白名单的用户可修改文件的能力。本发明解决了现有技术中遇到的这些和其它问题。

发明内容
根据本发明的各方面,提供了一种用于标识所接收到的文件是否为恶意软件的计算机系统。该计算机系统包括处理器、通信连接和存储器。该计算机系统被这样配置,使得一旦在通信连接上接收到文件,作出关于该接收到的文件是否为用户可修改文件的判断。如果是,则选择用户可修改文件中更持久的部分。基于所接收文件中更持久的所选择部分生成文件签名。随后基于生成的文件签名,作出关于所接收的文件是否为恶意软件的判断。
根据本发明的其它方面,提供了一种在能够从外部来源接收文件的计算设备上实现的方法,用于确定所接收的文件是否为恶意软件。一旦接收了一个文件,作出关于该文件受否包含表面数据区的判断。如果接收到的文件包含表面数据区,则过滤出接收到的文件的那些表面数据区。基于所接收文件剩余的非表面数据区的部分生成文件签名。而后基于生成的文件签名作出所接收到的文件是否为恶意软件的判断。
根据本发明的另外方面,提供了一种具有计算机可执行指令的计算机可读介质,当该指令在能够从外部来源接收文件的计算设备上执行时,实现用于确定接收到的文件是否为恶意软件的方法。一旦接收到一文件,作出关于该文件是否包含表面数据区的判断。如果接收到的文件含有表面数据区,则过滤出所接收文件的那些表面数据区。基于所接收的文件剩余的非表面数据区的部分生成文件签名。而后基于生成的文件签名作出所接收到的文件是否为恶意软件的判断。


当结合附图参考以下详细描述,能够更容易明白和更好地理解本发明前述的方面和众多附带优点,附图中图1是示出与反病毒软件,尤其是签名识别方法相关联的易受攻击性窗口的示例性时间线的框图;图2是示出一示例性用户可修改文档的框图。
图3是示出图2的示例性用户可修改文档的框图,还示出为文件开发签名仅需文件的某些片段。
图4是示出适用于实现本发明的各方面的示例性网络环境的示意图。
图5是示出适于在本发明中使用的示例性白名单数据存储的框图。
图6是示出适用于根据本发明的各方面,确定一个文件是否作为可信文件被列入白名单的示例性程序的框图。
图7是示出根据本发明的各方面适用的示例性生成签名例程的框图。
具体实施例方式
根据本发明的各方面,仅使用文档的一部分作为用于生成恶意软件签名的基础,而不是基于整个用户可修改文档生成恶意软件签名。更具体地,恶意软件签名是基于用户可修改文件的特定的、更持久的部分而生成的。通过将恶意软件签名基于用户可修改文档中趋于更持久的那些部分,基本上降低了(如果没有完全消除)恶意软件创建者和自修改恶意软件通过简单的、掩饰性的改造来逃脱检测的能力。
本领域的技术人员可以理解,用户可修改文档包括众多元素,其中的某些趋向于比其它更持久。本发明一般将文档的这些更持久元素/部分作为签名的基础。图2是示出示例性用户可修改文档200,以及用于讨论用户可修改文档的多个元素的框图。
如图2所示,用户可修改文档200包括各种元素/部分,诸如,宏202、模板204、诸如Active X和COM objects等嵌入对象206和应用样式208等。这些元素中的每一个趋于更持久,即,不是在每次用户编辑该用户可修改文档时被修改。另外,这些是含有恶意软件“核心”的文档元素类型。例如,恶意软件创建者以宏或Active X控件的形式实现他们的恶意设计。而后这些被置于用户可修改文件中,诸如文字处理文档、电子表格或图像。在诸如用户数据区210和212等用户数据区中的任何信息,对恶意软件本质上一般很少影响或没有影响,但是通常包括引诱用户将恶意软件激活和/或发布到不受怀疑的用户计算机上的信息。这样,正如已经提到的那样,由于现有的基于签名的检测系统的特性,通过对文档修饰性地修改可以容易地制造恶意软件的变种。
应该理解,尽管本发明使用术语“用户可修改”文件,但这只是为了描述的目的,并且只表示了适用于本发明的一种文件类型。如上所述,分布为应用程序的恶意软件相当经常可以包括对其修改不影响恶意软件功能的数据区。这些数据区在后文中被称为表面数据区。用户可修改文件包括表面数据区,即,用户(或嵌入的恶意软件)可以修改而不会影响嵌入的恶意软件的区域。从而,应该理解,“用户可修改”文件或带有表面数据区的文件包括,所有含有对其修改影响恶意软件功能的数据区(一般称为文件更持久部分),和对其修改对恶意软件无功能性影响的区域(一般称为用户可修改数据区或表面数据区)的文件。
图3是示出示例性用户可修改文档200的框图,还示出了仅使用了文档的一部分用于为该文档生成签名。如上所述,根据本发明,当生成一文件签名时,标识和使用了用户可修改文档的更持久部分,诸如,但不限于,宏202、模板204、样式208和嵌入对象206。相反,用户数据部分,诸如用户数据区210和212,被过滤出签名生成过程之外。
如上所述,即使当将恶意软件签名基于用户可修改文件更持久部分,恶意软件检测仍旧不总能提供时间零点保护,即恶意软件发布时刻的保护。根据本发明的各方面,为了向计算机或网络提供时间零点保护,被信任不是恶意软件的文件被标识在所谓的白名单上。一旦文件到达计算机,但在它能够在计算机上使用之前,生成该文件的签名,并将该签名与已知为可信任的文件的白名单进行比较。根据本发明的其它方面,如上所述,如果该文件是用户可修改文件,则文件的签名基于其更持久的部分。以这种方式,用户可修改文件能够用有对文件的分发是可信任的完全的置信度来编辑并在计算机之间容易地分发。相反,那些不能够与白名单中的签名相匹配的文件被认为是不可信任的,且能够执行安全策略以保护计算机和/或网络。以这种方式,实现了时间零点保护。
根据本发明,白名单可以本地存储在计算机上、存储在可信网络位置、或同时储存在这两个地方。本发明不限于任何一种配置或安排。另外,根据一实施例,计算机可以为包括效率和冗余度的各种理由,依赖于多个白名单。图4是示出可用于多个计算机的白名单的一个示例性网络配置400的示意图。如图4所示,示例性网络配置400包括,接收来自诸如计算机402-406等计算机的请求的白名单服务408,用于标识接收到的文件是否列出在白名单上。白名单服务408可以是连接至因特网412的Web服务器,但本发明不如此限制。
尽管白名单服务407可以严格地是列出白名单的服务,即,提供关于白名单上的文件的信息的服务,然而可替换地,白名单服务可以提供白名单列出的文件和黑名单列出的文件(即恶意软件)的信息。
白名单服务408被示出为耦合至白名单数据存储410。该白名单数据存储包括被标识为可信文件的那些文件。在一个实施例中,白名单数据存储410是白名单列出的文件的数据库。尽管本发明将白名单服务408和白名单数据存储412标识为独立的实体,然而白名单数据存储和白名单服务可以被结合成单个实体,或作为计算机上提供的服务。
尽管在一实施例中,白名单数据存储仅包括白名单列出的文件的签名,但是本发明并不如此限制。通常,多个文件拥有的信任等级在文件之间互不相同。例如,已知为由用户创建的文件可以享有与该用户同样高的信任等级。类似地,附带证明其真实性的数字签名的、由可信的一方创建的文件,可以享有最高的信任等级。或者,在所谓的“沙箱”中隔离了多天的文件,且没有展现任何带有恶意软件的迹象,可以是“可信的”,但是可能比由可信来源数字地签署的文件的等级低。又或者,特定的文件可以接收来自用户的关于它能够被信任的肯定的反馈。这样的文件可以接收基于关于其可信性的反馈量的信任等级,并且对于标识间谍软件和广告软件尤其有用。这样,根据本发明的各方面,白名单数据存储不仅仅包括“可信”文件的文件签名。
尽管本发明的前述讨论是参考计算机的,然而应该理解,本发明可以在几乎任何计算设备上实现,包括但不限于,拥有处理器、通信连接、用于存储信息的存储器的,且能够执行文件签名生成的计算机。例如,合适的计算设备可以是个人计算机、笔记本或图形输入板计算机、个人数字助理(PDA)、小型机或大型计算机、混合计算设备(诸如蜂窝电话/PDA的组合)等。
图5是示出可在白名单数据存储410中存在的示例性字段的框图。在一实施例中,白名单数据存储410会为每一白名单列出的文件在数据存储中存储一个记录,且每一记录包括用于存储信息的一个或多个字段。如图5所示,白名单数据存储410中的每一记录包括签名字段502。该签名字段存储文件签名,不论该文件签名是否是仅基于文件的更持久部分而生成的。如上所述,它对标识一特定文件享有的信任等级经常是有用的。这样,该示例性记录还包括信任字段504。如所示,信任字段包括从1到10的数值,10表示最高信任而1是最低信任。然而,应该理解,这个等级只是说明性的,且不应被解释为对本发明的限制。又或者,信任字段504也可以用于标识恶意软件。例如,如果一个文件被分配信任等级0,则这可以是该文件被认为是恶意软件的指示。
在白名单数据存储410中还示出了附加数据字段506。如其名称所暗示的,附加数据字段506包括对用户可能有用的、关于白名单列出的文件的信息。如图5所示,该附加数据字段可以标识在文件所分配的信任等级背后的依据,诸如文件创作者或来源、观察到的行为、没有恶意软件的行为等等。几乎任何有关的信息都可以存储在附加数据字段506中。类似地,在另一实施例中,任何数量的字段可以包括在白名单数据存储410中。
图6是示出用于确定一个文件是否作为可信任的文件在白名单中列出的示例性例程600的流程图。在块602处开始,计算机接收到一未知/不可信文件,这意味着计算机还不知道该文件是否是恶意软件,或者它是否被白名单列出。在块604处,为该接收到的文件生成一签名。为文件生成签名在下面关于图7的说明中描述。
图7是示出根据本发明的各方面,用于生成文件签名且适用于图6中的例程600的示例性子例程700的流程图。在判定块702处开始,作出关于该文件是否是用户可修改文件的判断。如果该文件不是用户可修改文件,则在块704处,示例性子例程700为该文件生成基于整个文件的签名。其后,在块710处,示例性子例程700返回所生成的签名并终止。
如果该文件是用户可修改文件,则在块706处,示例性子例程700过滤出文件的用户可修改部分。而后在块708处,子例程700基于文件剩余的、未被滤出的部分生成文件的签名。在生成了文件的签名之后,示例性子例程700在710返回生成的签名并终止。
再次参考图6,在生成文件的签名后,在块606处,示例性例程600与白名单服务408连接。如上所述,白名单服务可以是安装在计算机或局域网上的本地服务/文件,或者是诸如在图4中所标识的远程白名单服务。另外(未示出),可以存在多个白名单服务。例如,安装在计算机上的白名单服务可以含有少量计算机经常遇到的文件签名。如果一个签名未在本地白名单服务中找到,则计算机可以转向含有大量签名的网络白名单服务。更进一步地,如果一个签名在本地或网络白名单服务中都没有找到,则可以参考远程/全球白名单服务,诸如图4所示的白名单服务408。当然,远程白名单服务408可能仅包括那些全球可用的文件,诸如来自于操作系统提供者的帮助或服务文档。根据一实施例,本地白名单服务知道网络白名单服务并与之通信,且网络白名单服务知道远程白名单服务并与之通信,使得如果文件的签名没有找到,则对本地白名单服务的单个请求相继地检查另一个服务。
当与白名单服务连接后,在块608处,例程600提交签名且获取对应于该文件的信任等级。在判定块610处,假定白名单服务也标识恶意软件(尽管本发明不如此限制),作出关于该文件是否被标识为恶意软件的确定。如何处理恶意软件在本领域中是公知的,且包括诸如删除文件、隔离文件或从文件中清除恶意软件的措施。其后,程序600终止。
如果该文件根据从白名单服务408中获取的信任等级没有被标识为恶意软件,那么在块614处,例程600根据所建立的与该文件信任等级相关的政策允许该文件进入计算机系统。例如,如果该信任等级是最高的,则计算机用户很可能确保该文件是完全值得信任的,且能够允许该文件为任何目的进入系统。或者,如果信任等级相当的低,则计算机系统可以被设计为允许该文件以某些约束进入系统,诸如,但不限于,隔离该文件一段时间、在所谓的沙箱中执行该文件、在该文件操作时禁用某些特征网络能力等。在允许文件进入计算机系统之后,示例性例程600终止。
尽管上述例程600包括一关于文件是否是恶意软件的二元的,即,是/否判断,然而在一实际实施例中,可以根据与文件相关联的信任等级作出众多判断。例如,可以作出关于信任等级是否比值8大的判断,这样自动允许任何拥有该信任等级或更高等级的文件进入。类似地,可以要求信任等级在3到7之间的文件在所谓的沙箱内执行一段时间。更进一步地,信任等级低于3的文件必须在准入计算机系统之前被隔离。因此,示例性例程600应该被视作仅是说明性的,且不应该被解释为对本发明的限制。
尽管示出和描述了本发明的诸多实施例,包括最优实施例,然而可以理解,在其中可以进行诸多修改而不背离本发明的精神和范围。
权利要求
1.一种用于标识接收到的文件中的恶意软件的计算机系统,所述计算机系统包括处理器;用于接收文件的通信连接;以及存储器;其中,配置所述计算机系统,使得一旦在所述通信连接处接收到一文件确定所接收到的文件是否是用户可修改文件,如果是选择所接收到的文件中那些更持久的部分;基于所接收文件的那些更持久的被选择部分生成文件签名;以及基于所生成的文件签名,确定所接收到的文件是否是恶意软件。
2.如权利要求1所述的计算机系统,其特征在于,所述计算机系统通过将所生成的文件签名与含有可信文件记录集合的白名单数据存储中的文件签名进行比较,基于所生成的文件签名确定所接收到的文件是否是恶意软件,其中,每一记录包括一可信文件的文件签名。
3.如权利要求2所述的计算机系统,其特征在于,还包括一白名单数据存储。
4.如权利要求2所述的计算机系统,其特征在于,所述的白名单数据存储对于所述计算机系统是远程的,且其中,所述计算机系统通过所述通信连接访问所述白名单数据存储。
5.如权利要求2所述的计算机系统,其特征在于,所述计算机系统还通过将所生成的文件签名与已知恶意软件的文件签名进行比较,基于所生成的文件签名来确定所接收的文件是否是恶意软件。
6.如权利要求1所述的计算机系统,其特征在于,所述计算机系统通过将所生成的文件签名与已知恶意软件的文件签名进行比较,基于所生成的文件签名来确定所接收的文件是否是恶意软件。
7.一种响应于接收文件在计算机设备上执行的用于确定所接收的文件是否是恶意软件的方法,所述方法包括确定所接收的文件是否包含表面数据区,如果是过滤出所接收的文件中那些是表面数据区的部分;基于所接收文件中未被过滤出的剩余部分,生成文件签名;以及基于所生成的文件签名,确定所接收的文件是否是恶意软件。
8.如权利要求7所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件包括,将所生成的文件签名与白名单数据存储中的文件签名进行比较,所述白名单数据存储包括可信文件记录的集合,且其中,每一记录包含可信文件的文件签名。
9.如权利要求8所述的方法,其特征在于,所述白名单数据存储驻留在所述计算设备上。
10.如权利要求8所述的方法,其特征在于,所述白名单数据存储对所述计算设备是远程的。
11.如权利要求8所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件还包括,将所生成的文件签名与已知恶意软件的文件签名进行比较。
12.如权利要求7所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件包括,将所生成的文件签名与已知恶意软件的文件签名进行比较。
13.一种带有计算机可执行指令的计算机可读介质,当在有能力从外部来源接收文件的计算设备上执行所述计算机可执行指令时,实现一种用于确定所接收的文件是否是恶意软件的方法,所述方法包括确定所接收的文件是否包含表面数据区,如果是过滤出所接收的文件中那些是表面数据区的部分;基于所接收的文件中未被过滤出的剩余部分,生成文件签名;以及基于所生成的文件签名,确定所接收的文件是否是恶意软件。
14.如权利要求13所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件包括,将所生成的文件签名与白名单数据存储中的文件签名进行比较,所述白名单数据存储包括可信文件记录的集合,且其中,每一记录包含可信文件的文件签名。
15.如权利要求14所述的方法,其特征在于,所述白名单数据存储驻留在所述计算设备上。
16.如权利要求14所述的方法,其特征在于,所述白名单数据存储对所述计算设备是远程的。
17.如权利要求14所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件还包括,将所生成的文件签名与已知恶意软件的文件签名进行比较。
18.如权利要求13所述的方法,其特征在于,基于所生成的文件签名确定所接收的文件是否是恶意软件包括,将所生成的文件签名与已知恶意软件的文件签名进行比较。
全文摘要
提供一种用于有效地确定所接收的文件不是恶意软件的系统和方法。在运行中,当在计算设备上接收到一文件,作出关于该文件是否包含用户可修改或表面数据区,即固有地一般不带有或嵌入恶意软件的文件区域的评估。如果该文件包含表面数据区,则那些表面数据区被滤出,且文件签名是基于所接收文件的剩余部分生成的。该文件而后与一已知恶意软件列表进行比较,以确定该文件是否是恶意软件。或者,该文件能够同一已知的可信文件列表进行比较,以确定该文件是否可信。
文档编号G06F1/00GK1766778SQ20051010888
公开日2006年5月3日 申请日期2005年9月29日 优先权日2004年10月29日
发明者D·乌兰格拉特查甘, M·科斯蒂亚, S·A·费尔德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1