用于行为沙箱化的系统和方法与流程

文档序号:13045405研发日期:2016年阅读:228来源:国知局
技术简介:
本专利提出一种基于行为分析的动态沙箱执行方法,通过预执行阶段从远程数据库获取应用行为特征,结合安全策略判断是否将其加载至受保护执行环境。在运行过程中实时监测行为特性,若检测到潜在恶意活动(如文件访问、进程操控等),则自动迁移至受限环境执行,从而实现风险隔离。该方法通过动态环境切换和行为特征分析,有效提升恶意软件检测与隔离能力。
关键词:行为沙箱化,动态环境切换,恶意检测
本申请为中国申请号为201080062808.2、发明名称为“用于行为沙箱化的系统和方法”的进入中国国家阶段的PCT申请的分案申请。相关申请本专利申请要求于2009年12月15日且标题为“SYSTEMSANDMETHODSFORBEHAVIORALSANDBOXING”的美国专利申请号为No.12/638,660的优先权,其内容通过引用整体结合于此。版权声明此专利文献的公开的一部分包含受到版权保护的材料。版权所有者不反对任何人传真复制在专利商标局的专利文档或档案中所出现的本专利文献或本专利公开,但是在其他方面无论如何保留所有版权。以下声明适用于如下所述的以及在形成此文件的一部分的附图中的软件和数据:2009年,McAfeeInc.版权所有。技术领域各种实施例一般涉及计算机安全的领域,且特别地但并非限制地,涉及用于可执行的应用的行为沙箱化(sandboxing)的系统和方法。

背景技术:
增长的对互联网的访问具有增加了不经用户通知同意就抓取用户个人信息(“Spyware”)或不经用户知晓或通知同意就破坏计算机(“Malware”)的软件程序的范围的非预期影响。此外,小作坊产业已经出现在当使用应用的时候自动下载并显示广告的软件中。这种程序,当安装在用户的计算机上时,可以窃听该用户,收集敏感信息并且在一些情况下控制该用户的计算机。在一些情况下,这些软件程序发送消息出去给其它计算机或服务器,提供用于潜在敏感信息的传递的管道。通过使用插入式组件或其它对诸如浏览器之类的应用的附加类型扩展,软件应用也逐渐变得片段化。互联网为这些附加组件提供了极好的分布机制。然而,即使不是不可能,也很难从这些附加组件的不可信源确定是可信的。另外,普通用户可能请求、下载且安装附加组件,而甚至不知道他们正在做这件事。

