CN107169347A - 一种增强arm平台虚拟机自省安全的方法及装置 - Google Patents

一种增强arm平台虚拟机自省安全的方法及装置 Download PDF

Info

Publication number
CN107169347A
CN107169347A CN201710317750.5A CN201710317750A CN107169347A CN 107169347 A CN107169347 A CN 107169347A CN 201710317750 A CN201710317750 A CN 201710317750A CN 107169347 A CN107169347 A CN 107169347A
Authority
CN
China
Prior art keywords
data
hypervisor
interface
safety
isolation
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.)
Granted
Application number
CN201710317750.5A
Other languages
English (en)
Other versions
CN107169347B (zh
Inventor
涂碧波
贾丽娜
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201710317750.5A priority Critical patent/CN107169347B/zh
Publication of CN107169347A publication Critical patent/CN107169347A/zh
Application granted granted Critical
Publication of CN107169347B publication Critical patent/CN107169347B/zh
Expired - Fee Related 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
    • 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)
  • Storage Device Security (AREA)

Abstract

本发明提供一种增强ARM平台虚拟机自省安全的方法及装置,该装置包括位于不可信环境虚拟化软件栈中的安全增强接口前端、位于高特权级的安全增强接口以及位于硬件隔离环境TrustZone中的核心代码。本发明通过不依赖于Hypervisor或QEMU的安全增强接口和适当的硬件隔离环境TrustZone来抵抗信息泄露、保证VMI自身代码和数据在整个生命周期内的准确性即保证VMI运行时安全以及VMI底层输入数据的正确性。并且本发明解决了ARMv8平台下的两层语义隔离,即Hypervisor语义隔离和VM语义隔离。

Description

