CN105339890B - 用于运行不可信代码的框架 - Google Patents

用于运行不可信代码的框架 Download PDF

Info

Publication number
CN105339890B
CN105339890B CN201480032542.5A CN201480032542A CN105339890B CN 105339890 B CN105339890 B CN 105339890B CN 201480032542 A CN201480032542 A CN 201480032542A CN 105339890 B CN105339890 B CN 105339890B
Authority
CN
China
Prior art keywords
file system
operating system
file
task
information
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
CN201480032542.5A
Other languages
English (en)
Other versions
CN105339890A (zh
Inventor
N·K·戈尔
C·克拉约韦亚努
J·希恩
E·弗罗里奥
C·D·小威尔基
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105339890A publication Critical patent/CN105339890A/zh
Application granted granted Critical
Publication of CN105339890B publication Critical patent/CN105339890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Abstract

在此描述了用于在物理系统上执行任务的处理平台。例如,任务可能需要在物理系统上测试不可信的代码。处理平台将提供与虚拟机相同的隔离保证,但无需使用虚拟机。在此描述了处理框架,所述处理框架包括两个或更多的处理平台以及用于管理由处理平台执行的操作的控制系统。

Description

用于运行不可信代码的框架
背景
在一种技术中,测试框架可通过在虚拟机上运行不可信代码来对其进行测试。虚拟机所提供的抽象防止不可信代码伤害主存该虚拟机的底层系统。然而,在一些情况下,可能期望在不采用虚拟机抽象的情况下在物理系统本身上运行不可信代码。例如,在一些情况下,底层物理系统可能不支持(或可能不能容易地支持)使用虚拟机或模拟器。例如,使用基于ARM技术的物理系统(诸如智能手机等)目前并不容易容许虚拟机的使用。替代地或附加地,物理系统内的一些硬件特征(诸如数据执行防止技术)不能完全由虚拟机或模拟器来抽象。
概述
此处描述了一种用于直接在物理系统的资源上执行任务的处理平台。在这样做时,处理平台提供与虚拟机相同类型的隔离保证,但是不使用虚拟机。
在一种方法中,处理平台可通过使用两个文件系统来实现上述结果,每一个文件系统可被加载以运行一个操作系统(OS)。第一文件系统使用文件保护机制来提供第一、安全版本的OS。第二文件系统提供第二、非安全版本的OS。在操作中,能够访问第一OS的代理首先执行检查来确保第二OS未被破坏。处理平台随后存储第二OS的状态,引导到第二OS,并且使用第二OS的资源来执行任务。处理平台随后引导回到第一OS以检索任务的结果,随后将第二文件系统还原到其先前的干净状态。
凭借使用文件保护机制,处理平台可确保运行在第二非安全OS上的任务不能损害第一安全OS所执行的操作。借助还原第二文件系统,处理平台可确保任务所产生的任何有害效果都不会损害第二文件系统;此外,这一结果可在不执行从头开始重新安装任何OS的昂贵操作的情况下实现。
第二文件系统可以各种方式存储第二OS的干净状态并在稍后还原到该干净状态。在一种方法中,第二文件系统提供使用虚拟硬盘(VHD)来实现的父OS,并且随后产生差分盘来存储对第二文件系统所作的改动。第二文件系统通过在任务被执行之后丢弃差分盘来还原干净状态。在另一种方法中,第二文件系统使用状态存储机制来存储第二OS在其干净状态下的快照。第二文件系统使用第二OS的资源来运行测试,并且随后使用所存储的快照来基于该快照将第二OS还原到其干净状态。
此处还描述了包括两个或更多个处理平台以及用于管理处理平台所执行的操作的控制系统的处理框架。
上面的方法可以显现在各种类型的系统、组件,方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等等中。
提供本概述以便以简化形式介绍一些概念;这些概念将在以下的详细描述中进一步描述。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
图1示出用于在一个或多个处理平台上执行任务的说明性处理框架。每个处理平台使用用于提供操作系统(OS)的安全版本的第一文件系统以及用于提供OS的不安全版本的第二文件系统。
图2示出用于实现第一和第二文件系统的存储设备。
图3是示出由图1的处理框架执行的说明性操作序列的流程图。
图4示出了实现图1的第二文件系统的一种方式。图4还示出了描述第二文件系统的这一实现的一种操作方式的流路径。
图5示出了实现图1的第二文件系统的另一种方式。图5还示出了描述第二文件系统的这一实现的一种操作方式的流路径。
图6示出其中可使用图1的处理框架的一种环境。
图7是示出图1的处理框架的一种操作方式的流程图。
图8示出了可以被用来实现前面的附图中所示出的特征的任何方面的说明性计算功能。
贯穿本公开和各附图,相同的编号参考相同的组件和特征。100系列标号指的是最初在图1中所找到的特征,200系列的标号指的是最初在图2中找到的特征,300系列的标号指的是最初在图3中找到的特征,依此类推。
详细描述
本发明是按如下方式来组织的。章节A描述了用于在物理系统上执行任务的说明性功能,该功能提供与虚拟机相同的隔离保证但是不使用虚拟机。章节B阐述了解释章节A的功能的操作的说明性方法。章节C描述了可以被用来实现章节A和B中所描述的特征的任何方面的说明性计算功能。
作为预备,一些附图在被不同地称为功能、模块、特征、元素等的一个或多个结构组件的上下文中描述概念。附图中示出的各组件可以通过任何物理和有形机制用各种方式来实现,例如通过运行在计算机装备上的软件、硬件(例如,芯片实现的逻辑功能)等、和/或它们的任意组合。在一种情况下,附图中所示出的将各种组件分离为不同的单元可以反映在实际实现中使用对应的不同的物理和有形的组件。另选地或者另外地,附图中所示出的任何单个组件都可以通过多个实际物理组件来实现。另选地或另外地,附图中的任何两个或更多分开组件的描绘可以反映单个实际物理组件所执行的不同功能。图8(将依次讨论)提供关于附图中所示的功能的一个说明性物理实现的附加细节。
其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这些实现是说明性而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组件框,并且某些框可以按与此处所示出的不同的次序来执行(包括以并行方式执行这些框)。流程图中示出的框可以任何方式由任何物理和有形机制来实现,例如由正在计算机装备上运行的软件、硬件(如芯片实现的逻辑功能)等和/或它们的任何组合来实现。
至于术语,短语“被配置成”包含任何类型的物理和有形的功能可以被构建来执行已标识的操作的任何方式。功能可以被配置成使用例如正在计算机装备上运行的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行操作。
术语“逻辑”包含用于执行任务的任何物理和有形的功能。例如,流程图中示出的每一个操作都对应于用于执行该操作的逻辑组件。操作可以使用例如正在计算机装备上运行的软件、硬件(例如,芯片实现的逻辑功能)等和/或其任何组合来执行操作。在由计算装备实现时,逻辑组件表示作为计算系统的物理部分的、无论如何实现的电子组件。
下列的阐述可以将一个或多个特征标识为“可任选的”。这种类型的陈述不应该被解读为可以被视为可选的特征的穷尽的指示;也就是说,其他特征也可以被视为可选,虽然在文本中没有明确地标识。最后,术语“示例性”或“说明性”指的是可能的许多实现中的一个实现。
A.说明性处理框架
图1示出用于在一个或多个处理平台上执行任务的说明性处理框架102,诸如代表性处理平台104。任务可涉及出于任何原因执行一个或多个计算机程序。例如,任务可涉及执行对于不可信代码(诸如提交到市场的应用(app))的一个或多个测试;这一场景将(在以下)参照图6更详细地描述。
处理框架102可包括控制系统106,该控制系统106管理在一个或多个处理平台上执行的操作。例如,控制系统106可调度要由各个处理平台执行的任务。控制系统106还可收集各个处理平台所执行的任务的结果。
控制系统106可被实现为一个或多个计算机设备,这些计算机设备被提供在相对于处理平台套件的本地或远程位置。例如,控制系统106可对应于由一个或多个服务器实现的远程功能,处理平台经由任何网络108(诸如本地局域网、广域网(例如因特网)、一个或多个点对点链路等)与服务器通信。更具体地,控制系统106可经由加密信道(诸如代表性的加密信道110)与每一个处理平台交互。加密信道110可以各种方式实现,诸如通过使用传输层安全(TLS)机制等。
代表性处理平台104可包括用于加载来自不同文件系统的操作系统(OS)的引导管理器112。更具体地,引导管理器112可加载由第一文件系统116提供的第一OS 114,或者由第二文件系统120提供的第二OS 118。引导管理器112基于引导数据存储122中提供的引导控制数据来作出这一选择。例如,默认地,引导管理器112可尝试加载由第一文件系统116提供的第一OS 114。但是当在引导数据存储122中发现一次性重引导条目时,引导管理器112可替代地加载由第二文件系统120提供的第二OS 118。
文件保护机制124保护与第一OS 114相关联的文件。为此,第一OS 114被视为“安全”或可靠的OS。文件保护机制124可以用不同方式来实现。不作为限制,在一个示例中,文件保护机制124可被实现为由华盛顿州雷蒙德市的公司提供的机制,该机制连同可信平台模块(TPM)来操作。
更一般地,文件保护机制124可包括用于生成密钥信息的机制126,以及用于存储该密钥信息的安全数据存储128。文件保护机制124还包括用于使用数据存储128中存储的密钥信息对第一文件系统116所存储的信息进行加密/解密的加密/解密机制130。机制130还提供用于在加载第一OS 114之际提供对于第一OS 114的访问的协议。例如,当引导管理器112尝试加载第一OS 114时,机制130可检查用于启动第一OS 114的过程的完整性,例如通过将于第一OS 114相关联的配置信息的散列与(与干净状态下的配置信息的前一快照相关联的)参考散列作比较。如果该测试通过(指示启动过程没有被篡改),则文件保护机制124可发布允许授权实体与第一OS 114交互的密钥信息。然而,当引导管理器112引导到第二OS 118中时,文件保护机制124不会发布密钥信息。
代理132管理由控制系统106指派给处理平台104的任务的执行。图1示出代理132被实现为第一OS 114的组件或者以其它方式与第一OS 114相关联。这代表了一种实现方式。在另一情形中,代理132可代表第一文件系统116中能够与第一OS 114交互的一个独立组件,或者处理平台104内能够与第一OS 114交互的某个(或某些)其它实体的组件。
图3和伴随的描述提供了对于代理132所执行的操作的详细阐述。通过此处的介绍,代理132首先在加密信道110上建立与控制系统106的连接。代理132用存储在第一OS114中的客户端认证密钥(KeyC)以及公钥(KeyP)来执行这一操作。代理132可经由信道110接收来自控制系统106的工作指令。
代理132随后执行测试以确定第二OS 118是否已被破坏。它可通过将第二OS 118的当前散列与参考散列作比较来执行这一任务,其中该参考散列代表第二OS 118的干净状态。代理132可以任何方式形成该散列,诸如通过形成加密散列(诸如SHA-1散列)。
接着,代理132可将任务功能134存储在第二文件系统120上。图1描绘了这一实现。替代地或附加地,代理132可将任务功能134存储在处理平台104的第一OS 114和第二OS118能够访问的一个或多个其它实体上(诸如分开的USB驱动器等)。所提供的任务功能134可代表要使用第二OS 118的资源来测试的应用136。任务功能134还可代表对应用136执行一个或多个测试的测试代码。替代地,第二文件系统120(和/或与处理平台104相关联的某个或某些其它实体)可能已存储了该测试代码。在这种情况下,代理132可转发仅仅标识出要运行的测试的元数据。另外,代理132可转发确定每个测试要以何种方式运行的一个或多个参数,例如通过标识在运行测试之前要被调用的设置。被转发给第二文件系统120(和/或处理平台104的某个或某些其它实体)的所有的这类信息在此被称为任务功能134。
引导管理器112随后引导到第二OS 118。此时,任务功能134可使用第二OS 118的资源来执行其操作。任务功能134可随后将其处理的结果存储在数据存储138中。数据存储138可由第二文件系统120和/或与处理平台104相关联的某个或某些其它实体(诸如分开的USB驱动器等)来提供。数据存储138可由第一OS 114和第二OS 118访问。
需要注意,第二OS 118被标识为“不安全”,与被认为安全的第一OS 114相反。第二OS 118被认为不安全,因为它不受文件保护机制124保护。另外,第二OS 118被认为不安全,因为它被用来运行不可信代码,诸如潜在的恶意应用136。不可信代码可潜在地产生第二文件系统120中的不想要的改动。
然而,处理平台104提供各种手段来阻止不可信代码对第一OS 114和控制系统106的不利影响。作为第一种手段,再次注意,第一OS 114由文件保护机制124所保护。这一保护确保与第二文件系统120相关联的任何实体(或任何其它一个或多个实体)不能不恰当地访问由第一文件系统116所维护的任何信息或与之交互。例如,与第二文件系统120相关联的任何实体不能访问由第一OS 114所维护的客户端密钥(KeyC)。
作为第二种手段,第二文件系统120使用回复功能,该功能使得能够存储第二文件系统120在由(代理132)执行了成功的散列检查之后但是在任务被执行之前的状态。该状态在此处被称为干净状态。该回复功能随后在测试被执行之后将第二文件系统120的状态还原到该干净状态。这一操作有效地移除由于运行不可信代码而可能导致的对于第二文件系统120的不利影响。图4和5提供实现以上所描述的回复功能的两种方式。作为通性,回复功能被认为在避免从头开始重新安装操作系统的耗时需要方面是高效的。
在任务被执行之后,引导管理器112引导回第一OS 114。代理132随后从数据存储138检索结果并将该结果通过加密信道110转发给控制系统106。
总体来说,处理平台104成功地将第一OS 114和控制系统106与使用第二文件系统120的资源来执行的任务相隔离。此外,处理平台104通过直接在实现处理平台104的物理系统上执行处理来实现这一隔离,而无需使用虚拟机抽象。凭借这一特性,处理平台104提供用于在不能容易地容许使用虚拟机的物理系统(诸如使用基于RISC技术的系统)上执行任务的适当的功能。然而,这仅仅是一个示例;在其它示例中,出于其它因环境而异的原因,测试工程师可能决定直接在物理系统上运行任务。
最后,第一文件系统116可周期性地联系监视服务(M.S.)140,或者监视服务140可周期性地联系第一文件系统116。这一交互确保运行在第二文件系统120上的不可信代码不破坏上述操作序列,由此阻止引导管理器112在使用第二文件系统120的资源来执行的任务的终止之际引导回到第一OS 114。也就是说,监视服务140可检测当第一文件系统116未能签到达一预规定时间时发生了劫持事件。监视服务140可随后采取行动来还原处理平台104内的正确的控制流。
例如,控制系统106可实现监视服务140。在这种情况下,监视服务140可检测在启动任务之后的预规定时间量内代理132是否未能联系监视服务140。如果这一事件发生,则监视服务140可通知与处理平台104相关联的人工操作员和/或采取其它纠正动作。
图2示出用于实现第一文件系统116和第二文件系统120的存储设备。更具体地,第一文件系统116对应于存储在第一存储设备202上的指令和数据。第二文件系统120对应于存储在第二存储设备204上的指令和数据。
在一个示例中,第一存储设备202代表与第二存储设备204不同的物理存储设备。例如,第一存储设备202可代表处理平台104提供的内部闪存设备或物理硬盘设备。第二存储设备204可代表诸如USB闪存设备之类的可移动闪存设备。
使用便携式存储器设备来实现第二文件系统120可给予各种优点。例如,测试管理员可利用使用便携式存储器设备来快速供应一组处理平台,例如通过将第二OS 118复制到便携式存储设备集合上,并且随后将各存储设备布署在各个处理平台中。此外,通过不在内部闪存设备上实现第二OS 118来减少与内部闪存设备相关联的写入-擦除循环计数是可能的。
在其它情况下,第一文件系统116和第二文件系统120的至少一些部分可由相同的物理存储设备来实现。例如,第一文件系统116和第二文件系统120可代表同一内部闪存设备或物理硬盘设备的不同部分(例如扇区等)。
图3是示出图1的处理框架102的一种操作方式的流程图,例如使用一系列标号的虚线箭头来代表说明性的操作序列。为了便于说明和阐释,图1中示出的某些细节在图3的描绘中被省略。
在操作(1)中,引导管理器112引导到(即加载)第一OS 114,第一OS 114被认为是安全OS,因为它使用文件保护机制124来保护。在操作(2)中,代理132在加密信道110上建立与控制系统106的连接。代理132还可经由这一连接接收来自控制系统106的工作指令。工作指令可包括要使用第二文件系统120来测试的一个或多个应用。
在操作(3),代理132确定第二OS 118是否已被破坏。如以上所描述的,代理132可通过形成第二OS 118的至少一个散列并随后将该散列与参考散列作比较来执行这一任务。参考散列表示第二OS 118在被已知为干净时的状态。如果两个散列匹配,则代理132可得出结论,即第二OS 118目前处于干净状态。如果两个散列不匹配,则代理132可得出结论,即第二OS 118已被破坏。假设两个散列匹配。
在操作(4),第二文件系统120可在代理132的指导下存储第二OS 118的状态。第二文件系统120可以不同方式执行这一操作,以下在图4和5的阐述的上下文中描述了其中的两种方式。在操作(5)中,代理132可随后将任务功能134提供给第二文件系统120(和/或处理平台104的某个或某些其它实体)。如以上所提到的,任务功能134可表示处理平台104用来执行所分配的任务的任何代码、设置和/或数据。例如,任务功能134可提供要被测试的应用136的副本,以及定义该测试将如何进行的一个或多个参数。
在操作(6)中,代理132可将条目存储在引导数据存储122中。该条目标识第二文件系统120。在操作(7)中,代理132指令引导管理器112重新引导处理平台104。引导管理器112通过按照已被存储在引导数据存储122中的一次性条目加载第二文件系统120来响应,该条目将引导管理器重新引导至第二文件系统120。
在操作(8)中,第二文件系统120被配置成在其被加载之后自动调用任务功能134。任务功能134将其处理的结果存储在数据存储138中。在这一操作的结尾,第二文件系统120可指令引导管理器112再次重新引导处理平台104。在这一当口,在操作(9)中,引导管理器112可通过引导回第一OS 114来返回其默认引导行为。在操作(10)中,代理132可检索存储在数据存储138中的结果并将该结果通过加密信道110转发给控制系统106。监视服务140(其可由控制系统106来实现)可检测引导管理器112是否未能引导回到第一OS 114,并且如果是的话则采取纠正手段。引导管理器112可能无法引导回到第一OS 114,因为使用不安全的第二OS 118来运行的任务可能已破坏了第二OS 118,或者以其它方式破坏了期望的任务序列。
在操作(11),第二文件系统120可在代理132的指导下将第二文件系统120还原到其干净状态。以下将阐述的图4和5提供了可执行这一回复的两种方式。作为这一操作的结果,第二文件系统120可移除在操作(3)中执行完整性检查操作之后对第二文件系统120所作的所有改动。那些改动可能是由于在第二文件系统120中存储任务功能134及其结果,以及任务在第二OS 118内产生的任何修改(恶意的或非恶意的)所导致。
在这一当口,处理平台104可重复以上操作,从操作(2)开始。也就是说,在操作(2),代理132可与控制系统106交互以接收额外工作指令,随后在操作(3),重复完整性检查操作,以此类推。处理框架102可重复这一过程,直到控制系统106所指定的所有工作已被完成,或者直到已达成某个其它的终止条件。
图4示出了实现图1的第二文件系统120的一种方式。图4还示出了描述图4中示出的实施例的一种操作方式的流路径。更具体地,图4中示出的经注释的流路径与图3中介绍的相同标号的流路径相关。需要注意,已描述过的某些结构特征和操作在图4中被省略以简化阐述。
在图4的实施例中,第二文件系统120包括被作为虚拟硬盘(VHD)来实现的父操作系统(OS)402,该父操作系统(OS)402运行在任何类型的一个(或多个)物理主存储设备上。第二文件系统120还包括由差分盘(DD)创建机制406所产生的差分盘404。
在创建差分盘404之后,第二文件系统120将对第二文件系统120所作的任何改动存储到差分盘404,从而使父OS 402不被改动。例如,在一个实现中,差分盘404存储任务功能134以及任务功能134所产生的结果。在另一实现中,可由第一OS 114和第二OS 402访问的一个或多个其它实体可存储任务功能134和数据存储138。
在一个示例中,差分盘404可自己作为虚拟硬盘(VHD)来实现。DD创建机制406可被实现为第二文件系统120的一部分,或者第二文件系统120外部的但是可由第二文件系统120访问的一个组件。
对于标注图4的流路径(以虚线箭头示出),在操作(3)中,代理132检查以确定父OS402是否已被破坏。同样,代理132可通过将父OS 402的当前状态下的当前散列与代表干净状态下的父OS 402的参考散列作比较来执行这一操作。
在操作(4)中,代理132使用DD创建机制406来发起差分盘404的创建。在操作(5)中,(在一个非限制性实现中)代理132安装差分盘404并将任务功能134复制到差分盘404。在操作(7)中,引导管理器112引导到该差分盘404。在操作8中,任务功能134使用父OS 402的资源以及已被存储在差分盘404上的对于父OS 402的任何改动来运行其任务。更具体地,在每个实例中,任务功能134可通过首先查找源自差分盘404的操作系统功能来执行其操作;如果所请求的功能未在差分盘404上找到,则它将访问来自父OS 402的功能。
在操作(10)中,在引导回到第一OS 114之后,代理132安装差分盘404,从数据存储138检索结果,并将结果发送到控制系统106。同样,监视服务140可处理引导管理器112在发起任务序列之后的预规定时间量内未能引导回到第一OS 114的情况。在操作(11)中,代理132通过丢弃存储在差分盘404上的信息来将第二文件系统120有效地还原到其在任务之前的状态。换言之,可以说第二文件系统120通过将父OS 402维持在未改变形式(即通过不直接对父OS 402作任何改动)来存储第二文件系统120的干净状态。代理132可通过简单地丢弃(例如删除、覆写、或忽视等)已被存储在差分盘404上的信息来还原干净状态。
图5示出了实现图1的第二文件系统120的另一种方式。图5还示出了描述图5中示出的实施例的一种操作方式的流路径。更具体地,图5中示出的经注释的流路径与图3中介绍的相同标号的流路径相关。再次注意,已描述过的某些结构特征和操作在图5中被省略以简化阐述。
在图5的实施例中,第二文件系统120包括实现第二OS 118的一组原始文件502。第二文件系统120可在任何存储域中存储这些文件502,例如存储在底层存储设备的一个或多个特定卷中。第二文件系统120还可与状态存储机制504交互,该状态存储机制504可代表第二文件系统120的一部分或第二文件系统120外部的组件。该状态存储机制504通过存储代表第二文件系统120在指定时间的状态的快照来操作。在一个实施例中,该状态存储机制504可以使用由华盛顿州雷德蒙市的公司所提供的卷阴影复制服务(VSS)架构来实现。该状态存储机制504可将其快照存储在数据存储506中,数据存储506可以是第二文件系统120的一部分或与其分开。之后,对第二OS 118所作的任何改动被直接作用于文件502(而不是图4的实现中的差分盘)。
在一个实现中,任务功能134可被存储在与实现第二OS 118的文件502相同的存储域(例如相同的卷上)。任务功能134还可将其结果存储在该相同的存储域。在另一实现中,任务功能134和/或数据存储138可由第一OS 114和第二OS 118两者都可访问的处理平台104的一个或多个其它实体来提供。
对于标注图5的流路径(以虚线箭头示出),在操作(3)中,代理132检查以确定与第二OS 118相关联的文件502是否已被破坏。代理132可通过将每个单个文件的当前散列与参考散列作比较来执行这一任务。通过对比,在图4中,代理132可通过将与整个第二OS 118相关联的单个散列与单个参考散列作比较来执行这一操作。这一相同的操作可能在图5的示例中并不合适,因为与第二OS 118相关联的文件可能未必与单个统一的卷相关联。
在操作(4)中,代理132可命令状态存储机制504生成代表文件502在它们经校验的干净状态下的状态。状态存储机制504将快照存储在数据存储506中。在操作(5)中,代理132可将任务功能134提供给与文件502相同的存储域(和/或某个或某些其它实体)。在操作(7)中,引导管理器112引导到第二文件系统120。在操作(8)中,任务功能134使用文件502的资源来运行第二文件系统120(和/或某个或某些其它实体)上的任务。
在操作(10),在引导回到第一OS 114之后,代理132从数据存储138检索结果,并将结果发送到控制系统106。在操作(11)中,代理132基于存储在数据存储506中的快照将第二文件系统120还原到其干净状态。
概括来说,在图4的实施例中,回复功能对应于:(a)调用DD创建机制406、创建差分盘404以及使父OS 402保持原封不动以代表干净状态的功能;以及(b)随后在任务执行之后丢弃存储在差分盘404上的信息的功能。在图5的实施例中,回复功能对应于:(a)调用状态存储机制504、创建第二OS 118在干净状态下的快照的功能;以及(b)随后在任务被执行之后基于所存储的快照回复到干净状态的功能。在一个实现中,回复功能可对应于代理132所提供的控制代码,该控制代码控制(图4的实现中的)DD创建机制406以及(图5的实现中的)状态存储机制504的操作。
虽然这一阐述已呈现了实现回复功能的两种方式,但是处理平台104仍然可使用其它技术和过程来实现这一特征。总得来说,可使用使得处理平台104能够执行以下操作的任何技术:(a)在第二OS 118被校验为干净之后存储第二OS 118的状态;以及(b)在任务被执行之后基于所存储的状态快速地返回该状态。
图6示出其中可使用图1的处理框架102的一种环境602。在这一上下文中,处理框架102接收来自至少一个实体604的应用。例如,实体604可代表使用任何计算机设备经由任何通信机制606(诸如因特网)来开发应用并将其提交给处理框架102的应用开发者。处理框架102随后测试该应用以确定其是否满足一组期望的特性。例如,处理框架102可测试应用以确定其是否免受安全威胁以及其它非期望行为。如果应用通过了这些测试,则处理框架102可将其发布到应用市场608。终端用户可访问应用市场608来基于任何经营模式获得应用的副本。
处理框架102本身可包括任何数目个处理平台(例如,处理平台A、B、…、n)。每个处理平台可具有图1中描绘的特性。处理平台还可经由各个加密信道610通过通信机制(诸如通信机制606(例如因特网))与控制系统106交互。虽然未示出,处理框架102可提供附加安全机制,诸如通过使用处理平台和控制系统106之间的边界网络等。
图1中示出的处理框架102可被布署在其它上下文中以执行任何其它任务。这些任务涉及直接在处理平台的底层物理系统上运行不可信代码而不使用虚拟机。然而,这些任务不必在所有情况下都被定性为“测试”。例如,处理平台可依赖图1中示出的结构体系来执行针对不可信代码的任务以在被布署“到现场”之后在终端用户的指导下实现想要的目标。
B.说明性过程
图7是示出阐述图1的处理框架102的一种操作方式的过程702。由于在章节A中已经描述了处理框架102的操作底层的原理,在此章节将以概述的方式提出某些操作。
在操作704中,引导管理器112可引导到第一OS 114。虽然图7中未示出,但是第一OS 114可访问的代理132可随后创建与控制系统106的安全连接以从控制系统106获得工作指令。在操作706中,代理132检查第二OS 118以确定其是否已被破坏。在操作708中,处理平台104存储第二OS 118的状态。图4和5描绘了可执行这一操作的两种方式。在操作710中,代理132将任务功能134提供给第二文件系统120和/或可由第一OS 114和第二OS 118访问的处理平台104的一个或多个其它实体。在操作712中,引导管理器112引导到由第二文件系统120提供的第二OS 118。在操作714中,第二文件系统120使用任务功能134来运行任务并将结果存储在数据存储138中。
在操作716中,引导管理器112引导回到第一OS 114。监视服务140将检测这一操作是否无法在预规定时间量内进行。在操作718中,代理132可检索数据存储138中提供的结果,并将那些结果通过加密信道110发送给控制系统106。在操作720中,处理平台104可基于已被存储的状态将第二文件系统120还原到原始干净状态。图4和5描述了可执行这一操作的两种相应方式。
最后,过程702指示过程流可返回到操作706,在操作706,代理132可检索来自控制系统106的新的工作指令,此后它再次对第二OS 118执行完整性检查,依此类推。
C.代表性计算功能
图8显示了可以被用来实现上文所描述的功能的任何方面的说明性计算功能802。例如,图8中所示类型的计算功能802可被用于实现图1中所示的处理平台104的任何方面。图8中所示的这一类型的计算功能802还可以被用来实现图1的控制系统106的任何方面。在所有情形中,计算功能802表示一个或多个物理且有形的处理机制。
计算功能802可包括一个或多个处理设备804,诸如一个或多个中央处理单元(CPU)、和/或一个或多个图形处理单元(GPU)等。处理设备804可可选地包含基于RISC的技术或不能容易地容许使用虚拟机的其它技术。
计算功能802还可包括用于存储任何类型的信息(诸如代码、设置、数据等)的任何存储资源806。例如,非限制的,存储资源806可包括以下的任意一种:任何类型的RAM、任何类型的ROM、闪存设备、硬盘驱动器设备、光盘驱动器设备等等。更一般地,任何存储资源可使用用于存储信息的任何技术。此外,任何存储资源可提供易失性或非易失性信息保存。此外,任何存储资源可代表计算功能802的固定或可移除组件。
至于术语,任何存储资源806或存储资源806的任何组合可被视为计算机可读介质。在多种情况下,计算机可读介质表示某种形式的物理和有形的实体。术语计算机可读介质还包括传播信号,例如经由物理管道和/或空气或其他无线介质等来传送或接收的。然而,特定术语“计算可读存储介质”和“计算机可读介质设备”明确地排除传播信号本身,但是包括所有其他形式的计算机可读介质。
计算功能802还包括用于(通过输入设备810)接收各种输入,以及用于(通过输出设备)提供各种输出的输入/输出模块808。说明性的输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化垫、一个或多个相机、语音识别机制、任何移动检测机制(例如,加速计、陀螺仪等)等。一种特定输出机制可包括呈现设备812及相关联的图形用户界面(GUI)814。计算功能802还可以包括用于通过一个或多个通信管道818与其他设备交换数据的一个或多个网络接口816。一条或多条通信总线820将上述组件通信地耦合在一起。
通信管道(一个或多个)818可以以任何方式来实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等等,或其任何组合。(诸)通信管道818可包括可由任何协议或协议的组合管理的硬连线的链路、无线链路、路由器、网关功能、名称服务器等等的任何组合。
作为替代或除此之外,前述各节中所述的任何功能可至少部分地由一个或多个硬件逻辑组件来执行。作为示例而非限制,计算功能可使用以下的一个或多个来实现:现场可编程门阵列(FPGA);专用集成电路(ASIC);专用标准产品(ASSP);片上系统(SOC);复杂可编程逻辑器件(CPLD)等等。
最后,说明书在例示性挑战或问题的上下文中描述了各种概念。这种说明方式不构成其他人以此处所指定的方式理解和/或明确表达挑战或问题的表示。此外,所要求保护的主题也不仅限于解决提到的挑战/问题中的任意或全部的实现。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (11)

1.一种用于在处理平台上执行任务的方法,包括:
引导到由第一文件系统维护的第一操作系统,所述第一操作系统由文件保护机制所保护;
由所述处理平台内的代理检查以确定第二操作系统是否已被破坏,所述第二操作系统由第二文件系统维护;
当所述检查确定所述第二操作系统还未被破坏时,存储与所述第二操作系统相关联的状态;
在所述第二文件系统可访问的位置处提供任务功能,所述任务功能表示所述处理平台用来执行被分配的任务的代码、设置、和/或数据;
引导到由所述第二文件系统维护的所述第二操作系统;
使用所述第二操作系统使用所述任务功能来执行任务;
存储所述任务的结果;
引导回到所述第一操作系统;
由所述代理检索所述结果;以及
基于已存储的状态将所述第二文件系统还原到原始状态;
其中所述文件保护机制提供:
用于加密所述第一文件系统所存储的信息的加密机制;
用于解密所述第一文件系统所存储的信息的解密机制;
用于存储用于加密和解密由所述第一文件系统所存储的的信息的密钥信息的安全存储;以及
用于在校验启动过程没有被篡改之际在引导到所述第一文件系统之际发布所述密钥信息但是在引导到所述第二文件系统时不发布所述密钥信息的协议。
2.如权利要求1所述的方法,其特征在于,还包括在最初引导到所述第一操作系统之后创建与控制系统的安全连接。
3.如权利要求1所述的方法,其特征在于:
所述第二文件系统维护所述第二操作系统作为虚拟硬盘上的父操作系统,以及
所述检查包括用参考散列来检查所述父操作系统的当前散列。
4.如权利要求3所述的方法,其特征在于:
所述存储状态包括创建用于存储对所述第二文件系统所作的改动的差分盘,其中所述父操作系统代表被存储的所述第二操作系统的状态,以及
所述还原包括在所述任务之后丢弃存储在所述差分盘上的信息。
5.如权利要求1所述的方法,其特征在于:
所述第二文件系统将所述第二操作系统维护在特定存储域中,以及
所述检查包括用相应的参考散列来检查与所述第二操作系统相关联的每个单个文件的散列。
6.如权利要求5所述的方法,其特征在于:
所述存储状态包括创建和存储所述第二操作系统的状态的快照,以及
所述还原包括基于已存储的快照将所述第二操作系统回复到之前的状态。
7.如权利要求1所述的方法,其特征在于,还包括检测所述引导回到所述第一操作系统是否无法在预规定时间量内发生,以及如果所述引导回到所述第一操作系统无法在所述预规定时间量内发生则执行至少一个纠正动作。
8.一种用于执行任务的处理平台,包括:
用于提供第一操作系统的第一文件系统;
用于保护所述第一操作系统所提供的信息的文件保护机制;
用于提供第二操作系统的第二文件系统,
所述处理平台内的被配置成确定所述第二操作系统是否已被破坏的代理,
被配置成使用所述第二操作系统来执行任务以提供结果的任务功能,所述任务功能表示所述处理平台用来执行被分配的任务的代码、设置、和/或数据;
用于存储所述结果的数据存储;以及
被配置成存储与所述第二操作系统相关联的状态并且在执行所述任务之后回复到已被存储的状态的回复功能,
所述第一操作系统与所述第二操作系统执行的处理相隔离;
其中所述文件保护机制提供:
用于加密所述第一文件系统所存储的信息的加密机制;
用于解密所述第一文件系统所存储的信息的解密机制;
用于存储用于加密和解密由所述第一文件系统所存储的的信息的密钥信息的安全存储;以及
用于在校验启动过程没有被篡改之际在引导到所述第一文件系统之际发布所述密钥信息但是在引导到所述第二文件系统时不发布所述密钥信息的协议。
9.一种处理框架,包括:
用于管理要对至少一个应用执行的测试的控制系统,所述应用代表不可信代码;
用于执行所述测试的至少一个处理平台,每个处理平台包括:
用于提供第一操作系统的第一文件系统;
用于保护所述第一操作系统所提供的信息的文件保护机制;
用于提供第二操作系统的第二文件系统,
所述处理平台内的被配置成确定所述第二操作系统是否已被破坏的代理,
被配置成使用所述第二操作系统来执行所述测试以提供结果的任务功能;
用于存储所述结果的数据存储;以及
被配置成存储与所述第二操作系统相关联的状态并且在执行所述测试之后回复到已被存储的状态的回复功能;以及
用于将所述控制系统与所述至少一个处理平台耦合的加密信道;
其中所述文件保护机制提供:
用于加密所述第一文件系统所存储的信息的加密机制;
用于解密所述第一文件系统所存储的信息的解密机制;
用于存储用于加密和解密由所述第一文件系统所存储的的信息的密钥信息的安全存储;以及
用于在校验启动过程没有被篡改之际在引导到所述第一文件系统之际发布所述密钥信息但是在引导到所述第二文件系统时不发布所述密钥信息的协议。
10.一种具有指令的计算机可读存储介质,当所述指令被执行时使得机器执行如权利要求1-7中任一项所述的方法。
11.一种计算机系统,包括用于执行如权利要求1-7中任一项所述的方法的装置。
CN201480032542.5A 2013-06-07 2014-06-04 用于运行不可信代码的框架 Active CN105339890B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/913,329 2013-06-07
US13/913,329 US10025674B2 (en) 2013-06-07 2013-06-07 Framework for running untrusted code
PCT/US2014/040779 WO2014197527A1 (en) 2013-06-07 2014-06-04 Framework for running untrusted code

Publications (2)

Publication Number Publication Date
CN105339890A CN105339890A (zh) 2016-02-17
CN105339890B true CN105339890B (zh) 2019-03-08

Family

ID=51134311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480032542.5A Active CN105339890B (zh) 2013-06-07 2014-06-04 用于运行不可信代码的框架

Country Status (4)

Country Link
US (1) US10025674B2 (zh)
EP (1) EP3005090B1 (zh)
CN (1) CN105339890B (zh)
WO (1) WO2014197527A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US20150193229A1 (en) * 2014-01-06 2015-07-09 Commvault Systems, Inc. Efficient propagation of software based on snapshot technologies enabling more efficient informal software builds
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
KR101593163B1 (ko) * 2014-05-12 2016-02-15 한국전자통신연구원 실 환경 악성코드 분석 장치 및 방법
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10318518B2 (en) * 2015-07-31 2019-06-11 Bank Of America Corporation Event notification tool
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US10761942B2 (en) 2018-03-12 2020-09-01 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US10977381B2 (en) * 2018-06-28 2021-04-13 Mohammad Mannan Protection system and method against unauthorized data alteration
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
US11379577B2 (en) 2019-09-26 2022-07-05 Microsoft Technology Licensing, Llc Uniform resource locator security analysis using malice patterns
US11509667B2 (en) 2019-10-19 2022-11-22 Microsoft Technology Licensing, Llc Predictive internet resource reputation assessment
US11431751B2 (en) 2020-03-31 2022-08-30 Microsoft Technology Licensing, Llc Live forensic browsing of URLs

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367656A (en) * 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
US7716494B2 (en) 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US20070033386A1 (en) * 2005-08-03 2007-02-08 Vantech Software Company Computer working environment apparatus
WO2007107766A1 (en) * 2006-03-22 2007-09-27 British Telecommunications Public Limited Company Method and apparatus for automated testing software
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US7779243B2 (en) * 2006-12-29 2010-08-17 Intel Corporation Dual operating system computing system
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US8219983B1 (en) * 2008-03-31 2012-07-10 Symantec Corporation Systems and methods for providing guidance on the potential impact of application and operating-system changes on a computing system
US8086822B2 (en) 2008-05-30 2011-12-27 Vmware, Inc. In-place shadow tables for virtualization
US20100115010A1 (en) * 2008-10-24 2010-05-06 Anderson Guy R File attribute database, and a mixed-operating system computer system utilising such a file attribute database
US8478801B2 (en) * 2009-05-20 2013-07-02 Vmware, Inc. Efficient reconstruction of virtual disk hierarchies across storage domains
US20100313185A1 (en) 2009-06-03 2010-12-09 Microsoft Corporation Access to test-ready virtual environments
US9059965B2 (en) * 2009-06-30 2015-06-16 Oracle America, Inc. Method and system for enforcing security policies on network traffic
US8332496B2 (en) * 2009-09-23 2012-12-11 International Business Machines Corporation Provisioning of operating environments on a server in a networked environment
JP2011118837A (ja) * 2009-12-07 2011-06-16 Sony Corp 情報処理装置、情報処理方法およびプログラム
US9703586B2 (en) 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
WO2011116248A1 (en) * 2010-03-17 2011-09-22 Siamak Farah A cloud-based desktop and subscription application platform apparatuses, methods and systems
WO2012019639A1 (en) * 2010-08-10 2012-02-16 International Business Machines Corporation A method and system to automatically testing a web application
US8566574B2 (en) 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update
US9154299B2 (en) * 2010-12-13 2015-10-06 Novell, Inc. Remote management of endpoint computing device with full disk encryption
US9141368B2 (en) 2011-03-10 2015-09-22 Microsoft Technology Licensing, Llc Managing boot loaders for virtual hard disks
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
CN103246602B (zh) * 2012-02-14 2017-03-01 阿里巴巴集团控股有限公司 代码覆盖率确定方法及系统、代码覆盖检测方法及系统
US8505102B1 (en) * 2013-01-14 2013-08-06 Google Inc. Detecting undesirable content

Also Published As

Publication number Publication date
US20140365443A1 (en) 2014-12-11
WO2014197527A1 (en) 2014-12-11
US10025674B2 (en) 2018-07-17
CN105339890A (zh) 2016-02-17
EP3005090B1 (en) 2018-11-14
EP3005090A1 (en) 2016-04-13

Similar Documents

Publication Publication Date Title
CN105339890B (zh) 用于运行不可信代码的框架
US10116451B2 (en) File backups using a trusted storage region
CN106687980B (zh) 管理程序和虚拟机保护
US8225281B1 (en) Automated baseline deployment system
CN104123493B (zh) 应用程序的安全性检测方法和装置
CN104995627B (zh) 片上系统设备中的密钥撤消
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
KR20200052957A (ko) 보안 제어 방법 및 컴퓨터 시스템
CN104520869A (zh) 可信执行环境虚拟机克隆
CN107408176A (zh) 恶意对象的执行剖析检测
US20130111018A1 (en) Passive monitoring of virtual systems using agent-less, offline indexing
CN110826058B (zh) 基于用户交互的恶意软件检测的设备、方法、介质
US11533182B2 (en) Identity-based security platform and methods
NL2027556B1 (en) Method and system for generating a list of indicators of compromise
CN112860645A (zh) 一种离线压缩文件的处理方法、装置、计算机设备及介质
CN105339925B (zh) 用于被动监控虚拟服务器的方法和系统
TW202101263A (zh) 安全作業系統映像之增量解密及完整度驗證
CN105683985B (zh) 用于虚拟机内省的系统、方法及非暂时性计算机可读介质
Stephen et al. Assured cloud-based data analysis with ClusterBFT
Di Pietro et al. CloRExPa: Cloud resilience via execution path analysis
CN106844006B (zh) 基于虚拟化环境下的数据防护方法及系统
US20170286683A1 (en) System and methods thereof for identification of suspicious system processes
EP3506136B1 (en) Detecting stack cookie utilization in a binary software component using binary static analysis
US10685115B1 (en) Method and system for implementing cloud native application threat detection
WO2019199950A1 (en) Software artifact management systems and methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant