CN105659211B - 虚拟机管理器促进的选择性代码完整性实施 - Google Patents

虚拟机管理器促进的选择性代码完整性实施 Download PDF

Info

Publication number
CN105659211B
CN105659211B CN201480049869.3A CN201480049869A CN105659211B CN 105659211 B CN105659211 B CN 105659211B CN 201480049869 A CN201480049869 A CN 201480049869A CN 105659211 B CN105659211 B CN 105659211B
Authority
CN
China
Prior art keywords
code
virtual machine
storage page
page
execute
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
CN201480049869.3A
Other languages
English (en)
Other versions
CN105659211A (zh
Inventor
D·A·赫伯金
K·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 CN105659211A publication Critical patent/CN105659211A/zh
Application granted granted Critical
Publication of CN105659211B publication Critical patent/CN105659211B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

虚拟机管理器促进选择性代码完整性实施。虚拟机管理器(或其他更高特权的实体)能验证存储器页中代码的完整性,且仅当虚拟机管理器(或其他更高特权的实体)验证了该代码的代码完整性时,以内核模式运行的虚拟处理器才能在存储器页上执行该代码。然而,当虚拟处理器以用户模式运行时,虚拟机管理器不需要验证存储器页中代码的完整性。相反,运行在虚拟处理器上的操作***可应用各种各样策略中的任何策略(如任选地执行对代码的各种各样的不同检查或验证中的任何检查或验证)来判断该代码是否能以用户模式来执行。

Description

虚拟机管理器促进的选择性代码完整性实施
背景
随着计算技术发展,计算设备已经变得越来越互连。尽管这种互连提供了许多益处,但它并非没有其问题。一种这样的问题是计算设备越来越多地暴露于恶意程序。恶意程序能以不同方式操作,诸如通过从计算设备窃取信息、禁用计算设备、使用计算设备发起针对其他计算设备的攻击等等。尽管已经开发了一些技术来保护计算设备以防范恶意程序,但是这样的恶意程序仍然存在且在它们感染用户的计算机时能导致破坏用户体验。
概述
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
根据一个或多个方面,包括要由虚拟机的虚拟处理器执行的可执行代码的存储器页被标识,所述虚拟机由虚拟机管理器管理。作出关于该存储器页是否能以内核模式执行的判断。响应于判断出所述存储器页能以内核模式执行,对所述可执行代码的代码完整性检查被执行,且仅当所述代码完整性检查验证了所述可执行代码时所述可执行代码的执行才被允许用于所述内核模式。响应于判断出所述存储器页不能以内核模式执行,所述虚拟机的操作***被允许判断是否允许所述可执行代码的执行。
根据一个或多个方面,一种计算设备包括操作***、虚拟机管理器以及处理器。所述处理器被配置成允许所述虚拟机管理器将存储器页的内核模式执行限制于具有其完整性已被比所述操作***更高特权的更高特权的实体验证了的代码的存储器页,但允许存储器页的用户模式执行而不管存储器页上的代码的完整性是否已被所述更高特权的实体验证。
附图简述
在全部附图中,使用相同的附图标记来指示相同的特征。
图1是例示出根据一个或多个实施例的实现本文所讨论的技术的示例计算设备的框图。
图2例示出根据一个或多个实施例的实现本文所讨论的虚拟机管理器促进的选择性代码完整性实施技术的示例***。
图3是例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的示例过程的流程图。
图4例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的另一示例***。
图5例示出包括示例计算设备的示例***,该示例计算设备代表可实现本文所描述的各种技术的一个或多个***和/或设备。
详细描述
本文讨论了虚拟机管理器促进的选择性代码完整性实施。虚拟机是物理设备的软件实现,该软件实现能够类似于物理设备来运行程序。虚拟机以及对物理设备的硬件的访问是由物理设备上的虚拟机管理器管理的。虚拟机和虚拟机管理器访问由多个块或部分(称为存储器页(或简称为页))组成的存储器。代码完整性被用于在物理设备上促进防范恶意代码。代码完整性指的是基于代码完整性策略来验证的代码(例如二进制)的完整性。如果代码基于代码完整性策略得到验证,则代码的完整性被验证且代码被允许执行;否则,代码的完整性未被验证且代码不被允许执行。
处理器能以内核模式或用户模式执行代码。当虚拟机的虚拟处理器以内核模式运行时,虚拟处理器仅运行其完整性被虚拟机管理器(或被比虚拟处理器上运行的操作***更高特权的另一实体)验证的代码。包括代码的存储器页的代码完整性被验证,且仅当虚拟机管理器(或其他更高特权的实体)已经验证了一存储器页上的代码的代码完整性时,以内核模式运行的虚拟处理器才能执行该存储器页上的代码。然而,当虚拟处理器以用户模式运行时,运行在虚拟处理器上的操作***判断代码是否能被执行。操作***能应用各种各样的策略中的任何策略(如执行对代码的各种各样的不同检查或验证中的任何检查或验证)以判断代码是否能以用户模式被执行,包括任选地以用户模式执行代码而不对代码执行任何检查或验证。
图1是例示出根据一个或多个实施例的实现本文所讨论的技术的示例计算设备100的框图。计算设备100可以是各种各样不同类型的设备中的任何设备。例如,计算设备100可以是台式计算机、服务器计算机、膝上型或上网本计算机、平板或笔记本计算机、移动站、娱乐设备、通信上耦合到显示设备的机顶盒、电视机或其他显示设备、蜂窝式或其他无线电话、游戏控制台、车载计算机、可穿戴计算机等等。
计算设备100包括虚拟机管理器102(也称为管理程序)以及一个或多个组件104。虚拟机管理器102管理对由组件104所提供的功能的访问。替代地,虚拟机管理器102可运行在主机操作***(未示出)上,在该情况下主机操作***管理对由组件104所提供的功能的访问。
组件104可以是各种各样的不同处理器组件、输入/输出(I/O)组件、和/或其他组件或设备。例如,组件104可包括一个或多个处理器或处理器核、一个或多个存储器组件(如易失性和/或非易失性存储器)、一个或多个存储设备(如光盘和/或磁盘、闪存驱动器)、一个或多个通信组件(如有线和/或无线网络适配器)、它们的组合等等。尽管被例示为计算设备100的一部分,但是组件104中的一个或多个(如一个或多个存储设备)可被实现在计算设备100的外部。运行在计算设备100上的包括虚拟机管理器102在内的各种组件或模块可直接地和/或经由其他组件或模块间接地访问由组件104所提供的该功能。
虚拟机管理器102允许虚拟机106在计算设备100上运行。单个虚拟机106被例示在计算设备100中,尽管另选地多个虚拟机可在计算设备100上运行。虚拟机指的是物理计算设备(或其他机器或***)的软件实现,该软件实现能够类似于物理计算设备来运行程序。虚拟机包括类似于组件104(但却是组件104的软件实现)的一个或多个虚拟组件。操作***以及其他应用可使用虚拟组件就好像它们在使用组件104时那样来执行,包括在虚拟处理器或虚拟处理器核上运行、访问虚拟存储器等等。虚拟机106中执行的操作***和其他应用不需要知道且通常不知道它们正在虚拟机中执行。
虚拟机106包括操作***112、一个或多个应用114、以及一个或多个虚拟组件116。操作***112在作为组件116中的一个或多个组件而被包括在内的一个或多个虚拟处理器或处理器核上运行或执行,并管理应用114的执行。
虚拟机管理器102包括虚拟机(VM)控制模块122和页管理模块124。虚拟机控制模块122管理虚拟组件116到组件104的映射,包括对虚拟处理器或处理器核的调度以在物理处理器或处理器核上执行。页管理模块124标识哪些页能以内核模式执行,并可任选地对能以内核模式执行的存储器页执行对代码的代码完整性检查,如下文更详细讨论的那样。尽管被例示为两个分开的模块,但是应注意模块122和124的功能可被组合到单个模块中(如页管理模块124的功能可被包括在VM控制模块122中)。
操作***112和虚拟机管理器102管理由多个块或部分(称为存储器页(或简称为页))组成的存储器的存储和访问。存储器可以是例如任何类型的CPU(中央处理单元)可寻址的存储器,诸如易失性存储器(如RAM)或非易失性存储器(如闪存)。不同程序可被分配存储器页,且这些程序可以是应用114、操作***112的程序、或其他组件或模块。
操作***112和虚拟机管理器102可允许一程序对存储器页的不同类型的访问,诸如读取访问、写入访问、以及执行访问。如果读取访问(也称为读取权限)被给予到一存储器页,则该存储器页的内容就允许被读取(例如至特定的一个或多个程序)。如果写入访问(也称为写入权限)被给予到一存储器页,则内容就允许被写入该存储器页(例如由特定的一个或多个程序)。如果执行访问(也称为执行权限)被给予到一存储器页,则存储在该存储器页中(也称为存储在该存储器页上)的代码就允许被执行。
操作***112和/或比操作***112更高特权的实体(如虚拟机管理器102)可至少部分地基于验证存储器页上的代码的代码完整性来判断是否要给予该存储器页执行权限。验证代码完整性指的是基于代码完整性策略验证代码(如二进制或其各部分)的完整性。各种不同的代码完整性策略可被使用,代码的完整性从而能以各种不同方式被验证。如果代码的完整性基于代码完整性策略被验证,则代码完整性得到验证且代码被允许执行。然而,如果代码的完整性基于代码完整性策略未被验证,则代码完整性未得到验证且代码不被允许执行。
在一个或多个实施例中,代码完整性策略指示出基于代码已使用数字证书签署来验证代码的完整性,所述数字证书标识代码的来源(例如,数字签署该代码的实体)并为该代码建立信任链。该代码是通过基于该代码以及密码密钥生成数字签名来被签署的。在没有密码密钥(或对应密钥,诸如公钥/私钥对中的私钥)的情况下,在计算上非常难以创建可使用该密码密钥被验证的签名。然而,具有密码密钥(或对应密钥,诸如公钥/私钥对中的公钥)的任何实体可使用该密钥,通过对该密钥、签名以及被签署的代码执行合适的数字签名验证算法来验证数字签名。由于数字签名基于代码,对代码的任何改变将导致数字签名不被验证。从而,数字证书允许验证代码的实体验证代码被数字签署后代码未被改变。
验证代码的实体(如操作***112或虚拟机管理器102)标识一个或多个受信实体。这些受信实体可用不同方式被标识,诸如在验证实体中预先配置、由计算设备100的管理员提供、或以其他方式获得。标识受信实体以及一个或多个其他实体的信任链可被建立。信任链指的是以数字签署该代码的实体开始且以被验证该代码的实体所信任的实体结束的一系列实体。任何数量的额外实体可被包括在链中,每个实体验证它信任链中的前一实体。例如,假设代码由不被验证该代码的实体所信任的实体A签署,但是实体D被验证该代码的实体所信任。信任链可包括数字签署该代码的实体A、提供验证实体B信任实体A的数字证书的实体B、提供验证实体C信任实体B的数字证书的实体C、以及提供验证实体D信任实体C的数字证书的实体D。
如果信任链被验证且代码还未被修改,则代码完整性检查成功—代码的完整性得到验证且代码被允许执行。然而,如果信任链未被验证和/或代码已被修改,则代码完整性检查失败—代码的完整性未得到验证且代码不被允许执行。
替代地,代码的完整性可用其他方式验证。例如,代码可由验证该代码的实体或在该实体的指示下生成。代码完整性策略可指示出这样的代码被自动视为被该实体验证,且对于这样的代码的代码完整性检查成功(代码的完整性得到验证且代码被允许执行)。作为另一示例,可通过根据代码完整性策略所指示的各种其他规则或准则进行分析来验证代码。如果对代码的分析确定代码完整性策略已被满足,则代码得到验证且代码完整性检查成功(代码的完整性得到验证且代码被允许执行)。然而,如果对代码的分析确定代码完整性策略还未被满足,则代码未得到验证且代码完整性检查失败(代码的完整性未得到验证且代码不被允许执行)。
在一个或多个实施例中,程序的代码可被存储在多个存储器页中,而对于该多个页的代码完整性检查作为整体被执行。对该程序的代码的代码完整性检查被执行,且如果代码完整性检查成功,则执行权限被给予到该代码被存储于其中的多个存储器页中的全部页。然而,如果代码完整性检查失败,则执行权限不被给予到该代码被存储于其中的多个存储器页中的任何页。
替代地,对程序的代码被存储于其中的多个页中的每个页的代码完整性检查可被单独执行,且独立于对所述多个页中其他页中所存储的代码的代码完整性检查。例如,响应于对执行所述多个存储器页中的一个页中的代码的尝试,至少在该存储器页上对该代码执行代码完整性检查,且基于代码完整性检查失败还是成功,将执行权限给予或不给予该存储器页。
计算设备100的一个或多个处理器支持以多种不同模式执行代码,所述多种不同模式指的是内核模式(也称为内核-模式、管理器模式、或管理器-模式)和用户模式(也称为用户-模式)。应用114通常以用户模式运行,而操作***112可包括以内核模式运行的一些核心组件以及以用户模式运行的其他组件。用户模式比内核模式的特权低(即更受限)。安装在操作***112上或以其他方式包括在操作***112中的促进与虚拟组件116进行通信的驱动程序能以用户模式或以内核模式运行。对内核模式和用户模式的使用对以内核模式运行的代码提供了额外保护,诸如通过处理器执行代码防止以用户模式运行的代码访问以内核模式运行的代码所使用的存储器。
尽管此处提及内核模式和用户模式,但是替代地,计算设备100的处理器可支持一个或多个额外模式。在这样的情形中,本文所讨论的模式可被称为内核模式和非内核模式,其中不是内核模式的模式类似于本文所讨论的用户模式被对待。替代地,本文所讨论的模式可被称为用户模式和非用户模式,其中不是用户模式的模式类似于本文所讨论的内核模式被对待。
图2例示出实现本文所讨论的虚拟机管理器促进的选择性代码完整性实施技术的示例***200。***200包括在虚拟机106中运行的操作***112,以及作为具有更高特权的实体204的一部分的代码完整性验证模块202。代码完整性验证模块202可任选地被包括在运行于图1的虚拟机管理器102中的页管理模块124中。代码完整性验证模块202对在虚拟处理器以内核模式操作时虚拟处理器希望执行的代码执行代码完整性验证,提供指示出对该代码的代码完整性验证成功还是失败的内核模式代码验证结果206。如果代码完整性验证成功,则该代码能以内核模式执行,而如果代码完整性验证失败,则该代码不能以内核模式执行。
更高特权的实体204指的是比操作***112具有更高特权(更不受限)的实体。更高特权的实体204可以是图1的虚拟机管理器102。更高特权的实体204可替代地是一个或多个其他实体,诸如以比操作***112的内核模式更高特权的安全模式(如由虚拟机管理器102管理的安全模式)运行的虚拟处理器。更高特权的实体可被实现为软件、固件、和/或硬件。在更高特权的实体204是除了虚拟机管理器之外的实体的情形中,内核模式代码验证结果206可被提供给虚拟机管理器,从而允许虚拟机管理器维护标识其完整性已被验证且从而能以内核模式执行的代码的记录。
操作***112包括策略实施模块208,策略实施模块208实现一个或多个策略以判断在虚拟处理器以用户模式操作时虚拟处理器希望执行的代码是否能被执行。各种不同策略可由策略实施模块208来实现,诸如执行类似于代码完整性验证模块202的代码完整性验证、检查代码或操作***112的其他特征等等。策略实施模块208实现的策略也可以是以用户模式执行所有代码(例如以用户模式执行代码而不执行任何代码完整性检查或其他验证)。策略实施模块208在虚拟处理器以用户模式操作时对代码应用该策略,提供指示出该策略被满足(策略检查成功)还是未被满足(策略检查失败)的策略评估结果210。如果策略检查成功,则代码能以用户模式执行,而如果策略检查失败,则代码不能以用户模式执行。
从而,更高特权的实体204在内核模式中对页执行代码完整性验证(实施代码完整性),而虚拟机106中的操作***112在用户模式中对页执行策略检查(实施策略)。在一个或多个实施例中,策略实施模块208在操作***112的内核模式代码中实现。从而,对运行在用户模式的代码的策略检查由运行在内核模式的代码作出,其中运行在内核模式的代码的代码完整性已被虚拟机管理器102或其他更高特权的实体验证。
从而,虚拟机管理器102能够将内核模式中代码的执行限制为已由更高特权的实体204验证了的代码,但是用户模式中代码的执行由运行在虚拟机106上的操作***112分开控制。基于策略实施模块208的配置且独立于更高特权的实体204执行的代码完整性验证,操作***112执行任何代码验证和/或其他策略检查。
本文所讨论的技术从而提供了附加安全性级别,因为虚拟机管理器防止操作***112的被损害的代码以内核模式执行。然而,本文所讨论的技术同时允许在用户模式执行的代码的代码完整性被验证和/或由操作***112视情况而实现的其他策略。操作***112为在用户模式执行的代码设置策略,允许操作***112支持不执行代码验证的情形。例如,操作***112可能希望允许某些代码在用户模式执行而不被验证,或者允许对在用户模式执行的某些代码执行动态代码生成。这样的判断都可由操作***112作出,只要向计算设备100的用户保证操作***112未被损害,因为操作***112的代码完整性被虚拟机管理器102(或其他更高特权的实体)验证了。
图3是例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的示例过程300的流程图。过程300至少部分地由虚拟机管理器执行,诸如图1和2的虚拟机管理器102,且能以软件、固件、硬件或其组合来实现。过程300被示为一组动作,并且不仅限于所示出的用于执行各种动作的操作的顺序。过程300是用于实现虚拟机管理器促进的选择性代码完整性实施的示例过程;参考不同附图,实现虚拟机管理器促进的选择性代码完整性实施的附加讨论被包括于此。
在过程300中,包括要由虚拟处理器执行的可执行代码的存储器页被标识(动作302)。该存储器页可在不同时间以及响应于不同事件而被标识,诸如由虚拟机或虚拟机所管理的操作***作出的使存储器页可执行的请求、由虚拟机或虚拟机所管理的操作***作出的允许程序由虚拟处理器执行的请求等等。
作出关于该存储器页是否能以内核模式执行的判断(304)。能以各种方式作出该判断,诸如由虚拟机或操作***在作出使该存储器页可执行的请求时标识。
响应于判断出该存储器页能以内核模式执行,对该可执行代码的代码完整性检查由更高特权的实体作出(动作306)。如上文所讨论的,更高特权的实体是比虚拟机管理的操作***更高特权的实体。如上文所讨论的,该更高特权的实体可以是虚拟机管理器或其他实体。代码完整性检查是通过如上所讨论的那样以各种方式基于代码完整性策略验证代码的完整性来作出的,例如通过基于信任链被验证且数字签名验证该代码未被修改来验证该代码。仅当代码完整性检查验证该可执行代码时才允许该存储器页中的该可执行代码的执行(动作308)。例如通过虚拟机管理器向动作302中所标识出的存储器页给予执行权限,该存储器页中的该可执行代码的执行可被允许。
返回动作304,响应于判断出该存储器页不能以内核模式执行,虚拟机管理器所管理的虚拟机的操作***被允许基于该操作***的策略来判断是否允许该可执行代码的执行(动作310)。如上所讨论的,该操作***可实现各种不同策略来判断是否要执行该代码,包括代码完整性检查。
动作302中使存储器页可执行的请求可被送往虚拟机管理器,或另选地被送往更高特权的实体(如图2的更高特权的实体204)。在一个或多个实施例中,如果虚拟机管理器是更高特权的实体,则该请求可被送往虚拟机管理器,而虚拟机管理器执行动作306中的代码完整性检查。然而,如果另一实体是更高特权的实体,则该请求被送往该更高特权的实体(如直接或经由虚拟机管理器),该更高特权的实体执行动作306中的代码完整性检查,且如果动作306中的代码完整性检查验证了该可执行代码,则该更高特权的实体通知虚拟机管理器使该存储器页能以内核模式执行。虚拟机管理器可通过例如更新第二级地址转换表来使得该存储器页能以内核模式执行,如下文更详细讨论的。
从而,虚拟机管理器促进了选择性代码完整性实施。内核模式代码的代码完整性由虚拟机管理器(或充分利用虚拟机管理器的其他更高特权的实体)实施,而用户模式代码的代码完整性的实施交由运行在虚拟机管理器所管理的虚拟机中的操作***中。
返回图1,在一个或多个实施例中,计算设备100采用虚拟存储器。虚拟存储器指的是被映射到另一地址空间(如物理存储器)的地址空间。应用被指派了虚拟存储器空间,在该虚拟存储器空间中应用代码被执行且数据被存储。存储器管理器(例如处理器的)管理虚拟存储器空间中的虚拟存储器地址到另一存储器空间中的地址的映射。当将虚拟存储器地址从虚拟存储器地址空间映射到另一存储器空间时,执行地址转换。地址转换表被用于执行该映射,且可被充分利用来实现本文所讨论的技术。
在一个或多个实施例中,地址转换表以硬件实现,诸如通过作为计算设备100的组件104的物理处理器。地址转换表允许虚拟机管理器102选择性地实施代码完整性,如下文更详细讨论的。替代地,计算设备100的硬件(如作为组件104的物理处理器)可使用各种其他表、列表、记录、结构等,以允许虚拟机管理器102选择性地实施代码完整性。替代地,以软件实现的各种其他表、列表、记录、结构等(例如作为虚拟机管理器102的一部分或作为计算设备100的另一组件或模块的一部分)可被使用以允许虚拟机管理器102选择性地实施代码完整性。
图4例示出根据一个或多个实施例的实现虚拟机管理器促进的选择性代码完整性实施的示例***400。***400可以是例如图1的计算设备100。***400包括物理处理器402、物理存储器空间404、虚拟处理器406、以及程序408。物理处理器402可以是图1的组件104,物理存储器空间404可以是图1的组件104,虚拟处理器406可以是图1的虚拟组件116,以及程序408可以是图1的应用114或是操作***112的一部分。物理处理器402包括管理对物理存储器空间404的访问的存储器管理器410。物理存储器空间404可以是各种易失性和/或非易失性存储器,诸如RAM、闪存等等。
物理处理器402向虚拟处理器406指派虚拟机存储器空间412,并维护第二级地址转换表414。第二级地址转换表414将虚拟机存储器空间412中的地址映射到物理存储器空间404中的地址。在任何给定时间虚拟机存储器空间412中的某一地址映射到物理存储器空间404的哪一地址可改变,且由存储器管理器410控制。使用各种各样的公共和/或专有技术中的任何技术,存储器管理器410可改变映射,允许多个不同的虚拟处理器共享物理存储器空间404,和/或允许虚拟机存储器空间412比物理存储器空间404更大。
虚拟处理器406包括管理对虚拟机存储器空间412的访问的存储器管理器416。虚拟处理器406向程序408指派程序存储器空间418,并维护第一级地址转换表420。第一级地址转换表420将程序存储器空间418中的地址映射到虚拟机存储器空间412中的地址。在任何给定时间程序存储器空间418中的某一地址映射到虚拟机存储器空间412的哪一地址可改变,且由存储器管理器416控制。使用各种各样的公共和/或专有技术中的任何技术,存储器管理器416可改变映射,允许多个不同的程序共享虚拟机存储器空间412,和/或允许程序存储器空间418比虚拟机存储器空间412更大。
响应于对程序存储器空间418中的地址的访问,存储器管理器416使用第一级地址转换表420将程序存储器空间418中的该存储器地址转换成虚拟机存储器空间412中的地址。该访问可采用各种不同形式,诸如要由操作***执行的程序408的代码的地址、其中由程序408存储要被读取的数据的地址、其中要存储要由程序408写入的数据的地址等等。
类似地,响应于对虚拟机存储器空间412中的地址的访问,存储器管理器410使用第二级地址转换表414将虚拟机存储器空间412中的该存储器地址转换成物理存储器空间404中的地址。该访问可采用各种不同形式,诸如要运行的由虚拟处理器406管理的操作***核(如内核)的代码的地址、要由操作***执行的程序408的地址、其中由程序408或操作***核存储要被读取的数据的地址、其中要存储要由程序408或操作***核写入的数据的地址等等。
在一个或多个实施例中,第一级地址转换表420和第二级地址转换表414映射地址页而不是各个地址。例如,第一级地址转换表420将程序存储器空间418的页映射到虚拟机存储器空间412的页,而第二级地址转换表414将虚拟机存储器空间412的页映射到物理存储器空间404的页。替代地,表414和/或表420能基于其他分组来映射地址,诸如个别地或地址的其他子页集合、采用多个页的集合等等。
虚拟处理器406能以内核模式或用户模式运行。存储器管理器416可维护能以内核模式执行的存储器页的记录。该记录可被包括作为第一级地址转换表420的一部分或者替代地以其他方式被维护。存储器管理器410维护虚拟机存储器空间412中能以内核模式执行的存储器页的记录。该记录可被包括作为第二级地址转换表414的一部分或者替代地以其他方式被维护。
当作出访问以在虚拟处理器406上执行代码时,要被执行的该代码的地址由第一级地址转换表420转换以获得虚拟机存储器空间412中的经转换地址,该经转换地址然后由第二级地址转换表414转换以获得物理存储器空间404中的地址。如果在虚拟处理器406正在以用户模式操作的同时作出该访问,则运行在虚拟处理器406上的操作***应用适当的策略来判断该代码是否能被执行。
然而,如果在虚拟处理器正在以内核模式操作的同时作出该访问,则作出关于针对内核模式的执行权限是否已被给予到该页的检查。针对内核模式的执行权限是否已经被给予到该页的记录可任选地被维护在第二级地址转换表414中或替代地由物理处理器402维护在别处。在这样的情形中,如果针对内核模式的执行权限已经被给予到该页,则关于针对内核模式的执行权限已经被给予到该页的指示可被返回给虚拟处理器406,且虚拟处理器40上运行的操作***允许在虚拟处理器406处于内核模式的同时该代码执行。
如果针对内核模式的执行权限还未被给予到该页,则虚拟处理器406上运行的操作***能任选地请求使得该页能针对内核模式执行。虚拟处理器406将该请求传递至如上文所讨论的那样执行代码完整性检查的虚拟机管理器(或其他更高特权的实体)。如果代码完整性检查成功,则该页被给予针对内核模式的执行权限,而如果代码完整性检查失败,则该页不被给予针对内核模式的执行权限。
在一个或多个实施例中,一属性被包括在第二级地址转换表414中以允许针对内核模式的执行权限与针对用户模式的执行权限或策略被分开指定。该属性可用各种各样不同方式被编码在第二级地址转换表414中,但包括下面三个特征。第一,该属性被实现在第二级地址转换表中使得能够对每个第二级转换(由存储器管理器410使用第二级地址转换表414执行的每个转换)单独控制该属性。第二,该属性应用于内核模式执行权限——该属性不需要影响(但替代地可影响)内核模式中(以及用户模式中)的读取和/或写入权限。第三,该属性允许独立于用户模式执行来禁用内核模式执行,至少允许以下两种执行组合:1)不允许以内核模式执行但允许以用户模式执行;2)不允许以内核模式执行且不允许以用户模式执行。
该至少一个属性可用各种各样不同方式被包括在第二级地址转换表414中。例如,第二级地址转换表中的每个条目可包括两个位,一个位对应于用户模式执行而一个位对应于内核模式执行。对应于用户模式页的位可被赋予一个值(如被赋予值“1”,也称为该位被置位)以指示出给予以用户模式执行该页上的代码的权限,以及被赋予另一个值(如被赋予值“0”,也称为该位被清除)以指示出不给予以用户模式执行该页上的代码的权限。类似地,对应于内核模式执行的位可被赋予一个值(如被赋予值“1”,也称为该位被置位)以指示出给予以内核模式执行该页上的代码的权限,以及被赋予另一个值(如被赋予值“0”,也称为该位被清除)以指示出不给予以内核模式执行该页上的代码的权限。
在一个或多个实施例中,在第二级地址转换表414中,存储器页的初始或默认值是不允许针对内核模式执行(不给予执行权限)但允许针对用户模式执行(给予执行权限)。如果一存储器页中的代码的代码完整性已被虚拟机管理器(或其他更高特权的实体)验证,则用于该存储器页的值可被改变以允许该页针对内核模式以及针对用户模式执行(给予执行权限)。然而,如果一存储器页中的代码的代码完整性没有通过操作***进行的代码完整性检查,则操作***可任选地改变(或请求虚拟机管理器改变)用于该存储器页的值以不允许该页针对用户模式执行(不给予执行权限)。
应注意,第二级地址转换表414受虚拟机管理器(诸如图1的虚拟机管理器102)的控制。第二级地址转换表414不可由虚拟机中运行的软件(如图1的虚拟机106的应用114或操作***112)访问。虚拟机中的操作***对其第一级地址转换表具有直接控制权,而虚拟机管理器对第二级地址转换表具有排他控制权。从而,通过在第二级地址转换表中具有内核模式执行控制,虚拟机管理器能够高效地且容易地使用该控制以独立于操作***对第一级地址转换表的管理来授予或拒绝内核模式执行访问。通过在第二级地址转换表中具有限制内核模式代码执行的能力,虚拟机管理器无需直接参与虚拟机中的操作***所执行的第一级地址转换表更新就能实施其代码完整性策略。
还应注意,尽管上文讨论了第一级和第二级地址转换表,但是替代地,虚拟机管理器实施的代码完整性可使用单个地址转换表(如第一级地址转换表)来以软件实现。例如,虚拟机管理器能控制第一级地址转换表(如图4的表420)并防止操作***从虚拟机内部直接访问该第一级地址转换表。虚拟机管理器于是能实施上文讨论的策略(如虚拟机管理器能确保内核可执行的代码是虚拟机管理器已验证了的代码,但是虚拟机管理器对用户模式代码执行不施加限制)。
虽然本文中参考特定模块讨论了特定功能,但应注意,本文中讨论的个体模块的功能可被分成多个模块,和/或多个模块的至少一些功能可被组合在单个模块中。附加地,本文讨论的执行某一动作的特定模块包括该特定模块本身执行该动作或另选地该特定模块调用或与其他方式访问执行该动作的另一组件或模块(或与该特定模块联合执行该动作)。因而,执行某一动作的特定模块包括该特定模块本身执行该动作或该特定模块调用或以其他方式访问的另一模块执行该动作。
图5在500概括地示出了包括示例计算设备502的示例***,该示例***表示可以实现本文中所描述的各种技术的一个或多个***和/或设备。计算设备502可以是,例如,服务提供方的服务器、与客户端相关联的设备(例如,客户端设备)、片上***、和/或任何其他合适的计算设备或计算***。
所示的示例计算设备502包括处理***504、一个或多个计算机可读介质506,以及相互通信地耦合的一个或多个I/O接口508。尽管没有示出,计算设备502可进一步包括***总线或将各种组件相互耦合的其它数据和命令传输***。***总线可以包括不同总线结构中的任一个或其组合,诸如存储器总线或存储器控制器、***总线、通用串行总线和/或利用各种总线体系结构中的任一种的处理器或局部总线。也构想了各种其它示例,诸如控制和数据线。
处理***504表示使用硬件执行一个或多个操作的功能。因此,处理***504被示为包括可被配置为处理器、功能块等的硬件元件510。这可包括在作为专用集成电路或使用一个或多个半导体构成的其它逻辑设备的硬件中的实现。硬件元件510不受形成它们的材料或者其中利用的处理机制的限制。例如,处理器可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这一上下文中,处理器可执行指令可以是可电子地执行的指令。
计算机可读介质506被示为包括存储器/存储512。存储器/存储512表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储512可包括易失性介质(如随机存取存储器(RAM))和/或非易失性介质(如只读存储器(ROM)、闪存、光盘、磁盘等等)。存储器/存储512可包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如闪存、可移动硬盘驱动器、光盘等等)。计算机可读介质506可以下面进一步描述的各种方式来配置。
输入/输出接口508表示允许用户向计算设备502输入命令和信息的功能,并且还允许使用各种输入/输出设备向用户和/或其他组件或设备呈现信息。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,电容性的或被配置来检测物理触摸的其它传感器)、相机(例如,可采用可见或诸如红外频率的不可见波长来将不涉及触摸的移动检测为姿势),等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备,等等。因此,计算设备502可以下面进一步描述的各种方式来配置以支持用户交互。
计算设备502还包括虚拟机管理器514(也称为管理程序)。虚拟机管理器514允许虚拟机在计算设备502上运行。虚拟机管理器514可以是例如图1或图2的虚拟机管理器102。
此处可以在软件、硬件元件或程序模块的一般上下文中描述各种技术。一般而言,此类模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等等。本文使用的术语“模块”、“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的各特征是平台无关的,从而意味着该技术可在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以被存储在某种形式的计算机可读介质上或跨某种形式的计算机可读介质传输。计算机可读介质可包括可由计算设备502访问的各种介质。作为示例而非限制,计算机可读介质可包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”指相对于仅信号传输、载波或信号本身而言,启用对信息的持久存储和/或有形存储的介质和/或设备。由此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括以适合于存储如计算机可读指令、数据结构、程序模块、逻辑元件/电路、或其他数据等的方法或技术来实现的诸如易失性和非易失性、可移动和不可移动介质和/或存储设备的硬件。该计算机可读存储介质的示例包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、硬盘、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可适用于存储所需信息并可由计算机访问的其它存储设备、有形介质或制品。
“计算机可读信号介质”指的是被配置成诸如经由网络向计算设备502的硬件传输指令的信号承载介质。信号介质通常用诸如载波、数据信号、或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。信号介质还包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线路连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。
如先前所描述的,硬件元件510和计算机可读介质506代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其可在某些实施例中被采用来实现此处描述的技术的至少某些方面。硬件元件可包括集成电路或片上***、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD),和用硅或其它硬件设备实现的组件。在此上下文中,硬件元件可以充当处理设备,该处理设备执行由该硬件元件以及用于存储供执行的指令的硬件设备(例如前面描述的计算机可读存储介质)所体现的指令、模块和/或逻辑所定义的程序任务。
前面的组合也可被采用来实现本文所述的各种技术。因此,软件、硬件,或模块和其他程序模块可被实现为一个或多个指令和/或在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件510实现的逻辑。计算设备502可被配置成实现对应于软件和/或硬件模块的特定指令和/或功能。因此,将模块实现为可由计算设备502执行为软件的模块可至少部分以硬件完成,例如,通过使用计算机可读存储介质和/或处理***的硬件元件510。指令和/或功能可以是一个或多个制品(例如,一个或多个计算设备502和/或处理***504)可执行/可操作的,以实现此处描述的技术、模块、以及示例。
如在图5中进一步例示的,示例***500使得用于当在个人计算机(PC)、电视设备和/或移动设备上运行应用时的无缝用户体验的普遍存在的环境成为可能。服务和应用在所有三个环境中基本相似地运行,以便当使用应用、玩视频游戏、看视频等时在从一个设备转换到下一设备时得到共同的用户体验。
在示例***500中,多个设备通过中央计算设备互连。中央计算设备对于多个设备可以是本地的,或者可以位于多个设备的远程。在一个或多个实施例中,中央计算设备可以是通过网络、因特网或其他数据通信链路连接到多个设备的一个或多个服务器计算机的云。
在一个或多个实施例中,该互连架构使得功能能够跨多个设备递送以向多个设备的用户提供共同且无缝的体验。多个设备的每一个可具有不同的物理要求和能力,且中央计算设备使用一平台来使得为设备定制且又对所有设备共同的体验能被递送到设备。在一个或多个实施例中,创建目标设备的类,且针对设备的通用类来特制体验。设备类可由设备的物理特征、用途类型或其他共同特性来定义。
在各种实现中,计算设备502可采取各种各样不同的配置,诸如用于计算机516、移动设备518和电视机520用途。这些配置中的每一个包括可具有一般不同的构造和能力的设备,并且因而计算设备502可根据不同的设备类中的一个或多个来配置。例如,计算设备502可被实现为计算机516类的设备,该类包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等。
计算设备502还可被实现为移动设备518类的设备,该类包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备。计算设备502还可被实现为电视机520类的设备,该类包括在休闲观看环境中具有或连接到通常更大的屏幕的设备。这些设备包括电视机、机顶盒、游戏控制台等。
本文所描述的技术可由计算设备502的这些各种配置来支持,且不限于在本文描述的各具体示例。这个功能也可被全部或部分通过分布式***的使用(诸如如下所述的经由平台522通过“云”524)来实现。
云522包括和/或代表资源524的平台526。平台524抽象云522的硬件(如,服务器)和软件资源的底层功能。资源526可包括可在计算机处理在位于计算设备502远程的服务器上执行时使用的应用和/或数据。资源526也可包括在因特网上和/或通过诸如蜂窝或Wi-Fi网络之类的订户网络上提供的服务。
平台524可抽象资源和功能以将计算设备502与其他计算设备相连接。平台524还可用于抽象资源的缩放以向经由平台526实现的资源524所遇到的需求提供对应的缩放级别。因此,在互联设备的实施例中,本文描述的功能的实现可分布在***500上。例如,该功能可部分地在计算设备502上以及经由抽象云524的功能的平台522来实现。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (10)

