CN106775941A - 一种虚拟机内核完整性保护方法和装置 - Google Patents

一种虚拟机内核完整性保护方法和装置 Download PDF

Info

Publication number
CN106775941A
CN106775941A CN201611119135.5A CN201611119135A CN106775941A CN 106775941 A CN106775941 A CN 106775941A CN 201611119135 A CN201611119135 A CN 201611119135A CN 106775941 A CN106775941 A CN 106775941A
Authority
CN
China
Prior art keywords
page
virtual machine
page table
host
module
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.)
Pending
Application number
CN201611119135.5A
Other languages
English (en)
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.)
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Electric Power Research Institute of State Grid Liaoning Electric Power Co Ltd
Beijing China Power Information Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Information and Telecommunication Co Ltd
Electric Power Research Institute of State Grid Liaoning Electric Power Co Ltd
Beijing Guodiantong Network Technology Co Ltd
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 State Grid Corp of China SGCC, State Grid Information and Telecommunication Co Ltd, Electric Power Research Institute of State Grid Liaoning Electric Power Co Ltd, Beijing Guodiantong Network Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN201611119135.5A priority Critical patent/CN106775941A/zh
Publication of CN106775941A publication Critical patent/CN106775941A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种虚拟机内核完整性保护方法和装置,包括:在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境;为虚拟机建立第一页表,第一页表中保存虚拟机内存页与宿主机内存页的映射关系;在虚拟机运行的过程中,根据可信运行环境,判断虚拟机中运行的模块是否为不可信模块;若判定虚拟机的模块中存在不可信模块,建立第二页表;将不可信模块内存页与所述宿主机内存页的映射关系从第一页表移入所述第二页表。完成了对不可信模块与宿主机主体的内存隔离,从而可以在允许不可信模块仍然运行的前提下,对不可信模块进行独立监管,控制其可能发生的攻击行为,在保证虚拟机正常运行的同时实现了对于虚拟机内核完整性的保护。

Description