一种增强ARM平台虚拟机自省安全的方法及装置
技术领域
本发明涉及安全脆弱性宿主机中虚拟机自省安全技术领域,尤其涉及一种增强ARM平台虚拟机自省安全的方法及装置。
背景技术
众所周知,通用的虚拟机自省(VMI)代码部署在宿主机(Host)的用户空间,通过虚拟机管理器(Hypervisor)来访问虚拟机(VM)内部的二进制数据,通过桥接VM内部的语义隔离问题将这些二进制数据转化为操作系统层次的有效的VM内部状态信息,从而利用这些状态信息来进行下一步的安全监测。因而,现有的VMI的正常运行依赖于这样的前提:Host和Hypervisor均为安全且可信的。这意味着一旦这一前提被打破,VMI的正常运行将不能再被保证。事实上,随着越来越多的Host和虚拟化软件栈的脆弱点被暴露出来,该前提已不再成立。如何在存在安全隐患的宿主机环境中部署安全增强的虚拟机自省技术成为了VMI安全研究领域极其重要的一个议题。
脆弱宿主机环境中的VMI面临多方面的安全威胁,一是信息泄露:VMI技术打破了云环境中多租户之间的隔离,VMI获取的VM内部信息被恶意利用将会造成VM信息的严重泄露。二是VMI运行时不安全:VMI运行在用户态,一旦宿主机环境的脆弱性被利用,VMI的代码和数据都将暴露在攻击者面前。三是VMI底层输入数据不正确:VMI依赖Hypervisor获取VM相关核心数据,这给了Hypervisor和Host去篡改这些核心数据的机会。
现今,对VMI安全的研究刚起步。针对信息泄露这一问题,常用的措施是将加解密思想与VMI相结合,该方法将VMI信息泄露的风险转移到加解密密钥的保护上,并且引入了额外的加解密操作。对于VMI运行时不安全以及底层输入数据不正确的研究,业界则还未涉及。
发明内容
本发明立足于不可信宿主机环境中VMI所面临的安全威胁这一现状,旨在提供一种增强ARM平台虚拟机自省安全的方法及装置,该方法及装置能够抵抗信息泄露、保证VMI自身代码和数据在整个生命周期内的准确性即保证VMI运行时安全以及VMI底层输入数据的正确性。
针对上述不足,本发明所采用的技术方案为:
一种增强ARM平台虚拟机自省安全的方法,其步骤包括:
1)将核心代码(Core Library)部署在硬件隔离环境TrustZone(可信环境)中;
2)当特定的触发事件发生时,触发触发机制以陷入到EL3层的安全增强接口(Interface),并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口;
3)安全增强接口记录和维护上述VM数据和Hypervisor数据,并根据核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给核心代码;
4)核心代码根据所接收的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。
进一步地,步骤2)中所述触发机制基于SMC指令构造。
进一步地,步骤2)由位于不可信环境虚拟化软件栈中的安全增强接口前端(Interface Front-End)实现;所述安全增强接口前端是指在虚拟化软件栈中的宿主机内核增添的相关触发代码。
进一步地,步骤2)中所述安全增强接口通过在运行时服务框架(RuntimeServices Framework)中添加特定服务vmi_std_interface来实现。
进一步地,步骤4)中所述基本配置参数是指现有的通用VMI装置实现中为每个VM设置的参数。
进一步地,步骤4)中所述桥接VM语义隔离是指根据预知的VM操作系统信息,将GVA(客户机虚拟地址)翻译成GPA(客户机物理地址);其中所述预知的VM操作系统信息包括系统符号表、操作系统版本以及关键结构体的偏移值;所述桥接Hypervisor语义隔离是指根据预知的Hypervisor信息和定位的VM关键数据以及Hypervisor关键数据,将GPA翻译成HPA(宿主机物理地址)。
一种增强ARM平台虚拟机自省安全的装置,包括安全增强接口前端、安全增强接口和核心代码;
所述安全增强接口前端位于不可信环境虚拟化软件栈中,用于当特定的触发事件发生时,触发基于SMC指令构造的触发机制以陷入到EL3层的安全增强接口,并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口;
所述安全增强接口位于EL3层(高特权级),用于记录和维护上述VM数据和Hypervisor数据,并根据所述核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给所述核心代码;
所述核心代码位于硬件隔离环境TrustZone中,用于根据所接收的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。
进一步地,所述安全增强接口利用DECLARE_RT_SVC()宏进行注册以声明服务名称、OENs范围、服务类型以及指定初始化和处理函数指针;其中OENs中的s的取值范围为0≤s≤127。
进一步地,所述核心代码的整体算法包括一次查找和两次地址翻译;其中一次查找是指根据安全增强接口维护的VM数据和Hypervisor数据以及核心代码预设的基本配置参数来定位特定系统符号GVA;第一次地址翻译是指根据预知的VM操作系统信息桥接VM语义隔离,将GVA翻译成GPA;第二次地址翻译是指根据预知的Hypervisor信息和定位的VM关键数据以及Hypervisor关键数据桥接Hypervisor语义隔离,将GPA翻译成HPA。
本发明的有益效果在于:本发明提供一种增强ARM平台虚拟机自省安全的方法及装置,该方法及装置通过不依赖于Hypervisor或QEMU(Quick EMUlator,快速模拟器)的安全增强接口和适当的硬件隔离环境TrustZone来抵抗信息泄露、保证VMI自身代码和数据在整个生命周期内的准确性即保证VMI运行时安全以及VMI底层输入数据的正确性。其优点具体体现在:
1.提供不依赖于Hypervisor或QEMU的安全增强接口以保证VMI获取的VM数据和Hypervisor数据的准确性;
2.将VMI核心代码部署在硬件隔离环境TrustZone中,使得VMI的核心运行逻辑处于可信环境中,以保证整个VMI代码和数据在整个生命周期的完整性,即保证VMI运行时安全;
3.解决了ARMv8平台下的两层语义隔离,即Hypervisor隔离和VM隔离。
附图说明
图1为本发明提供的一种增强ARM平台虚拟机自省安全的方法流程图。
图2为本发明提供的一种增强ARM平台虚拟机自省安全的装置示意图。
图3为本发明提供的安全增强接口前端的运行流程图。
图4为本发明使用的ARMv8运行时服务框架实例化示意图。
图5为本发明提供的安全增强接口初始化过程示意图。
图6为本发明提供的核心代码整体算法设计图。
图7为Aarch64Linux地址格式4K页翻译流程示意图。
图8为本发明提供的核心代码流程示意图。
图9为本发明整体框架交互示意图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明提供了一种增强ARM平台虚拟机自省安全的方法及装置,该方法及装置根据隔离机制和高特权级陷入的方式来实现代码与数据的完整性保护和底层数据的可信读取,进而来避免信息泄露、运行时执行流和数据流的恶意篡改以及底层输入数据的恶意伪造。
请参考图1,该图为本发明提供的一种增强ARM平台虚拟机自省安全的方法流程图。该方法步骤包括:
1)将核心代码部署在硬件隔离环境TrustZone(可信环境)中;
2)当特定的触发事件发生时,触发基于SMC指令构造的触发机制以陷入到EL3层的安全增强接口,并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口。
3)安全增强接口记录和维护上述VM数据和Hypervisor数据,并根据核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给核心代码;
4)核心代码根据所接收的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。
请参考图2,该图为本发明提供的一种增强ARM平台虚拟机自省安全的装置示意图。该图以ARM下的ARMv8服务器作为实验平台。所述ARMv8提供四个特权级ELn(n=0、1、2、3),且n值越大其特权级越高。其中,EL0为用户层特权级,其包括QEMU;EL1为内核层特权级,其包括安全增强接口前端与核心代码,且EL0和EL1特权级在Trustzone可信环境和不可信环境中均存在;EL2为虚拟化层特权级,负责部分虚拟化功能,只存在不可信环境中;EL3为高特权级,负责可信启动和可信环境与不可信环境的切换。不可信环境的EL0和EL1部署为Host,虚拟化软件栈由虚拟化层、EL1的Host各子系统和KVM模块、位于EL0的QEMU和其他管理软件共同构成。
所述增强ARM平台虚拟机自省安全的装置包括安全增强接口前端、安全增强接口和核心代码;
所述安全增强接口前端位于不可信环境虚拟化软件栈中,用于当特定的触发事件发生时,触发基于SMC指令构造的触发机制以陷入到EL3层的安全增强接口,并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口;
所述安全增强接口位于高特权级,用于记录和维护上述VM数据和Hypervisor数据,并根据所述核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给所述核心代码;
所述核心代码位于硬件隔离环境TrustZone中,用于根据所接收的的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。所述基本配置参数是指现有的通用VMI装置实现中为每个VM设置的参数。例如VM采用的Linux版本号、系统符号表地址以及相关数据结构的偏移量等。在本发明中,所述基本配置参数实例化为Aarch64Linux操作系统的相关数据。
下面具体阐述本发明装置每一部分的具体实现方式,下述实施案例基于ARMv8架构,以Aarch Linux 3.18.0作为宿主机内核。
所述安全增强接口前端包括两个功能,一是构建专用的触发机制;二是定义相应的触发事件。
所述触发机制的基础是ARMv8架构的SMC指令。该指令可以实现从不可信环境到高特权级EL3层的陷入,并通过八个通用寄存器Reg0-Reg7传递参数。在安全增强接口前端中利用SMC指令实现陷入功能的同时,需要根据实际应用需求设置参数格式,本实施例的参数格式如表1所示。
表1:参数格式
寄存器 意义
Reg0 SMC id
Reg1 触发事件类型
Reg2-7 执行上下文
所述触发事件的定义则依赖对Aarch64Linux源码的解读,并对运行在不可信环境虚拟化软件栈中的Hypervisor或者VM特定事件进行简单设置,以触发陷入条件。请参考图3,该图为本发明提供的安全增强接口前端的运行流程图,其具体流程为:
1.设置Hypervisor、VM特定事件(如kvm_init,vm_create,vm_destroy),当特定事件发生时进入本发明的的触发机制;
2.触发机制按照定义的格式进行参数格式化一致性处理;
3.执行SMC指令陷入到高特权级EL3层;
4.EL3层执行进一步具体的操作;
5.执行返回。
所述安全增强接口利用ARMv8平台特性,在硬件隔离的ARM Trusted Firmware(EL3)层部署实现。安全增强接口的生命周期主要包括安全增强接口注册、初始化以及核心代码实现。
所述安全增强接口实现为ARMv8 Runtime Service Framework(运行时服务框架)中的一种服务,从而集成到可信固件ARM Trusted Firmware中。在具体的实现中利用DECLARE_RT_SVC()宏进行注册以声明服务名称、OENs范围、服务类型以及指定初始化和处理函数指针;其中OENs中的s的取值范围为0≤s≤127。请参考图4,该图为本发明使用的ARMv8运行时服务框架实例化示意图。其中rt_svc_descs_indices[128]是ARMv8架构为了优化参数检查而设置的OEN数组,且当OEN值为-1时,OEN值无效。安全增强接口通过DECLARE_RT_SVC()将其相应的结构体注册到rt_svc_descs[]数组中。所述安全增强接口注册的一个实例如表2所示。
表2:安全增强接口注册的实例
所述安全增强接口的OENs范围设置如表3所示。
表3:OENs范围设置
OENs范围
OEN_TAP_START 48
OEN_TAP_END 49
OEN_TAP_INTERFACE 48
所述安全增强接口作为运行时服务框架的一部分,同样位于可信固件ARMTrusted Firmware中,因而在ARM可信启动的bl31阶段进行初始化。本发明提供的安全增强接口初始化过程示意图如图5所示,由bl31_main调用runtime_svc_init函数对rt_svc_descs[]数组中的各元素进行初始化和相关的验证工作,当执行到安全增强接口时,除了基本的验证之外,还可以根据之前注册的函数指针来进行进一步的初始化。
所述核心代码实现部分根据安全增强接口接收到的数据处理请求类型,相应设置处理函数。
vmi_smc_handler是所有交互请求的总入口,负责请求方识别(判断来自不可信环境的安全增强接口前端或者可信环境中的核心代码)、请求上下文保存和恢复以及分配下一级处理函数。
所述安全增强接口目前提供了多种数据维护操作,如表4所示:
表4:安全增强接口的数据维护操作
类型 具体操作
DRIVER_INIT 调用driver_init进行初始化
VM_CREATE 添加特定的VM信息到hash table和数组中
VM_RUN_CHANGE 改变相关VM信息
VM_MIGRATION 对特定VM信息进行删除或更进一步的操作
VM_DESTROY 删除特定VM信息
vmi_fast_runtime_entry负责分发以及处理来自安全增强接口前端的DRIVER_INIT和VM_DESTROY操作;
vmi_std_init_entry负责处理来自安全增强接口前端的VM_CREATE、VM_RUN_CHANGE以及VM_MIGRATION操作;
vmi_get_information负责处理来自核心代码的数据访问请求。
为实现数据的快速查找和可靠存储,本发明在安全增强接口中采用了哈希表和数组,在实际应用中也可采用其它数据结构来实现。
所述核心代码部署在硬件隔离环境TrustZone中,主要用来解决语义隔离问题。在本发明中,因为是从宿主机物理地址读取的VM数据,因而比起传统的VMI技术,除了VM语义隔离外,还有一层新的语义隔离问题需要解决,即Hypervisor语义隔离。
所述核心代码整体算法设计如图6所示,包括一次查找和两次地址翻译。其中,一次查找是指根据安全增强接口维护的VM数据和Hypervisor数据以及核心代码预设的基本配置参数来定位特定系统符号GVA;第一次地址翻译是指根据预知的VM操作系统信息桥接VM语义隔离,将GVA翻译成GPA;第二次地址翻译是指根据预知的Hypervisor信息和定位的VM关键数据以及Hypervisor关键数据桥接Hypervisor语义隔离,将GPA翻译成HPA。通过这三个步骤,所述核心代码最终得以实现对目标VM数据地址和目标Hypervisor数据地址的定位。
下面分为两个关键技术点对核心代码的实现进行说明。
1.两层语义隔离问题。
VM语义隔离是指如何将读取到的VM二进制数据转换成含有操作系统语义的信息之间的隔离。解决VM语义隔离的思路是利用一些预知的VM操作系统信息,从而进一步推导和定位出目标VM数据地址。所述预知的VM操作系统信息包括系统符号表、操作系统版本以及关键结构体的偏移值。此外,还需要定位某个VM关键结构体的地址,因此需要实现GVA到GPA之间的转化。在具体的实现中,安全增强接口提供了一些基本的接口来实现地址和符号之间的转换,如表5所示。
表5:安全增强接口提供的接口
本发明实现一个更底层的VM数据访问方式,即通过VM数据映射到HPA来访问。
Hypervisor语义隔离是指如何定位VM关键数据和Hypervisor关键数据,将GPA翻译成HPA这一问题。解决这一问题的思路是利用安全增强接口前端从触发事件中获取预知的VM关键数据和Hypervisor关键数据,如KVM结构体、stage2表基地址、TTBR2值等,来进一步推导和定位出目标VM数据地址和目标Hypervisor数据地址。
2.两次地址翻译。
在实现VM数据的访问时需要解决两次地址翻译问题。
解决地址翻译的思路是依赖Aarch64虚拟地址格式进行。请参考图7,该图为Aarch64 Linux地址格式4K页翻译流程示意图。
1)pgd基地址加上虚拟地址[38:30]中的PGD偏移量获取对应的PGD地址;
2)读取PGD地址中的数据获取PMD基地址,将虚拟地址中[29:21]与PMD基地址相累加,获得对应的PMD地址;
3)读取PMD地址中的数据获取PTE基地址,将之与虚拟地址中的[20:12]累加,获得对应的PTE地址;
4)读取PTE地址中的页地址与虚拟地址中的[11:0]累加,最终获取目标数据地址(Target地址)。
64k页的地址翻译过程与之类似,只是偏移量位数有所不同。所述翻译过程需要两次,一是将GVA翻译成GPA,一是将GPA翻译成HPA。
在地址翻译过程中pgd的地址可以通过上述语义隔离问题的解决方案来定位。当实现第一次地址翻译时pgd可通过系统符号表获取,第二次地址翻译过程中的pgd是指安全增强接口前端记录的stage2表基地址。
另外,Hypervisor维护的stage2表以及其他关键数据存在内核空间,其映射关系比较单一,直接减去特定的偏移值即可。
请参考图8,所述核心代码执行的流程包括以下步骤:
1)先通过configure file(配置文件)和安全增强接口获取预知的VM操作系统信息以及相关的VM数据和Hypervisor数据;
2)定位特定系统符号GVA;
3)通过第一次地址翻译实现GVA->GPA的地址转换,获取GPA(GPA就是IPA,也就是HVA);
4)再通过第二次地址翻译实现GPA->HPA的地址转换,获取HPA,最终获取目标VM数据地址和目标Hypervisor数据地址;
5)如果核心代码的数据访问请求未结束,则转步骤2);否则,结束运行。
在实际的代码执行过程中,两次地址翻译是依次进行的,推导和定位存在整个执行流中。
请参考图9,该图为本发明整体框架交互示意图。该图中各部件之间的交互存在两种,一是安全增强接口前端与安全增强接口之间的交互,这种交互发生在Hypervisor或者虚拟机运行周期中,当预先定义的触发事件发生时,就会触发该触发机制,陷入到EL3层的安全增强接口中,对该触发事件进行相应的处理。二是安全增强接口与核心代码之间的交互,发生在本发明核心代码试图获取VM和Hypervisor某方面的数据时。安全增强接口根据核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据返回给核心代码以进行下一步的处理。
以上实施仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (9)

