专利名称:软件漏洞利用防护的制作方法
软件漏洞利用防护本申请是2007年3月26日递交的申请号为200780018949.2、发明名称为“软件漏洞利用防护”的发明专利申请的分案申请。相关申请的交叉引用:本申请要求2006年3月24日递交、题为“ SOFTWAREVULNERABILITY EXPLOITATION SHIELD (软件漏洞利用防护)”的美国临时申请N0.60/785,723的优先权和权益,该美国临时申请通过引用被整体包括在本文中。直量因特网是向数以亿计的计算机和使用者开放的庞大的计算网络。因特网的使用者群体一直参与到关于计算机安全漏洞(vulnerability)的探索、仓ll新和对话中。漏洞是一个软件中可以被“恶意代码”利用的弱点。一些使用者(“恶意分子(malefactor)”)设法使用恶意代码来利用漏洞。但是恶意代码的构造是不容易的。通常,只有非常有天赋的编程者能够编写在利用(exploit)给定漏洞中有效的恶意代码,并且通常编程者不得不经过一段冗长乏味的劳动来创建够格的(competent)恶意代码。一般,当有天赋的编程者创建恶意代码的实例(example)时,他或者她在因特网上公开张贴(post)所述代码,从而包括恶意分子的其他人可以检查(inspect)、测试、评论和使用所述代码。在因特网使用者群体中,在利用任何具体漏洞中有效的恶意代码的实例通常数量稀少。单个恶意代码实例普遍被很多不同的恶意分子借鉴并使用,所述恶意分子将所述恶意代码实例并入(例如将其“剪切并粘贴”)到多种各异的包(package)中,例如被设计为进行“偷渡式下载(drive-by download) ”的图像文件或者网站。他们还可以将其与很多不同的有效载荷(payload)(例如根套件(rootkit)或者按键记录器(keystrokelogger))捆绑。理论上,很多漏洞存在于很多复杂的软件产品内部,所述软件产品例如操作系统(例如微软公司所公布的Windows )。然而,在研究者发现给定漏洞之前,该漏洞是未知的。所以,一旦发现特定漏洞,研究者自然倾向于通过谈论其或者尝试以公开可监控的方式利用其来公开分享该发现。特定漏洞的发现很少长时间被保密。新闻散布开去,并且在因特网公告板上和聊天室中或者从对新的利用的公共监控而变得可获得。典型地,一旦受影响软件产品的公布者知悉漏洞,他们着手设计、编写、测试并发布(release)软件“补丁(patch) ”来封堵该已知漏洞。然而,打补丁的过程伴随着延迟,并且因此出现“风险窗口”。例如,当发布补丁时,公布者通过因特网下载或者其他分发方式(distribution)使其为计算机使用者可获得,从而他们可以在其计算机上安装所述补丁。对于运行有漏洞的(vulnerable)软件的计算机的拥有者来说,补丁的准备、分发和安装可能是一种令人痛苦的缓慢而麻烦的过程。例如,时间在软件公布者致力于补丁的同时流逝。随后,补丁的安装可能需要该拥有者部分的手动操作,可对于拥有成千上万台计算机的企业来说是一种负担。此外,例如企业的拥有者常常必须在其很多计算机上安装补丁前测试所述补丁,而补丁有时候将与其他应用的期望功能相冲突。如果公布者在发布补丁之后发现补丁有误而必须被召回、改写和重发,还可能流逝额外的时间。
当漏洞变得在群体中已知后,在计算机上的软件被打补丁之前,能够感染所述特定计算机的良好构造的恶意代码被开发并使用。恶意分子设法通过该风险窗口入侵,而一些编程者则竭力帮助他们。因此,一旦得知漏洞,有天赋的编程者通常争分夺秒地创建并公布恶意代码,以便使该风险窗口中可用的时间最大化。到如今,很多类型的安全软件(例如防病毒软件)已经尝试了通过在二进制文件(即签名)中查找独特地标识该实例中编程代码的结构的字节序列来阻止特定的恶意代码实例。典型地,这样的对文件或其他代码的审查(examination)发生在开放式系统互连
(OSI)模型的应用层。更具体地,对病毒的扫描是在文件被储存在文件系统后或者在文件被保持在计算系统上的存储器中时对所述文件进行的。尽管这些系统对于大多数病毒来说良好起效,但是通过使用被利用的漏洞,恶意代码可以在比应用层更深的等级上进入被定为目标的计算机(targeted computer)。这样,利用这些软件漏洞的恶意分子可以在典型的安全软件可以检测到恶意代码并采取行动之前使所述恶意代码被执行。
发明内容
通过本发明的示例性实施方案,克服了当前安全软件系统的上述认识到的缺陷和不足。例如,本文描述的实施方案规定通过在传输层监控恶意代码来为作为恶意分子的潜在目标的计算机缩窄风险窗口。注意,提供本发明内容来以简化方式介绍对概念的选择,这在下面的具体实施方式
中会进一步描述。本发明内容并不打算标识所要求保护的主题的关键特征或主要特征,并且它也不打算被用作在确定所要求保护主题的范围时的帮助。一个实施方案提供用于通过检查到计算系统的网络流量并且在恶意代码可以被执行和/或安装前识别所述恶意代码来使对安装在所述计算系统上的软件的漏洞利用最小化的机制。使用安装在所述计算系统上的安全组件在传输层(例如传输通信协议(TCP)套接层)监控网络流量。当接收到以所述计算系统为目的的消息时,将被包括在所述消息中的数据与用于识别恶意代码的利用证据进行比较。所述利用证据通过收集关于所述恶意代码的信息的安全服务提供给所述安全组件。这样的利用证据可以包括这些事情以及代码的签名、与该代码相关联的因特网协议(IP)地址、已知提供恶意代码的网站的独特资源定位符(URL),以及其他因素。基于所述消息中的数据与所述利用证据的所述比较,识别规则,所述规则指示所述安全组件对所接收的消息采取适当行动。例如,如果该比较指示该消息包括或者潜在地包括恶意代码,则安全组件可以阻挡该所接收的消息进入计算系统,同时允许其他流量留到所述计算系统。可替换或者可附加的,安全组件可以告知使用者(例如,通过使用者界面)关于该消息由于包括恶意代码而具有的潜在风险,因此允许使用者采取适当的行动。在另一实施方案中,安全组件可以禁用恶意代码的任何有害特征。另一方面,如果在消息的传输层与利用证据的比较未指示该消息包括或者以其他方式与恶意代码相关联,则可以允许该消息传到该计算系统。本发明提供一种方法,所述方法在网络计算环境中的计算系统处通过检查到所述计算系统的网络流量并且在恶意代码可以被执行和/或安装前识别所述恶意代码来使对安装在所述计算系统上的软件的漏洞利用最小化,所述方法包括:使用安装在所述计算系统上的安全组件在传输层监控计算系统的流入网络流量;在所述传输层接收作为所述网络流量的部分的消息,所述消息被识别为以所述计算系统为目的;将被包括在所述接收的消息中的数据的至少一部分与用于识别恶意代码的利用证据进行比较,所述利用证据通过收集关于所述恶意代码的信息的安全服务提供给所述安全组件;基于与所述利用证据的所述比较,识别一条或更多条规则,所述规则指示所述安全组件对所述接收的消息进行一项或更多项行动。在实施方案中,所述传输层是一个或更多个TCP套接级。在实施方案中,所述比较将数据的所述至少一部分识别为对应于恶意代码,并且所述一条或更多条规则指示所述安全组件进行以下中的一项或更多项:阻挡所述接收的消息进入所述计算系统;向所述计算系统的使用者通知所述消息与所述恶意代码的所述对应,以便允许所述使用者采取适当行动;或者修改所述消息,以便禁用所述恶意代码的任何有害特征。在实施方案中,在阻挡所述接收的消息的同时,所述一条或更多条规则允许其他良性消息传到所述计算系统。在实施方案中,所述一条或更多条规则用使用者界面向所述计算系统的所述使用者通知所述消息的所述对应,并且允许所述使用者接受或者拒绝所述消息。在实施方案中,所述利用证据包括与恶意代码相关联的已知电子地址列表。在实施方案中,所述电子地址列表包括网站的IP地址或URL,并且其中所述消息的来源的IP地址或URL与所述与恶意代码相关联的已知电子地址列表进行比较。在实施方案中,所述利用证据包括所述恶意代码的一个或更多个签名,所述签名为代表所述恶意代码的独特的数据结构。在实施方案中,所述方法还包括:从所述安全服务接收命令,所述命令指示被用于识别恶意代码的利用证据应该基于一种或更多种事件而过期;以及一旦所述一种或更多种事件发生,如一条或更多条规则所定义的那样对所述利用证据采取行动。在实施方案中,所述事件是确定已经经过了风险窗口或者所述恶意代码低于某威胁评级阈值中的一种或更多种,并且其中对所述利用证据的所述行动包括取消对所述利用证据的所述比较、从所述安全组件删除所述利用证据,或者暂时中止对所述利用证据的所述比较中的一种或更多种。本发明还提供一种在网络计算环境中的计算系统处的包括计算机可读储存介质的计算机程序产品,所述计算机可读储存介质具有编码在其上的计算机可读指令,当所述指令在计算环境中被执行时进行一种方法,所述方法包括:使用安装在所述计算系统上的安全组件在传输层监控计算系统的流入网络流量;在所述传输层接收作为所述网络流量的部分的消息,所述消息被识别为以所述计算系统为目的;将被包括在所述接收的消息中的数据的至少一部分与用于识别恶意代码的利用证据进行比较,所述利用证据通过收集关于所述恶意代码的信息的安全服务提供给所述安全组件;基于与所述利用证据的所述比较,识别一条或更多条规则,所述规则指示所述安全组件对所述接收的消息进行一项或更多项行动。在实施方案中,所述传输层是一个或更多个TCP套接级。在实施方案中,所述比较将数据的所述至少一部分识别为对应于恶意代码,并且所述一条或更多条规则指示所述安全组件进行以下中的一项或更多项:阻挡所述接收的消息进入所述计算系统;向所述计算系统的使用者通知所述消息与所述恶意代码的所述对应,以便允许所述使用者采取适当行动;或者修改所述消息,以便禁用所述恶意代码的任何有害特征。在实施方案中,在阻挡所述接收的消息的同时,所述一条或更多条规则允许其他良性消息传到所述计算系统。在实施方案中,所述一条或更多条规则用使用者界面向所述计算系统的所述使用者通知所述消息的所述对应,并且允许所述使用者接受或者拒绝所述消息。在实施方案中,所述利用证据包括与恶意代码相关联的已知电子地址列表。在实施方案中,所述电子地址列表包括网站的IP地址或URL,并且其中所述消息的来源的IP地址或URL与所述与恶意代码相关联的已知电子地址列表进行比较。在实施方案中,所述利用证据包括所述恶意代码的一个或更多个签名,所述签名为代表所述恶意代码的独特的数据结构。在实施方案中,所述计算机程序产品还包括:从所述安全服务接收命令,所述命令指示被用于识别恶意代码的利用证据应该基于一种或更多种事件而过期;以及一旦所述一种或更多种事件发生,如一条或更多条规则所定义的那样对所述利用证据采取行动。在实施方案中,所述事件是确定已经经过了风险窗口或者所述恶意代码低于某威胁评级阈值中的一种或更多种,并且其中对所述利用证据的所述行动包括取消对所述利用证据的所述比较、从所述安全组件删除所述利用证据,或者暂时中止对所述利用证据的所述比较中的一种或更多种。本发明的额外的特征和优点将在下面的描述中给出,或者部分从该描述中将明显,或者可以通过实施本发明而获悉。通过在所附权利要求书中特别指出的手段或者组合可以认识到并且获得本发明的特征和优点。本发明的这些和其他特征将从以下描述和所附权利要求书变得更清楚,或者可以通过如之后阐述的那样实施本发明而获悉。
为了描述本发明的上述及其他有益特征可以被获得的方式,将参照本发明的具体实施方案给出对上面简要描述的本发明的更具体的描述,所述实施方案在附图中被示出。理解到这些附图仅仅描绘本发明的典型实施方案并且因此不被视为是对其范围的限制,将通过使用所附附图来以额外的特性和细节描述和解释本发明,在附图中:图1根据示例性实施方案图示具有用于使软件漏洞利用最小化的安全服务和安全组件(component)的计算网络;以及图2根据示例性实施方案图示用于实现这样的方法的流程图,所述方法为作为恶意分子的潜在目标的计算机减小风险窗口。
具体实施例方式本发明的范围涉及到用于通过在传输层监控恶意代码来为作为恶意分子的潜在目标的计算机缩窄(nairowing)风险窗口的方法、系统和计算机程序产品。如下面更详细地讨论的,本发明的实施方案可以包括专用或通用计算机,所述专用或通用计算机包括各种计算机硬件或模块。
如之前提及的,本发明的实施方案通过为作为恶意分子的潜在目标的计算机缩窄风险窗口来克服安全软件系统的上述认识到的缺陷和不足。在该实施方案下,目标计算机(target computer)的拥有者安装持续性(ongoing)安全服务的安全组件,所述持续性安全服务在因特网上或者以其他方式监控关于新的漏洞发现和新的恶意代码实例的新闻、讨论、技术发展和其他信息。当该安全服务找到恶意代码的实例时,它收集关于该恶意代码的信息,以便适当地识别所述恶意代码。例如,该安全服务可以检查其数据结构,设法针对其确认一签名。此外,该安全服务可以通过识别恶意代码的IP地址、URL或其他电子地址来确定其来源。事实上,存在安全服务可以用来识别恶意代码的许多信息。一旦收集到关于恶意代码的信息,该信息被用于创建包括利用证据(exploitevidence)和安全命令的安全升级,所述安全升级随后被分发到安全组件的安装。每个安全组件使用该利用证据和安全命令来在传输层(例如TCP套接(socket)级)检查流向计算机的因特网或网络数据流量(traffic),查找匹配该利用证据的消息(message)。通过在传输层检查数据,安全组件可以在计算机上的任何应用或其他软件可以执行或安装恶意代码之前认出(spot)所述恶意代码。此外,安全组件可以监控和识别被设计为利用安装在计算系统上大多数任何应用的软件漏洞的恶意代码。如果安全组件找到匹配该利用证据的数据传输,它可以执行多种保护措施中的任何措施。例如,它可以阻挡该特定传输进入计算机,同时允许其他传输通过,和/或它可以向计算机使用者通知该数据传输,从而使用者可以采取适当的行动。它还可以修改该传输,从而禁用(disable)任何有害的特征。在安全组件被安装之后,随着时间流逝,它可能变得笨拙(unwieldy)。它可能一直查找如此多的签名、电子地址或其他利用证据,从而它使得其安装所在的计算机的性能下降,并且它可能潜在地与期望的功能和传输相冲突。因此,为了使该问题最小化,本文下面描述的其他示例性实施方案提供各种选项来限制该监控操作。注意,上面的实施方案与典型的防火墙系统和网站内容过滤器显著不同。例如,防火墙仅仅进行分组(packet)检查来查看协议、源和目的,以作出允许或不允许这些流量的二元决策。类似地,网站内容过滤器通常关注于IP地址或URL的白/黑名单以允许或不允许分组,这也在本文的实施方案的预期中。然而,本文的实施方案检查消息内容,基于从不断地监控这些恶意代码的安全服务生成的安全证据、命令和规则查找以软件中的漏洞为目标的恶意代码。换言之,本文的实施方案不是简单地查看分组的源并基于此作出二元决策,而是提供更鲁棒的系统,该系统不断地监控恶意代码的形成,并且随后可以以如下面更详细地描述的各种方式创建可以动态改变和被实现为适当处理这些内容的证据、命令和规则。尽管在下面关于附图更详细地描述了对有益特征的更具体的参考,但是落入本发明范围内的实施方案还包括用于承载或者在其上储存有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是任何可以被通用或专用计算机访问的可用介质。以实施例而非限制性的方式,这样的计算机可读介质可以包括RAM、ROM、EEPR0M、CD-ROM或其他光盘储存装置、磁盘储存装置或者其他磁储存设备,或者任何其他可以被用于以计算机可读指令或数据结构的形式承载或储存期望的程序代码装置并且可以被通用或专用计算机访问的介质。当信息在网络或者另一通信连接(硬连线的、无线的,或者硬连线或无线的组合)上被转移或者提供到计算机时,恰当来说,计算机将该连接视为计算机可读介质。因此,恰当来说,任何这样的连接被称为计算机可读介质。上述内容的组合也应该被包括在计算机可读介质的范围内。计算机可执行指令例如包括导致通用计算机、专用计算机或者专用处理设备进行某项或者某组功能的指令和数据。尽管已经以对于结构特征和/或方法动作来说具体的语言描述了本主题,但是应该理解,所附权利要求书中所限定的主题并不是必须限于上面描述的具体特征或者动作。相反,本文所描述的具体特征和动作被公开作为实现权利要求书的示例性形式。使用在这里,术语“模块”或“组件”可以指在计算系统上执行的软件对象(object)或者例程(routine)。本文所描述的不同的组件、模块、引擎和服务可以被实现为在计算系统上执行的对象或者过程(例如实现为单独的线程(thread))。尽管本文描述的系统和方法优选地是实现在软件中,但是实现在硬件或者软件和硬件的组合中也是可能并且被预期的。在该说明书中,“计算实体(entity)”可以是任何之前在本文中定义的计算系统,或者任何在计算系统上运行的模块或者模块组合。图1图示计算网络100,所述网络100被配置为通过为作为恶意分子的潜在目标的计算机缩窄风险窗口来克服当前安全软件系统的上述认识到的缺陷和不足。如所示出的,目标计算系统已经在其上安装了与持续性安全服务110相关联的特殊安全组件105。安全服务110在因特网上或者以其他方式不断地和/或周期性地监控诸如关于新的漏洞发现和新的恶意代码实例的新闻115、讨论150、技术发展或报告120以及其他信息的这些事情。当然,用于收集关于潜在恶意代码的信息的来源可以大大不同,并且可以任何如竖直省略号124所指示的那样包括任何周知的形式。此外,该监控可以采取各种形式,包括手动搜索和/或阅读因特网或其他讨论150,或者例如通过从已知或者潜在的恶意分子圈或者所记录的恶意分子行为、工具、试验等的例子聚集(glean)相关陈述和代码的探测器(probe)、蜜罐(honeypot)、搜索自动程序(bot)等进行的情报自动搜集。当然,除非明确声明,否则类似于信息的来源,用于收集关于恶意代码的信息155的机制(mechanism)在本文中仅被用于图示说明性的目的,并且并非意图限制或者以其他方式缩窄本文的实施方案。当安全服务110找到关于恶意代码的信息,它可以将这些数据储存为恶意代码数据155。如将被理解的,当从各种来源或者机制收集所述恶意代码数据155时,所述恶意代码数据155可以呈现很多形式。例如,恶意代码数据155可以包括关于恶意代码的数据结构165的信息。更具体地,安全服务110可以检查恶意代码的数据结构,设法确认诸如恶意代码的签名或者其他代表(r印resentation)。每个恶意代码实例可以具有独特的数据结构165或者其内的数据序列。该独特的数据随后可以(如下面描述的那样)被用来识别恶意代码的实例。注意,识别恶意代码的所述签名或代表可以采取任何周知的形式。例如,签名可以是全部代码,或者仅仅是代码的部分(例如字节序列或者二进制串)。此外,签名可以是代码或其任何部分的哈希。事实上,恶意分子通常试图通过将代码的部分加密、创建代码的很多变体或者使用任何数量的其他误导性机制来欺骗安全系统。因此,使用在这里,术语“签名”应该被宽泛地解读为意指任何被用于代表恶意代码的独特数据结构或标识(identifier)。在另一个实施方案中,安全服务110还监控与利用已知漏洞的尝试相关联的IP/URL地址175。当它的确识别到这样的IP/URL地址时,这些也可以被添加为恶意代码数据155,如下面将描述的,所述恶意代码数据155可以被传送到安全组件195,用于阻挡从这些来源接收的数据(例如通过列黑名单)。当然,存在可以如下面将更详细地描述的那样收集的其他170恶意代码数据155。恶意代码数据155被用于创建安全升级130,安全服务110将所述安全升级130分发到安全组件195的安装以用于查找恶意代码。如所示出的,安全升级130可以包括数种信息和代码。例如,安全升级可以包括利用证据135,所述利用证据可以入下面更详细地描述的那样与消息或者消息的部分进行比较。该利用证据135可以包括诸如数据结构165的签名、IP/URL或者其他电子地址175,以及其他从安全服务110收集的信息170的这些内容。安全升级130还可以包括诸如安全命令145和规则140的这些内容,如下面更详细地描述的,所述安全命令145和规则140被安全组件195用于确定关于如何使用利用证据135以及一旦识别出恶意代码采取何种行动的这些事情。安全组件195从安全服务110接收安全升级130,并且相应地修改它的库(library) 104。安全组件195随后检查流向计算机105的因特网或网络数据流量125。实施方案提供了在传输层190对这样的流量的检查,所述传输层在OSI模型中处于网络层185和包括文件系统层118的应用层122之间。尽管在OSI模型中存在很多其他层,并且存在很多可以被用于表现通信信道的其他抽象模型,但是在此所示出的模型仅仅是出于简化的原因。但是,存在可以与本文描述的实施方案一起使用的其他层和其他模型。传输层190的实例包括TCP套接级,在目标计算机105上,所述TCP套接级是运行在TCP网络上的两个程序之间的双向通信链路的端点。通过在传输层190检查数据,安全组件195可以在计算机上的任何应用或其他软件可以在存储器或者文件系统层118执行或安装恶意代码之前认出所述恶意代码。此外,由于即使不是全部,大部分针对应用的网络流量也是流动通过传输层190,所以安全组件195可以监控和识别被设计为利用安装在计算系统上大多数任何应用的软件漏洞的恶意代码。例如,当在传输层190接收到消息180时,安全组件195使用其安全比较器模块102,可选地以及安全命令112,来将消息180的部分与利用证据106进行比较。如果比较器模块102找到匹配该利用证据106或者违反安全命令112中所定义的策略的数据传输,安全组件195执行如规则108可以定义的多种保护措施中的任何措施。例如,如果安全比较器模块将消息180识别为包括如利用证据106所定义的签名、电子地址或者恶意代码的其他代表,则安全组件195可以采取规则108所定义的适当的行动。在一个实施方案中,规则108可以指示安全组件195阻挡特定传输或者消息180进入目标计算机105,同时允许其他良性传输通过。可替换的实施方案定义这样的规则108,所述规则108允许安全组件195向使用者通知关于所述数据传输,从而使用者可以采取适当的行动。这样的通知可以为向使用者提供关于消息的信息(例如来源、违规、潜在风险,等等)和采取行动的选项(例如删除、允许、隔离(quarantine)、制止(hold)等)的使用者界面的形式。在再另一个实施方案中,规则108可以指示安全组件195修改传输或消息180,从而任何有害的特征被禁用或者以其他方式消除。例如,安全组件195可以自动移除消息中包含恶意代码的部分或者禁用代码本身内有害的特征。当然,存在任何数量的可以如规则108所定义的那样以任何组合而采取的行动。例如,规则108可以在通知使用者关于传输108之前首先移除或者禁用消息180的有害特征。此外,规则108可以被目标系统105的使用者设置或修改、被安全服务110设置或修改、默认编程在安全组件195上,或者使用任何周知的方式设置或修改。因此,在这里,除非明确声明,否则对一动作的任何具体使用或者该动作如何被设置或者应用仅仅是用于图示说明的目的,并且并非意图限制或以其他方式缩窄本文描述的实施方案的范围。如上面提及的,在安全组件195被安装之后,随着时间流逝,它可能变得笨拙。它可能一直查找如此多的签名、电子地址或其他利用证据106,以致它使得其安装所在的计算机105的性能下降,并且它可能潜在地与期望的功能和传输相冲突。因此,为了使该问题最小化,本文描述的示例性实施方案提供各种选项。一种示例性选项规定仅注意特别令人忧心的恶意代码的利用证据106。安全服务110评估所发现的恶意代码实例,以确定所述恶意代码有多大可能性对被定为目标的计算机造成严重威胁。该评估可以包括查看相关漏洞的性质和范围、用来编写该实例代码的工作技巧的质量等等。服务110随后作出威胁评级(rating) 160并且在安全升级130和/或任何必要的命令145内分发所述威胁评级160,用于查找安全服务110判断为最有害的那些代码实例的利用证据106。例如,可以使用阈值威胁评级160来确定是否在安全升级130中将或不将包括利用证据135。当然,可以存在任何数量的基于这样的威胁评级160判断什么利用证据135、安全命令112或者规则140应该被包括在安全升级130中或者从安全升级130中排除的方式。另一实施方案规定在相关风险窗口已经关闭后或者如果威胁评级160落在某个设定阈值之下时对安全组件195上的利用证据106、安全命令112和/或规则108进行取消、删除、暂时中止或者进行类似的行动。例如,风险窗口可能作为广泛分发够格且可信的补丁的结果而关闭。或者,它可能因为经验表明相关的恶意代码实例是无害的而关闭。相应地,在安全服务110向安全组件195的安装公布安全升级130之后,它继续监控相关漏洞和恶意代码在因特网群体内的存在。当服务110作出相关风险窗口微小或者不存在的判断时,服务110发出(issue)可以用于将这样的命令145发送到安全组件195安装的风险评级160,即它们应当不再监控利用证据106。当然,对于一些签名、电子地址或者其他恶意代码数据155,风险窗口可能永远不关闭,在这种情况下安全服务110可以选择永不取消对利用证据106的监控。当然,可以存在很多其他用于提升安全组件195的性能的机制。例如,安全服务110可以将安全命令145和规则140发送到安全组件195,所述安全命令145和规则140指示所述安全组件195基于事件的发生而对利用证据106和/或任何与其相关联的安全命令112或规则108进行删除、取消、制止或者进行一些其他行动。这样,安全组件195针对这样的事件的发生监控所述系统,并且随后如命令145和/或规则140所定义的那样采取适当的行动。这样的事件可以基于过期或者诸如安全组件195确定利用证据106或其相关联的恶意代码的威胁评级160为低这样的事情。事实上,可以存在任何数量的可以被用于采取行动来提升安全组件195的性能的事件。此外,可以存在任何数量的可以在事件一旦发生时进行的行动,例如删除、取消、中止、制止等等。因此,除非明确声明,否则任何具体事件和/或如本文所描述的那样采取的行动是被用于图示说明的目的,并且并非意图限制或者以其他方式缩窄本文的实施方案。下面描述根据示例性实施方案可以使用的各种实现的一些具体实施例。这些实现仅仅是可以如何应用所述解决方案的实施例。除非明确声明,它们并非是唯一可能的实施例或实现,并且因此并非意图限制或者以其他方式缩窄本文的实施方案。安全组件195安装在使用者的运行微软Windows XP 操作系统的个人计算机105上。安全服务110被允许以安全的方式将更新130发送到安全组件195。当研究者在因特网上宣布在微软Windows XP 中发现之前未知的漏洞时,安全服务110阅读因特网上编程者/黑客(hacker)之间关于此的讨论。服务110观察到一个编程者张贴用于利用该漏洞的代码。因此,安全服务110测试该代码并且确定其似乎对运行Windows的计算机是一威胁。从该代码,安全服务110确认签名,即标识该代码的独特的数据结构。安全服务110将利用证据135、规则140和命令145发送到安装在该使用者的计算机上的安全组件195,以监控该签名。安全组件195在发送到该使用者的计算机的因特网数据流量中搜索该签名。在传输层190 (例如TCP套接级)对数据流量的搜索,组件195查找该签名而不管该签名可能所在的数据分组或者其可以承载的有效载荷。安全组件195在流入的电子邮件数据流量180中找到与根套件有效载荷组合的该签名。安全组件195阻挡包括该签名的数据单元。在使用者的计算机上的任何软件能够执行或者安装该根套件之前,该数据被阻挡。以另一个实施例的方式,使用者在其运行针对微软Windows 的Mozilla Firefox(S)因特网浏览器版本1.5.0.1 (“浏览器”)的个人计算机上安装安全组件195。安全服务110被允许以安全的方式将更新130发送到安全组件195。服务110在因特网上设下(plant)并维持各种自动的蜜罐、探测器和其他计算机,以搜集恶意代码实例并获知关于这些代码的来源和其他信息。与所述浏览器一起安装的所述探测器中的一些自动访问很多网站,搜索恶意代码。当研究者在因特网上宣布在浏览器中发现某漏洞后的短时间内,特定IP地址(“流氓地址”)的服务器向数个安全服务的探测器发送与利用漏洞的恶意代码捆绑的特洛伊木马(Trojan)。响应于此,安全服务110将可以包括利用证据135和命令145的安全升级130发送到安装在使用者的计算机105上的安全组件195,以将该流氓地址作为正传输到该使用者计算机105的数据的来源而监控。安全组件195在TCP套接级190搜索发送到目标计算机105的因特网数据流量180中的流氓地址。浏览器的公布者发出补丁以关闭相关漏洞。安全服务110确定该流氓地址不再是对运行该浏览器的计算机的威胁,并且将安全更新130传输到安全组件195,以停止搜索流氓地址。还可以关于包括功能步骤和/或非功能动作的方法描述本发明。下面是对在实施本发明时可以进行的步骤和/或动作的描述。通常,功能步骤关于所达到的结果描述本发明,而非功能动作描述用于实现特定结果的更具体的行动。尽管可以以特定顺序描述或者要求保护功能步骤和/或非功能动作,但是本发明并非必须限于步骤和/或动作的任何特定顺序或组合。此外,在对权利要求的引述中一以及在下面对图2的流程图的描述中一使用步骤和/或动作是用于指示这些术语的期望的具体使用。如之前提及的,图2图示本发明的各种示例性实施方案的流程图。对图2的以下描述将偶尔参照图1的相应部件。除非明确说明,否则尽管可以参照该附图中的具体部件,但是这样的参照仅仅是出于图示说明的目的,并且并非意图限制或者以其他方式缩窄本文的实施方案。图2图示用于为作为恶意分子的潜在目标的计算机缩窄风险窗口的方法230的流程图。在安全服务200上,方法230包括收集205关于实例恶意代码的信息的动作。例如,安全服务110可以监控和收集来自因特网或者其他区域的关于新的(或者旧的)漏洞发现和/或新的(或者旧的)恶意代码实例的新闻115、讨论150、技术发展120、网络流量125或者其他信息。如之前提及的,对信息的该收集可以采取很多形式,包括手动搜索和阅读因特网讨论或者例如通过从已知或者潜在的恶意分子圈或者所记录的恶意分子行为、工具、试验等的例子聚集相关陈述和代码的探测器、蜜罐、搜索自动程序等进行的情报自动搜集。基于所收集的信息,方法230还包括生成210安全升级的动作。例如,安全服务110可以使用恶意代码数据155生成安全升级130。这样的安全升级130包括用于识别诸如关于恶意代码的签名、电子地址或者其他信息并且对其采取适当行动的利用证据135、规则140和/或安全命令145。方法230还包括将安全升级发送215到安全用户(subscriber)的动作。在安全组件侧250,方法230还包括接收220该安全升级的动作。基于该安全升级,方法230包括修改225安全组件250的动作。例如,安全服务110将安全升级130发送到目标计算系统105,该目标计算系统105以适当的利用证据106、规则108和安全命令112升级安全组件195 的库 104。方法230还包括在传输层监控235网络流量的动作。例如,在接收安全升级130之前、之后或者期间,安全组件195可以在传输层190 (例如TCP套接级)监控网络流量125,在目标计算机105上,传输层190是运行在网络上的两个程序之间的双向通信链路的端点。通过在传输层190检查数据,安全组件195可以在计算机上的任何应用或其他软件可以在存储器或者文件系统层118执行或安装恶意代码之前认出所述恶意代码。此外,由于即使不是全部,大部分针对应用的网络流量也是流动通过传输层190,所以安全组件195可以监控和识别被设计为利用安装在目标计算系统105上大多数任何应用的软件漏洞的恶意代码。方法230还包括用于基于来自安全更新的利用证据识别240具有恶意代码的一个或多个消息的步骤。例如,安全组件195可以进行在传输层190接收消息180的动作,并且使用安全比较模块102进行将消息180内的数据与利用证据106进行比较的动作。基于该比较,方法230随后包括用于基于一组规则采取行动245的步骤。例如,如果安全组件195进行识别到一消息180对应于一恶意代码的动作,则规则108可以指示它阻挡该特定传输或消息180进入目标计算机105。尽管规则180阻挡这样的消息180,它可以允许其他良性传输通过。可替换的实施方案提供这样的规则108,所述规则108允许安全组件195向计算机105使用者通知关于所述数据传输,从而使用者可以采取适当的行动。在再另一个实施方案中,规则108可以指示安全组件195修改传输或消息180,从而任何有害的特征被禁用或者以其他方式消除。为了提升安全组件195的性能,需要其他实施方案。因此,一种实施方案用于仅注意在威胁评级106之上的恶意代码的利用证据106,所述威胁评级160是对一特定恶意代码可能多有害的确定。另一实施方案规定在相关风险窗口已经关闭后或者如果威胁评级160落在某个设定阈值之下时对安全组件195上的利用证据106、安全命令112和/或规则108进行取消、删除、暂时中止或者进行类似的行动。在再另一个实施方案中,安全组件195可以接收这样的命令145和/或规则140,所述命令145和/或规则140指示所述安全组件195基于事件的发生而对利用证据106和/或任何与其相关联的安全命令112或规则108进行删除、取消或者采取一些其他行动。这样,一旦期望的事件发生,安全组件195可以对利用证据106、安全命令112以及与其相关联的规则108采取适当的行动,例如删除它fl]、取消它fl]、暂时中止它们等。本发明可以以其他具体形式实施而不偏离本发明的精神或主要特性。所描述的实施方案在所有方面均打算被视为是图示说明性的而非限定性的。因此,本发明的范围是由所附权利要求书而不是前述描述所指示的。落入权利要求书的等同物的含义和范围内的所有改变均要被包括在它们的范围中。
权利要求
1.一种在网络计算环境中的目标计算机处使用的系统,所述系统包括: 处理设备;以及 与所述处理设备通信的非临时性的处理器可读储存介质,其中所述处理器可读储存介质包含一个或更多个编程指令,所述一个或更多个编程指令在被执行时使所述处理设备进行以下内容: 使用安装在目标计算机上的安全组件在所述目标计算机的传输层监控流入网络流量,所述流入网络流量被识别为以所述目标计算机为目的,其中以所述目标计算机为目的的流入网络流量包括消息,所述消息以执行所述监控的所述目标计算机的应用层为目的; 在所述传输层接收作为所述网络流量的部分的消息,所述消息被识别为以所述目标计算机为目的; 将被包括在所述接收的消息中的数据的至少一部分与用于识别恶意代码的利用证据进行比较,所述恶意代码被配置来利用安装在所述目标计算机上的应用的漏洞,所述利用证据通过收集关于所述恶意代码的信息的安全服务提供给所述安全组件,其中所述安全服务位于所述安全组件的外部;以及 基于与所述利用证据的所述比较,识别一条或更多条规则,所述规则指示所述安全组件对所述接收的消息进行一项或更多项行动,从而所述消息中的任何恶意代码不被转移到所述目标计算机的所述应用层。
2.如权利要求1的系统,其中所述传输层包括所述目标计算机的TCP套接。
3.如权利要求 1的系统,其中在被执行时使所述处理设备比较被包括在所述消息中的数据的至少一部分的一个或更多个编程指令还包括在被执行时使所述处理设备进行以下内容的一个或更多个编程指令: 将数据的所述至少一部分识别为对应于恶意代码,以及 完成以下中的一项或更多项: 阻挡所述接收的消息进入所述目标计算机; 向所述目标计算机的使用者通知所述消息与所述恶意代码的所述对应,以便允许所述使用者采取适当行动;以及 修改所述消息,以便禁用所述恶意代码的任何有害特征。
4.如权利要求3的系统,其中在被执行时使所述处理设备比较被包括在所述消息中的数据的至少一部分的一个或更多个编程指令还包括在被执行时使所述处理设备进行以下内容的一个或更多个编程指令: 将数据的所述至少一部分识别为对应于恶意代码;以及 在阻挡所述接收的消息的同时,允许其他良性消息传到所述目标计算机。
5.如权利要求3的系统,其中在被执行时使所述处理设备比较被包括在所述消息中的数据的至少一部分的一个或更多个编程指令还包括在被执行时使所述处理设备进行以下内容的一个或更多个编程指令: 将数据的所述至少一部分识别为对应于恶意代码; 通过使用者界面向所述目标计算机的所述使用者通知所述消息的所述对应;以及 允许所述使用者接受或者拒绝所述消息。
6.如权利要求1的系统,其中所述利用证据包括与恶意代码相关联的已知电子地址列表。
7.如权利要求6的系统,其中所述电子地址列表包括网站的IP地址或URL,并且其中所述消息的来源的IP地址或URL与所述与恶意代码相关联的已知电子地址列表进行比较。
8.如权利要求1的系统,其中所述利用证据包括所述恶意代码的一个或更多个签名,所述签名为代表所述恶意代码的独特的数据结构。
9.如权利要求1的系统,其中所述处理器可读储存介质还包含在被执行时使所述处理设备进行以下内容的一个或更多个编程指令: 从所述安全服务接收命令,所述命令指示被用于识别恶意代码的利用证据应该基于一种或更多种事件而过期;以及 一旦所述一种或更多种事件发生,如一条或更多条规则所定义的那样对所述利用证据米取行动。
10.如权利要求9的系统,其中: 所述一种或更多种事件包括确定已经经过了风险窗口或者所述恶意代码低于某威胁评级阈值;并且 在被执行时使所述处理设备对所述利用证据采用行动的所述一个或更多个编程指令还包括在被执行时使所述处理设备从所述安全组件删除所述利用证据的一个或更多个编程指令。
11.如权利要求9的系统,其中: 所述一种或更多种事件包括确定已经经过了风险窗口或者所述恶意代码低于某威胁评级阈值;并且 在被执行时使所述处理设备对所述利用证据采用行动的所述一个或更多个编程指令还包括在被执行时使所述处理设备暂时中止对所述利用证据的所述比较的一个或更多个编程指令。
全文摘要
本文献描述用于使对安装在计算系统上的软件的漏洞利用最小化的机制。使用安装在目标计算系统上的安全组件在传输层(例如传输通信协议(TCP)套接层)监控网络流量。当接收到以所述计算系统为目的的消息时,将被包括在所述消息中的数据与用于识别恶意代码的利用证据进行比较。所述利用证据通过收集关于所述恶意代码的信息的安全服务提供给所述安全组件。基于所述消息中的数据与所述利用证据的所述比较,识别规则,所述规则指示所述安全组件对所接收的消息采取适当的行动。
文档编号G06F21/55GK103218563SQ20121046057
公开日2013年7月24日 申请日期2007年3月26日 优先权日2006年3月24日
发明者R·J·汤普森, G·A·莫舍 申请人:Avg荷兰私人有限公司