技术实现要素:
除了其他方面以外,本发明人已经认识到对分析所下载的应用和组件、在操作期间监视该应用和组件并防止任何可疑操作危害主机系统的系统和方法的需要。示例1描述了可以包括一系统的主题。该系统可以包含通信地耦合于可执行的应用的源的网络。可以包括计算机,且可以配置计算机经由网络通信。计算机可以包括行为分析模块和多个执行环境。可以配置行为分析模块对经由网络下载的可执行的应用执行行为分析。多个执行环境可以包括标准执行环境和受保护的执行环境。可以配置受保护的执行环境以提供保护计算机不受由可执行的应用执行的恶意操作的危害的自包含的执行环境。行为分析模块可以评估可执行的应用的多个行为特性,以确定是否应该在受保护的执行环境之内在可执行的应用执行之前执行可执行的应用。另外,行为分析可以监视可执行的应用的执行以确定是否可以改变执行环境。在示例2中,示例1的主题可以可选地包括被配置为评估与可执行的应用有关的特性的行为分析模块。特性可以提供关于是否可以信赖可执行的应用的源的指示。在示例3中,示例1-2中的任何一个的主题可以可选地包括行为分析模块,被配置为评估与可执行的应用有关的包括以下两个或更多个的多个特性:从其接收可执行的应用的网络地址;请求可执行的应用的进程的信赖级别;来自可信源的签名证书;以及可疑的或策略活动以外的先前性能。在示例4中,示例1-3中的任何一个的主题可以可选地包括被配置为在可执行的应用的执行之前分析可执行的应用将在其上操作的资源的行为分析模块。在示例5中,示例1-4中的任何一个的主题可以可选地包括被配置为确定受保护的执行环境将使用的来控制可执行的应用执行的限制范围的行为分析模块。在示例6中,示例1-5中的任何一个的主题可以可选地包括被配置为确定在受保护的执行环境之内应该包含什么类型的活动的行为分析模块。在示例7中,示例1-6中的任何一个的主题可以可选地包括被配置为在确定沙箱环境使用的限制范围时应用安全策略的行为分析模块。在示例8中,示例1-7中的任何一个的主题可以可选地包括被配置为对于在受保护的执行环境之内由可执行的应用执行的操作确定处置的行为分析模块。在示例9中,示例1-8中的任何一个的主题可以可选地包括被配置为检测潜在恶意的活动的行为分析模块,潜在恶意的活动包括:打开资源文件;加载插件;由其它进程操纵;操纵其它进程;以及访问互联网。在示例10中,示例1-9中的任何一个的主题可以可选地包括被配置为在评估可执行的应用的多个行为特性来确定是否应该在受保护的执行环境之内执行可执行的应用时应用安全策略的行为分析模块。在示例11中,示例1-10中的任何一个的主题可以可选地包括被配置为确定将要在受保护的执行环境之内执行的可执行的应用的一部分的行为分析模块。在示例12中,示例1-11中的任何一个的主题可以可选地包括被配置为确定可执行的应用的一部分的行为分析模块,其中该部分可以包括:纤程,线程,进程,动态链接库,脚本或插件组件,等等。在示例13中,可以可选地配置或执行示例1-12中的任何一个的主题,以使得可以经由网络连接接收可执行的应用。可以在可执行的应用执行之前对可执行的应用执行行为分析。执行环境可以确定为行为分析的函数。可执行的应用可以在沙箱(受保护的)执行环境之内启动,如果行为分析如此指示的话。替代地,如果行为分析指示可执行的应用在受保护的环境之外执行是安全的,则可执行的应用可以在第一执行环境之内启动(执行)。在可执行的应用的执行期间实时地收集可执行的应用的行为特性并执行行为分析,以确定在执行期间是否可以改变执行位置(环境)。在示例14中,可以可选地配置或执行示例1-13中的任何一个的主题,以使得可以在可执行的应用的执行之前执行行为分析并且行为分析可以包括评估与可执行的应用有关的提供关于可执行的应用的起源的指示的一个或更多个特性。在示例15中,可以可选地配置或执行示例1-14中的任何一个的主题,以使得可以在可执行的应用的执行之前执行行为分析,并且行为分析可以包括可执行的应用将在其上操作的资源的分析。在示例16中,可以可选地配置或执行示例1-15中的任何一个的主题,以使得行为分析可以包括评估一个或更多个特性,包括:从其中接收可执行的应用的网络地址,请求可执行的应用的进程的信赖级别,来自可信源的签名证书(与可执行的应用有关),以及可疑的或策略活动以外的先前性能。在示例17中,可以可选地配置或执行示例1-16中的任何一个的主题,以使得在沙箱(受保护的)执行环境之内启动可执行的应用的执行包括在可执行的应用的执行之前确定应用于沙箱(受保护的)执行环境的限制范围。在示例18中,可以可选地配置或执行示例1-17中的任何一个的主题,以使得确定执行环境的限制范围可以包括确定什么类型的活动应该包含在沙箱(受保护的)执行环境之内。在示例19中,可以可选地配置或执行示例1-18中的任何一个的主题,以使得确定执行环境的限制范围可以包括确定对于在沙箱(受保护的)执行环境之内由可执行的应用执行的操作的处置。在示例20中,可以可选地配置或执行示例1-19中的任何一个的主题,以使得收集动态特性可以包括检测潜在恶意的活动,潜在恶意的活动包括:打开资源文件,加载插件,由其它进程操纵,操纵其它进程和访问互联网。在示例21中,可以可选地配置或执行示例1-20中的任何一个的主题,以使得确定在其中执行可执行的应用的执行环境可以包括应用安全策略。在示例22中,可以可选地配置或执行示例1-21中的任何一个的主题,以使得确定在其中执行可执行的应用的执行环境可以包括确定将在沙箱执行环境之内执行的可执行的应用的一部分。在示例23中,可以可选地配置或执行任何一个示例1-22中的任何一个的主题,以使得确定在其中执行可执行的应用的执行环境可以包括确定将在沙箱执行环境之内执行的可执行的应用的一部分,其中一部分可以包括:纤程,进程,动态链接库,脚本或插件组件。在示例24中可以包括,或者可以可选地与示例1-23中的任何一个中组合以包括,机器可读(计算机可读)介质。机器可读介质可以包括当由计算机执行时致使计算机执行以下操作的指令,包括:经由网络连接接收可执行的应用;在可执行的应用的执行之前对可执行的应用执行行为分析;在执行行为分析的基础上,确定是否在沙箱环境中启动可执行的应用的执行;在沙箱环境之内启动可执行的应用的执行;在可执行的应用在沙箱环境之内执行的同时,动态地监视可执行的应用的行为特性;对监视的行为特性执行行为分析以确定可执行的应用是否可以从沙箱环境中移走;以及,基于所监视的行为特性的行为分析,从沙箱环境中移除可执行的应用。这些示例可以以任何置换或组合的方式组合。此概述意在提供本专利申请的主题的概述。它并非意在提供本发明的排他的或穷尽的解释。包括了详细描述以提供更进一步的有关本专利申请的信息。附图说明通过示例而非局限地在附图的图中示出了一些实施例,其中:图1是描述了能采用可执行的应用的行为沙箱化来提高安全性的示例系统100的方框图。图2是描述了被配置为基于行为分析来沙箱化可执行的应用的示例系统的方框图。图3是描述了用于提供可执行的应用的行为分析的示例系统的方框图。图4是描述了用于可执行的应用地行为沙箱化的示例方法的带有泳道的流程图。图5是描述了使用行为分析为可执行的应用配置执行环境的方法的具有泳道的流程图。图6是依照示例描述了在可执行的应用的行为分析中的可选操作的流程图。图7是依照示例描述了在为可执行的应用确定执行环境中的可选操作的流程图。图8是描述了使用行为分析来分析可执行的应用的示例方法的流程图。图9是以计算机系统为示例形式的机器的方框图,在其内可以执行致使机器执行在此论述的方法中的任何一个或更多个的指令。具体实施方式本发明的各种实施例(例如,示例)在此公开以提供用于行为沙箱化的方法和系统。行为沙箱化可以提供动态的机制用于保护终端用户系统免受已知和未知的恶意软件应用和组件的破坏,同时仍然允许用户拥有执行来自各种源的应用程序和组件的灵活性。随着软件变得更易分配以及应用变得越来越片段化,日益难以在软件在目标平台上执行之前辨别正当软件和恶意软件。插件组件、实时解释码和其它各种类型的下载软件的广泛应用使得正当软件更容易损害并被用于恶意目的。遏制潜在恶意软件的一种技术就是在被称为“沙箱”的遏制区域之内执行未知的或有风险的软件。由执行在沙箱之内的软件(可执行的应用)执行的操作局限于仅影响沙箱而不影响更大的系统或当前执行在系统上的其它应用。传统的沙箱化方案在应用和施行中已经不灵活了,经常严重地局限了应用正确地运转的能力。传统沙箱化方法也缺少动态地确定可执行的应用的哪些部分需要被沙箱化以及必须将沙箱环境与其它系统资源及其它应用(或者主要可执行的应用的部分)屏蔽的程度。下面的说明书论述对这些问题等的解决方案。行为沙箱化可以使用行为分析来决定什么时候应该在沙箱执行环境之内执行进程。行为沙箱化还可以监视执行在沙箱化的执行环境之内的应用,以确定该应用或应用的一部分(例如,插件组件)是否可以从沙箱化的环境中移除并继续在标准执行环境之内执行。在一示例中,可以配置沙箱环境以有选择地将主机系统与单独的操作屏蔽,而不只是仅仅遏制沙箱化的应用在执行期间可能企图做的一切事情。例如,可以配置沙箱执行环境以仅屏蔽更新操作系统的配置文件的企图(例如,对注册数据库对写操作)。还可以配置沙箱环境以允许某些输入进入沙箱化的应用以及允许某些输出从沙箱化的应用通信到其它的本地或远程的应用。例如,可以配置沙箱环境以允许沙箱化的应用从数据库读取数据并更新数据库内的数据。然而,可以配置沙箱环境以防止相同应用添加全新的记录到数据库。在一个示例中,可以使用行为分析以确定在正常使用下用于网络浏览器的沙箱化范围(例如,在互联网上浏览网页)。当用户启动浏览器应用时,该启动可以被系统监视组件检测到。系统可以保持浏览器应用的执行,同时行为分析程序确定浏览器是否应该执行在沙箱环境之内,以及如果执行在沙箱环境之内的话应该将浏览器置于什么限制级别。在某些示例中,可使用安全策略以辅助确定是否在沙箱环境之内执行应用以及要使用的限制范围。在此示例中,检查安全策略并且对浏览器的操作历史执行行为分析。行为分析可以包括审查什么插件配置成在浏览器启动时自动加载以及该插件是否可以信赖。在此示例中,安全策略和行为分析两者都确定浏览器可以在启动时执行在标准执行环境中。在系统继续浏览器应用的启动的情况下,当前示例继续。在浏览器启动的同时,使能系统监视组件以拦截来自浏览器应用的全部输入和输出。浏览器输入和输出可以被馈入行为分析模块以动态地评估浏览器(或浏览器的任何组件)的执行环境是否应该改变(例如,移入沙箱执行环境以保护主机系统上的其它进程或资源)。在此示例中,用户导航到指示浏览器下载插件组件的网站。系统监视器可以拦截插件下载并为行为分析模块收集有关插件组件的信息。行为分析模块可以评估收集到的有关插件组件的信息以确定是否应该将该插件组件移入沙箱环境来执行。在一示例中,行为分析模块可以对比中心可信源数据库来检查插件组件的签名以确定该插件是否是潜在恶意的。例如,行为分析模块可以对比诸如互联网信誉系统(来自加利福尼亚圣克拉拉)之类的在线信誉系统来检查与该插件组件有关的统一资源定位符(URL)。在此示例中,行为分析模块确定正在由浏览器下载的插件来自于根本不可信赖的源。该插件被重定向到沙箱执行环境中以进一步分析。一旦被下载,行为分析模块可以执行附加分析以确定在沙箱环境之内应用的限制范围。例如,行为分析模块可以调查该插件是否具有有效的和签名的安全证书。在此示例中,该插件或者不具有安全证书或它没被正当地签名。所以该插件完全执行在沙箱环境之内,其中系统监视器可以拦截全部操作来分析。在操作期间,当该插件试图对盘输入和输出时,其被系统监视器拦截并被保持。在插件执行期间,另一个进程试图输入或输出(I/O)到盘,确定附加I/O的源并允许该I/O(因为它是来自沙箱执行环境之外的应用)。当该插件的执行完成时,系统监视器注意到执行的结束并降低与该浏览器应用有关的监视级别。在执行期间由该插件组件执行的操作可以从系统中清除,或者有选择地允许其更新其它进程或资源。例如,如果该插件组件试图给URL标记书签,则系统可以允许用该插件组件生成的信息来更新浏览器的书签。还可以配置系统监视器来记录该插件执行的操作以备将来之用。例如,如果该插件组件不尝试任何潜在恶意操作,则这可以记录在本地威胁数据库之内或被传输到中心在线信誉系统以备将来之用。在某些示例中,可使用网关系统来拦截和评估引入的可执行的应用。在网关系统示例,网关系统可以使用由每一客户端端(终端用户系统)收集的行为分析信息来辅助建立与插件组件或其它被多个系统所重复使用的小程序有关的知识库。定义以下定义以举例的方式给出,且并非意欲被理解为是限制性的。本领域技术人员可以理解下面定义的一些术语可以包括在阅读此说明书的上下文时附加的含义。可执行的应用-为了以下说明书的目的,可执行的应用可以包括任何已编译的二进制应用(例如,在微软环境中的可执行的应用或动态链接库),浏览器插件应用,浏览器或应用脚本(例如,JavascriptTM或Visual脚本),操作系统控制脚本(例如,在微软环境中的.bat文件或在UNIX环境中的C-shell脚本),以及实时解释码或小程序(例如,JavaTM小程序,Visual控制,.NetTM代码)。可执行的应用可以涵盖多个单独的处理单元,诸如进程、线程和纤程。另外,一些大的可执行的应用可以利用动态链接库(DLL)、脚本、或插件组件来扩展或增强基本的功能。在以下说明书之内,可执行的应用可以不同地被称为进程、应用、可执行的,或者简单地称为软件。沙箱执行环境(沙箱环境)-为了以下说明书的目的,沙箱执行环境可以是屏蔽可执行的应用使其不能直接访问某些资源的主计算装置或可以在标准执行环境之内可用的装置的片段部分。可以配置沙箱执行环境以提供对可执行的应用所尝试的操作的各种限制级别。贯穿此说明书,沙箱执行环境也可以被称为沙箱环境或沙箱化的环境,用法的任何变化不意味着术语的通常含义的改变。示例系统图1是描述了能采用可执行的应用的行为沙箱化来提高安全性的示例系统100的方框图。系统100包括网络105,客户端系统110A、110B、…110N(总体称为客户端系统110),网关装置120,广域网连接125,以及广域网130。在某些示例中,系统100可以可选地包括本地服务器140、数据库150、远程系统160和远程数据库170。在一示例中,网络105是将客户端系统110彼此通信连接并通信连接到广域网130的局域网(有线的或无线的)。网关装置120可用于方便到广域网130的连接。网关装置120可以包括路由功能、过滤功能和代理功能。在某些示例中,网关装置120可用于对引入的可执行的应用,诸如从远程系统下载的JavaTM小程序,执行行为分析。在其中网关装置120对引入的可执行的应用执行行为分析的示例中,可疑的可执行的应用的执行仍然可以发生在单独的客户端系统110上。在一些示例中,可以配置网关装置120以基于安全策略和/或行为分析的应用来阻止已知的恶意可执行的应用。在一示例中,数据库150可用于存储对客户端系统110或对网关装置120所执行的行为分析的结果以备将来之用。在此示例中,存储在数据库150中的信息可以被系统(客户端系统110或网关装置120)在对先前已经被连接到网络105的系统使用过的可执行的应用执行行为分析时重复使用。在某些示例中,数据库150可以与远程数据库170通信,以交换有关任何已知可执行的应用的行为信息。远程数据库170可以表示互联网信誉服务之一,诸如TrustedSourceTM或另一个行为特性源。在一些示例中,本地服务器140可以是客户端系统110执行的可执行的应用的源。在其它示例中,远程服务器也可以是客户端系统110所下载的可执行的应用的源。仍然在其它示例中,可以经由互联网或私有广域网从任何系统或数据库下载可执行的应用。图2是描述了被被配置为基于行为分析来沙箱化可执行的应用的示例系统200的方框图。系统200可以包括标准执行环境210、沙箱执行环境220、行为分析模块230、系统监视引擎240和资源控制基础结构250。在一示例中,标准执行环境用于执行任何信赖的可执行的应用(例如,没有表明任何执行恶意的活动的威胁的或来自于已知的且可信赖的源的那些应用)。标准执行环境210可以被分段成多个虚拟机器或类似的将应用执行分段的方法。在标准执行环境210之内,进行资源或存储空间的分段主要出于性能原因,不一定为了增强主机系统(例如,客户端系统110、本地服务器140或网关装置120)的安全性。沙箱执行环境220可以配置为在资源和存储空间方面与系统200其余部分完全地隔离。沙箱执行环境220可以为可执行的应用提供一组严格控制的可以在其内执行的资源,诸如受限的盘和存储空间。沙箱执行环境220也可以根据配置控制本地和远程网络访问二者。例如,沙箱执行环境220可以允许某些局域网访问读和写局部数据库,但是不允许任何互联网访问以便限制潜在恶意行为。在一示例中,沙箱执行环境可以通过仿真实现。使用仿真时,沙箱化的进程在解释环境之内允许,而不是自然地在常规执行平台上执行。在另一个示例中,沙箱执行环境可以通过使用系统虚拟化来实现。虚拟化允许资源操作的拦截和进程之间通信的重定向。可替代地,虚拟化可用于复制进程将在其内执行的整个操作环境以镜像非沙箱化的环境。可以配置行为分析模块230以分析可执行的应用的特性,以及可执行的应用执行的实际的过去的或当前的操作,以预测恶意行为的可能性。行为分析模块230能够分析有关可执行的应用的信息,诸如源、安装进程、最近修改、签名和加密证书有效性,等等。行为分析模块230还能够分析可执行的应用执行的过去记录的操作以及当前监视的操作,诸如资源的打开、插件组件的加载、访问互联网和读或写配置文件或数据库的企图,等等。参考下面与图3相关的论述获得关于示例行为分析系统的附加细节。系统监视引擎240用于监视在标准执行环境210之内和在沙箱执行环境220之内执行的操作。系统监视引擎240能够向行为分析模块230提供有价值的信息,用于确定可执行的应用是否正在尝试(或有可能尝试)潜在恶意行为。可以配置系统监视引擎240以拦截访问包括盘I/O、网络装置I/O、存储器访问以及甚至处理器利用率的任何系统资源的企图。在某些示例中,通过路由到或来自沙箱环境的所有资源请求,系统监视引擎240辅助创建沙箱环境。可以配置系统监视引擎240以拦截资源访问请求并在允许操作继续之前变更源或目的地参数。资源的示例可以包含文件、配置数据库(作为基本示例,中的注册表)、存储器(通常被操作系统依进程划分,但是可以被手动重定向以提供更细的划分粒度),这里仅举数例。资源控制基础结构250为标准执行环境210和沙箱执行环境220提供机制以控制访问诸如配置文件或盘访问之类的系统资源的某些部分。资源控制基础结构250提供对系统资源的访问的阻止和访问请求到镜像的资源的透明的重定向。例如,该沙箱执行环境220可以镜像(拷贝)诸如数据库之类的资源,以允许在沙箱之内运转的可执行的应用访问数据库。在此示例中,资源控制基础结构可以将访问主要数据库的任何企图透明地重定向到镜像的数据库。沙箱环境220然后能够确定在沙箱化的应用执行之后是否用镜像的数据库更新主要数据库。在一些示例中,资源控制基础结构可以包括虚拟化的方法。虚拟化可以在单个硬件装置(例如,应用服务器)之内产生多个完全分段的环境,每个各自运转就好像他们是单独的硬件平台。示例行为分析系统图3是描述了用于提供可执行的应用的行为分析的示例系统300的方框图。系统300包括多个事件源302A-302D、行为检测框架304、事件收集306、过滤插件310、规则调用模块312、规则插件314、反应处理模块316、反应插件318和事件数据存储器320。如图所示,提供了多个事件源302A-302D。在图3的上下文中,事件源指的是任何能够识别、提供和/或收集事件的源。在某些示例中,事件源302A-302D可以由系统监视引擎240提供。可以利用用户模式事件源302A来监视用户接口和收集对应于用户接口的事件。在此情况下,监视可以包括监视接口的执行。在各种示例中,这可以使用内联挂接、接口指针重定向和/或底层基础结构或操作系统提供的回调来执行。另外,可以利用文件系统滤过器302B来收集对应于文件系统的事件。更进一步地,可以利用网络滤波器302C收集与网络有关的事件。应该注意到任何事件源可以被用户根据需要利用或根据组织的安全策略进行配置。例如,可以利用记录回放接口302D来监视与回放机制或用户选择监视的任何其它高级源有关的事件。以这种方法,用户可以挑选和插入任何事件源。如更进一步所示的,事件源302A-302D与包括多个处理模块的行为检测框架304和事件数据存储器320进行通信。更进一步地,提供行为核心内容模块308,包括能够使用行为检测框架304的功能运转的多个插件310、314和318。在图3的上下文中,插件指的是注册参与特殊类型的活动的可执行的组件。例如,插件可以注册在行为检测框架304之内以在公布文件创建事件的时候调用。可以利用插件310、314和318以积极地参与各种模块内的处理。在各种示例中,可以利用插件将数据操纵成有用的形式,屏蔽和过滤数据,过滤噪音,以及将事件格式改变为标准化的或用户定义的格式,等等。操作中,事件可以由事件源302A-302D提供并被收集作为事件收集进程306的一部分。如上面提到的,该事件源可以包括任何事件源且可以由用户(例如消费者,等等)提供。在一个示例中,事件的处理可以由作为消费者插件的事件处理器来执行。在此情况下,事件处理可以包括整理在数据存储器320之内的所关心的任何事件。作为选项,可以对收集的事件执行事件规范化。在图3的上下文中,事件规范化指的是将事件从与事件源紧密连系的原始形式转化为普通的或规范化的形式。换言之,事件规范化可以包括以事件源不可知的格式重新发布所拦截的原始事件。在一些情况中,原始事件可以由系统监视器(例如事件源,等等)发布。例如,文件系统过滤器可以发布原始事件以响应所拦截的文件操作。在一个示例中,插件(例如,原始事件处理器)可以规范化事件并重新发布规范化的结果。例如,事件处理器插件可以定位数据存储器320中的且用于事件的行为者和目标的条目。如果用于这些项目的数据存储器条目不存在,则可以生成该条目。然后可以将诸如标志和路径名之类的事件细节转化为用于一个类别内的所有事件的标准化格式,不管事件源如何。可以实现此转换用于特殊类别的多个事件源。例如,文件操作可以被内核模式文件系统过滤器302B和用户模式接口监视器302A拦截。来自这些事件源的原始事件必然不会具有相同的结构。可以实现事件规范化以解析这些差别,以使得可以发布允许用户不知道这些事件源细节的规范化事件。以此方法,可以利用包括在行为核内容模块308中的插件来执行事件规范化。作为选项,事件规范化可以同时包括诸如事件的行为者和目标之间之类的数据存储项目之间的关系的关联。在一个示例中,此关联可以累积,形成共享公共历史的多个数据存储项目之间的关联。关于形成共享公共历史的多个数据存储项目之间的关联的更多信息可以在2008年7月22日提交的标题为“SYSTEM,METHOD,ANDCOMPUTERPROGRAMPRODUCTFORUTILIZINGADATASTRUCTUREINCLUDINGEVENTRELATIONSHIPSTODETECTUNWANTEDACTIVITY,”的美国专利申请序号12/177,601中找到,其通过整体引用结合于此。分析所整理的事件的规则然后可以作为规则调用模块312的一部分来审查规范化的事件数据。规则调用模块312可以被所接收的事件触发。作为选项,规则评估可以驱动对不希望的或其它预先确定的活动进行检测。在一个示例中,这些规则可以是用户选择的规则插件314,其中规则评估由事件处理器起动。在另一个示例中,规则也可以调用其它相关的和从属的规则。另外,规则可以能够访问数据存储器320中关于所整理的事件信息。规则可以包括用于评估所整理的数据和确定是否可以进行检测的任何规则。这些检测可以包括恶意软件活动、不当数据传递(例如,就像数据泄露保护,等等)或者任何其它所关心的活动。作为选项,规则可以由用户(例如消费者,等等)生成。更进一步地,规则可以与用于识别事件的一个或更多个事件源无关。如提到的,规则评估可以由注册为插件的处理器执行。可以通过行为检测框架304调用规则。作为选项,最高级规则可以调用自事件处理器内。这些最高级规则可以又调用通过对整理的数据的分析所确定的子规则。这些子规则可以又调用其它子规则,等等。在各种示例中,规则评估插件314可以直接执行分析,或者调用用解释语言写的子逻辑。此用法允许大量规则逻辑用更易于被规则作者使用的专门的解释语言脚本书写,使得注册的插件起垫片作用,其任务就是调用具有合适子规则脚本的语言解释程序并将结果传递回到行为检测框架304。这允许生成灵活的和动态的规则逻辑,其便于规则组之间规则逻辑的重复使用。虽然在图3中没有示出,但是当发布了特殊类型的检测的时候,检测处理器也可以注册为用于调用的插件。在一个示例中,检测可以是由规则处理器发布。支持检测处理器注册允许以交叉功能的方式共享信息。例如,检测诸如从未核实的网站下载浏览器插件之类的高风险的活动可能对浏览器脚本扫描器是有意义的。脚本扫描器可以使这些插件经受更高级的扫描。另外,主机侵入保护产品也可以对下载感兴趣并将脚本隔离。最后,从其下载脚本的网站是未经审查的确定可通过发布网站分析工具的检测来进行通告。响应基于规则对预先确定的活动的检测,作为反应处理模块316的一部分采取反应。在一个示例中,可以由反应插件318提供对这些反应的处理。在各种示例中,反应可以包括终止进程、阻止操作和/或执行选择性的扫描操作,等等。更多关于执行选择性的扫描操作的信息可以在2008年4月29日提交的、标题为“SYSTEM,METHOD,ANDCOMPUTERPROGRAMPRODUCTFORDYNAMICALLYADJUSTINGALEVELOFSECURITYAPPLIEDTOASYSTEM”的美国专利申请序号12/111,851中找到,其通过整体引用结合于此。反应处理器在请求特殊类型反应时可以注册为用于调用的插件。这些反应处理器然后可以执行反应。这允许在行为检测框架304的用户之间的反应类型的重复使用,并支持诸如响应于检测的系统监视级别的修改之类的交叉功能应用。这也允许决定是否将会采取反应的策略应用到终端节点。例如,可以首先对比本地应用的策略由反应处理器检查所请求的终止进程的反应。策略可以指示对于该终端节点应该记录而不是实际采取反应,当新的抗恶意软件内容正在被初始部署时可以实行此策略。在功能领域之内的检测然后可以发布为在行为检测框架304之内的事件。以此方法,用户(例如消费者,等等)可以能够既限制又动态地调整任何对行为分析框架304的影响。这样的系统影响可以包括CPU使用、存储器消耗、I/O带宽、等等。更进一步地,来自一个功能领域内部的检测可以被其它功能领域共享,或者在用于整体分析的中心领域之内进行评估。事件的处理、整理的数据的存储和数据的分析都使用系统资源。使用行为检测框架304,用户将能对这样的资源使用设置上限,并响应于整理的数据的行为分析动态地控制资源使用。用于控制资源使用的一种技术是通过调整系统监视和扫描活动。更多关于通过调整系统监视和扫描活动来控制资源使用的信息可以在2008年4月29日提交的、标题为“SYSTEM,METHOD,ANDCOMPUTERPROGRAMPRODUCTFORDYNAMICALLYADJUSTINGALEVELOFSECURITYAPPLIEDTOASYSTEM,”的美国专利申请序号12/111,851中找到,其已经通过整体引用合并于此。在一个示例中,可以在虚拟机之内协调活动以控制总体系统资源使用。可以应用此虚拟机内节流来控制运转在虚拟机之内的行为分析框架304的实例的资源使用。更进一步地,用户可以在分析进程的每一点插入来参与。另外,用户功能可以被安装、删除、升级,并且可以不改变基础结构而变更它们的使用。用户也可以整理事件和在数据存储器320之内的所关联的数据用于稍后引用和操纵。更进一步地,用户可以写入对事件源细节一无所知的行为分析规则。以此方法,行为检测框架304的使用可以由用户整体驱动。例如,用户可以插入为事件发生器、事件过滤器、事件消费器、规则评估器、检测处理器和反应提供器。此插件模型便于消费者对共享子组件和他们的检测结果的行为检测框架304的构建。插件可以包括任何可执行的组件,并可以直接执行他们的分析,或者调用用解释语言写的子逻辑。例如,解释规则语言可以被规则评估器插件调用。在一个示例中,插件支持对所有类型的插件可以是对称的。在此情况下,所有插件可以允许在行为检测基础结构之内的所有客户端可见的活动通过行为的发布来驱动,允许客户端注册回调用于当发布特殊类型行为时的调用,允许客户端回调被行为检测框架304调用,以及允许客户端回调发布行为。在一个示例中,行为检测框架304的部署可以从使用主机环境(例如,客户端系统110)所支持的所有系统监视技术开始。在该情况下,主机环境指的是安全软件的主机。例如,主机可以包括操作系统或网络浏览器,等等。主机环境可以加载包括行为检测框架304的安全软件并至少提供基本能力。此基本的功能中的一些可以包含文件系统监视、网络监视和监视配置数据库的更新(例如,监视注册操作,等等)。作为选项,此系统监视的事件处理器可以作为事件过滤器和事件发生器执行。可以利用这些处理器以审查系统监视通知并滤出所不感兴趣的通知。从剩余的通知中,处理器可以用行为检测框架304发布事件。在一个示例中,事件可以同步发布,其中在发布和服务事件的同时保持原始操作。在另一个示例中,事件可以异步发布,其中在发布和服务事件的同时允许原始操作进行。仍然在另一个示例中,可以在与原始操作相同的上下文之内发布事件。还是在另一个示例中,事件可以在不同的上下文发布之内,特别是监视发生在几个上下文之内的操作的中心上下文。例如,系统监视引擎240可以被配置为中心上下文监视系统以监视发生在配置于诸如系统200之类的主机系统内的每一执行环境之内的操作。也可以使用可以配置为中心上下文监视系统以监视发生在每一客户端系统110之内的操作的本地服务器140将此概念应用在组织级。在一示例中,上下文定义在哪里可以服务在行为检测框架304之内的事件。在一个示例中,仅仅为该上下文注册的事件用户将会被通知该事件。例如,在特定进程的上下文之内(例如,在沙箱执行环境220之内)可以拦截文件生成操作。如果针对该上下文发布了事件,则仅仅为该进程的上下文注册的事件用户可以看到该事件。如果针对更大的系统范围的上下文发布了事件,则为该系统范围的上下文注册过的事件处理器可以看到该事件。行为检测框架304可以包括各种上下文。例如,在一个示例中,上下文可以包括本地的上下文,其中用户模式操作被具体化到特殊的进程。在此情况下,可能每个所关心的进程存在一个本地的上下文。在另一个示例中,上下文可以包括内核模式上下文。在此情况下,内核模式操作可以覆盖所有进程。仍然在另一个示例中,上下文可以包括系统范围的上下文,其是从本地和内核模式上下文发布到系统范围的上下文的事件的集合。在此情况下,可以每个系统存在一个系统范围的上下文。还是在另一个示例中,上下文可以包括网络范围的上下文,其是从系统范围的上下文发布到网络范围的上下文的事件的集合。作为选项,可以使用分级的发布。在此情况下,不是在本地的和内核模式的上下文中能够被观察到的所有事件都可以发布给系统范围的上下文,仅仅是足够感兴趣的那些。以此方法,大部分事件可以在原始操作的上下文之内被服务。这允许更有效率的最小化发布事件给系统范围上下文的不必要的开销的行为检测模型。向网络范围的上下文的公布甚至可以更不频繁,以避免不必要的开销。在一个示例中,在此分级之内的事件的传播的控制可以直接由事件处理器或者由追寻更大灵活性的规则来控制。如果利用了事件处理器,则反应处理器可以执行事件到不同级别的上下文分级的重新发布。如上面提到的,事件消费器可以注册以当在消费者注册在内的上下文中发布了特殊类型事件时接收通知。一旦公布了匹配这些标准的事件就可以调用通知。作为选项,事件消费器可以审查包括在事件之内的数据。消费器也可以恢复、创建和变更在数据存储器320中的条目。消费器可以又发布它自己的事件、调用规则、发布检测和产生反应。作为一个例子,由原始操作拦截的处理器发布的事件的消费器可以将这些事件作为规范化的事件重新发布以简化由规则评估器造成的抽取消耗。在此使用中,发布的初始事件被称为原始事件,且仅可以被其功能是将这些事件抽取为普通形式并将原始事件重新发布为规范化事件的事件消费器观察到。在数据存储器320之内的相关条目的位置,诸如针对行为者和目标的条目,可以包括在规范化进程中。相关条目可以还包括针对拦截到的操作的源进程或线程的数据存储条目以及诸如针对文件之类的针对该操作的目标的数据存储条目。应该注意到数据存储器320可以包括任何用于整理事件数据的存储库。更进一步地,可以为任何用户目的在数据存储器320中创建项目,包括跟踪所接收事件的行为者和目标的项目。例如,响应于文件的拦截,可以为打开文件的进程和为实际文件创建开放条目。在各种示例中,数据存储器320可以支持添加、检索和/或更新项目。数据存储器320也可以支持项目之间的关联的形成,诸如父和子、行为者和目标、以及共享公共历史的对象之间的关联。数据存储器320可以被事件处理器、事件发布者、检测处理器、规则评估器和反应处理器等等使用。关于以上论述的示例行为分析系统的更多信息可以在2008年9月2日提交的、标题为“BEHAVIORALANALYSISSYSTEM,METHOD,ANDCOMPUTERPROGRAMPRODUCTFORPROPAGATINGEVENTSOVERAPLURALITYOFHIERARCHICAL20LEVELSOFPROCESSING,”的美国专利申请序号12/202,952中找到,其已经通过整体引用合并于此。行为沙箱化的示例方法以下示例示出了行为沙箱化如何用于动态地保护单独的计算装置或整个网络不受恶意可执行的应用的危害。图4是描述了用于可执行的应用的行为沙箱化的示例方法400的带有泳道的流程图。方法400包括以下操作:在402处接收可执行的应用,在404处行为分析,在406处确定可执行的环境,在408处决定沙箱化可执行的应用,在410处执行可执行的应用,在412处行为分析,在414处确定应该改变可执行的环境,在416处决定沙箱化可执行的应用,在420处执行可执行的应用,在422处行为分析,在424处确定应该改变可执行的环境,以及在426处在是的情况下从沙箱环境中移除可执行的应用。在此示例中,方法400开始于402,系统200接收或加载可执行的应用。在404处,方法400继续,行为分析模块230对可执行的应用执行行为分析。在一示例中,行为分析模块230可以收集包括与可执行的应用的起源有关的那些事件的事件历史。行为分析模块230可以审查将要执行的可执行的应用的历史。行为分析模块230可以分析可执行的应用的事件历史,诸如:从互联网下载,由信赖的进程安装,代码的修改,来自可信赖源的加密签名的证书,或者先前执行时可疑的或策略之外的所考虑的活动的性能。在此示例中,方法400继续,在406处,行为分析模块230确定将可执行的应用执行在哪个类型的执行环境之内。例如,如果行为分析模块230确定可执行的应用可以被信赖,则方法400可以在标准执行环境210之内启动可执行的应用。如果行为分析模块230确定可执行的应用具有执行恶意的活动的潜在可能,然后在408处,方法400将可执行的应用重定向到诸如沙箱执行环境220之类的沙箱执行环境中。如果可执行的应用将在沙箱执行环境220中执行,则方法400继续,在420处,沙箱执行环境220执行可执行的应用。在其中可执行的应用执行在沙箱执行环境220之内的示例中,方法400继续,在422处,行为分析模块230在可执行的应用正在运转的同时执行行为分析。在此示例中,行为分析模块230不断地和动态地更新关于执行在沙箱环境220之内的可执行的应用的信息。在424处,方法400继续,行为分析模块230确定可执行的环境是否可以改变。例如,如果行为分析模块230在动态监视可执行的应用之后确定可执行的应用对系统200不再造成威胁,则可以从沙箱环境220移除可执行的应用。如果可执行的应用可以从沙箱环境220移除,那么方法400在426处继续,通过将可执行的应用从沙箱环境220中移动到标准执行环境210内。如果可执行的应用不能从沙箱环境220移除,那么在426处方法400循环返回到操作420并继续,直到可执行的应用完成或移到沙箱环境220之外。转移回到操作408,如果行为分析模块230确定可执行的应用可以执行在标准执行环境210之内,那么方法400继续,在410处,系统200在标准执行环境210之内执行可执行的应用。在412处,方法400继续,行为分析模块230对执行在标准执行环境210之内的可执行的应用执行行为分析。在操作412,系统200动态地监视可执行的应用用于对恶意(或可疑)行为的任何签名。行为分析模块230监视增大系统200暴露给恶意操作的事件。行为分析模块230监视的事件可以包括:打开资源文件或数据库,加载插件(例如,脚本和一些诸如库或DLL之类的可执行的应用),由其它进程操纵,操纵其它进程,访问网络,访问互联网,或访问互联网上的已知良好站点之外的站点(例如,黑名单站点),这里仅举数例。在414处,方法400继续,行为分析模块230基于所监视到的可执行的应用的行为特性确定是否应该改变可执行的环境。在操作412处执行的动态行为分析允许系统200在可执行的应用执行的同时变更可执行的应用(或者可执行的应用的一部分)的可执行的环境。这使系统200能够保护自身免遭看起来安全但结果是恶意的应用的危害。例如,行为分析模块230可以确定某一应用来自于已知的和可信赖的源,允许该应用在标准执行环境210之内启动。然而,在操作期间用户可以指示应用从未知源下载新的插件。可以配置行为分析模块230以拦截此事件并指示系统200将新的插件重定向到沙箱执行环境220内以执行并加强监视。在另一个示例中,行为分析模块230可以基于应用的历史行为的分析确定应用可以执行在标准执行环境210之内。然而,在执行期间应用可能违反管理可接受行为的安全策略而试图更新客户端系统110的配置数据库。在此示例中,行为分析模块230可以指示系统200将正在执行的应用移入沙箱执行环境220以保护系统200免遭任何更进一步的潜在危害。在416处,方法400用行为分析模块230检查以确定可执行的应用是否应该移入沙箱执行环境220。如果要移动可执行的应用,那么方法400继续,在420处,系统200继续可执行的应用在沙箱执行环境220之内的执行。如果不打算将可执行的应用移入沙箱环境,那么方法400循环返回到操作408并继续,直到可执行的应用终止。图5是描述了使用行为分析为可执行的应用配置执行环境的方法500的具有泳道的流程图。方法500包括来自方法400的操作和一些附加的可选择的操作,诸如在502处应用安全策略,在510处确定沙箱限制范围,以及在504和512处监视可执行的应用。方法500包括操作502,其中行为分析模块230应用安全策略。在一示例中,安全策略可以从诸如本地服务器140之类的中心服务器获得。在另一个示例中,安全策略对于每一单独的客户端系统110可以是本地的。在某些示例中,安全策略可以由用户控制。在其它示例中,安全策略可以在组织级由网络或系统管理员控制。安全策略可以包括受限的操作的列表、黑名单的站点或应用的列表、默认执行在沙箱环境内的应用、沙箱化的特定例外、用户或群级别的限制、用户或群级别的许可和用户或群级别的解除。正如在图5中所描述的,在行为分析模块230于操作404处执行任何行为分析之前,可以应用安全策略。应用安全策略可以识别或者是已知可信赖的或者是已知潜在恶意的可执行的应用,以防止任何进一步的行为分析变成必需的。安全策略还可以用于配置行为分析模块230。在其它示例中,安全策略可以应用在方法500之内的其它点,或者仅仅被行为分析模块230用于执行行为分析。方法500还可以包括操作510,其中行为分析模块确定应用于沙箱执行环境220的限制范围。在一示例中,行为分析模块230可以使用有关可执行的应用的信息以确定当应用在沙箱执行环境220之内执行时应该如何限制对可执行的应用的控制。在某些示例中,行为分析模块230还可以使用源于安全策略的信息以配置对沙箱环境的限制。限制范围可以包括:系统资源访问,访问网络资源,互联网访问,由可信赖源签名的插件,网络地址范围,上黑名单的站点,通信协议(允许或者限制),与其它进程通信,或者与沙箱环境之外的进程通信。允许行为分析模块230有选择地配置沙箱环境可以增强沙箱化进程的功能,使能对允许执行什么可执行的应用的更细的控制级别,同时仍然维持最低安全级别。有选择地配置沙箱环境还可以通过允许在沙箱环境之内更密切地监视更多可执行的应用来增强安全,同时仍然使得可执行的应用能够执行必需的操作。方法500包括操作504和512,其中系统监视引擎240监视由可执行的应用执行的操作的可配置的范围。在操作504处,方法500监视在标准执行环境210之内正在执行的可执行的应用。在一示例中,由系统监视引擎240在504处收集的监视信息可以被行为分析模块230用于确定可执行的应用是否应该移入沙箱环境220。正如以上论述的,由于在应用开始之后检测到的意外潜在恶意行为,可执行的应用可能需要移入沙箱环境。在操作512处,方法500监视在沙箱执行环境220之内正在执行的可执行的应用。在一示例中,由系统监视引擎240在512处收集的监视信息可以被行为分析模块230用于确定可执行的应用是否可以移出沙箱环境。监视可执行的应用在沙箱环境220之内的执行还可以用于确定由应用产生的信息是否可以传递到沙箱环境220之外。另外,监视的信息可用于动态地增大或减小应用于沙箱环境220的限制范围。图6是依照示例描述了在可执行的应用的行为分析中的可选操作的流程图。方法404包括在602处应用安全策略、在604处分析可执行的应用特性和在606处分析要由可执行的应用所访问的资源。在此示例中,可以配置行为分析模块230以既在可执行的应用在执行环境之内执行之前又在可执行的应用执行的同时(例如在方法400之内的操作422处)执行操作602、604和606。如在图6中所描述的,方法404开始于应用安全策略的行为分析模块230。在一示例中,应用安全策略配置行为分析模块230如何执行行为分析。例如,安全策略可以控制行为分析模块230如何对应用的起源或未签字的安全证书作出反应。安全策略还可以被用作列为黑名单的URL或应用的源,等等。在604处,方法404继续,行为分析模块230分析关于可执行的应用的所有可用特性。特性可以包括起源(例如,URL或主机系统信息)、资源要求、过去的操作、信赖级别(例如,通过访问在线信誉数据库所确定的)或安全证书。行为分析模块230可以使用这些特性来确定可执行的应用是否有可能构成恶意的活动的威胁。在606处,方法404完成,行为分析模块230分析可以由可执行的应用访问的资源。在一示例中,行为分析模块230可以分析实时可解释的应用的代码以确定应用可能试图访问什么资源。在另一个示例中,行为分析模块230可以依靠详述了应用所执行的过去操作的信息以便确定应用可能试图访问什么资源。图7是依照示例描述了在为可执行的应用确定执行环境中的可选操作的流程图。确定可执行的环境的方法406可以可选地包括诸如以下的操作,在702处应用安全策略,在704处分析安全证书,在706处对比安全数据库检查应用签名,在708处确定执行在沙箱环境中的可执行的应用的一部分,在710处为沙箱环境确定限制范围,以及在712处为由可执行的应用在沙箱环境之内执行的操作确定处置。正如以上论述的,安全策略可以应用在诸如方法400或方法500之类的行为沙箱化的方法中的各个点。在此示例中,安全策略可以由行为分析模块230应用于为可执行的应用确定执行环境。在此示例中,方法406继续,在操作704处,行为分析模块230分析可执行的应用的安全证书。在一示例中,下载的应用可以经由诸如安全套接层(SSL)或者传输层安全(TLS)之类的安全通信信道接收。典型地,SSL或TLS使用由证书机构提供的且包括可以验证的数字签名的证书。如果用于下载可执行的应用的连接利用具有有效数字签名的证书担保,那么应用来自可以信赖的源变得更加可能。行为分析模块230在确定可执行的应用是否应该执行在沙箱环境之内时可以包括安全类型和安全证书的有效性。在706处,方法406可以继续,行为分析模块230对比安全数据库来检查应用签名(或其它鉴别特性)。在一示例中,针对每一可执行的应用的签名可以通过散列算法创建并保存在诸如数据库140之类的数据库中。关于应用的信赖价值的信息可以在与唯一签名相关联的数据库内分类。威胁数据库可以保持在本地或在诸如远程数据库170之类的中心。位于中心的威胁数据库可以从多个位置收集关于潜在恶意的以及已知是安全的应用的数据,因而提供对潜在的已知威胁的更广泛的观察。在708处,方法406可以继续,行为分析模块230确定要在沙箱执行环境之内执行的可执行的应用的一部分。正如以上论述的,可执行的应用经常执行为多个执行线程,或者可以包括多个不同的可以在某种程度上独立执行的组件。在一示例中,系统200能够在沙箱环境之内执行可执行的应用的单独的线程或者甚至单独的纤程,同时允许应用的其余部分执行在标准执行环境中。例如,如果行为分析模块230确定应用的某一线程有破坏存储器的历史,那么该潜在恶意的线程可以移入沙箱环境220执行。沙箱环境220可以使用受保护的存储空间以防止任何存储器破坏不利地影响到系统的其余部分。在710处,方法406可以继续,行为分析模块230为沙箱环境确定限制范围。正如以上论述的,用于沙箱环境220的限制范围可以包括在沙箱之内允许什么级别的I/O,是否允许沙箱化的应用与沙箱环境220外面通信,是否允许沙箱之外的进程操纵沙箱环境220之内执行的进程,以及是否允许互联网访问在沙箱环境220之内的进程,等等。最后在712处,方法406可以结束于行为分析模块230为在沙箱环境220之内执行的操作确定处置。在一示例中,由在沙箱执行环境220之内的进程执行的操作可以被例如系统监视引擎240拦截。一旦被拦截,这些操作可以被一起阻止(无声地或者向用户发送错误或者调用应用)、被允许访问指定的资源(例如,在数据库中的数据,存储位置,网络装置)或者被重定向到由沙箱环境控制的私有位置。在此示例中,行为分析模块230可以基于可执行的应用的行为特性确定如何配置沙箱环境220。例如,如果配置沙箱环境220以将所有操作重定向到私有的受限的资源空间之内,那么仅允许可执行的应用与来自主机系统的镜像的数据交互。在沙箱化的应用终止后,通过或者从系统中清除或者用由沙箱化的应用执行的操作更新主机系统,来处置私有的(镜像的)数据。注意,只有如果可执行的应用在沙箱环境220之内在操作期间没有违反任何安全策略或执行任何潜在恶意操作,才可能允许更新主机系统。在某些示例中,操作在沙箱环境之外的进程可以被允许访问私有资源以得到由沙箱化的可执行的应用产生的信息。图8是描述了使用行为分析来分析可执行的应用的示例方法800的流程图。方法800包括以下操作:在802处检测可执行的应用的启动,在804处执行可执行的应用的行为分析,在806处确定是否在沙箱执行环境之内执行可执行的应用,在808处在标准执行环境中开始可执行的应用,在810处对正在执行的可执行的应用执行行为分析,在812处确定可执行的应用是否应该移入沙箱执行环境,在814处确定可执行的应用是否仍然在执行,在822处配置沙箱执行环境,在824处在沙箱执行环境之内开始可执行的应用,在826处对正在执行的可执行的应用执行行为分析,以及在830处确定是否继续在沙箱执行环境之内执行可执行的应用。在一些示例中,方法800还可以包括在820处确定沙箱化的范围以及在832处处置沙箱化的数据和操作。在一示例中,方法800在802处开始,系统监视引擎240检测可执行的应用的启动。在此示例中,系统监视引擎240可以指示系统200保持可执行的应用的执行,同时可执行的应用被分析以确定其是否可能是恶意的。在804处,方法800继续,行为分析模块230对可执行的应用执行行为分析。行为分析模块230分析可执行的应用以获取恶意软件或违犯安全策略的任何指示。接下来,在806处,方法800继续,行为分析模块230确定可执行的应用是否被移入沙箱执行环境220。如果允许可执行的应用执行在诸如标准执行环境210之类的标准执行环境之内,则方法800在808处继续。在一示例中,在808处,方法800在标准可执行的环境210中开始可执行的应用。在810处,方法800继续,行为分析模块230对正在执行的可执行的应用执行行为分析。在某些示例中,系统监视引擎240可用于监视由可执行的应用执行的操作。可以由行为分析模块230针对潜在恶意行为来分析所监视的操作。在812处,行为分析模块230动态地确定正在执行的可执行的应用是否应该移入沙箱环境。如果在812处可执行的应用不被移入沙箱环境,则方法800在操作814处继续。在814处,方法800继续,系统200确定可执行的应用是否已经终止。如果可执行的应用继续执行,则方法800循环返回到操作808。回到操作812处,如果行为分析模块230确定可执行的应用表现出潜在恶意行为,那么通过将可执行的应用移入沙箱执行环境220内,方法800继续。方法800执行类似任务,不论沙箱化正在执行的可执行的应用还是仍然在启动进程中的可执行的应用。在某些示例中,方法800在820处开始沙箱化进程,其中行为分析模块230确定沙箱化范围。沙箱化范围可以包括沙箱环境对像盘I/O或网络访问的事物有多限制,以及可执行的应用的什么部分实际上执行在沙箱环境220之内。在一示例中,沙箱化进程在操作822处开始,行为分析模块230根据诸如沙箱化范围或安全策略之类的输入配置沙箱环境220。在一示例中,一旦配置了沙箱执行环境220,方法800在824处通过在沙箱执行环境220之内开始或继续可执行的应用而继续。接下来,方法800在826处继续,行为分析模块230对正在执行的可执行的应用执行行为分析。在此示例中,对正执行在沙箱执行环境220之内的可执行的应用执行行为分析,以便动态地确定在可执行的应用或周围环境方面的变化是否允许从沙箱执行环境220中移除可执行的应用。在828处,方法800继续,行为分析模块230确定是否继续沙箱化可执行的应用。如果可执行的应用保持在沙箱执行环境220之内,则方法800继续到操作830。在操作830处,系统200确定可执行的应用是否继续执行。如果可执行的应用继续执行,则方法800循环返回到操作826。如果可执行的应用已经终止,那么方法800在操作832处结束。在832处,系统200处置沙箱化的数据和操作。沙箱化数据的处置可以包括清除来自系统的信息或者允许系统200更新受影响的资源。在某些示例中,沙箱化的数据和操作还可以适用于在标准执行环境210之内的进程,同时保持该数据和操作在分割的资源之内。回到操作828处,如果确定可执行的应用可以从沙箱执行环境220移除,则方法800在操作814处继续。主要在客户端系统110内的操作方面描述了以上方法。然而,类似方法或如上所述的多个部分可以在网关装置120之内实现。例如,可以配置网关装置120以检测从广域网130下载的可执行的应用。还可以配置网关装置120以对引入的可执行的应用执行行为分析。最初行为分析结果可以与客户端系统110共享,于是客户端系统110可以酌情沙箱化引入的可执行的应用。模块,组件和逻辑在此描述了包括逻辑或许多组件、模块、引擎或机制的某些实施例。模块可以构成要么软件模块(例如,实现在机器可读介质上的代码或在传输信号中的代码)要么硬件模块。硬件模块是能够执行某些操作且可以以某种方式配置或布置的有形的单元。在示例实施例中,一个或更多个计算机系统(例如,单机,客户端,或服务器计算机系统)或计算机系统的一个或更多个硬件模块(例如,一处理器或一群处理器)可以由软件(例如,应用或部分应用)配置为工作以执行在此描述的某些操作的硬件模块。在各种实施例中,可以机械地或电子地实现硬件模块。例如,硬件模块可以包含永久被配置为执行某些操作的专用电路或逻辑(例如,特定目的处理器,诸如现场可编程门阵列(FPGA)或特定应用集成电路(ASIC))。硬件模块还可以包含暂时由软件被配置为执行某些操作的可编程序逻辑或电路(例如,如在通用处理器或其它可编程处理器内所含有的)。将会理解,是用专用和永久配置的电路还是用暂时配置的电路(例如,由软件配置的)来机械地实现硬件模块的决策可以由成本和时间考虑来驱动。因此,应该理解术语“硬件模块”涵盖有形的实体,是物理上构造的、永久配置(例如,硬连接)或暂时配置(例如,编程)为用某种方式操作和/或执行在此描述的某些操作的有形实体。考虑其中硬件模块被暂时配置(例如,编程)的实施例,不必实时地在任何一个实例处配置或实例化每一硬件模块。例如,当硬件模块包含使用软件配置的通用处理器时,通用处理器在不同时间可以配置为各个不同的硬件模块。软件可以相应地配置处理器,例如,以在一个时间实例处构成特殊的硬件模块,以及在不同的时间实例处构成不同的硬件模块。硬件模块可以提供信息给其它硬件模块,以及从其它硬件模块接收信息。因此,所描述的硬件模块可以被认为是通信地耦合的。当多个这样的硬件模块同时存在时,可以通过连接硬件模块的信号传输(例如,经由合适的电路和总线)完成通信。在其中不同时间配置或实例化多个硬件模块的实施例中,这些硬件模块之间的通信可以例如通过信息在多个硬件模块所访问的存储器结构中的存储与取回来实现。例如,一个硬件模块可以执行操作并将该操作的输出存储在其通信地耦合的存储设备中。进一步的硬件模块然后可以在稍后的时间访问存储设备以取回并处理所存储的输出。硬件模块还可以用输入/输出装置开始通信,且可以对资源进行操作(例如,收集信息)。在此描述的示例方法的各种操作可以至少部分地由一个或更多个暂时配置(例如,由软件)或永久被配置为执行相关操作的处理器执行。不论暂时地还是永久地配置,这样的处理器可以构成运转以执行一个或更多个操作或功能的处理器实现的模块。在一些示例实施例中,在此提到的模块可以包含处理器实现的模块。类似地,在此描述的方法可以至少部分是处理器实现的。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的模块执行。某些操作的执行可以分布在一个或更多个处理器之中,不是只驻留在单个机器之内,而是部署于多个机器之中。在一些示例实施例中,一处理器或多处理器可以位于单个位置(例如,在家庭环境、办公室环境之内或作为服务器机群),而在其它实施例中,多处理器可以分布在多个位置之中。一个或更多个处理器还可以运转以支持在“云计算”环境中的或作为SaaS的相关操作的执行。例如,至少一些操作可以由计算机群(作为包括处理器的机器的示例)来执行,这些操作可通过网络(例如,互联网)以及通过一个或更多个合适的接口(例如,API)来访问。电子设备和系统示例实施例可以用数字电子电路或用计算机硬件、固件、软件或用这些的组合实现。示例实施例可以使用计算机程序产品(例如,有形地实现在信息载体中的、在机器可读介质中的计算机程序,由数据处理设备、可编程处理器、计算机或者多个计算机执行,或者控制它们的操作)实现。计算机程序可以用任何形式的编程语言编写,包括编译的或解释的语言,并且其可以以任何形式部署,包括作为单机程序或作为模块、子程序或者适合用于计算环境的其它单元。可以部署计算机程序以使其执行在一个计算机上,或者在位于一个站点或分布在多个站点之中并由通信网络互相连接的多个计算机上。在示例实施例中,操作可以由一个或更多个执行计算机程序的可编程处理器执行以通过操作输入数据并产生输出来执行功能。方法操作还可以由特殊用途逻辑电路执行,且示例实施例的设备可以实现为特殊用途逻辑电路,特殊用途逻辑电路例如现场可编程门阵列(FPGA)或特定应用集成电路(ASIC)。计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,且一般通过通信网络相互作用。客户端和服务器的关系依据执行在各个计算机上的且彼此具有客户端-服务器关系的计算机程序呈现。在部署可编程的计算系统的实施例中,将会理解硬件和软件结构两者都需要考虑。特别地,将会理解,是用永久配置的硬件(例如,ASIC)、暂时配置的硬件(例如,软件和可编程处理器的组合)还是用永久和暂时配置的硬件的组合来实现某些功能的选择可以是设计选择。下面陈述在各种示例实施例中可以部署的硬件(例如,机器)和软件体系结构。示例机器体系结构和机器可读介质图9是以计算机系统900为示例形式的机器的方框图,在其内可以执行用于致使机器执行在此论述的方法中的任何一个或更多个的指令。照此,在一实施例中,计算机系统900包含系统900。在可替换的实施例中,机器作为独立装置运转,或可以连接(例如,联网)到其它机器。在联网的部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的能力运转,或者在点对点(或分布式)网络环境中作为对等机。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网站装备、网络路由器、交换机或桥接器,或者是任何能够执行指定由该机器将采取的行动的指令(顺序的或别的方式)的机器。进一步地,在仅仅示出了单个机器的同时,也应该使术语“机器”包括独立地或共同地执行一个(或多个)指令集以执行在此论述的方法中的任何一个或多个的机器的任一集合。示例计算机系统900包括处理器902(例如,中央处理单元(CPU)、图形处理单元(GPU),或两者)、主存储器904和静态存储器906,它们通过总线908彼此通信。计算机系统900可以进一步包括视频显示单元910(例如,液晶显示器(LCD)或者阴极射线管(CRT))。计算机系统900还包括字母数字输入装置912(例如,键盘)、用户接口(UI)导航装置914(例如,鼠标)、盘驱动装置916、信号产生装置918(例如,扬声器)和网络接口装置920。机器可读介质盘驱动器单元916包括机器可读介质922,其上存储有被在此描述的方法或功能中的任何一个或更多个实现或利用的数据结构和指令(例如,软件)924的一个或多个集合。指令924也可以完全或者至少部分地驻留在主存储器904之内,和/或在由计算机系统900执行期间驻留在处理器902之内,其中主存储器904和处理器902也构成机器可读介质。虽然在示例实施例中示出机器可读介质922是单个介质,但是术语“机器可读介质”可以包括存储一个或更多个数据结构和指令924的单个介质或多个介质(例如,集中的或分布式数据库,和/或相关的高速缓存和服务器)。也应该使术语“机器可读介质”包括任何有形的介质,其能够存储、编码或携带由机器执行的且使得机器执行本发明的当前实施例的方法中的任何一个或更多个的指令,或者其能够存储、编码或者携带被这样的指令所利用的或与这样的指令相关联的数据结构。因此应该使术语“机器可读介质”包括,但不局限于,固态存储器以及光学和磁性介质。机器可读介质的特定示例包括非易失性存储器,包括举例来说半导体存储器装置,例如,可擦除可编程只读存储器(EPROM),电可擦除可编程只读存储器(EEPROM),以及闪速存储器装置;磁盘,诸如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。传输介质可以进一步经由使用传输介质的通信网络926传输或接收指令924。可以使用网络接口装置920和大量众所周知的传递协议(例如,HTTP)中的任何一个来传输指令924。通信网络的示例包括局域网(LAN)、广域网(WAN)、互联网、移动电话网、简易老式电话(POTS)网络以及无线数据网络(例如,WiFi和WiMax网络)。应该使术语“传输介质”包括任何无形的介质,其能够存储、编码或携带由机器执行的指令,并且包括数字的或模拟的通信信号或者其它无形的介质以便于这样的软件的通信。因而,已经描述了向基于网络的市场中的用户作出上下文建议的方法和系统。虽然已经参考特定示例实施例描述了本发明的当前实施例,但是显然可以对这些实施例作出各种调整和变动而不背离本发明实施例的更加广泛的范围和精神。因此,说明书和附图应以说明性而非限制性意义来考虑。虽然已经参考特定示例实施例描述了实施例,但是显然可以对这些实施例作出各种调整和变动而不背离本发明实施例的更加广泛的范围和精神。因此,说明书和附图应以说明性而非限制性意义来考虑。构成本发明的一部分的附图用图例说明的方法,而不是限制性地,显示了可以实践主题的特定实施例。足够详细地描述了示出的实施例以使本领域技术人员能够实践在此公开的教导。可以利用并从此导出其它实施例,以使可以作出结构的和合乎逻辑的替换和变动而没有背离此公开的范围。因此,不以局限的意义看待此详细说明,并且仅由附加的权利要求书,连同这些权利要求书所被授权的全部等效范围,来定义各种实施例的范围。本发明主题的这样的实施例可以单独地和/或总体地被称为术语“发明”,只为方便起见,且如果实际公开了不止一个,则没有意图主动将此应用的范围局限于任何单一发明或发明构思。因而,虽然已经在此示出和描述了特定实施例,但是应该理解可以用适于达到相同目的的任何布置来代替所显示的特定实施例。此公开意图覆盖各种实施例的任何和所有修改或变体。以上实施例和没有在此特别描述的其它实施例的组合对于本领域技术人员在审阅以上描述时是显而易见的。在此文件中提及的所有出版物、专利和专利文件通过整体引用而被合并于此,就好像通过引用分别合并一样。如果在此文件和通过引用所合并的那些文件之间发生不一致的用法,在所合并的引文中的用法应该认为是对此文件的用法的补充;对于矛盾的不一致之处,在此文件里的用法起支配作用。在此文件中,在专利文件中通用的术语“一”或“一个”用于包括一个或大于一个,不依赖于任何其它实例或“至少一个”或“一个或更多个”的用法。在此文件里,术语“或”用于指代非排他性的或者使得“A或B”包括“A而不是B”、“B而不是A”和“A和B”,除非另有陈述。在附加的权利要求书中,术语“包括”和“在其中”分别用作术语“包含”和“其中”的等价通俗说法。此外,在下面的权利要求书中,术语“包括”和“包含”是开放的,那就是说,包括除了在这样的术语后面列出的元件之外的元件的系统、装置、制品或进程仍然被视为落入那些权利要求的范围。此外,在下面的权利要求书中,如果使用了术语“第一”、“第二”和“第三”等,其只被用作标记,而并非意欲向其对象施加数值条件。遵照37C.F.R.§1.72(b)提供本公开的摘要,其要求摘要能使读者迅速了解技术公开的本质。应当理解,它不会用于解释或限制权利要求书的范围或意思。此外,在前面的具体实施方式中,能够看出为了简化本公开起见各种特征集中了在单个实施例里。在此公开的方法并非解释为反映了所主张的实施例需要比在每一权利要求中所明确记载的更多的特征。而是如以下权利要求书所反映的,发明的主旨以少于单个所公开实施例的所有特征而展现。因而,以下权利要求书由此并入该具体实施方式中,其中每一权利要求作为单独的实施例独立存在。
当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!