1.一种增强ARM平台虚拟机自省安全的方法,其步骤包括:
1)将核心代码部署在硬件隔离环境TrustZone中;
2)当特定的触发事件发生时,触发触发机制以陷入到EL3层的安全增强接口,并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口;
3)安全增强接口记录和维护上述VM数据和Hypervisor数据,并根据核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给核心代码;
4)核心代码根据所接收的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。
2.如权利要求1所述的方法,其特征在于,步骤2)中所述触发机制基于SMC指令构造。
3.如权利要求1所述的方法,其特征在于,步骤2)由位于不可信环境虚拟化软件栈中的安全增强接口前端实现;所述安全增强接口前端是指在虚拟化软件栈中的宿主机内核增添的相关触发代码。
4.如权利要求1所述的方法,其特征在于,步骤2)中所述安全增强接口通过在运行时服务框架中添加特定服务vmi_std_interface来实现。
5.如权利要求1所述的方法,其特征在于,步骤4)中所述基本配置参数是指现有的通用VMI装置实现中为每个VM设置的参数。
6.如权利要求1所述的方法,其特征在于,步骤4)中所述桥接VM语义隔离是指根据预知的VM操作系统信息,将GVA翻译成GPA;其中所述预知的VM操作系统信息包括系统符号表、操作系统版本以及关键结构体的偏移值;所述桥接Hypervisor语义隔离是指根据预知的Hypervisor信息和定位的VM关键数据以及Hypervisor关键数据,将GPA翻译成HPA。
7.一种增强ARM平台虚拟机自省安全的装置,包括安全增强接口前端、安全增强接口和核心代码;
所述安全增强接口前端位于不可信环境虚拟化软件栈中,用于当特定的触发事件发生时,触发基于SMC指令构造的触发机制以陷入到EL3层的安全增强接口,并将该触发事件中相关的VM数据和Hypervisor数据传递到该安全增强接口;
所述安全增强接口位于EL3层,用于记录和维护上述VM数据和Hypervisor数据,并根据所述核心代码的数据访问请求将与该数据访问请求相关的VM数据和Hypervisor数据传递给所述核心代码;
所述核心代码位于硬件隔离环境TrustZone中,用于根据所接收的VM数据和Hypervisor数据以及自身预设的基本配置参数,桥接VM语义隔离和Hypervisor语义隔离,推导和定位出目标VM数据地址和目标Hypervisor数据地址,以进行进一步的安全监测。
8.如权利要求7所述的装置,其特征在于,所述安全增强接口利用DECLARE_RT_SVC()宏进行注册以声明服务名称、OENs范围、服务类型以及指定初始化和处理函数指针;其中OENs中的s的取值范围为0≤s≤127。
9.如权利要求7所述的装置,其特征在于,所述核心代码的整体算法包括一次查找和两次地址翻译;其中一次查找是指根据安全增强接口维护的VM数据和Hypervisor数据以及核心代码预设的基本配置参数来定位特定系统符号GVA;第一次地址翻译是指根据预知的VM操作系统信息桥接VM语义隔离,将GVA翻译成GPA;第二次地址翻译是指根据预知的Hypervisor信息和定位的VM关键数据以及Hypervisor关键数据桥接Hypervisor语义隔离,将GPA翻译成HPA。
CN201710317750.5A 2017-05-08 2017-05-08 一种增强arm平台虚拟机自省安全的方法及装置 Expired - Fee Related CN107169347B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710317750.5A CN107169347B (zh) 2017-05-08 2017-05-08 一种增强arm平台虚拟机自省安全的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710317750.5A CN107169347B (zh) 2017-05-08 2017-05-08 一种增强arm平台虚拟机自省安全的方法及装置

