插件的沙盒执行的制作方法

文档序号:6595710阅读:216来源:国知局
专利名称:插件的沙盒执行的制作方法
插件的沙盒执行背景软件供应商在寻找使用现有数量的当前发布的应用程序为用户提供价值的方法, 而不是通过新产品的购买。这可以通过提供允许用户代码作为正常应用程序操作的一部分来运行的特征来达到。以被配置为在应用程序操作中的具体点处运行的“插件”或辅助应用程序的形式添加用户代码。在在线环境中,由于代码运行在主服务器上使这变得具有挑战性,因此编码时的错误或恶意代码可以导致对公司计算机系统或公司网络的破坏。概述以下提出简单的概述以便提供对此处描述的一些新颖实施例的基本理解。本概述不是大量的概述,并且不旨在确定关键/决定性的元素或描绘其范围。其唯一目的是以简化形式呈现某些概念作为之后呈现的更详细描述的序言。所公开的体系结构是隔离软件插件代码的特征的唯一组合,以便于代码在公司主环境中被安全地运行,并且还为该环境执行有用的功能。所述体系结构包括被设计为标识和防止有意或无意的恶意插件、从错误中恢复、以及通过罚分系统自动地禁用和阻止恶意插件的注册的沙盒系统。所述沙盒系统还提供与在同一被隔离系统上运行的其它插件的隔离,以及限制对诸如机器名、IP地址、文件系统等的敏感信息和资源的访问。可以以多级别提供隔离,例如机器隔离、进程隔离、具有受限访问权限的安全账户、以及使用本地安全机制的进程中的应用程序域隔离。所述多级别隔离的组合实现了高级别的安全性。此外,所述体系结构是用于插件执行的高度可伸缩、无状态、以及低管理的体系结构,该体系结构可以在没有预先配置的情况下通过即时(on-the-fly)添加(或删除)额外的沙盒服务器而被简单地缩放。为了实现前述和相关目的,此处结合以下描述和附图描述了某些说明性的方面。 这些方面仅指示可实现此处公开的原理的各种方式,且所有方面及其等价物均旨在包括在所要求保护的主题的范围内。当结合附图考虑以下详细描述时,其它优点和新颖的特征将是显而易见的。附图简述