1.一种在计算设备中实现的用于防范恶意程序的方法,所述方法包括:
响应于虚拟机或在所述虚拟机中运行的操作***做出的使存储器页可执行的请求,标识包括要由所述虚拟机的虚拟处理器执行的可执行代码的所述存储器页,所述虚拟机由虚拟机管理器管理;
响应于使所述存储器页可执行的请求,判断所述存储器页是否能以内核模式执行;
由比所述虚拟机的操作***更高特权的实体且响应于判断出所述存储器页能以所述内核模式执行,基于代码完整性策略对所述可执行代码执行代码完整性检查,且仅当所述代码完整性检查验证了所述可执行代码时才允许所述可执行代码针对所述内核模式的执行;以及
响应于判断出所述存储器页在内核模式不是可执行的,允许所述虚拟机的所述操作***判断是否允许所述可执行代码在用户模式执行。
2.如权利要求1所述的方法,所述比所述虚拟机的操作***更高特权的实体是所述虚拟机管理器。
3.如权利要求1所述的方法,进一步包括由所述操作***且响应于判断出所述存储器页不能以内核模式执行,执行对所述可执行代码的代码完整性检查,且仅当所述操作***执行的所述代码完整性检查验证了所述可执行代码时才允许所述可执行代码的执行。
4.如权利要求1所述的方法,所述计算设备进一步包括一组件,所述组件包括允许用于所述虚拟处理器的内核模式的执行权限与用于所述虚拟处理器的用户模式的执行权限或策略被分开指定的属性。
5.一种计算设备,所述计算设备包括操作***、虚拟机管理器以及处理器,所述处理器被配置成:
响应于虚拟机做出的使存储器页可执行的请求,确定所述存储器页是否能以内核模式执行;
允许所述虚拟机管理器将包括要由虚拟机的虚拟处理器执行的可执行代码的存储器页的内核模式执行限制于具有其完整性已被比所述操作***更高特权的更高特权的实体通过基于代码完整性策略的代码完整性检查验证了的代码的存储器页,但通过响应于判断出所述存储器页在内核模式不是可执行的,允许所述虚拟机的所述操作***判断是否允许所述可执行代码在用户模式执行,来允许存储器页的用户模式执行而不管存储器页上的代码的完整性是否已被所述更高特权的实体验证。
6.如权利要求5所述的计算设备,所述处理器被进一步配置成将存储了其完整性已被所述虚拟机管理器验证了的代码的存储器页的执行权限属性置位。
7.如权利要求5所述的计算设备,所述处理器包括地址转换表,所述地址转换表的属性允许用于存储器页的内核模式执行的执行权限与用于存储器页的用户模式执行的执行权限被分开指定。
8.如权利要求5所述的计算设备,所述处理器进一步包括一硬件组件,所述硬件组件具有允许用于存储器页的内核模式执行的执行权限与用于存储器页的用户模式执行的执行策略被分开指定的属性。
9.如权利要求8所述的计算设备,所述属性允许用于存储器页的内核模式执行的执行权限与用于存储器页的用户模式执行的执行策略以每存储器页为基础被分开指定。
10.如权利要求8所述的计算设备,所述属性允许一种执行组合以及一种附加组合,所述执行组合不允许一存储器页中代码的内核模式执行但允许所述存储器页中所述代码的用户模式执行,所述附加组合不允许所述存储器页中所述代码的内核模式执行和所述存储器页中所述代码的用户模式执行两者。
CN201480049869.3A 2013-09-17 2014-09-12 虚拟机管理器促进的选择性代码完整性实施 Active CN105659211B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361879068P 2013-09-17 2013-09-17
US61/879,068 2013-09-17
US14/179,378 US10198572B2 (en) 2013-09-17 2014-02-12 Virtual machine manager facilitated selective code integrity enforcement
US14/179,378 2014-02-12
PCT/US2014/055290 WO2015041930A1 (en) 2013-09-17 2014-09-12 Virtual machine manager facilitated selective code integrity enforcement