一种虚拟机内核完整性保护方法和装置
技术领域
本发明涉及通信技术领域,特别是指一种虚拟机内核完整性保护方法和装置。
背景技术
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。由于虚拟机可以充分利用硬件资源,在硬件基础上建立数量远远多于硬件数量的模拟系统,具备良好的性价比,因此受到企业级用户的广泛欢迎。特别是近年来,随着云计算技术的日益发展,虚拟机作为云计算技术中的关键部分,也在不断地演进和发展。
对于用户而言,使用云服务时最关心的问题之一,就是个人信息是否可以被有效保护。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于虚拟机通常采用商用操作系统,故内核完整性容易遭到破坏,恶意代码也有多种方法破坏内核的控制流和数据完整性。
发明内容
有鉴于此,本发明的目的在于提出一种虚拟机内核完整性保护方法和装置,用以实现保护虚拟机内核控制流不被破坏,保证数据完整性。
基于上述目的本发明提供的一种虚拟机内核完整性保护方法,包括:
在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境;
为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系;
在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块;
若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
在一些可选的实施例中,所述在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境,具体包括:
由物理安全芯片对宿主机的内核完整性进行验证;
若确定所述宿主机内核完整,根据所述物理安全芯片在宿主机建立虚拟安全芯片,由所述虚拟安全芯片对所述虚拟机的内核完整性进行验证;
若确定所述虚拟机内核完整,判定已建立可信运行环境。
在一些可选的实施例中,所述方法包括:
判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位;
若包含可执行位,去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
在一些可选的实施例中,所述方法包括:
在虚拟机运行的过程中,若检测到第一不可信模块,查找所述第二页表是否已经建立;
若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系;
若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表;
若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
在一些可选的实施方式中,所述在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系,具体包括:
判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个;
若判定所述虚拟机的当前页表为第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;
若判定所述虚拟机的当前页表为第二页表,将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;
将所述虚拟机的当前页表切换至所述第二页表。
基于上述目的本发明还提供一种虚拟机内核完整性保护装置,包括:
安全单元,用于在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境;
保护单元,用于为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系;
可信度监控单元,用于在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块;
所述保护单元还用于在判定所述虚拟机的模块中存在不可信模块后,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
在一些可选的实施例中,所述安全单元包括:
物理安全芯片,用于对宿主机的内核完整性进行验证;
虚拟安全芯片,在确定所述宿主机内核完整后,根据所述物理安全芯片在宿主机建立,用于对所述虚拟机的内核完整性进行验证;
若确定所述虚拟机内核完整,判定已建立可信运行环境。
在一些可选的实施例中,所述保护单元用于判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位;若包含可执行位,所述保护单元还用于去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
在一些可选的实施例中,在虚拟机运行的过程中,若所述可信度监控单元检测到第一不可信模块,所述保护单元用于查找所述第二页表是否已经建立;若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系;若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,所述保护单元还用于将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表;若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,所述保护单元还用于在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
在一些可选的实施例中,所述保护单元用于判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个;若判定所述虚拟机的当前页表为第一页表,所述保护单元还用于根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;若判定所述虚拟机的当前页表为第二页表,所述保护单元还用于将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;所述保护单元进一步用于将所述虚拟机的当前页表切换至所述第二页表。
从上面所述可以看出,本发明提供的虚拟机内核完整性保护方法和装置通过将不可信模块内存页与宿主机内存页的映射关系独立运行于新的页表,完成了对不可信模块与虚拟机内核的内存隔离,从而可以在允许不可信模块仍然运行的前提下,对于不可信模块进行独立监管,控制其可能发生的攻击行为,在保证虚拟机正常运行的同时实现了对于虚拟机内核完整性的保护。
附图说明
图1为本发明提供的一种虚拟机内核完整性保护方法的实施例的流程示意图;
图2为本发明提供的一种虚拟机内核完整性保护方法的另一实施例的流程示意图;
图3为本发明提供的一种虚拟机内核完整性保护方法的又一实施例的流程示意图;
图4为本发明提供的一种虚拟机内核完整性保护方法的实施例中内存页初始权限示意图;
图5为本发明提供的一种虚拟机内核完整性保护方法的实施例中经调整后的内存页权限示意图;
图6为本发明提供的一种虚拟机内核完整性保护装置的实施例的模块图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
图1为本发明提供的一种虚拟机内核完整性保护方法的实施例的流程示意图。如图所示,在本发明实施例的第一方面,提供一种虚拟机内核完整性保护方法,包括:
S10,在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境。
S11,为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
S12,在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
S13,若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
步骤S10中,对于宿主机和虚拟机的启动完整性均进行验证,如果验证均通过,则可以说明宿主机和虚拟机的内核完整,与后续步骤有关的安全保护功能运行于可信环境下;因此启动完整性的验证是一个必要的步骤,对于本步骤的一些可选的实现方式会在后续实施例中进一步说明。
步骤S11中,虚拟机内运行的程序在进行内存寻址时,并不知晓自身运行于虚拟机内,因此需要建立虚拟机内存页和宿主机内存页的映射关系,以保证虚拟机内的程序可以正常运行;这些映射关系保存于第一页表内。
步骤S12中,具体如何判断虚拟机中运行的模块是否可信的方法属于现有技术,可以参考现有技术中的可信鉴别方法进行判断。其中所述模块是指虚拟机运行过程中加载的功能单元,通常以线程形式体现在虚拟机中。
步骤S13中,当判断虚拟机中存在不可信模块后,建立区别于第一页表的第二页表,并将不可信模块内存页与宿主机内存页的映射关系从第一页表移动至第二页表。由于与虚拟机主体运行于不同的内存页上,因此可以对不可信模块内存页进行单独的管理和监控,从而避免不可信模块的攻击行为,在仍然运行不可信模块、使其完成基本功能的前提下,实现了对于不可信模块的独立监管。
从上面所述可以看出,本实施例通过将不可信模块内存页与宿主机内存页的映射关系独立运行于新的页表,完成了对不可信模块与虚拟机内核的内存隔离,从而可以在允许不可信模块仍然运行的前提下,对于不可信模块进行独立监管,控制其可能发生的攻击行为,在保证虚拟机正常运行的同时实现了对于虚拟机内核完整性的保护。
图2为本发明提供的一种虚拟机内核完整性保护方法的另一实施例的流程示意图。如图所示,在另一可选的实施例中,所述方法包括:
S20,由物理安全芯片对宿主机的内核完整性进行验证;
S21,若确定所述宿主机内核完整,根据所述物理安全芯片在宿主机建立虚拟安全芯片,由所述虚拟安全芯片对所述虚拟机的内核完整性进行验证;
S22,若确定所述虚拟机内核完整,判定已建立可信运行环境。
S11,为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
S12,在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
S13,若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
可见在本实施例中,前述S12,在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境,具体包括:
S20,由物理安全芯片对宿主机的内核完整性进行验证。
S21,若确定所述宿主机内核完整,在宿主机建立虚拟安全芯片,由所述虚拟安全芯片对所述虚拟机的内核完整性进行验证。
S22,若确定所述虚拟机内核完整,判定已建立可信运行环境。
其中,所述物理安全芯片是设置于宿主机内的实体芯片,可以对于宿主机内核的完整性进行验证;完成宿主机内核完整性的验证之后,可以在宿主机的可信硬件基础上建立虚拟安全芯片,并运行虚拟机,利用虚拟安全芯片对虚拟机内核完整性进行进一步验证;若进一步完成虚拟机内核完整性的验证,则说明已经建立核心运行环境。在一些可选的实施方式中,可以选用KVM(Kernel-based Virtual Machine,基于内核的虚拟机)模块建立虚拟机,KVM是一个开源的系统虚拟化模块,需要硬件支持提供虚拟化功能。
步骤S20-S22是必不可少的,为了保证对于不可信模块的精确识别,以及对于不可信模块内存页映射关系的隔离,要求执行识别和隔离操作的平台自身具备较高的完整性,以保证操作的可信和安全。
从上面所述可以看出,本实施例通过依靠物理安全芯片,并进一步建立虚拟安全芯片,对宿主机和虚拟机内核完整性均进行了预先验证,从而建立可信运行环境,为后续模块可信性检测以及内存页映射关系隔离提供了安全保障。
图3为本发明提供的一种虚拟机内核完整性保护方法的又一实施例的流程示意图。如图所示,在又一可选的实施例中,所述方法包括:
S10,在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境。
S11,为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
S12,在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
S13,若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
S30,判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位。
S31,若包含可执行位,去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
在对内存页进行寻址的过程中,寻址操作具备一定的权限限制。权限分为三种,即读取、写入和执行;其中,读取(R,Read)权限对文件而言,表示可以读取文件内容,对于目录而言表示可以浏览目录内容;写入(W,Write)权限对于文件而言,表示可以新增、修改文件内容,对于目录而言表示可以删除、移动目录内文件;执行(X,eXecute)权限对于文件而言,表示可以执行文件,对于目录而言表示具备进入目录的权限。上述三种权限可以通过对内存页中相应位的设置进行控制。
在本实施例中,考虑到大内存页以及混合内存页的存在,同一内存页中可能同时包含代码和数据,则该内存页的映射关系中必然包含执行权限。为了防止不可信模块对虚拟机的内核或数据进行操作,因此需要去除不可信模块内存页的执行权限。在本实施例中,通过去除不可信模块内存页的可执行位,从而去除不可信模块内存页的执行权限,保证不可信模块内存页中拥有执行权限的只有模块代码本身,使得不可信模块无法随意调用其他代码,保证了虚拟机内核的安全。
图4为本发明提供的一种虚拟机内核完整性保护方法的实施例中内存页初始权限示意图;图5为本发明提供的一种虚拟机内核完整性保护方法的实施例中经调整后的内存页权限示意图。如图所示,在一些可选的实施方式中,内存页默认的虚拟机内核代码(kernel code)、虚拟机内核数据(kernel data)、模块代码(module code)、模块数据(module data)各自的权限分别为:
虚拟机内核代码(读取/执行),虚拟机内核数据(读取/写入),模块代码(读取),模块数据(读取/写入);这也是所述第一内存页中预设的权限。显然,这种权限设置方式允许运行在该内存页上的进程对虚拟机内核数据进行读写操作,并且还允许直接执行虚拟机内核代码,无法保证虚拟机内核的安全。
因此在本实施方式中,除了移除可执行位之外,还会移除所述第二内存页对于虚拟机内核代码和虚拟机内核数据的其他操作权限,经修改后的第二内存页各权限分别为:
虚拟机内核代码(无权限),虚拟机内核数据(无权限),模块代码(读取/执行),模块数据(读取/写入)。
可见,本实施方式通过完全移除不可信模块内存页对于虚拟机内核的所有操作权限,彻底避免了不可信模块对于内核的攻击行为。
在一些可选的实施例中,所述方法包括:
S10,在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境。
S11,为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
S12,在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
S40,在虚拟机运行的过程中,若检测到第一不可信模块,查找所述第二页表是否已经建立。
S41,若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系。
S42,若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表。
S43,若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
前述步骤S13适用于第二页表没有建立的条件下。在实际运行中,可能有部分模块内存页并没有与宿主机内存页建立映射关系,如果这些模块中存在不可信模块,且该不可信模块被调用,此时会触发映射缺失后的处理步骤,即上述步骤S40-S43。
从上面所述可以看出,本实施例中的步骤对于没有与宿主机内存页建立映射关系的不可信模块内存页提供了处理方法,对前述实施例中的方法进行了补充,从而保证在任何条件下,不可信模块的内存页映射关系与虚拟机内核内存页映射关系相互分隔,从而为内存页表权限的设置提供了必要条件。
在本实施例的可选实施方式中,S43中,所述在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系,具体包括:
S50,判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个。
S51,若判定所述虚拟机的当前页表为第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
S52,若判定所述虚拟机的当前页表为第二页表,将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
S53,将所述虚拟机的当前页表切换至所述第二页表。
从上述步骤可以看出,当需要为不可信模块内存页在第二页表建立映射关系时,需要首先保持虚拟机的当前页表为第一页表,即虚拟机内核内存页映射关系所在页表,然后陷入页表处理进程,在第二页表建立不可信模块内存页的映射关系。
图6为本发明提供的一种虚拟机内核完整性保护装置的实施例的模块图。如图所示,在本发明实施例还提供一种虚拟机内核完整性保护装置,包括:
安全单元60,用于在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境。
保护单元61,用于为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
可信度监控单元62,用于在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
所述保护单元60还用于在判定所述虚拟机的模块中存在不可信模块后,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
从上面所述可以看出,本实施例通过安全单元建立可信运行环境,通过可信度监控单元识别不可信模块,通过保护单元将不可信模块内存页的映射关系移动至新的页表,完成了对不可信模块与宿主机主体的内存隔离,从而可以在允许不可信模块仍然运行的前提下,对于不可信模块进行独立监管,控制其可能发生的攻击行为,在保证虚拟机正常运行的同时实现了对于虚拟机内核完整性的保护。
在一些可选的实施例中,所述安全单元60包括:
物理安全芯片601,用于对宿主机的内核完整性进行验证。
虚拟安全芯片602,在确定所述宿主机内核完整后,在宿主机被建立,用于对所述虚拟机的内核完整性进行验证。
若确定所述虚拟机内核完整,判定已建立可信运行环境。
在一些可选的实施方式中,所述物理安全芯片601采用TPM(Trusted PlatformModule,可信平台模块)安全芯片,可以有效保护宿主机,防止非法用户访问。在使用TPM安全芯片并使用QEMU软件来仿真硬件环境的条件下,所述虚拟安全芯片602可通过在QEMU的代码中加入libtpms库文件、虚拟NVRAM(Non-Volatile Random Access Memory,非易失性随机访问存储器)和虚拟BIOS(Basic Input Output System,基本输入输出系统)后组建,为多台虚拟机同时提供等同于TPM安全芯片的VTPM(Virtual Trusted Platform Module,虚拟可信平台模块)安全芯片服务。虚拟NVRAM的作用是提供一个存储TPM-NVRAM值的可持续镜像文件,避免系统重启后丢失VTPM的特征信息。虚拟BIOS满足TCG BIOS(TrustedComputing Group BIOS,基于可信计算组的BIOS)扩展规范,可以初始化VTPM,并为虚拟机提供可操作TPM状态的虚拟机BIOS界面。
在一些可选的实施例中,所述保护单元61用于判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位;若包含可执行位,所述保护单元61还用于去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
在一些可选的实施例中,在虚拟机运行的过程中,若所述可信度监控单元62检测到第一不可信模块,所述保护单元61用于查找所述第二页表是否已经建立;若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系;若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,所述保护单元61还用于将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表;若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,所述保护单元61还用于在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
在本实施例的一些可选实施方式中所,述保护单元61用于判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个;若判定所述虚拟机的当前页表为第一页表,所述保护单元61还用于根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;若判定所述虚拟机的当前页表为第二页表,所述保护单元61还用于将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;所述保护单元61进一步用于将所述虚拟机的当前页表切换至所述第二页表。
在本发明实施例的又一方面,提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境。
为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系。
在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中运行的模块是否为不可信模块。
若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
所述领域的普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种虚拟机内核完整性保护方法,其特征在于,包括:
在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境;
为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系;
在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中是否存在不可信模块;
若判定所述虚拟机的模块中存在不可信模块,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
2.根据权利要求1所述的方法,其特征在于,所述在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境,具体包括:
由物理安全芯片对宿主机的内核完整性进行验证;
若确定所述宿主机内核完整,根据所述物理安全芯片在宿主机建立虚拟安全芯片,由所述虚拟安全芯片对所述虚拟机的内核完整性进行验证;
若确定所述虚拟机内核完整,判定已建立可信运行环境。
3.根据权利要求1所述的方法,其特征在于,所述方法包括:
判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位;
若包含可执行位,去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
4.根据权利要求1所述的方法,其特征在于,所述方法包括:
在虚拟机运行的过程中,若检测到第一不可信模块,查找所述第二页表是否已经建立;
若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系;
若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表;
若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
5.根据权利要求4所述的方法,其特征在于,所述在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系,具体包括:
判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个;
若判定所述虚拟机的当前页表为第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;
若判定所述虚拟机的当前页表为第二页表,将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;
将所述虚拟机的当前页表切换至所述第二页表。
6.一种虚拟机内核完整性保护装置,其特征在于,包括:
安全单元,用于在虚拟机启动的过程中,验证宿主机和虚拟机的启动完整性,建立可信运行环境;
保护单元,用于为所述虚拟机建立第一页表,所述第一页表中保存虚拟机内存页与宿主机内存页的映射关系;
可信度监控单元,用于在虚拟机运行的过程中,根据所述可信运行环境,判断所述虚拟机中是否存在不可信模块;
所述保护单元还用于在判定所述虚拟机的模块中存在不可信模块后,建立第二页表;将所述不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移入所述第二页表。
7.根据权利要求6所述的装置,其特征在于,所述安全单元包括:
物理安全芯片,用于对宿主机的内核完整性进行验证;
虚拟安全芯片,在确定所述宿主机内核完整后,根据所述物理安全芯片在宿主机建立,用于对所述虚拟机的内核完整性进行验证;
若确定所述虚拟机内核完整,判定已建立可信运行环境。
8.根据权利要求6所述的装置,其特征在于,所述保护单元用于判断所述第二页表保存的所述映射关系中的所述宿主机内存页是否包含可执行位;若包含可执行位,所述保护单元还用于去除与所述包含可执行位的宿主机内存页相互映射的所述不可信模块内存页的可执行位。
9.根据权利要求6所述的装置,其特征在于,在虚拟机运行的过程中,若所述可信度监控单元检测到第一不可信模块,所述保护单元用于查找所述第二页表是否已经建立;若判定所述第二页表已经建立,查找所述第一不可信模块内存页与所述宿主机内存页的映射关系;若所述第一不可信模块内存页与所述宿主机内存页的映射关系处于所述第一页表,所述保护单元还用于将所述第一不可信模块内存页与所述宿主机内存页的映射关系从所述第一页表移动至所述第二页表;若没有查找到所述第一不可信模块内存页与所述宿主机内存页的映射关系,所述保护单元还用于在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系。
10.根据权利要求9所述的装置,其特征在于,所述保护单元用于判断所述虚拟机的当前页表为所述第一页表或所述第二页表中的哪一个;若判定所述虚拟机的当前页表为第一页表,所述保护单元还用于根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;若判定所述虚拟机的当前页表为第二页表,所述保护单元还用于将所述虚拟机的当前页表切换至所述第一页表,根据所述虚拟机中的页表处理函数在所述第二页表建立所述第一不可信模块内存页与所述宿主机内存页的映射关系;所述保护单元进一步用于将所述虚拟机的当前页表切换至所述第二页表。
CN201611119135.5A 2016-12-08 2016-12-08 一种虚拟机内核完整性保护方法和装置 Pending CN106775941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611119135.5A CN106775941A (zh) 2016-12-08 2016-12-08 一种虚拟机内核完整性保护方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611119135.5A CN106775941A (zh) 2016-12-08 2016-12-08 一种虚拟机内核完整性保护方法和装置

