CN109951527A - 面向虚拟化系统的hypervisor完整性检测方法 - Google Patents
面向虚拟化系统的hypervisor完整性检测方法 Download PDFInfo
- Publication number
- CN109951527A CN109951527A CN201910127404.XA CN201910127404A CN109951527A CN 109951527 A CN109951527 A CN 109951527A CN 201910127404 A CN201910127404 A CN 201910127404A CN 109951527 A CN109951527 A CN 109951527A
- Authority
- CN
- China
- Prior art keywords
- host
- detection
- hypervisor
- distributed
- integrality
- 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
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明的目的是提供一种本发明公开了一种面向虚拟化系统的hypervisor完整性检测方法,利用分布式的hypervisor完整性检测架构提高了hypervisor的安全性,其技术方案可概括为:将完整性检测分为单机完整性检测部分和分布式检测协议部分。本发明大大降低了虚拟化技术中hypervisor完整性被破坏而造成的多租户云环境不安全的问题发生的概率,提升了虚拟化技术的安全性和可靠性,适用于任意用虚拟化技术搭建的多租户云平台。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种面向虚拟化系统的hypervisor完整性检测方法。
背景技术
随着虚拟化技术的研究推进,构建多租户云开始变得成熟。利用虚拟化,企业不必抛弃现有的基础架构即可构建全新的信息基础架构。比起直接使用物理平台,虚拟化在资源的有效利用、动态调配和高可靠性方面有着巨大的优势。Xen是典型的开源虚拟化技术之一,它是一个直接在系统硬件上运行的虚拟机hypervisor。Xen在系统硬件与虚拟机之间插入一个虚拟化层,将系统硬件转换为一个逻辑计算资源池,Xen可将其中的资源动态地分配给任何操作系统或应用程序。
Hypervisor是虚拟化技术中最关键的部分之一。但是找到一个确保hypervisor的安全和可靠的方法是比较困难的。首先,hypervisor在虚拟化技术中运行在最高特权层,为了检测hypervisor的完整性,检测机制需要至少在与hypervisor相同的特权级别运行。其次,hypervisor具有较大的受攻击面,这使得任何保护都难以确保其完备的安全性。
现已有一些工作研究如何构建保护措施以使hypervisor更安全,这些工作根据其实现方式可以大致分为两类。第一类是软件实现的保护。它们构建在与管理程序相同的运行特权级别或更高级别上,例如利用嵌套虚拟化的CloudVisor,基于事件驱动的ED-monitor。第二类工作依赖于具有特定软件特征的特殊硬件,例如基于AMD内存加密硬件构建虚拟机保护工作的Fidelius,基于硬件的SMM模式提供完整性保护的HyperSentry,基于Intel SGX加密技术来防止虚拟机和hypervisor对应用的攻击的Haven,依靠特别的PCI设备来保护系统代码的Copilot。上述工作的思路可归纳为:(1)首先完成可信计算基础的建立,即TCB假设。(2)然后在此基础上完成保护工作。(3)此外,找到一些基于特殊软件或特定硬件的特定方法,以确保TCB假设的安全性或仅假设它是可信的。
然而,在复杂的多租户云环境中,上述两种保护机制通常是不够充分和实用的。首先,基于软件的保护是在单个主机的hypervisor上构建的,一旦发生新的有针对性的攻击去篡改甚至关闭保护但却没有被注意到,这些基于软件的保护通常难以经受考验。此外,即使这些保护措施构建了自我保护方法,实际的教训表明没有绝对的安全性,一个新的后门可以对安全产生重大影响。其次,基于可信硬件构建的这些管理程序保护确实可以显着提高其可信度,因为特定硬件相对难以被黑客入侵。但是,一方面,硬件的采用将增加构建多租户云的成本。另一方面,某些硬件本身不够实用或不够可靠,所以成功攻击的可能性仍然不够小。
综上所述,真正需要的是在不可信的虚拟化环境中构建一个基于多主机组成的Hypervisor检测机制,并对在最坏的情况下,即使单机的检测机制失效等问题出现时,也能够依靠其它主机来及时发现,这样一来,相对安全才绝对存在。
发明内容
本发明的一个目的是提供一种面向虚拟化系统的hypervisor完整性检测方法。
根据本发明的一个方面,提供了一种面向虚拟化系统的hypervisor完整性检测方法,该方法包括:
将多租户云环境中多台主机一起加入到同一个hypervisor完整性检测机制,建立一个分布式的hypervisor完整性检测架构,其中,所述hypervisor完整性检测机制包括:完整性检测部分和分布式检测协议部分,
所述完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对应主机的hypervisor内存储的完整性有关的数据结构进行周期性检测,并通过在hypervisor中新加入的hypercall将检测结果和相应的操作Hash签名返回给分布式检测协议部分;
所述分布式检测协议部分,将完整性检测部分的结果通过网络socket在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告,所述分布式检测协议部分还包括心跳包传递机制。
进一步的,上述方法中,所述完整性检测部分,其检测的hypervisor中的数据结构包括CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器,VMCB,PageTable,SharedTable,GrantTable,TrapTable,SharedInfoTable。
进一步的,上述方法中,所述检测机制的完整性检测策略分为定义方式和映射方式,其中,
定义方式是指针对数据结构中的内容,检查是否符合本身定义的完整性的检测策略;
映射方式指的是针对数据结构中的具体条目内容,检查是否符合完整的映射关系的检测策略。
进一步的,上述方法中,所述分布式检测协议部分,其依靠心跳包机制来判断各主机的检测和协议部分是否被关闭,其中,心跳分机制仅周期性传送发送者的信息,并传递每个主机中运行的检测机制的状态,心跳传递的具体数据包内容为Host_id,Status,Timestamp,一个主机向其他主机表明其是否正常存活,如果只是一个主机崩溃发生而不是受到攻击,只重新启动此主机并重新加入分布式检测协议。
进一步的,上述方法中,所述分布式检测协议部分,其传输的检测信息网络数据包中的内容包括:Host_id,Hash_signature,Check_op,Result,Timestamp,其传输的投票信息网络数据包的内容包括:Host_id,Hash_signature,Vote_list,Timestamp;其传输的检查点网络数据包的内容包括:Host_id,Hash_value,Timestamp。
进一步的,上述方法中,所述hypervisor完整性中单机的完整性检测部分的检测步骤如下:
步骤A-1:等待分布式检测协议守护进程调用hypercall来启动完整性检测;
步骤A-2:运行在hypervisor中的检测函数读取hypervisor中完整性相关的数据结构,并验证是否满足完整性条件;
步骤A-3:完整性检测操作完成后生成检测结果,并加入SHA-256标准哈希签名,最后将这些信息返回给分布式检测协议部分的守护进程。
进一步的,上述方法中,步骤A-2中的完整性条件判断步骤如下:
步骤A-21:CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器和VMCB,这些数据结构用所述定义方式的策略来检查;
步骤A-22:PageTable,SharedTable,GrantTable,TrapTable和SharedInfoTable,这些数据结构用所述映射方式的策略来检查。
进一步的,上述方法中,所述分布式检测协议部分的运行步骤如下:
步骤B-1:检测周期开始,调用hypercall完成完整性检测,并获取检测信息,然后发送给集群内各个主机;
步骤B-2:收取集群内各个主机的检测信息网络数据包,验证这些信息之后完成投票信息产生,并向集群中的各个主机发送投票信息;
步骤B-3:收取集群内各个主机的投票信息网络数据包,验证这些信息后完成可信主机的设定,并等待可信主机做检查点;
步骤B-4:可信主机完成检查点工作,其中包括返回可靠的全集群hypervisor完整性检测结果和分配新的SHA-256哈希计算值,各个主机接收检查点网络数据包后整个集群进入新的检测周期。
进一步的,上述方法中,所述分布式检测协议部分的运行过程中的主机状态转换过程如下:
步骤C-1:从Start状态开始,主机正常发送和收取hypervisor完整性检测记录并进入Pending1状态;
步骤C-2:主机根据上一个步骤中收到的检测记录进行投票并正常发送和收取投票数据包后,Pending1状态将被转换为Pending2状态;
步骤C-3:步骤C-2完成后,集群中一个主机将成为可信节点,即这台主机进入Trusted状态;
步骤C-4:可信主机将标识其他主机的状态,其中运行正常的主机为Normal状态,而运行非正常或者恶意的主机为Malicious状态。
步骤C-5:一旦一个主机在上述过程中长时间没有响应或者被识别出无法访问,它将被其他主机标记为Abort状态。
与现有技术相比,本发明公开了一种面向虚拟化系统的hypervisor完整性检测方法,旨在更有效地缓解多租户云环境里虚拟化技术中hypervisor完整性受破坏的问题。本发明利用分布式的hypervisor完整性检测架构提高了hypervisor的安全性,其技术方案可概括为:将完整性检测分为单机完整性检测部分和分布式检测协议部分。完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对主机的hypervisor进行周期性检测,并将检测结果和相应的操作Hash签名返回给分布式检测协议部分。分布式检测协议部分,将完整性检测部分的结果在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告。本发明大大降低了虚拟化技术中hypervisor完整性被破坏而造成的多租户云环境不安全的问题发生的概率,提升了虚拟化技术的安全性和可靠性,适用于任意用虚拟化技术搭建的多租户云平台。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制的系统框图;
图2是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制单机完整性检测流程图;
图3是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制的分布式检测协议流程图;
图4是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制的分布式检测协议中投票阶段核心算法图;
图5是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制的分布式检测协议中设置可信主机核心算法图;
图6是本发明实施例中面向虚拟化系统的Hypervisor完整性检测机制的分布式检测协议中主机状态转换图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本发明提供一种面向虚拟化系统的hypervisor完整性检测方法,所述方法包括:
将多租户云环境中多台主机一起加入到同一个hypervisor完整性检测机制,建立一个分布式的hypervisor完整性检测架构,其中,所述hypervisor完整性检测机制包括:完整性检测部分和分布式检测协议部分,
所述完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对应主机的hypervisor内存储的完整性有关的数据结构进行周期性检测,并通过在hypervisor中新加入的hypercall将检测结果和相应的操作Hash签名返回给分布式检测协议部分;
所述分布式检测协议部分,将完整性检测部分的结果通过网络socket在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告,所述分布式检测协议部分还包括心跳包传递机制。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述完整性检测部分,其具体检测的hypervisor中的数据结构包括CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器,VMCB,PageTable,SharedTable,GrantTable,TrapTable,SharedInfoTable。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述检测机制的完整性检测策略分为定义方式和映射方式,其中,
定义方式是指针对数据结构中的内容,检查是否符合本身定义的完整性的检测策略;
映射方式指的是针对数据结构中的具体条目内容,检查是否符合完整的映射关系的检测策略。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述分布式检测协议部分,其依靠心跳包机制来判断各主机的检测和协议部分是否被关闭,其中,心跳分机制仅周期性传送发送者的信息,并传递每个主机中运行的检测机制的状态,心跳传递的具体数据包内容为Host_id,Status,Timestamp,一个主机向其他主机表明其是否正常存活,如果只是一个主机崩溃发生而不是受到攻击,只重新启动此主机并重新加入分布式检测协议。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述分布式检测协议部分,其传输的检测信息网络数据包中的内容包括:Host_id,Hash_signature,Check_op,Result,Timestamp,其传输的投票信息网络数据包的内容包括:Host_id,Hash_signature,Vote_list,Timestamp;其传输的检查点网络数据包的内容包括:Host_id,Hash_value,Timestamp。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述hypervisor完整性中单机的完整性检测部分的检测步骤如下:
步骤A-1:等待分布式检测协议守护进程调用hypercall来启动完整性检测;
步骤A-2:运行在hypervisor中的检测函数读取hypervisor中完整性相关的数据结构,并验证是否满足完整性条件;
步骤A-3:完整性检测操作完成后生成检测结果,并加入SHA-256标准哈希签名,最后将这些信息返回给分布式检测协议部分的守护进程。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,步骤A-2中的完整性条件判断步骤如下:
步骤A-21:CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器和VMCB,这些数据结构用所述定义方式的策略来检查;
步骤A-22:PageTable,SharedTable,GrantTable,TrapTable和SharedInfoTable,这些数据结构用所述映射方式的策略来检查。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述分布式检测协议部分的运行步骤如下:
步骤B-1:检测周期开始,调用hypercall完成完整性检测,并获取检测信息,然后发送给集群内各个主机;
步骤B-2:收取集群内各个主机的检测信息网络数据包,验证这些信息之后完成投票信息产生,并向集群中的各个主机发送投票信息;
步骤B-3:收取集群内各个主机的投票信息网络数据包,验证这些信息后完成可信主机的设定,并等待可信主机做检查点;
步骤B-4:可信主机完成检查点工作,其中包括返回可靠的全集群hypervisor完整性检测结果和分配新的SHA-256哈希计算值,各个主机接收检查点数据包后整个集群进入新的检测周期。
本发明的面向虚拟化系统的hypervisor完整性检测方法一实施例中,所述分布式检测协议部分的运行过程中的主机状态转换过程如下:
步骤C-1:从Start状态开始,主机正常发送和收取hypervisor完整性检测记录并进入Pending1状态;
步骤C-2:主机根据上一个步骤中收到的检测记录进行投票并正常发送和收取投票数据包后,Pending1状态将被转换为Pending2状态;
步骤C-3:步骤C-2完成后,集群中一个主机将成为可信节点,即这台主机进入Trusted状态;
步骤C-4:可信主机将标识其他主机的状态,其中运行正常的主机为Normal状态,而运行非正常或者恶意的主机为Malicious状态。
步骤C-5:一旦一个主机在上述过程中长时间没有响应或者被识别出无法访问,它将被其他主机标记为Abort状态。
在此,本发明结合开源虚拟化方案Xen实现了一种无需TCB假设的分布式的Hypervisor完整性检测机制,目的是更有效地缓解多租户云环境里虚拟化技术中hypervisor完整性受破坏的问题。
本发明通过上述面向虚拟化系统的hypervisor完整性检测机制,大大降低了虚拟化技术中hypervisor完整性被破坏而造成的多租户云环境不安全的问题发生的概率,提升了虚拟化技术的安全性和可靠性,适用于任意用虚拟化技术搭建的多租户云平台。
下面结合实施例及附图,详细描述本发明的技术方案。
本发明实施例中一种面向虚拟化系统的hypervisor完整性检测机制,其系统框图参见图1。所述检测机制包括完整性检测部分和分布式检测协议部分。完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对应主机的hypervisor内存储的完整性有关的数据结构进行周期性检测,并通过在hypervisor中新加入的hypercall将检测结果和相应的操作Hash签名返回给分布式检测协议部分。分布式检测协议部分,将完整性检测部分的结果通过网络socket在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告。
所述检测机制中的完整性检测部分,其具体检测的hypervisor中的数据结构包括CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器,VMCB,PageTable,SharedTable,GrantTable,TrapTable,SharedInfoTable。具体的完整性检测策略分为定义方式(CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器,VMCB)和映射方式(PageTable,SharedTable,GrantTable,TrapTable,SharedInfoTable)。定义方式是指针对数据结构中的内容,检查是否符合本身定义的完整性的检测策略,映射方式指的是针对数据结构中的具体条目内容,检查是否符合完整的映射关系的检测策略。
具体的完整性检测内容极其参照规则可参见下表:
所述检测机制中的分布式检测协议,其依靠心跳包机制来判断各主机的检测和协议部分是否被关闭。心跳分机制仅周期性传送发送者的信息,并传递每个主机中运行的检测机制的状态。其传递的具体数据包内容为Host_id,Status,Timestamp。一个主机可以向其他主机表明其是否正常存活。如果只是一个主机崩溃发生而不是受到攻击,我们只需重新启动此主机并重新加入分布式检测协议。
分布式检测协议中传输的心跳数据包内容可参见下表:
Host_id | Status | Timestamp |
所述检测机制中的分布式检测协议部分,其具体传输的检测信息网络数据包中的内容包括Host_id,Hash_signature,Check_op,Result,Timestamp。具体传输的投票信息网络数据包的内容为Host_id,Hash_signature,Vote_list,Timestamp。具体传输的检查点网络数据包的内容为Host_id,Hash_value,Timestamp。
分布式检测协议中传输的完整性检测记录数据包内容可参见下表:
Host_id | Hash_signature | Check_op | Result | Timestamp |
分布式检测协议中传输的投票数据包内容可参见下表:
Host_id | Hash_signature | Vote_list | Timestamp |
本发明单机完整性检测实施例的流程图参见图2,其包括以下步骤:
步骤201:等待分布式检测协议守护进程调用hypercall来启动完整性检测;
步骤202:运行在hypervisor中的检测函数读取hypervisor中完整性相关的数据结构,并验证是否满足完整性条件;
步骤203:完整性检测操作完成后生成检测结果,并加入SHA-256标准哈希签名,最后将这些信息返回给分布式检测协议守护进程;
本发明分布式检测协议实施例的流程图参见图3,其包括以下步骤:
步骤301:协议执行do_Co-checker_op hypercall,调用完整性检测部分生成本地检测结果,该结果将和哈希签名一起返回(哈希签名的初始计算值给定,然后在每个检查周期开始之前由可信主机分配)。然后协议将本地检测记录直接发送到其他主机,并通过存储在本地内存中。其中,传递的完整性检测数据包里,Host_id标识数据包的发送者;Hash_signature用于验证身份,表明是本地完整性检测部分执行check_op检测操作及其结果;时间戳显示此数据包是否处于正确的周期。在这些执行之后,一方面,协议将接收由其他主机发送的检测记录,另一方面,也将等待由可信主机发起的的检查点数据包。在接收其他主机的操作记录的过程中,协议设置超时机制。在指定时间内未收到消息时,将丢弃该消息。
步骤302:图4描述了此阶段的关键算法。集群中的每个主机都将拥有步骤301中所有主机传输的检测记录的完整副本。如果出现问题,这意味着其中一个协议因为某种原因无法提供其检查记录,设置默认的NULL值来填充这些记录。此外,在协议开始扫描检查内容之前,它会检查Timestamp位以过滤那些过时的数据包。然后,每个主机都需要根据完整副本的信息查看检查操作及其结果。验证的过程首先扫描记录的Hash_signature位。如果该签名与全量副本中的大多数散列签名的位不同,则该操作则被认为是伪造的,并且相应的主机应该是不可信的,反之亦然。接下来,继续验证记录的Check_op和Result位。只有这些结果位都是正确的,相应的主机才有机会被投票,反之亦然。验证完成后,协议需要向每个主机发送投票,投票目标包括本地计算机。与此同时,它也接收其他主机的投票。此外,第二阶段具有与第一阶段相同的超时机制。
步骤303:经过步骤301和302每个主机应该已经收集了来自其他主机的所有投票。图5描述了可信主机的主要选举过程的算法。其中GetMaxVoteNum()和GetMaxVote()函数负责计算最大投票数,并将收到此数量投票的机器作为可信候选者主机列表。GetMinId()函数负责在这些候选者中找到最小主机ID。协议根据周期时间戳仅验证具有正确时间戳位的那些投票数据包。然后,协议将验证Hash_Signature位,并对正确的签名的数据包计算投票。然后,协议会自动将有用最多投票数,同时拥有最小ID的主机设置为可信主机。设置此可信主机后,协议将等待可信主机提供的检查点数据包。
步骤304:在最后阶段,协议一个周期内找到了一个可信主机,它在步骤303中被选中,这个可信主机拥有所有主机完整性检测记录信息的完整副本。因此,协议可以分析每个hypervisor的完整性并提供可靠的检测结果。根据上述条件,此可信主机将执行检查点,其中包括两个主要任务。第一个是报告集群中每个hypervisor完整性的最终检查结果。此任务的结果可以识别一个主机是否是恶意的。第二个任务是将检查点数据包发送到其他主机以进行下一周期的激活,并且这个数据包也包含了用于下一个周期验证的新哈希计算值。
本发明分布式检测协议运行过程中的主机状态转换实施例参见图6,其包括以下步骤:
步骤601:从Start状态开始,主机正常发送和收取hypervisor完整性检测记录并进入Pending1状态。
步骤602:主机根据上一个步骤中收到的检测记录进行投票并正常发送和收取投票数据包后,Pending1状态将被转换为Pending2状态。
步骤603:步骤C-2完成后,集群中一个主机将成为可信节点,即这台主机进入Trusted状态。
步骤604:可信主机将标识其他主机的状态,其中运行正常的主机为Normal状态,而运行非正常或者恶意的主机为Malicious状态。
步骤605:最后,一旦一个主机在上述过程中长时间没有响应或者被识别出无法访问,它将被其他主机标记为Abort状态。
本发明公开了一种面向虚拟化系统的hypervisor完整性检测方法,旨在更有效地缓解多租户云环境里虚拟化技术中hypervisor完整性受破坏的问题。本发明利用分布式的hypervisor完整性检测架构提高了hypervisor的安全性,其技术方案可概括为:将完整性检测分为单机完整性检测部分和分布式检测协议部分。完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对主机的hypervisor进行周期性检测,并将检测结果和相应的操作Hash签名返回给分布式检测协议部分。分布式检测协议部分,将完整性检测部分的结果在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告。本发明大大降低了虚拟化技术中hypervisor完整性被破坏而造成的多租户云环境不安全的问题发生的概率,提升了虚拟化技术的安全性和可靠性,适用于任意用虚拟化技术搭建的多租户云平台。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (9)
1.一种面向虚拟化系统的hypervisor完整性检测方法,其中,该方法包括:
将多租户云环境中多台主机一起加入到同一个hypervisor完整性检测机制,建立一个分布式的hypervisor完整性检测架构,其中,所述hypervisor完整性检测机制包括:完整性检测部分和分布式检测协议部分,
所述完整性检测部分,直接运行在每个主机的hypervisor的权限层级,对应主机的hypervisor内存储的完整性有关的数据结构进行周期性检测,并通过在hypervisor中新加入的hypercall将检测结果和相应的操作Hash签名返回给分布式检测协议部分;
所述分布式检测协议部分,将完整性检测部分的结果通过网络socket在集群中的各个主机之间互相收发,并基于收取到的全量检测结果副本周期性地进行可信主机选取和可信检测结果报告,所述分布式检测协议部分还包括心跳包传递机制。
2.根据权利要求1所述的方法,其中,所述完整性检测部分,其检测的hypervisor中的数据结构包括CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器,VMCB,PageTable,SharedTable,GrantTable,TrapTable,SharedInfoTable。
3.根据权利要求2所述的方法,其中,所述检测机制的完整性检测策略分为定义方式和映射方式,其中,
定义方式是指针对数据结构中的内容,检查是否符合本身定义的完整性的检测策略;
映射方式指的是针对数据结构中的具体条目内容,检查是否符合完整的映射关系的检测策略。
4.根据权利要求3所述的方法,其中,所述分布式检测协议部分,其依靠心跳包机制来判断各主机的检测和协议部分是否被关闭,其中,心跳分机制仅周期性传送发送者的信息,并传递每个主机中运行的检测机制的状态,心跳传递的具体数据包内容为Host_id,Status,Timestamp,一个主机向其他主机表明其是否正常存活,如果只是一个主机崩溃发生而不是受到攻击,只重新启动此主机并重新加入分布式检测协议。
5.根据权利要求3所述的方法,其中,所述分布式检测协议部分,其传输的检测信息网络数据包中的内容包括:Host_id,Hash_signature,Check_op,Result,Timestamp,其传输的投票信息网络数据包的内容包括:Host_id,Hash_signature,Vote_list,Timestamp;其传输的检查点网络数据包的内容包括:Host_id,Hash_value,Timestamp。
6.根据权利要求3所述的方法,其中,所述hypervisor完整性中单机的完整性检测部分的检测步骤如下:
步骤A-1:等待分布式检测协议守护进程调用hypercall来启动完整性检测;
步骤A-2:运行在hypervisor中的检测函数读取hypervisor中完整性相关的数据结构,并验证是否满足完整性条件;
步骤A-3:完整性检测操作完成后生成检测结果,并加入SHA-256标准哈希签名,最后将这些信息返回给分布式检测协议部分的守护进程。
7.根据权利要求6所述的方法,其中,步骤A-2中的完整性条件判断步骤如下:
步骤A-21:CR0寄存器,CR2寄存器,CR3寄存器,CR4寄存器和VMCB,这些数据结构用所述定义方式的策略来检查;
步骤A-22:PageTable,SharedTable,GrantTable,TrapTable和SharedInfoTable,这些数据结构用所述映射方式的策略来检查。
8.根据权利要求5所述的方法,其中,所述分布式检测协议部分的运行步骤如下:
步骤B-1:检测周期开始,调用hypercall完成完整性检测,并获取检测信息,然后发送给集群内各个主机;
步骤B-2:收取集群内各个主机的检测信息网络数据包,验证这些信息之后完成投票信息产生,并向集群中的各个主机发送投票信息;
步骤B-3:收取集群内各个主机的投票信息网络数据包,验证这些信息后完成可信主机的设定,并等待可信主机做检查点;
步骤B-4:可信主机完成检查点工作,其中包括返回可靠的全集群hypervisor完整性检测结果和分配新的SHA-256哈希计算值,各个主机接收检查点网络数据包后整个集群进入新的检测周期。
9.根据权利要求1所述的方法,其中,所述分布式检测协议部分的运行过程中的主机状态转换过程如下:
步骤C-1:从Start状态开始,主机正常发送和收取hypervisor完整性检测记录并进入Pending1状态;
步骤C-2:主机根据上一个步骤中收到的检测记录进行投票并正常发送和收取投票数据包后,Pending1状态将被转换为Pending2状态;
步骤C-3:步骤C-2完成后,集群中一个主机将成为可信节点,即这台主机进入Trusted状态;
步骤C-4:可信主机将标识其他主机的状态,其中运行正常的主机为Normal状态,而运行非正常或者恶意的主机为Malicious状态。
步骤C-5:一旦一个主机在上述过程中长时间没有响应或者被识别出无法访问,它将被其他主机标记为Abort状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910127404.XA CN109951527B (zh) | 2019-02-20 | 2019-02-20 | 面向虚拟化系统的hypervisor完整性检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910127404.XA CN109951527B (zh) | 2019-02-20 | 2019-02-20 | 面向虚拟化系统的hypervisor完整性检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109951527A true CN109951527A (zh) | 2019-06-28 |
CN109951527B CN109951527B (zh) | 2020-08-25 |
Family
ID=67007142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910127404.XA Active CN109951527B (zh) | 2019-02-20 | 2019-02-20 | 面向虚拟化系统的hypervisor完整性检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951527B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430226A (zh) * | 2019-09-16 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN112256392A (zh) * | 2020-10-22 | 2021-01-22 | 海光信息技术股份有限公司 | 一种度量方法、装置及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246525A1 (en) * | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Method and system for hierarchical platform boot measurements in a trusted computing environment |
CN101271401A (zh) * | 2008-04-23 | 2008-09-24 | 北京航空航天大学 | 一种具备单一系统映像的服务器机群系统 |
CN101452397A (zh) * | 2008-11-27 | 2009-06-10 | 上海交通大学 | 虚拟化环境中的强制访问控制方法及装置 |
US20130067470A1 (en) * | 2011-09-14 | 2013-03-14 | Institute For Information Industry | Virtual Machine Monitoring Method, System and Computer Readable Storage Medium |
CN105183546A (zh) * | 2015-08-12 | 2015-12-23 | 北京因特信安软件科技有限公司 | 基于可信资源池的虚拟机安全迁移方法 |
CN105930199A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮集团有限公司 | 一种虚拟机监控器本地完整性检测的系统及实现方法 |
CN108776616A (zh) * | 2018-06-06 | 2018-11-09 | 北京八分量信息科技有限公司 | 一种确定区块链节点可信状态的方法、区块链节点及系统 |
CN109063473A (zh) * | 2018-07-02 | 2018-12-21 | 芜湖通全电子电器科技创业有限公司 | 一种基于计算机网络的便捷式家用安全监控装置和方法 |
CN109165079A (zh) * | 2018-08-07 | 2019-01-08 | 郑州云海信息技术有限公司 | 基于虚拟化的云数据中心可信平台、信任链构建方法、迁移方法 |
-
2019
- 2019-02-20 CN CN201910127404.XA patent/CN109951527B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246525A1 (en) * | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Method and system for hierarchical platform boot measurements in a trusted computing environment |
CN101271401A (zh) * | 2008-04-23 | 2008-09-24 | 北京航空航天大学 | 一种具备单一系统映像的服务器机群系统 |
CN101452397A (zh) * | 2008-11-27 | 2009-06-10 | 上海交通大学 | 虚拟化环境中的强制访问控制方法及装置 |
US20130067470A1 (en) * | 2011-09-14 | 2013-03-14 | Institute For Information Industry | Virtual Machine Monitoring Method, System and Computer Readable Storage Medium |
CN105183546A (zh) * | 2015-08-12 | 2015-12-23 | 北京因特信安软件科技有限公司 | 基于可信资源池的虚拟机安全迁移方法 |
CN105930199A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮集团有限公司 | 一种虚拟机监控器本地完整性检测的系统及实现方法 |
CN108776616A (zh) * | 2018-06-06 | 2018-11-09 | 北京八分量信息科技有限公司 | 一种确定区块链节点可信状态的方法、区块链节点及系统 |
CN109063473A (zh) * | 2018-07-02 | 2018-12-21 | 芜湖通全电子电器科技创业有限公司 | 一种基于计算机网络的便捷式家用安全监控装置和方法 |
CN109165079A (zh) * | 2018-08-07 | 2019-01-08 | 郑州云海信息技术有限公司 | 基于虚拟化的云数据中心可信平台、信任链构建方法、迁移方法 |
Non-Patent Citations (2)
Title |
---|
KEISUKE INOKUCHI等: "UVBond: Strong User Binding to VMs for Secure Remote Management in Semi-Trusted Clouds", 《IEEE》 * |
陈志锋等: "基于访问控制的Hypervisor非控制数据完整性保护", 《电子与信息学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430226A (zh) * | 2019-09-16 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN110430226B (zh) * | 2019-09-16 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN112256392A (zh) * | 2020-10-22 | 2021-01-22 | 海光信息技术股份有限公司 | 一种度量方法、装置及相关设备 |
CN112256392B (zh) * | 2020-10-22 | 2022-09-20 | 海光信息技术股份有限公司 | 一种度量方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109951527B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111612455A (zh) | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 | |
Genc et al. | Examination of a new defense mechanism: Honeywords | |
US10972475B1 (en) | Account access security using a distributed ledger and/or a distributed file system | |
US20150199512A1 (en) | Apparatus and method for detecting abnormal behavior | |
US20070240151A1 (en) | Enhanced computer target groups | |
CN103077345B (zh) | 基于虚拟机的软件授权方法及系统 | |
CN111581643B (zh) | 渗透攻击评价方法和装置、以及电子设备和可读存储介质 | |
CN105519070A (zh) | 认证机构信任评估 | |
CN106355092B (zh) | 用于优化反病毒测定的系统和方法 | |
CN103984536B (zh) | 一种云计算平台中的 i/o 请求计数系统及其方法 | |
CN110520849A (zh) | 改进的计算装置 | |
Zhang et al. | “adversarial examples” for proof-of-learning | |
CN109951527A (zh) | 面向虚拟化系统的hypervisor完整性检测方法 | |
Daubner et al. | Risk-oriented design approach for forensic-ready software systems | |
CN112257058A (zh) | 一种操作系统可信计算校验方法及系统 | |
Stephen et al. | Assured cloud-based data analysis with ClusterBFT | |
Fuji et al. | Investigation on sharing signatures of suspected malware files using blockchain technology | |
CN111680282B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN112688914A (zh) | 一种智慧型云平台动态感知方法 | |
Watanabe et al. | Generalized spot-checking for sabotage-tolerance in volunteer computing systems | |
CN115640581A (zh) | 一种数据安全风险评估方法、装置、介质及电子设备 | |
CN110990891A (zh) | 一种基于区块链的健身房合同证明方法及设备、介质 | |
CN116452135A (zh) | 基于以太坊的分布式匿名投票方法、装置、设备及介质 | |
CN110727636A (zh) | 片上系统及片上系统的设备隔离方法 | |
CN112988334B (zh) | 对虚拟化环境下的多台主机进行管理的方法、可读介质 |
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 |