Publications (2)

Publication Number Publication Date
CN107169347A true CN107169347A (zh) 2017-09-15
CN107169347B CN107169347B (zh) 2019-07-05

Family

ID=59813162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710317750.5A Expired - Fee Related CN107169347B (zh) 2017-05-08 2017-05-08 一种增强arm平台虚拟机自省安全的方法及装置

Country Status (1)

Country Link
CN (1) CN107169347B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920253A (zh) * 2018-06-20 2018-11-30 成都虫洞奇迹科技有限公司 一种无代理的虚拟机监控系统和监控方法
CN111966458A (zh) * 2020-08-10 2020-11-20 国网四川省电力公司信息通信公司 一种虚拟云桌面的安全管理方法
KR20220107824A (ko) * 2021-01-26 2022-08-02 한양대학교 산학협력단 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술
CN116991543A (zh) * 2023-09-26 2023-11-03 阿里云计算有限公司 宿主机、虚拟化实例自省方法及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129531A (zh) * 2011-03-22 2011-07-20 北京工业大学 一种基于Xen的主动防御方法
CN103793288A (zh) * 2014-02-14 2014-05-14 北京邮电大学 一种软件看门狗系统及方法
CN103929502A (zh) * 2014-05-09 2014-07-16 成都国腾实业集团有限公司 基于虚拟机自省技术的云平台安全监控系统及方法
US9003402B1 (en) * 2010-12-15 2015-04-07 Symantec Corporation Method and system for injecting function calls into a virtual machine
CN104750534A (zh) * 2013-12-26 2015-07-01 华为技术有限公司 触发虚拟机自省的方法、装置及系统
CN105260663A (zh) * 2015-09-15 2016-01-20 中国科学院信息工程研究所 一种基于TrustZone技术的安全存储服务系统及方法
US20160371105A1 (en) * 2015-06-16 2016-12-22 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003402B1 (en) * 2010-12-15 2015-04-07 Symantec Corporation Method and system for injecting function calls into a virtual machine
CN102129531A (zh) * 2011-03-22 2011-07-20 北京工业大学 一种基于Xen的主动防御方法
CN104750534A (zh) * 2013-12-26 2015-07-01 华为技术有限公司 触发虚拟机自省的方法、装置及系统
CN103793288A (zh) * 2014-02-14 2014-05-14 北京邮电大学 一种软件看门狗系统及方法
CN103929502A (zh) * 2014-05-09 2014-07-16 成都国腾实业集团有限公司 基于虚拟机自省技术的云平台安全监控系统及方法
US20160371105A1 (en) * 2015-06-16 2016-12-22 Assured Information Security, Inc. Deployment and installation of updates in a virtual environment
CN105260663A (zh) * 2015-09-15 2016-01-20 中国科学院信息工程研究所 一种基于TrustZone技术的安全存储服务系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BRENDAN DOLAN-GAVITT 等: "Virtuoso: Narrowing the Semantic Gap in Virtual Machine Introspection", 《2011 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 *
HYUN-WOOK BAEK 等: "CloudVMI:Virtual Machine Introspection as a Cloud Service", 《2014 IEEE INTERNATIONAL CONFERENCE ON CLOUD ENGINEERING》 *
任国力: "基于VMI的入侵检测系统的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920253A (zh) * 2018-06-20 2018-11-30 成都虫洞奇迹科技有限公司 一种无代理的虚拟机监控系统和监控方法
CN111966458A (zh) * 2020-08-10 2020-11-20 国网四川省电力公司信息通信公司 一种虚拟云桌面的安全管理方法
KR20220107824A (ko) * 2021-01-26 2022-08-02 한양대학교 산학협력단 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술
KR102493066B1 (ko) 2021-01-26 2023-01-30 한양대학교 산학협력단 프로세스 내부 공격에 대응하기 위한 세밀한 고립 기술
CN116991543A (zh) * 2023-09-26 2023-11-03 阿里云计算有限公司 宿主机、虚拟化实例自省方法及存储介质
CN116991543B (zh) * 2023-09-26 2024-02-02 阿里云计算有限公司 宿主机、虚拟化实例自省方法及存储介质