Publications (1)

Publication Number Publication Date
CN106775941A true CN106775941A (zh) 2017-05-31

Family

ID=58882355

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611119135.5A Pending CN106775941A (zh) 2016-12-08 2016-12-08 一种虚拟机内核完整性保护方法和装置

Country Status (1)

Country Link
CN (1) CN106775941A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791873A (zh) * 2021-11-16 2021-12-14 统信软件技术有限公司 一种虚拟机创建方法、计算设备及存储介质
WO2024007944A1 (zh) * 2022-07-08 2024-01-11 华为技术有限公司 扩展内存隔离域的方法和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138370A1 (en) * 2003-12-23 2005-06-23 Goud Gundrala D. Method and system to support a trusted set of operational environments using emulated trusted hardware
CN101226577A (zh) * 2008-01-28 2008-07-23 南京大学 基于可信硬件与虚拟机的微内核操作系统完整性保护方法
US20120117614A1 (en) * 2007-12-31 2012-05-10 Ravi Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
CN102750471A (zh) * 2012-05-22 2012-10-24 中国科学院计算技术研究所 基于tpm 的本地验证式启动方法
CN103020518A (zh) * 2012-11-06 2013-04-03 中国科学院计算技术研究所 一种基于TPM的Linux内核初始化中的数据结构保护方法及系统
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作系统内核完整性保护方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050138370A1 (en) * 2003-12-23 2005-06-23 Goud Gundrala D. Method and system to support a trusted set of operational environments using emulated trusted hardware
US20120117614A1 (en) * 2007-12-31 2012-05-10 Ravi Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
CN101226577A (zh) * 2008-01-28 2008-07-23 南京大学 基于可信硬件与虚拟机的微内核操作系统完整性保护方法
CN102750471A (zh) * 2012-05-22 2012-10-24 中国科学院计算技术研究所 基于tpm 的本地验证式启动方法
CN103020518A (zh) * 2012-11-06 2013-04-03 中国科学院计算技术研究所 一种基于TPM的Linux内核初始化中的数据结构保护方法及系统
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作系统内核完整性保护方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张磊 等: "基于虚拟机的内核完整性保护技术", 《电子科技大学学报》 *
陈兴蜀 等: "基于虚拟化的不可信模块运行监控", 《华中科技大学学报(自然科学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791873A (zh) * 2021-11-16 2021-12-14 统信软件技术有限公司 一种虚拟机创建方法、计算设备及存储介质
WO2024007944A1 (zh) * 2022-07-08 2024-01-11 华为技术有限公司 扩展内存隔离域的方法和电子设备

Similar Documents

Publication Publication Date Title
EP1939754B1 (en) Providing protected access to critical memory regions
EP3047419B1 (en) Virtual secure mode for virtual machines
KR101799261B1 (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
US7418584B1 (en) Executing system management mode code as virtual machine guest
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
US10146962B2 (en) Method and apparatus for protecting a PCI device controller from masquerade attacks by malware
US20070067590A1 (en) Providing protected access to critical memory regions
US8327415B2 (en) Enabling byte-code based image isolation
CN103460179A (zh) 用于透明地对应用程序进行插桩的方法和设备
WO2007005718A2 (en) Computer system protection based on virtualization
US10621340B2 (en) Hybrid hypervisor-assisted security model
CN109074321B (zh) 用于保护虚拟计算实例的存储器的方法和系统
US20170220795A1 (en) Information-processing device, information-processing monitoring method, and recording medium
CN105512550A (zh) 用于活跃的操作系统内核保护的系统和方法
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN107368739B (zh) 一种内核驱动的监视方法和装置
CN103425563B (zh) 基于虚拟化技术的在线i/o电子取证系统及其取证方法
CN106775941A (zh) 一种虚拟机内核完整性保护方法和装置
US10073710B2 (en) Host-driven application memory protection for virtual machines
CN108052415B (zh) 一种恶意软件检测平台快速恢复方法及系统
US20050138263A1 (en) Method and apparatus to retain system control when a buffer overflow attack occurs
CN107103251B (zh) 包含映射访问接口的处理器
CN117688552B (zh) 栈空间防护方法、电子设备、存储介质及计算机程序产品
CN108958879A (zh) 一种虚拟机的监控方法和装置
US20230281304A1 (en) Method for switching execution environment and related device thereof

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100070 the 28 tier of fortune Fortune Plaza, No.1, hang Feng Road, Fengtai District, Beijing.

Applicant after: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant after: STATE GRID LIAONING ELECTRIC POWER Research Institute

Applicant after: STATE GRID CORPORATION OF CHINA

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Address before: 100070 the 28 tier of fortune Fortune Plaza, No.1, hang Feng Road, Fengtai District, Beijing.

Applicant before: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant before: STATE GRID LIAONING ELECTRIC POWER Research Institute

Applicant before: State Grid Corporation of China

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190610

Address after: 100085 Beijing city Haidian District Qinghe small Camp Road No. 15

Applicant after: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

Applicant after: STATE GRID LIAONING ELECTRIC POWER Research Institute

Applicant after: STATE GRID CORPORATION OF CHINA

Applicant after: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

Address before: 100070 the 28 tier of fortune Fortune Plaza, No.1, hang Feng Road, Fengtai District, Beijing.

Applicant before: BEIJING GUODIANTONG NETWORK TECHNOLOGY Co.,Ltd.

Applicant before: STATE GRID LIAONING ELECTRIC POWER Research Institute

Applicant before: STATE GRID CORPORATION OF CHINA

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170531