图1示出依照所公开的体系结构的程序管理系统。图2示出包含有用于惩罚恶意辅助代码的惩罚组件的更详细的程序管理系统。图3示出示例性的程序管理体系结构。图4示出用于使用沙盒服务器的程序管理的更一般的系统。图5示出管理程序的方法。图6示出基于罚分管理辅助代码的方法。图7示出基于罚分管理注册的方法。图8示出管理恶意辅助代码的发布者的方法。图9示出基于恶意辅助代码管理机构的方法。图10示出基于负载平衡选择沙盒服务器的方法。
图11示出依照所公开的体系结构,可执行隔离的插件执行的计算系统的框图。图12示出用于插件隔离的程序管理的计算环境的示意框图。
具体实施例方式沙盒体系结构隔离和标识恶意插件(有意的或无意的)以防止系统中断和故障。 如果插件引入错误,所述体系结构通过罚分系统自动地禁用和阻止恶意插件的注册。可以以多级别提供隔离,例如机器隔离、进程隔离、具有受限访问权限的安全账户、以及使用本地安全机制(例如.Net代码访问安全)的进程中的应用程序域(例如AppDomain)隔离。 多级别隔离的组合实现了高级别的安全性。此外,所述体系结构是用于插件执行的高度可伸缩、无状态、以及低管理的体系结构,该体系结构可以在没有预先配置的情况下通过即时添加(或删除)额外的沙盒服务器而被简单地缩放。现在将参考附图,其中使用相同的标号来在全文中指示相同的元素。在以下描述中,出于解释的目的,阐明了众多具体细节以便提供对其彻底的理解。但是显然,所述新颖的实施例能够在没有这些具体细节的情况下实现。在其它情况中,用框图形式示出了熟知的结构和设备以便于帮助对其的描述。目的旨在涵盖落在所要求保护的主题的精神和范围之内的所有修改、等价物、以及替代物。图1示出依照所公开的体系结构的程序管理系统100。系统100包括用于接收与应用程序106(例如服务器)一起执行的辅助代码104的接口组件102。例如,接口组件102 可以是应用程序106的一部分,或者是单独一段代码。或者例如,接口组件102可以是隔离组件108的一部分。系统100还包括用于接收辅助代码104并且使用一个或更多级别的隔离将辅助代码104安全地隔离在隔离环境110中的隔离组件108,以及用于部分地基于异常执行行为来监控和管理隔离环境110中辅助代码104的执行的管理组件112。辅助代码104可以是接收到的用于与作为服务器应用程序的应用程序106—起执行的第三方插件,而隔离组件108可以是沙盒服务器的一部分,为了隔离执行而将辅助代码104发送至该沙盒服务器。一个或更多隔离级别包括机器隔离级别、进程隔离级别、或应用程序域代码访问隔离级别中的至少一个。在替代的实现中,可以在用户端单独地采用所述设计,或者也可以在服务器上采用所述设计。换句话说,并不需要在服务器上单独地处理隔离的插件。接口组件102保证了来自辅助代码104的调用被定向到适当的应用程序106。换句话说,在有多个应用程序运行隔离的插件时,接口组件102将来自插件的调用正确地路由至对应的服务器应用程序。管理组件112通过禁用辅助代码104来停止在隔离环境108 中执行辅助代码104。当辅助代码104被禁用的次数超过了阈值次数时,阻止辅助代码104 的注册。图2示出包含有用于惩罚恶意辅助代码的惩罚组件202的更详细的程序管理系统 200。系统200包括用于接收与应用程序106(例如服务器)一起执行的辅助代码104的接口组件102,用于接收辅助代码104并且使用一个或更多级别的隔离将辅助代码104安全地隔离在隔离环境110中的隔离组件108,以及用于监控和管理隔离环境110中辅助代码104的执行的管理组件112。管理组件112将不允许运行由于惩罚系统而被禁用的禁用辅助代码 104。惩罚组件202跟踪由单独的辅助代码104累积的罚分,并且当超过阈值时禁用辅助代码104。换句话说,为恶意辅助代码104分配和累积罚分。惩罚组件202包括可配置的惩罚阈值,违反该阈值将造成对该辅助代码进一步执行的阻止。当违反惩罚阈值时,可以基于程序集签名阻止该同一辅助代码104的注册。程序集签名包括程序集名、程序集版本、发布者公共密钥令牌、以及程序集文化信息。在系统中被禁用的程序集的历史可以潜在地充当判定哪些发布者应该被禁用的数据。在替代的实施例中,还可以通过发布者密钥令牌来禁用程序集的注册,发布者密钥令牌是单独的功能并且独立于罚分系统而工作。可以将接口组件102与应用程序106 —起放置在服务器机器上,其中应用程序106 可以是服务器应用程序。类似地,可以将管理组件112和/或惩罚组件202与应用程序106 一起放置在服务器机器上。但是这并不是必须的要求,因为可以将接口组件102、管理组件 112、以及惩罚组件202与隔离组件108—起放置,其中隔离组件108可以是隔离服务器(也叫做“沙盒”服务器)。系统200还可以包括负载管理组件204,该负载管理组件用于基于增加的执行负载选择一个或更多现有的隔离组件以跨多个现有的隔离组件平衡负载。换句话说,在即时体系结构的预期中将有来自相同或不同服务器的多个应用程序以用于处理插件(辅助代码)。然后根据执行行为将插件发送到隔离服务器以用于执行、监控、以及管理。例如,恶意插件对于对应的应用程序(和服务器)或在同一网络上布置的其它系统而言将不是威胁。换句话说,程序管理系统200包括用于接收与应用程序106 —起执行的辅助代码 104并且用于保证将来自辅助代码104的调用被定向至应用程序106的接口组件102。隔离组件108接收辅助代码104,并且使用机器隔离级别、进程隔离级别、或应用程序域代码访问隔离级别中的至少一个将辅助代码104安全地隔离在隔离环境110中。惩罚组件202 跟踪由单独的辅助代码累积的罚分,并且当响应于辅助代码104的异常执行行为而超过阈值时禁用辅助代码104。管理组件112基于罚分监控和管理隔离环境110中辅助代码104 的执行。基于响应于异常执行行为而应用的累计总罚分,管理组件112通过禁止被禁用辅助代码104的执行来阻止辅助代码104的执行。基于提供恶意辅助代码的发布者的历史, 管理组件112阻止发布者的辅助代码的执行。此外,基于在来自于机构的已经被执行或正在被执行的现有辅助代码上累积的罚分,管理组件112阻止来自于该机构的新辅助代码的注册。辅助代码104是接收的用于与应用程序106 —起执行的第三方插件,其中应用程序 106是服务器应用程序,而隔离组件108可以是沙盒服务器的一部分,为了隔离执行而将辅助代码104发送至该沙盒服务器。图3示出示例性的程序管理体系结构300。程序管理体系结构300可以包括独立的沙盒服务器机器302(用于隔离环境)或对现有平台服务器机器304的增强。体系结构 300可以包括在平台服务器机器304中被定义为“沙盒服务器”的服务器“角色”。沙盒服务器机器302可以是安全地执行辅助代码(AC) 306的单独的专用服务器机器,也被称为“插件”。但是,这并不是必须的要求,因为可以在平台服务器机器304上共同放置沙盒服务器功能。在这一实施例中,在.Net框架的上下文中描述了体系结构300,但是当使用其他操作系统时可以使用其它类似的实现。(· Net框架通常被使用在微软公司的操作系统中,该框架包括用于与新应用程序的互通性的预编码解决方案的库。)辅助代码306可以是包含在具有明确定义的接口的.Net程序集中的.Net组件。沙盒服务器机器302包括被描述为“主机”的主过程308 (例如实现为操作系统 (OS)服务)。例如作为单个过程的主过程308可以管理一个或更多被描述为“工作者”的工作者过程310。工作者过程310可以包括一个或更多应用程序域(ADs) 312(在.Net框架中被称为AppDomains),该应用程序域可以被用于在工作者过程310中隔离运行的代码。 因此,沙盒辅助代码306可以具有三个级别的隔离机器、进程、以及应用程序域。可以使用代码访问安全性(CAS)、. Net机制来限制应用程序域,以将.Net代码限制为只有“执行”特权。CAS使用与具体程序集相关的标识符。辅助代码306仅在受限制的应用程序域312中的一个中执行。主过程308和工作者过程310可以在低权限的账户下运行,该低权限账户仅在沙盒服务器机器302中执行非常有限的功能。使用注册组件318,在平台服务器数据库314中将辅助代码306注册为辅助代码 (AC)注册316。但是,如果累积罚分数已经超过了阈值,则不允许由注册组件318的注册。 此外,注册组件318仅允许签名的程序集的注册。注册组件318不允许来自已经被标记为不安全的发布者的程序集的注册。如果发布者被标记为安全的,可以注册程序集以不隔离地运行。为了被执行,辅助代码306从平台服务器机器304被传送到沙盒服务器机器302。
在沙盒服务器机器302上维护程序集高速缓存320。程序集高速缓存320存储用于每一辅助代码程序集的辅助代码程序集文件322 (表示为“AC程序集文件”)。当要在沙盒服务器机器302上执行辅助代码306时,检查程序集高速缓存320以确定高速缓存320 是否已经包含用于执行的正确的辅助代码306。如果否,则从平台服务器数据库314中取得辅助代码306,并且将其传送到沙盒服务器机器302,在该沙盒服务器中辅助代码306作为辅助代码程序集文件322被存储在程序集高速缓存320中。每一辅助代码程序集文件322 是被唯一标识的以便于版本化正确地应用和工作。从程序集高速缓存320中周期性地清理旧的辅助代码程序集文件。围绕着程序集高速缓存有整组的管理功能,例如限制程序集高速缓存的总大小,限制每个机构程序集高速缓存的总大小,限制程序集高速缓存中程序集的总生存时间等。如果版本是旧的,即程序集已经被更新为新的程序集,或者如果程序集在高速缓存中已经超过了允许的时间,则辅助代码程序集文件被认为是旧的。程序集高速缓存320的实现可以是不同的。例如,高速缓存320可以用本地数据库以及位于其中的程序集来实现,而不是存储为简单的文件。程序高速集缓存320是优化步骤以便不用在每次调用上跨通信信道保持传输相同的数据。为了允许辅助代码306进行有用的工作,给予辅助代码306执行平台服务器机器功能的接口。这一接口由工作者过程310管理,并且保证辅助代码306到平台服务器机器 304的所有调用返回到源平台服务器(这里为平台服务器机器304)。这可以仅当要维护事务完整性时使用。返回到同一服务器提供了设计中的简单性。同时存在内部事务插件和外部事务插件。外部事务插件可以到达不同的平台服务器。这使得用于事务的标识符回到源平台服务器(平台服务器机器304)处被识别,以
7便平台服务器机器304将由辅助代码306执行的新工作与源事务相关联。这意味着由沙盒的辅助代码306在事务上执行的所有工作在正确的事务上下文中被执行,并且消除任何对分布式事务的需要。如果在沙盒服务器机器302处辅助代码306抛出不可预测的异常、崩溃、使用过度的CPU时间或内存等,则源平台服务器机器304识别这一现象,并且使用惩罚组件3M使得用于包含辅助代码306的辅助代码程序集的罚分被累积。如果超过了用于辅助代码程序集的罚分数,则禁用该辅助代码程序集,并且包含在该程序集内的一组或更多组辅助代码将不再执行。但是此时,可以使用注册组件318再次不注册和注册程序集。相应地,保持程序集已经被禁用次数的计数。如果该计数超过定义的阈值,则直到执行管理动作之前阻止程序集进一步的注册。替代地,可以简单地重新启用被禁用的程序集。此外,如果用于为机构注册的所有辅助代码程序集的总罚分数超过预定阈值,则直到进行一些管理动作之前阻止用于该机构的辅助代码集合的所有进一步注册。此外,维护被阻止的发布者的表格,该表格便于由于过度数量的错误或崩溃而对发布者的阻止,从而包含有发布者身份的相关辅助代码程序集将不被注册、重新注册、或执行。通过返回至用于操作的源平台服务器304,以通过在不同沙盒服务器机器上的多个级别的插件执行来维护体系结构300的事务完整性。还可以有如果程序集已经正确运行了一段时间,则减少罚分的回报过程。这保证了在一段时间内的随机故障不会造成程序集被禁用。图4示出用于使用沙盒服务器402的程序管理的更一般的系统400。在操作中,当执行具有相关的沙盒插件步骤的平台服务器机器406的平台服务器404的操作时,从配置的沙盒服务器机器408的列表中选择可用的沙盒服务器机器(例如沙盒服务器40 。该选择过程可以基于负载管理组件204的负载平衡算法。负载管理组件204周期性地查询沙盒服务器机器408以确定可用性和负载。例如,负载管理组件204可以是每个平台服务器机器410的一部分。执行请求被转发到沙盒服务器机器402上的主过程412。主过程412确定在沙盒机器402的程序集高速缓存中的程序集是否可用,如果否,向源服务器(平台服务器机器 406)请求程序集。当程序集在程序集高速缓存中时,主过程412从可用池中选择工作者过程414,并且将执行请求转发至该工作者过程414。主过程412维护工作者过程的池,监控工作者过程资源的使用(例如内存、CPU使用等),以及在超过限制时关闭工作者过程。工作者过程的选择可以采用诸如循环法、随机、或使用某些仿射性的不同策略。一个策略是保留空闲工作者过程的列表。如果一个机构的请求到来,进行检查以确定该机构是否正在被工作中的工作过程所服务。如果是,请求被路由至该工作者过程,否则从可用的空闲工作者过程池中选取新的工作者过程并且使用它。工作者过程414创建和/或选择工作者过程414内的适当的CAS限制的应用程序域,并且载入所需的插件程序集和类。然后工作者过程414在使用相关参数向适当的平台服务器机器406作出调用的插件上调用“Execute (执行)”,该平台服务器机器包含插件可以执行平台服务器操作的接口。此外,向插件提供插件可以执行跟踪的接口。如果插件是恶意的并且累积了超过预定惩罚阈值的罚分数,则通过由平台服务器404在数据库416中禁用来阻止插件的进一步执行。如果插件已经被禁用了超过阈值的次数,则禁用该程序集的进一步注册。如果跨所有插件集合的总的被禁用计数超过另一个阈值,则可以禁用该机构所有插件的注册。插件接口是可扩展的,因此可以向插件提供额外的服务。此处包括了一组代表用于执行所公开的体系结构的新颖方面的示例性方法的流程图。为了解释简明的目的,尽管此处所示的一种或多种方法例如以流程图的形式被显示和表述为一系列的动作,但是应当理解到所述方法不受到动作的顺序的限制,因为某些动作可以相应地以不同的顺序出现和/或与此处显示和描述的动作中的其它动作一起同时出现。例如,那些本领域的技术人员应当理解到方法可以替代地表示为诸如状态图的一系列互相关联的状态或事件。此外,新颖的实现并不需要方法所示的所有动作。图5示出管理程序的方法。在500处,接收辅助代码以用于执行。在502处,将辅助代码发送到隔离环境以用于执行。在504处,在隔离环境中执行辅助代码。在506处,监控辅助代码执行的异常执行行为。在508处,基于异常执行行为管理辅助代码的执行。所述方法的额外方面可以包括为作为主操作的一部分的调度辅助代码供隔离执行。此外,在504之后,结果可以被返回平台,而主操作继续。图6示出基于罚分管理辅助代码的方法。在600处,监控辅助代码执行的异常执行行为。在602处,基于辅助代码的异常执行行为的实例应用罚分。在604处,累积罚分以与预定的惩罚阈值比较。在606处,相对于预定阈值停止辅助代码的执行。图7示出基于罚分管理注册的方法。在700处,罚分被应用、累积、以及与惩罚阈值比较。在702处,由累积的罚分数所确定,基于过度的异常行为阻止辅助代码的注册。在 704处,基于机构的插件的过度异常行为阻止辅助代码的注册。在706处,基于不安全的发布者阻止辅助代码的注册。图8示出管理恶意辅助代码的发布者的方法。在800处,不安全的发布者被添加到不安全发布者列表,可以通过管理动作从列表中删除。在802处,维护提供恶意辅助代码的发布者和发布者标识符的表格。在804处,从具有发布者标识符的发布者处接收辅助代码。在806处,基于所述表格和标识符阻止来自发布者的辅助代码的执行。在808处,基于所述表格和标识符阻止来自发布者的辅助代码的注册。图9示出基于恶意辅助代码管理机构的方法。在900处,基于一组或更多组辅助代码的恶意执行,向所述一组或更多组辅助代码应用罚分。在902处,对照惩罚阈值测试恶意组的累积的罚分。在904处,禁用恶意组,并且使用管理动作来重新启用先前被禁用的组。 在906处,标识一个或更多恶意组的机构。在908处,阻止该机构进行新的辅助代码的注册以及现有代码的重新注册。图10示出基于负载平衡选择沙盒服务器的方法。在1000处,在源平台服务器处接收辅助代码以用于执行。在1002处,访问负载平衡组件。在1004处,提交执行辅助代码的请求。在1006处,由负载平衡组件为隔离执行选择一个或多个沙盒服务器。可以诸如循环法、随机、或基于某些仿射性等的用于作出选择的不同策略。在1008处,监控辅助代码的恶意行为。在1010处,将恶意行为报告回源平台服务器并且应用罚分。在1012处,基于罚分管理恶意辅助代码的注册和运行。如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是,但不限于是,在处理器上运行的进程、处理器、硬盘驱动器、多种存储驱动器(光学的和/或磁性的存储介质)、对象、可执行码、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或更多组件可以驻留在进程和/或执行的线程中,并且组件可以位于一个计算机内和/或分布在两个或更多的计算机之间。在此使用词语“示例性”意指用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定被解释为比其他方面或设计更好或有利。现在参考图11,图11示出依照所公开的体系结构,可执行隔离的插件执行的计算系统1100的框图。为了为其各方面提供额外的上下文,图11以及以下描述旨在提供对于可实现各方面的合适计算系统1100的简要、一般表述。尽管以上描述是在可以在一个或更多计算机上运行的计算机可执行指令的一般上下文中,但是本领域的技术人员应当认识到还可以用与其他程序模块的组合和/或作为硬件和软件的组合来实现新颖的实施例。用于实现各方面的计算系统1100包括具有处理单元1104、系统存储器1106、以及系统总线1108的计算机1102。处理单元1104可以是诸如单处理器、多处理器、单核单元、和多核单元等的各商用处理器中的任何一种。此外,本领域的技术人员应当理解可以和其它计算机系统配置一起实现所述新颖的方法,该计算机系统配置包括微型计算机、大型计算机、以及个人计算机(例如台式计算机、膝上型计算机等)、手提式计算设备、基于微处理器的或可编程的用户电子设备等,其中每一个都可以在操作上和一个或更多相关设备耦合。系统存储器1106可以包括易失性的(VOL)存储器1110 (例如随机存取存储器 (RAM))和非易失性的(NON-VOL)存储器1112(例如ROM、EPROM、EEPROM等)。基本的输入 /输出系统(BIOS)可以被存储在非易失性的存储器1112中,并且包括诸如在启动期间便于计算机1102中组件之间的数据和信号通信的基本例程。易失性的存储器1110还可以包括用于高速缓存数据的诸如静态RAM的高速RAM。系统总线1108为系统组件提供接口,该系统组件包括,但不限于,存储器子系统 1106到处理单元1104。系统总线1108可以是能够进一步互联到存储总线(具有或没有存储器控制器)以及外围总线(例如PCI、PCIe、AGP、LPC等)的若干类型总线结构中的任何一种,并且可以使用各种商用总线体系结构中的任何一种。计算机1102进一步包括机器存储子系统1114,以及用于将存储子系统1114接口到系统总线1108和其它所需计算机组件的存储接口 1116。例如,存储子系统1114可以包括硬盘驱动器(HDD)、磁性软盘驱动器(FDD)、和/或光盘存储驱动器(例如⑶-ROM驱动器、DVD驱动器)中的一个或更多。例如,存储接口 1116可以包括诸如EIDE、ATA、SATA、以及IEEE 1394等的接口技术。一个或更多程序和数据可以被存储在存储器子系统1106、可移动存储器子系统 1118(例如闪存驱动器形式因素技术)、和/或存储子系统1114中,该存储子系统包括操作系统1120、一个或更多应用程序1122、其它程序模块IlM、以及程序数据11沈。一般地,程序包括执行特定任务或实现特定抽象数据类型的例程、方法、数据结构、其它软件组件等。 例如,在计算机1102是服务器机器(例如平台服务器、沙盒服务器)时,所述一个或更多应用程序1122、其它程序模块1124、以及程序数据11 可以包括图1中的系统100、图2中的系统200、图3中的程序管理体系结构300、一般系统400以及图5_9中的方法。
例如,操作系统1120、应用程序1122、模块IlM、和/或数据11 的全部或部分也可以被高速缓存在诸如易失性存储器1110的存储器中。应当理解,所公开的体系结构能够用各种商用的操作系统或操作系统(例如作为虚拟机器)的组合来实现。存储子系统1114和存储器子系统(1106和1118)充当用于数据、数据结构、计算机可执行指令等的易失性和非易失性存储的计算机可读介质。计算机可读介质可以是能够被计算机1102访问的任何可用介质,并且包括易失性的和非易失性的、可移动的和不可移动的介质。介质以任何合适的数字形式为计算机1102供应数据的存储。本领域的技术人员应当理解,可以使用诸如zip驱动器、磁带、快闪式存储器卡、卡带等的其它类型的计算机可读介质,以用于存储执行所公开的体系结构的新颖方法的计算机可执行指令。用户可以使用诸如键盘和鼠标的外部的用户输入设备11 与计算机1102、程序和数据交互。其它外部的用户输入设备11 可以包括话筒、IR(红外的)遥控器、控制杆、游戏控制器、照相机识别系统、手写笔、触摸屏、姿势系统(例如眼睛的动作、头部的动作等) 等等。用户可以使用诸如触摸板、话筒、键盘等的机载用户输入设备1130与计算机1102、程序和数据交互,例如其中计算机1102是便携式计算机。这些和其它的输入设备通过输入/ 输出(I/O)设备接口 1132经由系统总线1108被连接到处理单元1104,也可以通过诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等的其它接口被连接。I/O设备接口 1132还便于使用诸如打印机、音频设备、照相机设备等的输出外设1134,诸如声卡和/ 或机载音频处理能力。一个或更多图形接口 1136(通常还被称为图形处理单元(GPU))在计算机1102和外部显示器1138(例如IXD、等离子体)和/或机载显示器1140(例如便携式计算机的)之间提供图形和视频信号。图形接口 1136还可以被制造成计算机系统板的一部分。计算机1102可以通过使用经由有线/无线通信子系统1142到一个或多个网络和 /或其它计算机的逻辑连接,而在网络环境(例如IP)中操作。所述其它计算机可以包括工作站、服务器、路由器、个人计算机、基于微处理器的娱乐设备、对等设备、或其它通常的网络节点,并且一般包括相对于计算机1102描述的元素的许多或全部。所述逻辑连接可以包括到局域网(LAN)、广域网(WAN)、热点等的有线/无线的连接性。LAN和WAN网络环境在办公室和公司里是常见的,并且便于诸如内部网的企业范围内的计算机网络,而所有的内部网络可以连接到诸如因特网的全球通信网络。当在网络环境中使用时,计算机1102通过有线/无线通信子系统1142(例如网络接口适配器、机载收发器子系统等)连接至网络以与有线/无线网络、有线/无线打印机、 有线/无线输入设备1144等通信。计算机1102可以包括调制解调器,或具有用于通过网络建立通信的其它方式。在网络环境中,与计算机1102相关的程序和数据可以被存储在与分布式系统相关的远程存储器/存储设备中。应当理解示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。计算机1102可以使用诸如IEEE 802. xx标准族的无线电技术与有线/无线设备或实体通信,诸如用例如打印机、扫描仪、台式计算机和/或便携式计算机、个人数字助理 (PDA)、通信卫星、与无线可检测标签相关的任何仪器或位置(例如公用电话亭、报摊、洗手间)、以及电话有效地布置在无线通信(例如IEEE 802. 11无线电调制技术)中的无线设备。这至少包括用于热点、WiMax、以及Bluetooth 无线技术的Wi-Fi (或无线保真)。因此,通信可以是像常规网络所用的预定义的结构或者简单的是至少两个设备之间的自组织通信。WiFi网络使用名为IEEE 802. llx(a、b、g等)的无线电技术来提供安全、可靠、快速的无线连接性。可以使用WiFi网络将计算机互相连接,连接至因特网、以及连接至有线网络(使用与IEEE 802. 3-相关的介质和功能)。所示方面还可以实现在分布式计算环境中,其中由通过通信网络连接的远程处理设备执行特定的任务。在分布式计算环境中,程序模块可以位于本地和/或远程存储和/ 或存储器系统中。现在参考图12,图12示出用于插件隔离的程序管理的计算环境1200的示意框图。 计算环境1200包括一个或更多用户1202。用户1202可以是硬件和/或软件(例如线程、 进程、计算设备)。例如,用户1202可以留有cookie (小型文字文件)和/或相关的上下文
fn息ο环境1200还包括一个或更多服务器1204。服务器1204也可以是硬件和/或软件 (例如线程、进程、计算设备)。例如,服务器1204可以留有通过使用体系结构执行转化的线程。用户1202和服务器1204之间的一个可能的通信可以适用于在两个或更多计算机进程之间传输的数据包的形式。例如,数据包可以包括cookie(小型文字文件)和/或相关的上下文信息。环境1200包括可以被用于便于用户1202和服务器1204之间通信的通信框架1206(例如诸如因特网的全球通信网络)。可以通过有线(包括光纤)和/或无线技术以便通信。用户1202被有效地连接到一个或更多用户数据存储1208,该用户存储可以被用于存储用户1202本地的信息(例如 cookie (小型文字文件)和/或相关的上下文信息)。类似地,服务器1204被有效地连接到一个或更多服务器数据存储1210,该服务器数据存储可以被用于存储服务器1204本地的信息。上文所描述的包括所公开的体系结构的示例。当然,不可能描述组件和/或方法的每一可想象的组合,但是本领域的普通技术人员可以认识到,许多另外的组合和置换是可能的。因此,所述新颖的体系结构旨在包含落入所附权利要求书的精神和范围中的所有这样的改变、修改和变化。此外,就在说明书和权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”用作权利要求书中的过渡词语所解释的类似的方式为包含性的。
权利要求
1.一种计算机实现的程序管理系统(100),包括用于接收与应用程序一起执行的辅助代码的接口组件(102); 用于接收辅助代码并且使用一个或更多级别的隔离将辅助代码安全地隔离在隔离环境中的隔离组件(108);以及用于部分地基于异常执行行为来监控和管理隔离环境中辅助代码的执行的管理组件 (112)。
2.如权利要求1所述的系统,其特征在于,所述辅助代码是接收的用于与应用程序一起执行的第三方插件,该应用程序是服务器应用程序,而所述隔离组件是沙盒服务器的一部分,为了隔离执行而将辅助代码发送至该沙盒服务器。
3.如权利要求1所述的系统,其特征在于,所述一个或更多隔离级别包括机器隔离级别、进程隔离级别、或应用程序域代码访问隔离级别中的至少一个。
4.如权利要求1所述的系统,其特征在于,所述接口组件保证了来自辅助代码的调用被定向到应用程序。
5.如权利要求1所述的系统,其特征在于,所述管理组件通过基于响应于异常执行行为而应用的累积总罚分来禁用辅助代码,来停止辅助代码的执行。
6.如权利要求1所述的系统,其特征在于,还包括基于异常执行行为来跟踪由辅助代码累积的罚分的惩罚组件。
7.如权利要求1所述的系统,其特征在于,还包括基于增加的执行负载来选择一个或更多现有隔离组件的负载管理组件。
8.—种管理程序的计算机实现的方法,包括 接收辅助代码以用于执行(500);将辅助代码发送到隔离环境以用于执行(502); 在隔离环境中执行辅助代码(504); 监控辅助代码执行的异常执行行为(506);以及基于异常执行行为管理辅助代码的执行(508)。
9.如权利要求8所述的方法,其特征在于,还包括 基于异常执行行为应用和累积罚分;以及相对于罚分的预定阈值停止执行辅助代码。
10.如权利要求9所述的方法,其特征在于,所述罚分是基于与辅助代码执行中的错误相关的异常行为。
11.如权利要求8所述的方法,其特征在于,还包括相对于罚分的预定阈值阻止注册辅助代码。
12.如权利要求8所述的方法,其特征在于,还包括基于辅助代码已经被禁用的次数来管理辅助代码。
13.如权利要求8所述的方法,其特征在于,还包括基于跨来自于机构的已经被执行或正在被执行的现有辅助代码累积的罚分以阻止来自该机构的新的辅助代码的注册。
14.如权利要求8所述的方法,其特征在于,还包括基于提供恶意辅助代码的发布者的历史以阻止来自该发布者的辅助代码的执行。
15.如权利要求8所述的方法,其特征在于,还包括基于负载平衡数据以从多个沙盒服务器中选择沙盒服务器。
全文摘要
隔离和标识恶意插件(有意的或无意的)以防止系统中断和故障的沙盒体系结构。基于插件错误,所述体系结构通过罚分系统自动地禁用和阻止恶意插件的注册。通过禁用恶意插件以及将其发布者注册到不安全列表中来控制恶意插件的发布者。可以以多级别提供隔离,例如机器隔离、进程隔离、具有受限访问权限的安全账户、以及使用本地安全机制的过程中的应用程序域隔离。多级别隔离的组合实现了高级别的安全性。隔离提供了与其它插件执行的分离,以及对诸如文件系统和网络IP的系统资源的限制。此外,所述体系结构是用于插件执行的高度可伸缩、无状态、以及低管理的体系结构,该体系结构可以在没有预先配置的情况下通过即时添加/删除额外的沙盒服务器而被缩放。
文档编号G06F15/16GK102232217SQ200980149127
公开日2011年11月2日 申请日期2009年11月2日 优先权日2008年12月2日
发明者A·F·阿菲兹袍, N·Y·沙阿, S·兰简, S·贾米森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1