Publications (2)

Publication Number Publication Date
CN105659211A CN105659211A (zh) 2016-06-08
CN105659211B true CN105659211B (zh) 2019-03-22

Family

ID=52669226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480049869.3A Active CN105659211B (zh) 2013-09-17 2014-09-12 虚拟机管理器促进的选择性代码完整性实施

Country Status (11)

Country Link
US (2) US10198572B2 (zh)
EP (1) EP3047375B1 (zh)
JP (1) JP6397500B2 (zh)
KR (1) KR102166755B1 (zh)
CN (1) CN105659211B (zh)
AU (1) AU2014321545B2 (zh)
BR (1) BR112016004493B1 (zh)
CA (1) CA2922490C (zh)
MX (1) MX362067B (zh)
RU (1) RU2667713C2 (zh)
WO (1) WO2015041930A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102183852B1 (ko) * 2013-11-22 2020-11-30 삼성전자주식회사 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
JP6245700B2 (ja) * 2014-04-11 2017-12-13 国立大学法人 東京大学 計算機システム、データの検査方法及び計算機
US9628279B2 (en) * 2014-09-30 2017-04-18 Microsoft Technology Licensing, Llc Protecting application secrets from operating system attacks
US10341384B2 (en) * 2015-07-12 2019-07-02 Avago Technologies International Sales Pte. Limited Network function virtualization security and trust system
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US11250134B2 (en) * 2015-08-21 2022-02-15 Cryptography Research, Inc. Secure computation environment
US10713177B2 (en) * 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
US10768962B2 (en) * 2016-12-19 2020-09-08 Vmware, Inc. Emulating mode-based execute control for memory pages in virtualized computing systems
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute
CN108959916B (zh) * 2017-05-22 2022-01-14 华为技术有限公司 用于访问安全世界的方法、装置和***
US10771439B2 (en) * 2017-06-28 2020-09-08 Microsoft Technology Licensing, Llc Shielded networks for virtual machines
US10216598B2 (en) * 2017-07-11 2019-02-26 Stratus Technologies Bermuda Ltd. Method for dirty-page tracking and full memory mirroring redundancy in a fault-tolerant server
US10872043B2 (en) * 2017-08-17 2020-12-22 Microchip Technology Incorporated Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
CN110581833B (zh) * 2018-06-11 2022-08-23 中移(杭州)信息技术有限公司 一种业务安全保护方法及装置
US11221957B2 (en) * 2018-08-31 2022-01-11 International Business Machines Corporation Promotion of ERAT cache entries
RU2710860C1 (ru) * 2019-02-07 2020-01-14 Акционерное общество "Лаборатория Касперского" Способ ограничения области автоматического выбора виртуальной машины защиты
US11487906B2 (en) * 2019-03-08 2022-11-01 International Business Machines Corporation Storage sharing between a secure domain and a non-secure entity
US11531627B2 (en) 2019-03-08 2022-12-20 International Business Machines Corporation Secure storage isolation
US11640361B2 (en) 2019-03-08 2023-05-02 International Business Machines Corporation Sharing secure memory across multiple security domains
JP7380251B2 (ja) * 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置
US11537732B2 (en) * 2020-04-27 2022-12-27 Hewlett Packard Enterprise Development Lp Unlocking access of information responsive to validation of program codes of virtual entities
CN112527329B (zh) * 2020-12-15 2024-05-17 深圳市硅格半导体有限公司 固态存储设备的量产方法、***、终端设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702590A (zh) * 2004-12-02 2005-11-30 联想(北京)有限公司 一种建立计算机中可信任运行环境的方法
CN101853175A (zh) * 2009-03-31 2010-10-06 甲骨文美国公司 虚拟化环境中促进的自检
CN101866408A (zh) * 2010-06-30 2010-10-20 华中科技大学 一种基于虚拟机架构的透明信任链构建***

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530103B2 (en) 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US7624373B2 (en) * 2005-03-31 2009-11-24 Microsoft Corporation Security mechanism for interpreting scripts in an interpretive environment
US8276201B2 (en) * 2007-03-22 2012-09-25 International Business Machines Corporation Integrity protection in data processing systems
US8108856B2 (en) * 2007-03-30 2012-01-31 Intel Corporation Method and apparatus for adaptive integrity measurement of computer software
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
US8220029B2 (en) 2007-11-13 2012-07-10 Samsung Electronics Co., Ltd. Method and system for enforcing trusted computing policies in a hypervisor security module architecture
JP5260081B2 (ja) 2008-02-25 2013-08-14 パナソニック株式会社 情報処理装置及びその制御方法
WO2009111405A1 (en) * 2008-03-04 2009-09-11 Apple Inc. System and method of authorizing execution of software code based on a trusted cache
US8578483B2 (en) 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US8285987B1 (en) 2009-12-04 2012-10-09 The United States Of America As Represented By The Secretary Of The Air Force Emulation-based software protection
KR101663013B1 (ko) * 2010-01-15 2016-10-06 삼성전자주식회사 코드 주입 공격을 감지하는 장치 및 방법
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US8549644B2 (en) * 2011-03-28 2013-10-01 Mcafee, Inc. Systems and method for regulating software access to security-sensitive processor resources
RU2530691C1 (ru) 2013-03-26 2014-10-10 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ защищенного удаленного доступа к информационным ресурсам

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1702590A (zh) * 2004-12-02 2005-11-30 联想(北京)有限公司 一种建立计算机中可信任运行环境的方法
CN101853175A (zh) * 2009-03-31 2010-10-06 甲骨文美国公司 虚拟化环境中促进的自检
CN101866408A (zh) * 2010-06-30 2010-10-20 华中科技大学 一种基于虚拟机架构的透明信任链构建***