Also Published As

Publication number Publication date
CN107169347B (zh) 2019-07-05

Similar Documents

Publication Publication Date Title
US11651085B2 (en) Cryptographic memory ownership table for secure public cloud
US10516533B2 (en) Password triggered trusted encryption key deletion
Parno et al. CLAMP: Practical prevention of large-scale data leaks
CN103907098B (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
CN103841198B (zh) 一种净室云计算数据处理方法及系统
CN103353931B (zh) 安全增强型计算机系统和方法
CN107169347B (zh) 一种增强arm平台虚拟机自省安全的方法及装置
US8285987B1 (en) Emulation-based software protection
CN107667350A (zh) 基于虚拟化的平台保护技术
KR20170095161A (ko) 시큐어 시스템 온 칩
Russinovich et al. Toward confidential cloud computing
US20230058863A1 (en) Countermeasures against side-channel attacks on secure encrypted virtualization (sev)-secure nested paging (sev-snp) processors
CN106970823A (zh) 高效的基于嵌套虚拟化的虚拟机安全保护方法及系统
Koutroumpouchos et al. Building trust for smart connected devices: The challenges and pitfalls of TrustZone
JP2022503972A (ja) 信頼される仲介レルム
JP2022503952A (ja) レルム・セキュリティ構成パラメータのためのパラメータ署名
Butt et al. An in-depth survey of bypassing buffer overflow mitigation techniques
CN108595983A (zh) 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法
CN110069935A (zh) 基于标记内存的内部敏感数据保护方法及系统
Liu et al. Practical and efficient in-enclave verification of privacy compliance
Resh et al. Preventing execution of unauthorized native-code software
Ding et al. Systemic threats to hypervisor non‐control data
Krautheim Building trust into utility cloud computing
Jiang et al. TF-BIV: transparent and fine-grained binary integrity verification in the cloud
Oliveira et al. Hardware-software collaboration for secure coexistence with kernel extensions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190705

CF01 Termination of patent right due to non-payment of annual fee