CN103582888B - 在沙箱中保存引用的系统和方法 - Google Patents

在沙箱中保存引用的系统和方法 Download PDF

Info

Publication number
CN103582888B
CN103582888B CN201280027361.4A CN201280027361A CN103582888B CN 103582888 B CN103582888 B CN 103582888B CN 201280027361 A CN201280027361 A CN 201280027361A CN 103582888 B CN103582888 B CN 103582888B
Authority
CN
China
Prior art keywords
resource
sandbox
document
reference listing
sandbox environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201280027361.4A
Other languages
English (en)
Other versions
CN103582888A (zh
Inventor
I·科尔斯蒂克
P-O·J·马特尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103582888A publication Critical patent/CN103582888A/zh
Application granted granted Critical
Publication of CN103582888B publication Critical patent/CN103582888B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Storage Device Security (AREA)

Abstract

本文公开了用于在沙箱中保存引用的系统、方法、和非临时性计算机可读存储介质。实施该方法的系统接收要在沙箱环境中使用的文档并通过协调器将该文档传递给解析器。解析器在所述文档中找到对其他资源的引用并输出引用列表。所述系统传递所述引用列表到验证器,所述验证器验证每个引用并输出经验证引用列表。所述系统传递所述经验证引用列表到沙箱应用,所述沙箱应用扩展沙箱以包括经验证引用列表上的资源。在一个实施例中,所述系统在沙箱中保留引用,而无需使用协调器。

Description

在沙箱中保存引用的系统和方法
相关申请的交叉引用
本申请要求于2011年6月3日提交的、序列号为13/153,274的、标题为“SYSTEM ANDMETHOD FOR PRESERVING REFERENCES IN SANDBOXES”的美国专利申请的优先权,所述申请通过引用整体包含于本公开中。
背景技术
1.技术领域
本发明公开涉及计算机安全,尤其是涉及保存文档中的引用以供在沙箱环境中使用。
2.引言
计算机安全是计算世界的一个重要方面。许多不同的行业,包括通信、娱乐、交通、金融、医疗等行业都依赖于计算机。计算机安全涉及通过阻止和检测计算机攻击以保护这些重要的计算系统。攻击者以不同的方式损害计算系统,诸如窃取密码、发出拒绝服务攻击并散布恶意软件,如病毒和蠕虫。
保护计算系统免受攻击者攻击是一项具有挑战性的和不断改变的任务。存在很多种保护计算系统的方法,从要求用户频繁地更改密码到在计算系统中使用复杂的加密算法。一种保护计算系统的方法是沙箱化(sandbox)计算机程序来保护计算系统免受潜在的恶意程序的攻击。沙箱是一种用于使正在运行的计算机程序与其他程序和/或计算资源分离的机制。一些安全的计算系统在沙箱中执行不受信任的程序或不受信任方发布的程序。沙箱约束限制计算机程序可以访问的资源。沙箱环境的一个例子是在虚拟机或解释器上运行的小程序,如
以交换格式存储的文档,如便携式文件格式(PDF),或 可以包含对其他文件的嵌入引用。当计算系统不信任这种文件时,它可以沙箱化访问该不受信任文件的应用。当这些文档用沙箱应用打开时,鉴于计算系统对沙箱化应用设置的约束,该应用无法遵循对其他文件的引用。在沙箱化应用中对其他文档的引用的不可访问性是令用户沮丧的。没有经验的用户可能会简单地放弃并对该计算平台产生不好的印象,而更有经验的或有技术头脑的用户可能会试图绕过沙箱,从而无意中造成潜在的严重安全漏洞。在沙箱化应用中,希望从文档中包含的引用中获得更多信息的用户无法访问这些引用。
发明内容
本发明公开的更多特征和优势将在以下说明中阐述,且将部分地从说明书中显而易见,或可以通过实践本文所公开的原理来习得。本发明公开的特征和优点可以通过在所附权利要求书中特别指出的工具和组合实现和获得。从下面的描述和所附的权利要求书中,本公开的这些和其它特征将变得更加明显,或者可以通过实践在此阐述的原理而了解。
本发明公开提供了用于在沙箱中保存引用的系统、方法和非临时性计算机可读存储介质。实施该方法的系统接收文档,如PDF,以供在沙箱环境中使用。该系统传递该文档到协调器,然后该协调器传递该文档到解析器。所述解析器识别文档中的对其他资源的引用并返回引用列表到所述协调器。所述协调器再传递所述引用列表到验证器并选择性地传递其它参数,所述其它参数指示原始文档类型、用来处理引用列表的所需的安全或信任级别、用户帐户等等。验证器验证与每个引用关联的每个资源并返回经验证引用列表到所述协调器。当所述引用文件格式具有预期的类型时和/或在文件被打开时所述计算系统按预期行动时,则验证器可以验证引用。验证器可以检查通过引用列表链接的资源的其他属性。例如,验证器可以确认资源被适当地签名,所述资源的校验和、所述资源的文件属性、和/或可以表明资源是可信任的、预望的和/或真实的其他特征。验证器传递经验证引用列表回到协调器;协调器然后传递所述经验证引用列表到应用。基于经验证引用列表,应用随后可以修改沙箱环境,以产生修改后的沙箱环境,所述修改后的沙箱环境除原始文档之外还包括经验证引用,或提供对经验证引用所指示的资源的访问。
在一个实施例中,该系统直接传递文档到解析器,而无需利用协调器。解析器找到文档中对其他资源的引用并输出引用列表。该系统直接传递引用列表到验证器,而不利用协调器。验证器验证与每个引用相关联的每个资源并输出经验证引用列表。验证器直接传递经验证引用列表到应用,应用然后扩展沙箱环境以除原始文档之外还包括经验证引用。在本实施例中,没有使用协调器;相反应用直接与解析器和验证器通信。虽然潜在地较不安全,但是在沙箱中保存引用的这个修改后的方法比原来的方法简单,这对于实施是有利的。
附图说明
为了描述可以获得本发明公开的上述和其他优点和特征的方式,将参考附图中所示的本发明的具体实施例给出上面简要描述的原理的更具体说明。应该理解这些附图仅示出本发明公开的示例性实施例,而不该被理解为限制本发明的范围,通过使用附图,本发明的原理会被描述和说明得更加具体详细,附图中:
图1示出了示例系统实施例;
图2示出了包括协调器的第一个示例受信任服务系统实施例;
图3示出了用于查看带嵌入引用的文档的示例未经修改沙箱环境;
图4示出了用于查看带嵌入引用的文档的示例经修改沙箱环境;
图5示出了引用保存方法实施例;
图6示出了用于分析和验证要在沙箱环境中使用的文档中的引用的示例系统架构;
图7示出了示例沙箱环境;
图8示出了显示经验证的和未经验证的引用的示例修改后沙箱环境;和
图9示出了没有协调器的第二个示例受信任服务系统实施例。
具体实施方式
本公开公开的各种实例将在下面详细讨论。应该认识到,对具体实施方式进行讨论,仅仅是为了说明的目的。相关领域的技术人员会认识到在不偏离本发明公开的精神和范围的情况下可以使用其他组件和配置。
本发明公开解决了在本领域中对于在沙箱中保存引用的需要。本发明公开提供了一种系统、方法、和非临时性计算机可读存储介质,其保存文档中的引用以供在沙箱环境中使用。本文公开了图1中可用于实现这些概念的基本通用系统或计算设备的简要介绍性描述。在沙箱中保存引用的更具体描述将在下面给出。本发明公开现在转向图1。
参考图1,示例性系统100包括通用计算设备100,通用计算设备100包括处理单元(CPU或处理器)120和系统总线110,用于耦合各种系统组件至处理器120,所述系统组件包括系统存储器130(诸如,只读存储器140(ROM)和随机存取存储器150(RAM)。系统100可以包括直接连接至、或近邻、或作为一部分集成至处理器120的高速存储器的高速缓存122。系统100从存储器130和/或存储设备160复制数据至高速缓存122,以供处理器120快速访问。以这种方式,高速缓存提供性能提升,这避免了处理器120在等待数据时的延迟。这些和其他模块可以控制或被配置为控制处理器120执行各种动作。其他系统存储器130也可以使用。存储器130可以包括多个不同类型的、具有不同性能特点的存储器。可以理解:本发明公开可以运行在具有一个以上处理器120的计算设备100上或运行在一组或一簇网络连接以提供更好处理能力的计算设备上。处理器120可以包括任何通用处理器和硬件模块或软件模块,诸如存储在存储设备160中的模块1162、模块2164、模块3166,其被配置为控制处理器120以及特殊用途的处理器,其中软件指令被结合到实际的处理器设计中。处理器120可以基本上是一个完全独立的计算系统,包含多个核心或处理器、总线、存储器控制器、高速缓存等等。多核处理器可以是对称的或不对称的。
系统总线110可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线和使用多种总线架构中的任一种的局部总线。存储在ROM140或类似设备中的基本输入/输出(BIOS)可以提供帮助在计算设备100中的元件间传送信息,诸如在启动过程期间,的基本例行程序。计算设备100进一步包括存储设备160,诸如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等等。存储设备160可以包括软件模块162、164、166,用于控制处理器120。可以构想其他硬件或软件模块。存储设备160由驱动器接口连接到系统总线110。驱动器和相关的计算机可读存储介质为计算设备100提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。一方面,执行特定功能的硬件模块包括存储在与必要硬件组件——诸如处理器120、总线110、显示器170等等——相连的非临时性计算机可读介质中的软件组件以实现所述功能。基本组件是本领域技术人员所熟知的,并且可以根据设备类型,诸如设备100是否是小型手持式计算设备、台式计算机或计算机服务器,来构想适当的变化。
虽然本文所描述的示例性实施例中使用了硬盘160,本领域技术人员可以理解:也可以在该示例性操作环境中使用其他类型的可以存储计算机可访问的数据的计算机可读介质,如磁带、闪存卡、数字通用盘、盒式磁带、随机存取存储器(RAM)150、只读存储器(ROM)140、电缆或者包含比特流的无线信号等等。非临时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身的介质。
为了使计算设备100能与用户交互,输入设备190代表任何数量的输入机构,诸如用于语音的麦克风、用于姿态或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备170也可以是领域技术人员所熟知的多种输出机构中的一种或多种。在一些情况下,多模式系统使得用户能够提供多种类型的输入来与计算设备100通信。通信接口180总体上支配和管理用户输入和系统输出。对运行在任意特定硬件配置上没有任何限制,因此,随着硬件或固件配置的发展,可以用改进的硬件或固件配置容易地替换此处的基本特征。
为了解释清楚,说明性系统实施例被提供为包括多个单个功能块,包括标记为“处理器”或者处理器120的功能块。这些块所代表的功能可以通过使用共享的或专用的硬件——包括但不限于能够执行软件的硬件和诸如处理器120的硬件,该硬件被有目的地构建成作为在通用处理器上执行的软件的等同进行操作——来提供。例如图1中给出的一个或多个处理器的功能可以由单个共享处理器或多个处理器来提供。(术语“处理器”的使用不应被解释为仅指能够执行软件的硬件。)说明性实施例可以包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行如下讨论的操作的软件的只读存储器140(ROM)、和用于存储结果的随机存取存储器150(RAM)。也可以提供超大规模集成(VLSI)硬件实施例以及结合与通用DSP电路相结合的定制VLSI电路。
各种实施例的逻辑操作被实现为:(1)在一般用途的计算机中的可编程电路上运行的一系列计算机实施的步骤、操作或过程;(2)在特定用途的可编程电路上运行的一系列计算机实施的步骤、操作或过程;和/或(3)可编程电路内的互连机器模块或程序引擎。在图1所示的系统100可以实践所述方法的全部或部分,可以是所述系统的一部分,和/或可以根据在所述非临时性计算机可读存储介质中的指令进行操作。这样的逻辑操作可以被实施为模块,所述模块被配置为控制处理器120以根据模块的编程执行特定的功能。例如,图1示出三个模块MOD1162、MOD2164、MOD3166,其是被配置为控制处理器120的模块。这些模块可以存储在存储设备160上,并在运行时加载到RAM150或存储器130中或可被存储在本领域熟知的其它计算机可读存储位置中。
已经公开了计算系统的一些组件,本发明公开现在回来讨论在沙箱环境中处理文档中的引用。图2示出了受信任服务的三元组,用以在沙箱中保存引用。受信任服务的三元组是协调引用保存过程的协调器202、解析包含对其他资源的嵌入引用的文档的解析器204和验证每个对其他资源的嵌入引用的验证器206。协调器、解析器和验证器被认为是受信任的且每一个都在它们各自的单个沙箱中运行,所述沙箱限制每项服务可以访问的资源。以诸如PDF或Quicktime影片格式的交换格式存储的文档可以包含对其它资源的嵌入引用,其中引用是文件路径。当在沙箱应用中打开诸如这些的文档时,系统不能遵循该引用,原因在于沙箱不允许访问沙箱环境之外的所引用资源。当嵌入引用在文档之内时,沙箱应用可以访问该资源,原因在于该引用是内部的。内部资源不需要沙箱扩展,所以解析器可以忽略它们,和/或验证器可以跳过它们。但是,万一文档包含指向其自身的链接的话,系统也可以可选地为此链接扩展沙箱。本文所述的引用保存过程允许沙箱应用访问经验证引用。
图3示出了存储引用的文档,所述文档在被约束到初始沙箱环境中的应用中打开,并且图4示出了在被约束到修改后的沙箱环境中的应用中打开的文档。应用302无法访问在沙箱环境之外的资源304,因为计算系统对沙箱内的应用设置了限制。但是,内部引用310被区别对待,因为它们不要求访问外部的未经验证的资源。在可信任的服务执行了保存文档中的引用的处理之后,应用修改或扩展沙箱环境,使得沙箱包括由可信任的服务验证过的资源。在修改后的沙箱环境中访问文档406的用户可访问经验证引用408文件1、文件2和文件3。系统可以利用对本地资源的引用或对经网络连接的资源的引用,诸如对因特网上的资源的引用,来执行引用保存处理。
图5示出了示例性方法实施例。为了清楚起见,根据被配置为实施该方法的图1中所示的示例性系统100来讨论该方法。此处勾勒出的步骤是示例性的并且可以以其任何组合——包括排除、添加或修改某些步骤的组合——来实施。实施该方法的系统100接收要在沙箱环境中使用的文档(502),传递所述文档到解析器(504),所述解析器找到所述文档中的引用并产生引用列表;传递所述引用列表到验证器(506),所述验证器验证引用以产生经验证引用列表。然后,系统100可以基于经验证引用列表来修改沙箱环境(508)。文档可以是包含对其他资源的引用的任意计算机文件或多个文件,如PDF和Quicktime文档,但不限于这些特定格式。要求沙箱环境的文档可以是来自于不受信任源的文档,或可能已经被篡改的文档,或系统可以要求所有文档经过引用保存过程。该系统可在沙箱环境中放置特定类型的所有文档。具体应用或操作系统设置可以影响关于在访问文件时是否使用沙箱的决定。文件本身可以包括标志或标签,其指示该文件是否应在沙箱中使用。文档中对其他资源的引用可以是对其他计算机文件的引用,或是对文档内的其他文件或资源的引用。资源可以具有与原始文档相同的格式或不同的格式。例如,PDF格式的原始文档可以包含对其他PDF文件或用户指定的任何其他文件格式、应用、协调器或验证器——诸如Excel或Word——的引用。系统100可以要求存储QuickTime文件格式的文档,例如,只能访问其他视频格式,如AVI。
图6示出了在沙箱中保存引用。应用602发送文档到协调器604,协调器604协调对资源的引用的验证。协调器604传递文档到解析器606,解析器606找到文档中对其他资源的引用以产生引用列表(504)。为安全起见,解析器606可以在其自己的沙箱内部操作,使得除了从协调器传来的文档或文档的一部分之外,解析器不访问任何其它资源。解析器606解析文档,以找到对其他文件的引用,并生成在文档中找到的引用的列表。例如,解析器606可以解析HTML以获得到文档或图像的链接,可以解析XML以获得特定的标签或数据,或可以解析便携式文件格式(PDF)以获得对其他资源的引用。解析器606发送引用列表回至协调器604,协调器604然后将引用列表传送给验证器608,用于验证解析器506输出的所列出的引用(506)。
验证器也可以在其自身的沙箱中运行,使得打开潜在恶意或有害的计算机文件不会损害计算系统。如果资源包含威胁或者是不安全的,在其自身的沙箱环境中运行解析器和/或验证器可以保护计算系统的其余部分。在沙箱环境中,病毒可以自由漫游,但系统不允许其在沙箱外的任何动作,从而保护了系统的其余部分。
验证器608打开引用列表中的每个资源或文件,并比较实际的系统行为与预期的系统行为。验证器也可以验证文件是预期的文件类型。例如,系统100可以要求引用列表中的对特定文档的所有引用都是PDF文件。验证器可以通过检查文件扩展名和/或打开文件来验证列表中的所有引用都是PDF文件。验证器可以从协调器604接收参数和/或指令,所述参数和/或指令是关于引用的哪些方面必须被验证,如何验证引用,以及验证引用时适用什么容限(如果有的话)。例如,当每个资源被打开时,验证器可以观察系统行为,并比较该行为与预期的系统行为。验证器将不验证没有按预期执行的引用,诸如使程序崩溃的引用。在一种变体中,验证器只简单地检查文件存在于引用指示的特定路径。一旦验证器完成对引用列表的验证,它发送经验证引用列表回到协调器604,协调器604然后发送经验证引用列表回到应用602。应用基于经验证引用列表为此文档扩展原始的沙箱(508),从而创建修改后的沙箱环境。修改后的沙箱环境包括和/或提供对与验证器验证的引用列表相关的资源的访问。
图7示出了用沙箱应用打开的示例性文件。系统使用沙箱应用702打开文件weather.pdf。weather.pdf文件包含对tornadoes.pdf704、wind.docx706、tsunami_warning.pdf708和temperature.xlsx710的嵌入引用。沙箱环境不允许应用访问嵌入引用,这可以阻止部分用户试图访问嵌入引用。在沙箱应用中允许访问引用对期待获得除文档提供的之外的附加信息的用户有利。
图8示出了在提取、解析和验证文档中的引用和扩展沙箱环境之后的系统。应用发送文件weather.pdf到协调器,协调器然后将文件发送到解析器。解析器在沙箱环境中打开该文件,找到对资源的嵌入引用,在此例中,资源是文件tornadoes.pdf704、wind.docx706、tsunami_warning.pdf708和temperature.xlsx710。解析器生成对这些文件的嵌入引用的列表,并发送引用列表到协调器。协调器发送引用列表到在其自身的沙箱环境中运行的验证器608。验证器可以检查每个文件的文件格式是预期格式和/或执行其他验证措施。例如,如果系统要求验证器仅为特定文档验证PDF文件,它会检查每个文件是PDF格式。验证器可以接收用以仅仅验证PDF文件,或验证,例如,PDF和Microsoft Word文件的指令。在这个例子中,系统要求验证器仅仅验证PDF文件。验证器也可以打开引用列表中的每个文件并观察系统行为。如果系统按预期行动且文件格式是预期的类型,验证器可以验证该文件。验证器发送经验证引用列表到协调器,在这种情况下,经验证引用列表是文件tornadoes.pdf804和tsunami_warning.pdf808。文件wind.docx806和temperature.xlsx810没有包括在经验证引用列表中,因为它们不具有预期的文件类型,此例中是PDF。协调器发送经验证引用列表到所述应用。该应用扩展沙箱712以创建包括经验证引用tornadoes.pdf804和tsunami_warning.pdf808的修改后的沙箱812。文件wind.docx806与temperature.xlsx810不允许在修改后的沙箱中,因为他们没有包括在验证器发送给协调器的经验证引用列表上。修改后的沙箱812中的应用802内现在可以访问经验证引用tornadoes.pdf804和tsunami_warning.pdf808。
从用户的角度出发,点击weather.pdf中的到tornadoes.pdf804或tsunami_warning.pdf808的链接将是透明的。用户可以点击到那些文件的链接,且系统可以打开它们,因为这些资源在修改后的沙箱812中。然而,如果用户点击到wind.docx806或到temperature.xlsx810的链接,该系统可以拒绝打开该资源的请求。例如,系统可以简单地忽略访问沙箱外的资源的请求。备选地,该系统可给质疑所需资源不能访问的用户提供“错误”消息。该系统可对质疑为何所需资源不能访问的用户提供可能基于从验证器返回的代码或消息的消息。而且,该系统可以提供这个和/或其他信息给用户,并提示用户是否要扩展修改后的沙箱环境以提供对不可访问资源的访问。
一方面,作为扩展或修改沙箱环境以包括在文档中引用的其他资源的一部分,该系统可以为在修改后的沙箱中是不可访问的其他资源保存临时的备份副本。这样,即使恶意代码以某种方式在修改后的沙箱环境中执行了并改变了资源时,系统仍可以恢复到临时的备份副本。
在另一个实施例中,系统100在沙箱中保存引用而没有使用协调器,如图9所示。在沙箱环境中的应用902发送具有嵌入引用的文档的全部或部分到解析器904。解析器904找到文档中的引用并输出引用列表。解析器904直接发送引用列表到验证器906。验证器906验证引用列表中的至少一个引用并生成经验证引用列表。经验证引用列表可以包含零个、一个或多个引用。检验器906发送经验证引用列表到应用902,如果至少一个经验证引用包含在此列表中,则应用902扩展沙箱以创建修改后的沙箱环境中。沙箱环境被扩展成包括经验证引用。以安全性为代价,在沙箱中保存引用的这种修改后的方法是个更简单、可能更易于实施的方案,其不需使用协调器。协调器是不实际接触资源的唯一过程。协调器不解析文档,也不试着检查外部资源。因此,协调器是个不太可能成为利用目标的过程。因此,协调器可以执行一些额外的检查,这些检查可能是或可能不是与利用或其他攻击的降低了的风险相关的安全性。
在一个与用户体验和/或感知性能相关的方面,当处理要在沙箱中使用的文档时,该系统可在解析或验证引用之前初始加载该文档到未经修改的沙箱中,因此用户可以迅速加载文档以供查看。然后,当用户查看该文档时,系统可以解析并验证背景中的文档中的引用并基于解析和验证后的引用,扩展沙箱环境。这让用户觉得文档加载得很快速,同时提供对引用所指示的资源的延迟访问。该系统可以以批处理模式或以一次一个引用的方式解析和验证背景中的引用。例如,在批处理模式下,系统解析来自于文档的所有引用,验证所有引用,然后相应地扩展沙箱环境。备选地,只要系统解析出一个引用,验证器就验证该引用,且系统为那一个引用扩展沙箱环境,而解析器继续搜索其他引用。在这两种情况下,沙箱环境被加载以首先查看该文档,然后沙箱环境被扩展或在加载文档之后在背景中以其他方式被修改,而用户能够导航、查看或访问该文档。
在本发明公开的范围之内的实施例也可以包括有形的和/或非临时性计算机可读存储介质,用于携带或具有存储在其上的计算机可执行指令或数据结构。这样的非临时性计算机可读存储介质可以是由通用或专用计算机——包括如上所讨论的任何专用处理器的功能设计——访问的任何可用介质。例如,而不是限制,这样的非临时性计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储设备、或可用于携带或存储计算机可执行指令、数据结构或处理器芯片设计形式的所需程序代码装置的任何其它介质。当信息通过网络或其他通信连接(硬连线、无线或其组合)传递或提供给计算机时,计算机适当地视此连接为计算机可读介质。因此,任何这种连接被适当地称为计算机可读介质。以上各项的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括,例如,使通用计算机、专用计算机、或专用处理设备执行特定功能或功能组的指令和数据。计算机可执行指令也包括由单机或网络环境中的计算机执行的程序模块。通常,程序模块包括例程、程序、组件、数据结构、对象和专用处理器的设计中固有的功能,等等,它们执行特定的任务或实施特定的抽象数据类型。计算机可执行指令、相关的数据结构和程序模块代表用于执行本文公开的方法的步骤的程序代码装置的示例。这样的可执行指令或相关数据结构的特定序列代表用于执行在这些步骤中描述的功能的相应行为的例子。
本领域技术人员将会理解,本公开的其它实施例可以用许多类型的计算系统配置在网络计算环境中实施,包括个人计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型机、大型计算机等等。实施例也可以在分布式计算环境中实施,其中任务由通过通信网络(或者通过有线链接、无线链接或它们的组合)链接的本地和远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如上所述的各种实施例仅仅是作为说明提供的,且不应被解释为限制本发明公开的范围。例如,本发明原理可以应用到任何利用沙箱方法保护计算系统的应用中。本领域技术人员将容易地认识到:在不背离本发明的精神和范围情况下,这里描述的原理可作各种修改和改变,而不需遵循此文中示出和描述的示例实施例和应用。

Claims (14)

1.一种在沙箱中保存引用的方法,包括:
经由计算设备的处理器接收沙箱环境内部的文档以由在所述沙箱环境中执行的应用使用;
将所述文档传递到解析器,所述解析器在所述文档中找到对所述沙箱环境外部的资源的引用以产生引用列表;
将所述引用列表传递到验证器,所述验证器验证与所述引用列表中的引用关联的哪些资源满足预定沙箱标准以产生经验证引用列表;以及
扩展用于所述应用的沙箱环境以包括与所述经验证引用列表关联的资源作为所述沙箱环境内部的资源,从而产生用于所述应用的经扩展沙箱环境。
2.根据权利要求1所述的方法,还包括:
基于所述经验证引用列表来在所述经扩展沙箱环境中加载所述文档。
3.根据权利要求2所述的方法,其中所述经扩展沙箱环境给所述应用提供对与所述经验证引用列表关联的资源的访问。
4.根据权利要求1-3中任一项所述的方法,其中,所述沙箱环境给所述应用提供访问以在预定义的受限的计算资源集中运行。
5.根据权利要求4所述的方法,其中,所述预定义的受限的计算资源集包括所述引用列表。
6.一种在沙箱中保存引用的系统,包括:
用于从协调器接收对沙箱环境外部的资源的引用列表的装置,其中所述引用列表是从所述沙箱环境内部的文档中提取的以由在所述沙箱环境中执行的应用使用;
用于验证由所述引用列表中的引用所指示的哪些资源满足预定沙箱标准以产生经验证引用列表的装置;以及
用于扩展用于所述应用的沙箱环境以包括由所述经验证引用列表指示的资源作为经扩展沙箱环境内部的资源的装置。
7.根据权利要求6所述的系统,其中,用于验证资源的装置包括:
用于比较实际的资源格式与由所述预定沙箱标准指定的预期的资源格式的装置。
8.根据权利要求7所述的系统,其中,所述预期的资源格式匹配所述文档的格式。
9.根据权利要求7所述的系统,其中,所述预期的资源格式不同于所述文档的格式。
10.根据权利要求6所述的系统,其中,用于验证资源的装置包括:
用于打开所述资源并比较实际的系统行为与预期的系统行为的装置。
11.一种在沙箱中保存引用的系统,包括:
用于向协调器传递包含要由在沙箱环境中执行的应用使用的引用的文档的装置,所述文档在所述沙箱环境内部;
用于经由所述协调器将所述文档传递到解析器的装置,其中,所述解析器在所述文档中找到对所述沙箱环境外部的资源的引用以产生引用列表;
用于经由所述协调器将所述引用列表传递到验证器的装置,其中所述验证器验证所述引用列表中的引用所指向的哪些资源满足预定沙箱标准以产生经验证引用列表;以及
用于扩展用于所述应用的沙箱环境以包括由所述经验证引用列表所指向的资源作为经扩展沙箱环境内部的资源的装置。
12.根据权利要求11所述的系统,其中,所述解析器在单独的沙箱环境中运行。
13.根据权利要求12所述的系统,其中,所述单独的沙箱环境使得所述解析器只访问所述文档。
14.根据权利要求11-13中任一项所述的系统,其中,所述验证器在单独的沙箱环境中运行。
CN201280027361.4A 2011-06-03 2012-05-10 在沙箱中保存引用的系统和方法 Active CN103582888B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/153,274 2011-06-03
US13/153,274 US8601579B2 (en) 2011-06-03 2011-06-03 System and method for preserving references in sandboxes
PCT/US2012/037400 WO2012166316A1 (en) 2011-06-03 2012-05-10 System and method for preserving references in sandboxes

Publications (2)

Publication Number Publication Date
CN103582888A CN103582888A (zh) 2014-02-12
CN103582888B true CN103582888B (zh) 2017-02-15

Family

ID=46177527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280027361.4A Active CN103582888B (zh) 2011-06-03 2012-05-10 在沙箱中保存引用的系统和方法

Country Status (9)

Country Link
US (1) US8601579B2 (zh)
EP (1) EP2715589B1 (zh)
JP (1) JP5748905B2 (zh)
KR (1) KR101565230B1 (zh)
CN (1) CN103582888B (zh)
AU (1) AU2012262867B2 (zh)
BR (1) BR112013030584B1 (zh)
MX (1) MX2013013970A (zh)
WO (1) WO2012166316A1 (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
JP6535684B2 (ja) * 2013-12-09 2019-06-26 サンガモ セラピューティクス, インコーポレイテッド ゲノム操作のための方法および組成物
KR102149679B1 (ko) 2014-02-13 2020-08-31 삼성전자주식회사 데이터 저장 장치, 그 동작 방법, 및 이를 포함하는 데이터 처리 시스템
US9766981B2 (en) 2014-06-10 2017-09-19 Institute For Information Industry Synchronization apparatus, method, and non-transitory computer readable storage medium
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US9633200B2 (en) * 2014-09-26 2017-04-25 Oracle International Corporation Multidimensional sandboxing for financial planning
CN104967615B (zh) * 2015-06-03 2018-02-23 浪潮集团有限公司 一种安全sdn控制器及基于该控制器的网络安全方法
US20170060112A1 (en) * 2015-08-24 2017-03-02 Katrina Danielle PIRNER Control program for accessing browser data and for controlling appliance
CN105844151B (zh) * 2016-03-18 2020-01-21 山东华软金盾软件股份有限公司 一种文件存储保护实现方法和系统
US10162653B2 (en) * 2016-03-31 2018-12-25 Vmware, Inc. Capturing components of an application using a sandboxed environment
CN107358095B (zh) 2016-05-10 2019-10-25 华为技术有限公司 一种威胁检测方法、装置及网络系统
US10700894B2 (en) 2016-06-01 2020-06-30 At&T Intellectual Property I, L.P. Network caching of outbound content from endpoint device to prevent unauthorized extraction
US11366789B2 (en) * 2017-06-29 2022-06-21 Microsoft Technology Licensing, Llc Content access
US11914700B2 (en) * 2017-08-22 2024-02-27 Google Llc Reducing remote procedure calls for multimedia content delivery
AU2020262409A1 (en) * 2019-04-24 2021-12-23 Seattle Children's Hospital D/B/A Seattle Children's Research Institute Wiskott-Aldrich syndrome gene homing endonuclease variants, compositions, and methods of use
US10788957B1 (en) * 2019-08-22 2020-09-29 Intel Corporation Web page designing with sandboxed custom editors
KR20230015956A (ko) * 2020-06-21 2023-01-31 애플 인크. 애플리케이션 특정 네트워크 데이터 필터링

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1961272A (zh) * 2004-06-29 2007-05-09 英特尔公司 通过沙箱技术改进计算机安全性的方法
US7444678B2 (en) * 2003-10-28 2008-10-28 Aol Llc Securing resources from untrusted scripts behind firewalls

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6367012B1 (en) * 1996-12-06 2002-04-02 Microsoft Corporation Embedding certifications in executable files for network transmission
US7702692B2 (en) 2006-02-16 2010-04-20 Oracle International Corporation Method and apparatus for preventing unauthorized access to computer system resources
US20080016339A1 (en) 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
JP2009031952A (ja) * 2007-07-25 2009-02-12 Tokai Television Broadcasting Co Ltd 情報提供システムおよび情報提供方法
US8200522B2 (en) * 2007-10-26 2012-06-12 International Business Machines Corporation Repeatable and standardized approach for deployment of a portable SOA infrastructure within a client environment
US8326872B2 (en) 2008-02-22 2012-12-04 Microsoft Corporation Database sandbox
JP5225003B2 (ja) * 2008-10-01 2013-07-03 キヤノン株式会社 メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US8341738B2 (en) 2009-09-29 2012-12-25 Oracle America, Inc. API signature verification for high-security platforms
US9098719B2 (en) * 2011-02-03 2015-08-04 Apple Inc. Securing unrusted content for collaborative documents

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444678B2 (en) * 2003-10-28 2008-10-28 Aol Llc Securing resources from untrusted scripts behind firewalls
CN1961272A (zh) * 2004-06-29 2007-05-09 英特尔公司 通过沙箱技术改进计算机安全性的方法

Also Published As

Publication number Publication date
BR112013030584B1 (pt) 2021-04-27
WO2012166316A1 (en) 2012-12-06
AU2012262867B2 (en) 2015-12-17
MX2013013970A (es) 2014-02-27
JP2014519120A (ja) 2014-08-07
BR112013030584A2 (pt) 2016-09-27
EP2715589A1 (en) 2014-04-09
KR20140016380A (ko) 2014-02-07
CN103582888A (zh) 2014-02-12
EP2715589B1 (en) 2018-05-09
US20120311702A1 (en) 2012-12-06
JP5748905B2 (ja) 2015-07-15
KR101565230B1 (ko) 2015-11-02
US8601579B2 (en) 2013-12-03

Similar Documents

Publication Publication Date Title
CN103582888B (zh) 在沙箱中保存引用的系统和方法
EP3674954B1 (en) Security control method and computer system
Kunkel et al. Tensorscone: A secure tensorflow framework using intel sgx
AU2012262867A1 (en) System and method for preserving references in sandboxes
Jung et al. Repackaging attack on android banking applications and its countermeasures
CN103270519B (zh) 使用动态量度内核的安全应用证明
CN105453102B (zh) 用于识别已泄漏的私有密钥的系统和方法
EP2513836B1 (en) Obfuscated malware detection
CN103150507B (zh) 用于检测未知打包器和加密器的系统和方法
US6941458B1 (en) Managing a secure platform using a hierarchical executive architecture in isolated execution mode
CN107533622A (zh) 可信二进制文件翻译
Hwang et al. CodeNet: Code-targeted convolutional neural network architecture for smart contract vulnerability detection
US20220006637A1 (en) File system supporting remote attestation-based secrets
CN118012448A (zh) 虚拟平台系统的安全部署和操作
Bouffard et al. Reversing the operating system of a Java based smart card
Hamadouche et al. Virus in a smart card: Myth or reality?
Lee et al. Darpa’s cyber grand challenge (2014–2016)
Haglund et al. Formally verified isolation of dma
Das Finding Attacks and Vulnerabilities in Critical Systems
Kwon et al. A hardware platform for ensuring OS kernel integrity on RISC-V
Konstantinos Multiple Layer Hybrid Classification for Android Malware Detection
Mo et al. Machine Learning with Confidential Computing: A Systematization of Knowledge
Faghihi Mobile Malware Detection and Mitigation
Macklin et al. Learning lessons from smart phone developers for cyber physical systems
Pan et al. The Future of AI-Enabled Cybersecurity

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant