背景技术
在目前的世界中,计算机广泛普及。经常,尤其是在商业环境中,它们相互连接成小型或较大的网络。由于软件和数据通常是个人公司的投资设备的重要部分,因此重要的是保护单个计算设备和整个网络及它们的工作站以免受到病毒、特洛伊木马、蠕虫和恶意软件攻击。另一问题和大量的包含不良内容,例如明显的成人内容的文件有关。这些文件经常被没有邀请的和不需要的本地计算设备所接收。
为了解决与病毒有关的安全问题,开发了称为病毒检测程序的保护系统。常规的病毒检测程序的一些例子是Norton AntiVirus,McAfeeVirusScan,PC-cillin,Kaspersky Anti-Virus。这些常规的病毒保护软件包的大多数可被配置,以致它们始终在计算设备的后台中运行,并提供连续的保护。这些病毒保护系统比较新的或者修改的软件的代码和公知病毒的指纹(例如,由病毒引入文件中的部分代码)。其它病毒保护系统比较可在计算设备上获得的所有数据的代码。这导致相当大量的中心处理器(CPU)时间的使用,这限制了计算设备执行其它任务的能力。此外,这些病毒检测程序的工作原理使这些软件包被动地而不是主动地工作,因为需要知道病毒的指纹,以便病毒扫描器识别该病毒。这意味着指纹数据库需要被定期更新,以便不受较新的病毒的攻击。从而,计算机的安全状态不仅取决于外部因素,比如病毒保护软件包的供应商可获得的新病毒的指纹的正确性,而且取决于用户定期进行更新的责任意识。如果自动地从服务器集中提供更新,那么网络容量被降低,因为这些病毒更新必须被发送给多个工作站。
在网络环境中,更新这样的指纹数据库的问题变得更重要,因为这意味着责任被赋予所有用户,所有用户都不得不更新他们的病毒检测程序数据库。另一方面,病毒扫描可由中心服务器执行,从而将对新指纹的更新局限于中心服务器。但是,这意味着需要定期通过网络传送大量的数据,从而利用了大量昂贵的网络带宽,并且可能使网络或服务器容量在其它活动方面超负荷(取决于服务器的客户机的数目)。
为了限制使用的CPU时间的数量,提出了加速病毒扫描过程的其它技术。这些技术通常包括文件内容的散列。散列是“单向函数”的一个应用例子。单向函数是当沿一个方向应用时,使反方向几乎不可能执行的一种算法。单向函数通过对文件的内容进行计算,产生一个值,例如散列值,并且能够唯一地取下该文件的指纹,如果单向函数复杂到足以避免来自不同文件的相同值的话。散列函数的唯一性取决于使用的散列函数的类型,即形成的摘要的大小和函数的质量。良好的散列函数在表中具有最少的冲突,即,向不同的文件提供相同散列值的机会最小。如前所述,这也由计算的摘要,即散列值的大小确定。例如,如果使用128位的摘要,那么能够获得的可能的不同值的数目为2128。
已知将散列法用于病毒检查,可能在网络环境中。一般来说,计算选择的在本地计算机上运行的应用的散列值,在本地计算机从安全计算机上的数据库检索存储的散列值,从而,保密计算机可以是本地计算机或网络服务器的安全部分,并比较这两个值。如果它们匹配,那么执行该应用,如果它们不匹配,那么执行安全操作。所述安全操作包括将病毒扫描器装入本地计算机。它还可包括向网络管理人员报警。此外,还已知将散列法用于区分从不同工作站对软件的可访问性,并作为检查软件是否被许可的一种方式。
另外已知将散列法用在识别计算机系统或设备上的流氓软件的方法中。该方法一般可用在网络环境中。计算待执行的应用软件的散列值,该散列值被传送给服务器,并与先前存储的值比较。基本特征之一在于该方法使用服务器上的数据库,所述服务器是具有大量客户机的服务器。从而,通过由不同的客户机添加信息建立该数据库,以致多数应用软件和它们的对应指纹已被存储在该数据库中。通过以应用软件的所有者检查应用软件的可靠性,建立该数据库。如果这是不可能的,那么系统还能够给出试探结果,评估本地计算机上的该应用自其它客户机的发生。
已知利用包括文件内容和消息内容标识符的电子邮件发送电子文件的方法。根据消息内容标识,消息被传送给客户或者不被传送给客户。该方法可被用于组织电子邮件传送,但是它具有集中于电子邮件传送的缺点,该方法不允许保护网络中的所有文件的安全。
另外已知监视电子邮件消息,从而保护计算机系统免受病毒攻击和未经请求的商业电子邮件(UCE)的方法。这样的系统最好安装在邮件服务器或者安装在因特网服务提供商,所述系统通过计算摘要,比较所述摘要与先前接收的电子邮件的存储摘要值,检查电子邮件的特定部分。这样,确定电子邮件是否具有批准的摘要,或者电子邮件是否是UCE,或者包含电子邮件蠕虫。该系统的缺点在于它集中于电子邮件病毒和SPAM,它不允许检查可能被例如从外部存储装置,比如软盘或CD-ROM复制的文件,或者被例如特洛伊木马感染的所有数据文件或可执行文件。
已知按照网络服务器的某些策略规则控制软件在不同工作站上的执行,从而通过对软件分类获得改进的计算机安全系统。这种分类可以几种形式的数据为基础,其中一种是例如软件数据的散列值。这一般是通过计算程序的散列值(如果选择装入和执行所述程序的话),并比较该散列值和可信值,从而确定执行的规则来实现的。所述分类还可以内容的散列值,数字签名,文件系统或网络路径或者URL范围为基础。
上面提及的方法和系统描述了使用散列函数来检查应用软件是否可信,或者控制应用软件的执行。然而没有讨论利用常规的病毒扫描器对网络中的所有新文件进行病毒扫描,从而更新每个本地计算机上的常规病毒扫描器的指纹的数据库的必要性有限的问题。病毒检测系统和数据监视系统的缺点之一在于它们通常只有在病毒或恶意软件已被发现,指纹已知,并且网络中或者网络的本地计算设备上的本地数据库已被更新时,才能够提供对病毒或恶意软件的防范。后者意味着在病毒或恶意软件的首次扩散和病毒检测系统或数据监视系统能够检测并对抗病毒或恶意软件之间,存在相当长的一段时间。一般来说,目前当执行重要的病毒检测系统更新或升级,或者数据监视系统更新或升级时,整个系统,例如网络于是被重新检测,这既费时又消耗计算能力,或者系统根本不被重新检测,在系统中留下可能的病毒传染或者恶意软件。
发明内容
本发明的目的是提供一种识别网络中的本地计算设备上的新文件的内容的系统和方法。本发明的另一目的是提供一种更新或升级内容识别装置的方法。本发明的优点包括下述一个或多个:
a)提供高度的可靠性,同时限制更新每个本地计算设备上的内容识别程序所需的信息的必要性。
b)具有高的效率,并提供网络系统中的高度安全性。
本发明的另一优点是如果本发明被用作病毒检查器,那么安全级别被进一步提高,因为常规病毒扫描器的指纹数据库不必在每个本地计算设备上被更新。
本发明的另一特殊优点在于对整个网络,对网络来说新的文件的内容只被识别一次。
本发明的另一特殊优点在于网络中的总的处理器(CPU)处理时间和网络通信量被减少。
本发明的另一特殊优点在于当升级或更新病毒识别装置,恶意软件识别装置或内容识别装置时,更新或升级的版本被有效地用于主动搜索“被污染的”内容。即使是对于在“污染物”,即病毒,恶意软件或感染或不能允许的内容的生成,并且识别装置能够检测所述“污染物”之间产生的数据,这也可以提供网络安全性。因为当检测到受污染的文件时,基于元数据库中的可用数据,能够容易地类似识别和处理相似的文件,能够高效地进行网络的清理,同时减少CPU和网络时间。
本发明的另一优点在于在仍然使用中心病毒检查装置的时候,文件不必被发送给中心服务器以便被检查,相反可在本地被检查,从而避免了在往来于中心服务器的传送过程中,破坏该文件的危险。
利用根据本发明的网络中的内容识别的方法和系统,获得至少一个上述目的和至少一个优点。
识别网络环境中的数据文件的内容的方法被用于具有与包括一个中心基础结构的网络环境的剩余部分链接的至少一个本地计算设备的网络。所述方法和系统包括利用单向函数计算在所述至少一个本地计算设备之一上的新文件的参考值,将所述计算的参考值传送给所述中心基础结构,比较所述计算的参考值和先前存储在网络环境的剩余部分内的参考值。
该方法还包括在比较之后,如果发现所述计算的参考值和先前存储的参考值匹配,那么确定该新文件的内容已被识别,并检索对应的内容属性;或者如果发现所述计算的参考值和任何先前存储的参考值不匹配,那么确定该新文件的内容还未被识别,随后对所述中心基础结构共享该本地计算设备上的所述新文件,所述中心基础结构通过经由网络环境远程识别该内容,识别所述新文件的内容,确定和该新文件的内容对应的内容属性,并存储所述内容属性的副本,在所述确定之后,根据所述内容属性在所述本地计算设备上触发一个操作。
在识别网络环境中的数据文件的内容的方法中,参考值可以是散列值。先前存储的参考值可被存储在中心基础结构中。在识别网络环境中的数据文件的内容的方法和系统中,识别新文件的内容可包含利用中心基础结构上的防病毒检查器装置扫描新文件寻找病毒。
该方法还可包含在执行所述新文件的内容的所述识别之前,将新文件从本地计算设备传送给中心基础结构。此外,它可包含将新文件的副本存储在中心基础结构上。可通过将副本从本地计算设备传送给中心基础结构,实现将新文件的副本存储在中心基础结构上。存储文件的地址可和散列值一起被存储,以便能够快速追踪存储在中心基础结构上的文件的副本。
在本发明的方法中,根据所述内容属性在本地计算设备上触发操作可包含用所述新文件的在先版本的副本替换本地计算设备上的新文件。此外,根据所述内容属性在本地计算设备上触发操作还可包含用从网络环境的剩余部分恢复的另一版本的所述新文件替换本地计算设备上的新文件。
本发明的方法还可包含在执行所述新文件的内容的所述识别之前,向中心基础结构共享本地计算设备上的新文件,从而通过经由网络环境远程识别所述内容,执行所述新文件的内容的所述识别。该方法可包含检查本地计算设备上的本地代理的运行。
此外,可在将对应于新文件的内容属性传送给本地计算设备之后,在本地计算设备上触发操作。
在识别网络环境中的数据文件的内容的方法中,识别新文件的内容可包含扫描成人内容,扫描自我宣传广告消息或未经请求的商业电子邮件(UCE),和扫描受版权保护的信息中的一个或多个。可利用所述中心基础结构上的扫描装置进行扫描。该方法还涉及一种提供内容防火墙,从而一个本地计算设备与外部网络连接,所述外部网络可以是例如因特网,所述一个本地计算设备还与由剩余的本地计算设备形成的网络环境连接的方法和系统。所述一个本地计算设备从而使所述网络环境与外部网络连接,并且是直接与在所述网络环境外部的来源连接的唯一计算设备。该本地计算设备从而起保护网络环境免受源于外部网络中的地方的攻击的内容防火墙的作用。该本地计算设备可起按照混杂方式工作的内容防火墙的作用,即,该本地计算设备起查看经过的所有通信量,执行散列和比较功能,并联系代理从而强制执行策略的内容防火墙的作用。
该方法特别涉及一种检查网络和其组件的安全状态的方法。在本实施例中,确定网络环境中数据文件的安全状态的方法用在具有与包括一个中心基础结构的网络环境的剩余部分链接的至少一个本地计算设备的网络中。该方法包括利用单向函数计算在所述至少一个本地计算设备之一上的新文件的参考值,将所述计算的参考值传送给所述中心基础结构,比较所述计算的参考值和先前存储在网络环境的剩余部分内的参考值,在比较之后,如果发现计算的参考值和先前存储的参考值相符,那么确定该文件的安全状态已被检查,并检索对应的安全状态;或者如果发现计算的参考值和任何先前存储的参考值不相符,那么确定该新文件的安全状态还未被识别,随后所述中心基础结构检查该新文件的安全状态,确定对应于该新文件的安全状态,存储安全状态的副本,随后在所述确定之后,根据该新文件的安全状态在所述本地计算设备上触发一个操作。所述操作可以是例如使本地计算设备的用户和网络中的其它用户不能访问该文件,或者恢复被感染的文件。
上面描述的方法可由在本地代理上执行的操作触发。由在本地代理上执行的操作的触发可以是例如运行一个应用或者打开一个文件。
本发明还涉及一种按照上述系统,改变识别网络环境中的文件的内容的系统的方法,所述网络环境包括计算单向函数的装置,与包括中心基础结构的网络环境的剩余部分链接的至少一个本地计算设备,以及识别内容的装置,所述方法包括改变识别内容的所述装置或者计算单向函数的所述装置,扫描网络环境的剩余部分寻找利用单向函数计算的参考值,对于每个参考值,向所述网络环境请求对应于所述参考值的文件,将文件发送给识别内容的装置,识别所述文件的内容,确定和文件的内容对应的内容属性并存储所述内容属性的副本,将内容属性发送给包含该文件的每个本地计算设备,并在所述发送之后,根据所述内容属性在所述本地计算设备上触发一个操作。
本发明还涉及一种按照上述系统,改变识别网络环境中的文件的内容的系统的方法,所述网络环境包括计算单向函数的装置,与包括中心基础结构的网络环境的剩余部分链接的至少一个本地计算设备,以及识别内容的装置,所述剩余部分包括存储的数据库,所述方法包括改变识别内容的所述装置或者计算单向函数的所述装置,扫描网络环境的剩余部分寻找利用单向函数计算的参考值,对于每个参考值,向所述网络环境请求对应于所述参考值的文件,识别所述文件的内容,确定和文件的内容对应的内容属性并存储所述内容属性的副本,将内容属性发送给包含该文件的每个本地计算设备,并在所述发送之后,根据所述内容属性在所述本地计算设备上触发一个操作。所述扫描网络环境的剩余部分寻找利用单向函数计算的参考值可包含扫描存储的数据库寻找利用单向函数计算的参考值。向所述网络环境请求对应于所述参考值的文件后面可以是将所述文件发送给识别内容的装置。另一方面,文件也可被共享,可通过网络进行所述内容的识别。可在安全的连接下进行共享,并且所述共享可局限于该本地计算设备和中心基础结构之间。识别网络环境中的文件的内容的系统的改变可由计算参考值的新的单向函数的引入来触发,也可由识别文件的内容的装置的更新来触发。在该方法中,扫描网络环境的剩余部分寻找利用单向函数计算的参考值可包含关于利用单向函数计算的参考值扫描网络环境的剩余部分,在预定的日期之后产生所述参考值。所述预定的日期可和为其进行所述改变的病毒或恶意软件的创建日期有关。所述将内容属性发送给包含该文件的每个本地计算设备可包含利用存储的数据库识别包含该文件的每个本地计算设备,并将内容属性发送给所述识别的本地计算设备。该方法还可被用于只在网络环境的剩余部分扫描部分散列密钥,例如,在某一日期之后其内容被识别的文件的散列密钥,以使待执行的操作最小化。可从内容属性检索以前的内容识别的日期。对于未与所述网络连接的每个所述识别的本地计算设备,将内容属性发送给所述识别的本地计算设备可包含在等待列表中创建一个条目,当该本地计算设备重新与网络连接时,按照所述等待列表上的所述条目,将内容属性发送给所述识别的本地计算设备。如果具有对应于所述参考值的所述文件的本地计算设备都没有与网络连接,那么向所述网络环境请求和所述参考值对应的文件可包含在等待列表中创建一个条目,当该本地计算设备重新与网络连接时,按照所述条目向所述本地计算设备请求对应于所述参考值的文件。所述方法还可包含识别内容属性是否对应于不需要的内容,如果是,那么根据存储在所述数据库中的数据,识别最先将所述不需要的内容引入网络中的本地计算设备。
参考值可以是散列值。识别内容的装置可以是防病毒检查器装置,扫描成人内容的装置,扫描自我宣传广告消息的装置,或者扫描受版权保护信息的装置。根据所述内容属性在本地计算设备上触发操作可包含用从网络环境的剩余部分恢复的另一版本的文件替换本地计算设备上的文件,或者可包含用文件的在先版本的副本替换该文件,或者可包含使该文件处于隔离状态或者除去该文件。
本发明还涉及一种当在网络上执行时,执行任意上述方法的计算机程序产品。本发明还涉及一种识别网络环境中的文件的内容的系统,所述网络环境包含与包括一个中心基础结构的网络环境的剩余部分链接的至少一个本地计算设备,所述剩余部分包含一个存储的数据库,从而系统包含利用单向函数计算所述本地计算设备上的新文件的参考值的装置,将所述计算的参考值传送给所述中心基础结构的装置,和比较所述计算的参考值与来自数据库的先前存储的参考值的装置。系统还包含根据所述计算的参考值与先前存储在所述剩余部分内的参考值的比较,确定新文件的内容是否已被识别的装置,位于中心基础结构上,如果新文件还未被识别,那么识别新文件的内容,以便分配内容属性的装置,将所述内容属性存储在所述剩余部分内的装置,根据所述新文件的内容属性,在所述本地计算设备上触发操作的装置。
在根据本发明的系统中,识别文件的内容的装置可包含在所述中心基础结构上的防病毒检查器装置。此外,将新文件的副本存储在所述剩余部分内的装置。识别文件的内容的装置可包括扫描成人内容的装置,扫描自我宣传广告消息的装置和扫描受版权保护信息的装置中的一个或多个。
本发明还涉及一种存储计算机程序产品的机器可读数据存储设备,当在网络上执行时,所述计算机程序产品执行任意的上述方法。此外,本发明还涉及执行任意上述方法的计算机程序产品的传输。
在附随的独立权利要求和从属权利要求中陈述了本发明的特殊的优选方面。从属权利要求的特征可和独立权利要求的特征组合,并且可恰当地与其它从属权利要求的特征组合,并且仅仅如权利要求中明确陈述的那样。
虽然一直存在数据文件的病毒扫描和内容识别的方法的不断改进,变化和发展,不过本发明的原理代表相当新颖的改进,包括违反现有实践的改进,从而提供了这种性质的更高效、稳定和可靠的方法。
结合附图,根据下面的详细说明,本发明的这些和其它特性、特征和优点将变得明显,附图举例图解说明了本发明的原理。下面的说明只是出于举例说明的目的,而不是对本发明范围的限制。下面引用的附图标记参见附图。
具体实施方式
下面将关于特定的实施例,并参考附图说明本发明,但是本发明并不局限于此,相反本发明只由权利要求限定。描述的附图只是示意性的,而不是对本发明的限制。附图中,出于图解说明的目的,一些部件的尺寸可能被放大,未按比例绘制。在说明书和权利要求中使用术语“包含”的地方,并不排除其它部件或步骤。
此外,说明书和权利要求中的术语第一、第二、第三等用于区分相似的部件,并不一定描述时序顺序或先后顺序。显然在恰当的情况下,这样使用的术语是可互换的,并且这里描述的本发明的实施例能够按照不同于这里描述或图解说明的其它顺序操作。
本说明中,术语“文件”、“程序”、“计算机文件”、“计算机程序”、“数据文件”和“数据”可互换使用,按照使用的语境,任何一种使用可意味着其它术语。术语“散列”和“散列法”将被用作单向函数的应用例子,但是本发明并不局限于特定形式的单向函数。
术语“计算设备”应被广泛理解成包括能够进行计算和/或执行算法的任何设备。计算设备可以是膝上型计算机、工作站、个人计算机、PDA、智能电话机、路由器、网络打印机或者具有处理器并且能够与网络连接的任何其它设备,比如传真设备或复印机,或者任何专用电子设备,比如所谓的“硬件防火墙”或调制解调器中的任意一个。
通过识别网络中的每个新文件的内容,保护和控制网络的方法和系统可用在任何类型的网络上。所述网络可以是专用网络,所述专用网络可以是虚拟专用网,局域网(LAN)或广域网(WAN)。所述网络也可以在公共广域网,例如因特网的一部分内。如果使用公共广域网的一部分,那么这可通过由服务提供商使用ASP或XSP商业模型,远程提供用于识别每个文件的内容的方法和系统来实现,其中向操作本地计算设备的付费客户提供中心基础结构。图1中表示了例证的网络10,图1表示了几个本地计算设备50a、50b、...、50i和一个中心基础结构100,也称为服务器。对于根据本发明的保护和控制网络10的方法来说,与网络10连接的本地计算设备50的数目没有限制。在商业环境中,本地计算设备50的数目一般从几个到几百个。识别存在于网络10中的每个新文件的内容的方法和系统可和许多不同的操作系统,比如Microsoft DOS,Apple Macintosh OS、OS/2、Unix、DataCenter-Technologies′操作系统...一起使用。
为了提供保护并确定文件的内容标识的快速方法,根据本发明的方法和系统将确定存在于本地计算设备50上的新文件的散列值,将它们和中心服务器上的先前存储的散列值和文件信息进行比较,并利用中心基础结构100上的内容识别引擎确定对网络10来说新的文件的内容。描述新文件的内容的内容属性随后被发送给本地计算设备50,在本地计算设备50进行恰当的操作。内容属性也可不被发送给本地计算设备50,而是从中心基础结构100触发恰当的操作。新文件一般是其中已在本地计算设备50上产生新内容,或者当收到外部文件时的文件。措词“文件”可以指的是数据,以及应用软件(也称为软件)。
通过将文件或数据发送给中心基础结构100,在中心基础结构100检查文件或数据,或者通过本地共享文件或数据,以致中心基础结构100能够远程识别文件或数据的内容,可完成文件或数据的内容的识别。所述共享可在安全环境中实现。所述共享可局限于具有所述文件或数据的本地计算设备50和中心基础结构100之间。
中心基础结构100包含数据库,也称为元数据库110,元数据库110包含为已存在于本地计算设备50之一上的文件计算的每个散列值的记录。除了散列值之外,该记录还包含许多其它字段。在这些字段中,存储文件源信息。对应于特定散列值的文件源信息包括文件名,对应于该散列值的文件所驻留的本地计算设备50的列表,包括在本地计算设备50的文件系统上到该文件的路径,以及最后的修改日期。表1中给出了特定文件的文件源信息的一个例子。
Filename |
Myexampleword.doc |
Path |
c:data |
Assetname |
Pcmarketing001 |
ModDate |
23/4/2002 |
表1
在另一字段,存储识别由文件封闭的内容的类型的内容属性的列表。所述内容属性可以指的是例如(但不限于)包含病毒的文件,受版权保护的MP3音频文件,受版权保护的视频文件,为图片的文件,为可能包含成人内容的图片的文件,为自我宣传广告消息(SPAM)的文件,为HOAX的文件,包含直率抒情诗的文件,或者包含多条可执行代码的文件。
中心基础结构100还包含内容识别引擎120。内容识别引擎120可以是使用文件的内容来确定该文件包含何种内容的应用软件130或者一组应用软件130a、130b、130c、130d...。这些应用软件可以是各种各样的:
-病毒扫描器:这是一种扫描存在的文件的内容,并将其与病毒的已知指纹的数据库进行比较的软件。它可以是常规的病毒扫描软件,例如Symantec Corporation的Norton anti-virus,Network AssociatesTechnologies Inc.的McAfee,Trend Micro的PC-cillin,Kaspersky Lab的Kapersky Anti-Virus,F-Secure Corporation的F-secureAnti-Virus...。
-图片中的成人内容扫描器:它是一种关于可能代表成人内容的阴影、色彩、纹理的存在,扫描所存在文件的内容的软件。关于成人内容扫描图片已为人们所知。成人内容可由例如所显示的裸体的数量确定。肤色具有在特定范围中的色调饱和值。于是,如果图像被扫描,那么能够确定具有肤色特征的像素的数量,并将其和像素的总数进行比较。肤色像素与像素总数的比值允许确定图像中可能的成人内容的比例。通常引入阈值,以致能够按照图像的可能成人内容对图像分类。按照类似的方式,视频图像可被分类,从而视频被分成其不同的帧,其中按照上述方法对图像分类。
-因特网内容分级的扫描器:它是一种根据PICS,即因特网内容选择平台标记系统关于成人内容扫描对象的软件。基于自愿地,因特网内容提供商可提供具有确定因特网对象中的成人内容的PICS分级的因特网对象。PICS分级被存储在对象的元数据中。因特网对象的观看者一般看不到该数据。分级系统众所周知,在Netscape网络浏览器中提供了因特网内容分级的扫描器的一个例子,用于扫描网页的内容。
-关于可能指示成人内容的直率抒情诗扫描对象的扫描器。已知该扫描器可用于文本文件和音频文件。音频文件首先被转换成文本文件。随后,扫描文本文件,并将其与包含直率抒情诗的数据库进行比较。
-SPAM引擎:这是一种关于所谓的SPAM的存在扫描电子邮件消息的内容的软件。识别SPAM范围的算法已知。这些算法一般基于分解电子邮件消息中的文本,利用统计分析程序将统计信息和文本联系起来,并使神经网络引擎与统计分析程序耦接,从而根据统计指示符识别不需要的消息。
可在内容识别引擎120中使用的应用软件的其它例子是,例如扫描受版权保护的内容的引擎,比较文件的内容与受版权保护信息的数据库的引擎等。在一些采用中,操作人员可扮演内容识别引擎120的角色,他用内容识别属性手动标记文件。当内容识别引擎120被激活时,它将将来自本地代理的文件作为输入,并产生代表所检测的内容的一组属性。
内容识别引擎120还允许检查本地计算设备50上的数据是否遵守网络上或者这些本地计算设备50上的许可数据的规则。对于不同的本地计算设备50来说,这些规则可以不同。
从而,内容识别引擎120将被构造成集合一组第三方引擎的功能的一种软件。
在本发明的另一实施例中,描述了根据上述实施例的一种系统和方法,从而和存储在元数据库110中的特定散列值对应的记录还包含一个字段,该字段存储和所述散列值对应的文件在中心基础结构100上的位置。在该实施例中,存在于网络10中的本地计算设备50上的所有不同文件的副本可被存储在中心基础结构100上。从而,该实施例的中心基础结构100还可包括大量的存储空间。这最好是中心基础结构100的安全部分,并不直接与网络10连接,以致在本地计算设备50上的文件被例如病毒破坏的情况下,可以使用存在于本地计算设备50上的文件的同样副本。
利用散列函数计算文件的散列值。散列函数一般是单向函数,即,在已知摘要的情况下,至少在计算上禁止重构初始数据。可以使用不同类型的散列函数:均可从RSA Data Security Inc.获得的MD5,SHA-1或ripemd,在Wollongong大学设计的haval,为Xerox安全散列函数的snefru等。最经常使用的散列函数是MD5和SHA-1。MD5算法将任意长度的消息用作输入,并产生输入的128位“指纹”或“消息摘要”作为输出。推测在计算上不可能产生具有相同消息摘要的两条消息,或者不可能产生具有已知的预先指定的目标消息摘要。MD5算法供数字签名应用之用,在数字签名应用中,在按照公钥密码系统用私钥加密之前,大型文件必须按照保密方式‘压缩’。MD5算法被设计成在32位机器上相当快速。另外,MD5算法不需要任何大的替换表;该算法可被相当紧凑地编码。备选的散列函数SHA-1,即安全散列算法-1是一种产生160位散列的散列算法。这种算法的较新版本还提供256和512的位长度。
在上面提及的描述保护和/或控制网络10的方法和系统的实施例中,本地代理被安装在本地计算设备50上。本地代理是一种在本地计算设备50上运行,并且执行某些算法和程序的软件。本地计算设备50上的本地代理一般在本地计算设备50上产生新内容的情况下被触发。为了避免不必要的散列值计算和数据传送,建立一种确定哪些操作将触发本地代理,哪些操作不触发本地代理的策略。例如,如果正在创建文本文档,那么每次存储该文档时,必须检查该文件。关于这种文档的策略最好应是如果文件被存储和关闭,那么检查文档。可触发本地代理,从而启动内容识别处理的操作的一些例子是打开或接收电子邮件消息,打开或接收电子邮件附件,运行可执行文件,运行具有.dll或.pif扩展名的文件...。从而应用该策略允许避免文档的连续检查和扫描,导致不必要的散列计算和内容识别操作的数目的限制,从而限制CPU时间的不必要使用和网络通信量方面的负荷。内容识别的方法和系统并不因产生文件的应用的类型而受到限制。
内容识别处理可由本地计算设备50上的本地代理触发,或者可由中心基础结构100触发。一般在新的算法或工具被用于内容识别的情况下发生后一种处理。这样的新算法或工具可以是优化的算法和工具,或者是先前未安装的工具。这些工具的一些例子(并不局限于这些功能)可以是病毒检查,检查文件是否是受版权保护的MP3音频文件,检查文件是否是受版权保护的视频文件,检查文件是否是可能包含成人内容的图片,检查文件是否被标记为SPAM或HOAX,检查文件是否包含直率的抒情诗,或者检查文件是否包含受版权保护的多条可执行代码。这些工具的更新可能影响文件的状态,从而原则上影响元数据库110中的对应记录。于是,根据内容识别装置120的更新的类型,更新对应记录是有意思的。
在一个具体实施例中,该方法涉及一种网络环境的病毒检查器。可应用这种方法的网络10和关于先前的实施例描述的网络10相同。本地代理计算本地计算设备50上的新文件的散列值。该新文件可包含在本地计算设备50上产生的新内容,或者在本地计算设备50上接收的外部文件。新文件的散列值和对应文件信息随后被发送给中心基础结构100,也称为服务器,在中心基础结构100,将其与先前存储的和已存在于网络10的不同本地计算设备50上的文件对应的散列值进行比较。这种比较允许检查在整个网络10中,该文件是否是新的。另一方面,可首先将该散列值和对应于存在于特定本地计算设备50上的文件的散列值和文件信息的本地数据库进行比较,随后,如果发现该文件还未存在于本地计算设备50上,那么可与中心基础结构100交换所述散列值和对应文件信息,以致可检查在整个网络10中,该文件是否是新的。虽然对于常规的中心病毒检查器来说,传送每个新文件的文件信息和散列值只对应于网络通信量的很小一部分,但是这种备选方案可进一步减少用于病毒检查的网络通信量。如果散列值被识别为在网络10上是新的,那么元数据库代理触发本地代理,将和新的散列值对应的文件从本地计算设备50传送给中心基础结构100。可按照安全的方式进行文件的传输,即,该文件被这样传送,以致它不可能受存在于网络连接上的病毒影响,或者以致如果它包含一个病毒,那么该病毒不能在整个网络10内扩散。为此,可以使用已知的安全传输路由,隧道和/或已知的会话加密/解密技术。在一个备选实施例中,文件或数据可相对于中心基础结构被共享,病毒检查装置可远程检查该文件或数据。在中心基础结构100上安装和更新的常规病毒检查器随后关于病毒检查该文件。所述病毒检查器可以是任何常规的病毒检查器,例如Symantec Corporation的Norton anti-virus,Network AssociatesTechnologies Inc.的McAfee,Trend Micro的PC-cillin,Kaspersky Lab的Kapersky Anti-Virus,F-Secure Corporation的F-secureAnti-Virus...。
本发明中的上述实施例的一个具体优点在于不必在每个本地代理更新病毒扫描软件,相反这只限于中心基础结构100的病毒扫描软件的更新。这样,网络10的安全级别被显著提高,因为安全性并不依赖于网络10的不同用户更新他们的病毒扫描软件的准时性。如果被扫描的文件没有任何病毒,那么在元数据库110中,它将被标记成无病毒文件。如果在文件中发现一个病毒,那么该文件将被标记成危险的。将对元数据库110进行查询,以找出网络10内具有相同的被破坏的散列密钥的所有文件。其结果是文件和路径,以及该文件所位于的assetname的列表。该信息可被用于进行从整个网络10消除发现的病毒在所有本地计算设备50,即所有工作站上的危害的操作。这样,能够根据对第一本地计算设备50的病毒检测,对其它本地计算设备50进行主动病毒扫描。根据关于病毒检查定义的策略,病毒引擎将通知安装在受感染的系统上的代理除去该文件,如果可能的话,用由位于中心基础结构100上的病毒引擎传送的恢复版本,或者还不具有病毒的在先版本文件替换。通过关于该文件的在先版本搜索元数据库易于实现后者,或者通过在另一本地计算设备50上搜索未感染的版本来实现。如果不能从另一本地计算设备50或者驻留在中心基础结构100上的元数据库检索未感染的版本,那么病毒扫描器应具有允许它将文件的新的已消毒副本存储在中心基础结构100上的特征。对于其它内容识别程序包来说,也存在这些优点。
在一个备选实施例中,如果具有新的散列值的文件在网络10中已被识别,那么该文件可被自动本地共享,随后远程检查器可传送允许通过利用文件共享,跨越网络10检查该文件的文件系统,而不是将该文件传送给中心基础结构。内容标记仍然由服务器进行。为了提高安全性,对共享文件的可访问性局限于服务器。此外,java小程序可被传送给本地代理,以允许检查其它文件。
前面的实施例是对通过网络10扫描本地计算设备50的中心病毒检查器的改进。只有当本地驱动器,例如C:\,D:\,...被共享时,这才是可能的。除了共享在安全性方面的危险之外,本地用户能够容易地改变本地共享性质,从而防止远程检查器检查文件。本发明至少部分避免了这种情况,因为改变网络10共享性质不会影响计算新文件的散列值,并将其发送给中心基础结构100的操作。
另一优点在于本发明节省了本地计算设备50上的CPU时间,因为CPU不必持续进行病毒检查,CPU只需要计算单向函数。本发明还节省了网络时间:管理服务器不必利用病毒更新,更新本地计算设备50上的病毒检查器,因为只使用和更新单一的中心病毒检查器。
图3表示了根据上面提及的实施例,由本地计算设备50上的本地代理触发的内容识别处理的方法200。下面讨论在该处理中,在本地计算设备50和在中心基础结构100上发生的不同步骤。
内容识别处理建立在本地代理对本地计算设备50上的新数据或应用的不断扫描上。对数据和应用的扫描受确定何时应触发本地代理的策略规则限制,如上所述。如果检测到“新”文件,那么启动通过新文件的内容识别,保护和控制网络10的方法。这是步骤210。方法200随后进入步骤212。
在步骤212,利用散列函数,比如MD5或SHA-1计算“新”文件的散列值。通过利用本地计算设备的一些CPU时间进行该计算。然而,使用的CPU时间的数量显著少于如果使用常规的病毒检查器来检查本地计算设备50上的文件所需的CPU时间。方法200随后进入步骤214。
在步骤214,散列值和文件源信息从本地代理被传送给网络10的中心基础结构100。如果需要的话,这种传送可以是安全传送,从而避免在该数据的传送过程中,位于网络连接上的病毒改变文件源信息或散列密钥。可通过已知的安全传输路由,经由隧道,或者利用已知会话加密/解密技术来实现这种安全传输。
在步骤216,比较散列值和已存在于元数据库110中的数据。因为在元数据库110中,存储了存在于网络10中的所有旧文件-即如前所述,已存在于网络10上,并且不是“新的”每个文件的散列值和文件源信息,因此能够检查该文件是否已存在于网络10中。于是,如果该散列值被识别为新的,那么这意味着对于整个网络10来说,该文件是“新的”。如果该文件是新的,那么方法200进入步骤218。如果该散列值不是新的,那么这意味着该文件已存在于网络10中的本地计算设备50上的某处。这种情况下,已存在描述该文件的内容的内容属性。方法200随后进入步骤224。
在步骤218中,元数据库代理触发本地代理,将和新的散列值对应的文件从本地计算设备50传送给中心基础结构100。可按照安全的方式进行该文件的传送,即,文件可被这样传送,以致它不能被存在于网络连接上的病毒影响,或者以致如果该文件包含病毒,那么该病毒不能在整个网络10内扩散。为此,可使用已知的安全传输路由,隧道和/或已知的会话加密/解密技术。方法200随后进入步骤220。
在步骤220,该文件被装入内容识别引擎120中,该文件被处理。对于该处理,使用中心基础结构100的CPU时间。如前所述,内容识别引擎120可包含常规的病毒检查器,检查图片信息的装置,检查SPAM的装置等。这可以是重复的操作,在该重复的操作中,轮流调用多个内容识别引擎。方法200随后进入步骤222。
在步骤222中,对于该文件,确定识别文件内容的内容属性。这些内容属性随后被存储在元数据库110中,从而允许识别该文件的状态,如果在未来的操作中,在另一本地计算设备50上认为该文件是“新的”的话。方法200随后进入步骤224。根据所使用的实施例,下一步骤可包括将文件存储在中心基础结构100上,并将到该文件的路径添加到元数据库110。图3中未示出该步骤。
在步骤224中,内容属性被发送给本地代理。根据该内容属性,本地代理按照关于这些内容属性设定的策略规则,执行恰当的操作。这在步骤226中进行。所述恰当的操作可以是例如如果文件被感染,那么删除该文件,用未被感染的在先版本替换该文件,...。在一个具体实施例中,基于策略规则的恰当操作的执行由元数据库110的代理触发,以致可消除步骤224。
内容策略是根据内容识别引擎120确定的内容属性,确定应对文件进行什么操作的策略。内容策略可包含各种操作,比如删除文件,删除文件并且用在先版本代替该文件,将文件复制到另一计算设备上同时在始发计算设备上保留副本,将文件转移到另一计算设备上同时删除始发计算设备上的原始文件,记录文件的存在,改变文件的属性,比如隐藏该文件或者使之只读,使文件不可读,使文件不可执行等。例如当从中心基础结构100收到内容属性时,内容策略将由本地代理执行。用于该代理的内容策略将由该代理从中心策略基础结构下载到本地计算设备50。
图4表示了根据上面提及的实施例,由内容识别引擎120触发的内容识别处理的方法300。下面讨论在该处理的过程中,在本地计算设备50上和在中心基础结构100上发生的不同步骤。
一般在新算法或工具被用于内容识别的情况下,使用该处理。这样的新算法或工具可以是优化的算法和工具,或者先前未安装的工具。如前所述,这可由下述策略管理:内容识别处理的触发可由正被用于内容识别的新算法和工具的类型确定。
方法300由内容识别引擎120的改变来启动,例如通过向内容识别引擎120提供新算法或工具。一个典型的例子是在病毒或恶意数据已被产生,病毒或恶意数据已被识别和将在病毒检查器或内容识别装置中使用的指纹被产生之后,立即更新在病毒检查器或内容识别装置中使用的指纹数据库。由于在病毒的生成和病毒检查器或内容识别装置能够检测病毒或恶意数据的时间之间存在相当长的一段时间,其间网络不安全,因此具有允许按照有效方式的主动检查,即在该时间间隔中产生的文件的检查的系统是有利的。在常规的系统中,整个网络一般需要被重新扫描,需要大量的CPU时间和网络带宽,或者使系统处于不安全状态。
当触发时,在方法300的第一步骤302中,扫描元数据库110,寻找和散列密钥对应的散列值。方法300随后进入步骤304。
在步骤304,请求和散列密钥对应的文件。可以向中心基础结构100上的中心存储器请求该文件,或者可向本地计算设备50请求该文件。本地计算设备50随后允许中心基础结构100上传对应的文件。到和该散列值对应的文件的路径可从与每个散列值对应的记录获得。如果所述记录存储均对应于所述对应文件的副本的不同路径,那么中心基础结构100上的代理通过例如扫描在所述记录中列举的路径,直到找到此时与网络10连接,并且允许文件的上传的本地计算设备50为止,检索该文件的一个副本。方法300随后进入步骤306。
一旦该文件被检索,那么该文件被发送给内容识别引擎120。这在步骤306中进行。升级的内容识别引擎120随后扫描文件的内容,并产生和文件对应的内容属性。方法300随后进入步骤308。
在步骤308中,内容属性被存储在元数据库110中,以允许未来的安全步骤立即识别文件的内容。方法300随后进入步骤310。
在步骤310中,内容属性被发送给驻留在存储对应文件的本地计算设备50之上的每个本地代理。路径可在存储于元数据库110中的对应散列密钥的记录中找到。在该步骤中,内容属性被发送给在对应散列密钥的记录中提及其路径的每个文件。如果在检查时,本地计算设备50未与网络连接,即从网络断开,那么可创建等待列表,以便一旦该计算机与网络连接,就检查必要的文件。等待列表可在向某些文件提供内容属性的步骤中,以及在请求文件以识别其内容的步骤中创建。该列表可由中心基础结构或者在位于网络下游的本地分配点创建。当本地计算设备50是便携式计算设备,比如膝上型计算机时,尤其频繁发生本地计算设备50的断开。按照这种方式,也保证了可为网络一部分的断开的本地计算设备50的安全性。方法300进入步骤312。
在步骤312中,对应的本地计算设备50上的本地代理执行随本地计算设备50而不同的与内容属性相应的策略。
本发明的实施例的一个主要优点在于对整个网络10来说新的文件只需要被扫描一次。如果在另一本地计算设备50上,使用、安装、打开或存储并关闭该文件的相同副本,那么该文件将被中心基础结构100识别成为网络10所知,这样,避免了重新检查文件的内容的需要。如果本发明被用于具有大量本地计算设备50的网络10,那么这特别有利。
实施例的方法也可在具有一个中心基础结构100,许多分配点,和每个所述分配点的许多本地计算设备50的网络上实现,所述分配点由一个计算设备构成。这样,至少部分处理步骤,比如创建等待列表或者主动搜索可由在分配点的计算设备上的代理执行。分配点可对应于网络中物理隔离的区域。
当操作时,识别新文件的内容的方法和系统可随意包括定期检查本地代理的‘心跳’,即,可检查本地代理是否仍然在本地计算设备50上运行。这能够避免用户本地关闭该代理,从而使本地计算设备50易受攻击。如果本地代理已被关闭,那么可向网络管理员发生警告。此外,可向本地计算设备50发送报警消息,从而向本地计算设备50的用户报警。网络管理员还可使本地计算设备50处于隔离状态,以致它不能损害网络10中的其它本地计算设备50。此外,中心代理还可尝试重新运行本地代理。
按照类似的方式,识别新文件的内容的方法和系统可随意地定期检查本地计算设备50是否仍然与网络10连接。如果本地计算设备50不再与网络10连接,那么本地代理还可工作,将新文件的散列密钥存储在等待列表中,以便在网络连接被恢复时立即被检查。同时,可使对应的文件处于隔离状态,或者取决于文件的类型,可防止文件被执行。
上面说明的实施例可被用作与外部网络连接的不同计算设备的内容防火墙。对于每个输入/输出文件,输入/输出消息或者输入/输出数据帧,内容防火墙计算散列值,检查它是否是新的,检查它是否关于特定的内容被标记,并强制执行与所述特定内容相关的策略。
在另一实施例中,说明将本发明用作内容防火墙的另一种结构。图5中表示了其中可使用该方法和系统的计算机网络的示意图。只有一个可重新配置的防火墙电子设备50,比如可以采取专用可重新配置防火墙电子设备的形式的本地计算设备直接与外部网络400,比如因特网连接,剩余的本地计算设备410并不与外部网络400直接连接,而是聚集在网络环境中,并且只通过它们与可重新配置的防火墙电子设备的连接,与外部网络400连接。外部网络可以是可用的任何可能网络。由可重新配置的防火墙电子设备50表示的内容防火墙的目的是保护包含剩余的本地计算设备410的网络环境免受起源于外部网络中的地方和/或设备的攻击。可重新配置的防火墙电子设备50或者包含元数据库的本地副本,或者它可使用到中心基础结构100的高速安全网络,它是内部网络的一部分。这允许元数据库内的快速查询。在操作中,起内容防火墙作用的可重新配置的防火墙电子设备50执行下述操作:计算输入文件或输入消息或输入数据帧的散列值。随后,比较计算的散列值和元数据库,所述元数据库或者被本地存储或者通过使用高速安全网络,确定输入文件、输入消息或输入数据帧是否是新的。此外,检查该文件、该消息或该数据帧是否关于特定内容被标记。根据所述特定内容,强制执行和所述特定内容相关的策略。所述策略可以是使其通过从而到达其最终目的地,丢下它,对其进行记录,或者使其处于隔离状态等。该系统需要足够的CPU计算能力,以便不使网速明显减慢。
在与网络连接的本地计算设备都没有装备可拆卸设备,即,允许在该设备上打开或执行未扫描的内容的情况下,这是一种非常安全并且可管理的设置。
在本发明的另一实施例中,提供一种按照混杂模式将本发明用作内容防火墙的类似结构。内容防火墙从而查看经过的所有通信量,执行散列和比较功能,并联系代理以便强制执行策略。这种方法的优点在于不存在单一的故障点,并且不再存在瓶颈,此外,在本地计算设备上没有任何资源被用于计算散列值。另外,不使用任何带宽来联系中心元数据库。缺点是本地代理需要被安装在内部网络的所有计算设备上。
在不同的实施例中描述的方法和系统还可包括执行识别或报告关于病毒或恶意数据的存在的辅助信息的步骤。根据在元数据库110中提供的信息,能够获得病毒或恶意数据从其进入网络的本地计算设备50的识别。这可基于例如关于路径和修改日期或生成日期的信息。此外,根据在元数据库110中提供的信息,例如文件类型,可以获得有关病毒如何工作的更多信息。元数据库还允许识别病毒或恶意数据是如何在网络中扩散的。这样获得的信息可被存储和/或使用,以便进一步提高网络的安全性。如果为发生的许多事件存储该信息,那么可进行整体分析,例如统计分析,指出网络的安全性方面的弱点,即,指出易受病毒或恶意数据攻击的本地计算设备50。这可自动进行。随后可采取调整后的安全措施,例如执行该本地计算设备的常规完全检查,或者只向该本地计算设备50提供对外部源,例如因特网的有限访问。
在元数据库中获得的信息可被用于恢复目的,因此当本地计算设备50发生故障时,可从元数据库获得所有必需的信息,例如路径文件。当本地计算设备50或部分不再能够被连接时,根据元数据库中的信息,存储在中心基础结构上的文件和/或存储在网络中的其它地方的文件,至少能够恢复部分的丢失信息。
根据上面描述的实施例,本发明包括一种计算机程序产品,当在计算设备上执行时,所述计算机程序产品提供按照本发明的任何方法的功能性。此外,本发明包括存储采取机器可读形式,并且当在计算设备上执行时,执行本发明的至少一种方法的计算机产品的数据载体,例如CD-ROM或磁盘。目前,这样的软件通常在因特网上提供,因此本发明包括通过局域网或广域网传送根据本发明的打印计算机产品。