Also Published As

Publication number Publication date
AU2014321545B2 (en) 2019-07-18
WO2015041930A1 (en) 2015-03-26
BR112016004493A8 (pt) 2020-02-11
RU2016109436A (ru) 2017-09-21
US10831886B2 (en) 2020-11-10
JP2016535373A (ja) 2016-11-10
BR112016004493B1 (pt) 2022-12-13
CA2922490C (en) 2023-01-24
MX362067B (es) 2019-01-07
EP3047375B1 (en) 2021-04-07
US20150082304A1 (en) 2015-03-19
CN105659211A (zh) 2016-06-08
JP6397500B2 (ja) 2018-09-26
RU2667713C2 (ru) 2018-09-24
US10198572B2 (en) 2019-02-05
RU2016109436A3 (zh) 2018-07-18
CA2922490A1 (en) 2015-03-26
KR102166755B1 (ko) 2020-10-16
US20190147160A1 (en) 2019-05-16
MX2016003190A (es) 2016-06-24
KR20160075499A (ko) 2016-06-29
EP3047375A1 (en) 2016-07-27
AU2014321545A1 (en) 2016-02-25

Similar Documents

Publication Publication Date Title
CN105659211B (zh) 虚拟机管理器促进的选择性代码完整性实施
US11113404B2 (en) Securing operating system configuration using hardware
CN108351944B (zh) 链式安全***
KR102347562B1 (ko) 보안 제어 방법 및 컴퓨터 시스템
CN104982005B (zh) 实施虚拟化环境中的特权加密服务的计算装置及方法
CN113141610B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
CN105339947B (zh) 保护反恶意软件进程
CN109313690A (zh) 自包含的加密引导策略验证
CN110178136A (zh) 现场可编程门阵列程序的签名验证
AU2020369228B2 (en) Private transfer learning
CN110199271A (zh) 现场可编程门阵列虚拟化
CN103403732A (zh) 输入输出操作的处理方法和装置
CN107077567A (zh) 标识计算设备上的安全边界
CN106687979A (zh) 交叉视图恶意软件检测
CN106030602B (zh) 基于虚拟化的块内工作负荷隔离
CN107077560A (zh) 用于建立安全工作空间的所有权的***
Nelson Modeling the secure boot protocol using actor network theory
Heng Secure Hardware Resource Monitoring, Usage Optimization and Affirmation for Database Operations in Virtualized Cloud Environment

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