CN117806777A - 虚拟环境启动完整性验证方法、装置、系统、设备及介质 - Google Patents
虚拟环境启动完整性验证方法、装置、系统、设备及介质 Download PDFInfo
- Publication number
- CN117806777A CN117806777A CN202410228049.6A CN202410228049A CN117806777A CN 117806777 A CN117806777 A CN 117806777A CN 202410228049 A CN202410228049 A CN 202410228049A CN 117806777 A CN117806777 A CN 117806777A
- Authority
- CN
- China
- Prior art keywords
- integrity
- virtual machine
- operating system
- kernel
- virtual
- 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
- 238000000034 method Methods 0.000 title claims abstract description 119
- 238000012795 verification Methods 0.000 title claims abstract description 107
- 238000005259 measurement Methods 0.000 claims abstract description 173
- 238000004891 communication Methods 0.000 claims abstract description 61
- 230000008569 process Effects 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 39
- 238000011217 control strategy Methods 0.000 claims description 33
- 238000012544 monitoring process Methods 0.000 claims description 21
- 230000000977 initiatory effect Effects 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000005012 migration Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 2
- 238000002955 isolation Methods 0.000 abstract description 8
- 230000006399 behavior Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000001066 destructive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种虚拟环境启动完整性验证方法、装置、系统、设备及介质,涉及计算机技术领域,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,可以实现虚拟机与宿主机的通信,间接与云端管理平台通信,在有隔离需求的场景中实现虚拟机与云端管理平台互通,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟环境启动完整性验证方法、装置、系统、设备及介质。
背景技术
现阶段很多用户选择云端的计算、存储、网络等资源来构建计算环境,因此,云端虚拟环境安全是保证计算数据安全的关键因素,虚拟环境中启动组件完整性验证是保证虚拟环境安全的重要措施。相关技术中,对虚拟环境中启动组件完整性验证主要存在两种手段,一种是在引导操作系统阶段对前期加载运行的所有启动组件进行完整性验证,由于此时组件已经运行,如果存在被篡改的组件,该组件已经生效,已经产生了破坏行为,验证过程并不能阻止被篡改的组件运行。另一种验证虚拟机启动组件完整性的方式是使用远程认证技术,在虚拟机操作系统启动后,收集记录在虚拟可信根中的完整性信息,通过网络传输给验证方,由验证方验证后根据验证结果进行网络管控。而基于远程认证的方式,需要操作系统运行后才能发送完整性信息,如某一组件被恶意篡改,在被验证前该组件已经生效,会破坏操作系统的安全性,且远程认证的方式,在有网络隔离需求的场景中,会面临虚拟机与云管理平台无法通信的问题,无法验证所有虚拟机的完整性。
发明内容
本发明提供一种虚拟环境启动完整性验证方法、装置、系统、设备及介质,用以解决传统虚拟环境启动完整性验证方法由于验证过程滞后,不能阻止被篡改的组件运行,以及,在有网络隔离需求的场景中,会面临虚拟机与云管理平台无法通信,无法验证所有虚拟机的完整性的缺陷。
本发明提供一种虚拟环境启动完整性验证方法,应用于云端管理平台,包括:
在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
根据本发明提供的虚拟环境启动完整性验证方法,所述通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息,包括:
操作系统启动前,各启动组件使用所述可信根启动服务构建度量链;
根据度量链中节点顺序依次收集各启动组件完整性度量信息;
将收集到的各启动组件完整性度量信息通过虚拟机与宿主机直连通道传递给宿主机中的监听程序;
所述云端管理平台与所述监听程序通信,接收所述监听程序发送的各启动组件的完整性信息。
根据本发明提供的虚拟环境启动完整性验证方法,所述虚拟机与宿主机直连通道为输入输出堆栈,所述输入输出堆栈包括虚拟队列和共享内存;
所述虚拟队列设置于虚拟机内部,其前端为虚拟化固件提供访问接口,虚拟化固件通过所述虚拟化固件提供访问接口向虚拟机进程发送数据;
虚拟队列后端为虚拟机进程,所述虚拟机进程用于接收虚拟化固件发送的数据,并将接收到数据传入所述共享内存中。
根据本发明提供的虚拟环境启动完整性验证方法,所述度量链中节点顺序依次为统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动、统一的可扩展固件接口引导加载程序和操作系统内核。
根据本发明提供的虚拟环境启动完整性验证方法,所述根据度量链中节点顺序依次收集各启动组件完整性度量信息,包括:
在所述统一的可扩展固件接口固件主体启动前,收集所述统一的可扩展固件接口固件主体的完整性度量信息,将所述统一的可扩展固件接口固件主体的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口固件主体的完整性度量信息通过后,加载所述统一的可扩展固件接口固件主体;
在所述统一的可扩展固件接口驱动启动前,收集所述统一的可扩展固件接口驱动的完整性度量信息,将所述统一的可扩展固件接口驱动的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口驱动的完整性度量信息通过后,加载所述统一的可扩展固件接口驱动;
在所述统一的可扩展固件接口引导加载程序启动前,收集所述统一的可扩展固件接口引导加载程序的完整性度量信息,将所述统一的可扩展固件接口引导加载程序的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口引导加载程序的完整性度量信息通过后,加载所述统一的可扩展固件接口引导加载程序;
在所述操作系统内核启动前,收集所述操作系统内核的完整性度量信息,将所述操作系统内核的完整性度量信息保存至可信根中;在验证所述操作系统内核的完整性度量信息通过后,加载所述操作系统内核。
根据本发明提供的虚拟环境启动完整性验证方法,所述根据启动组件完整性比较结果确定每一启动组件的完整性,包括:
若所述启动组件完整性度量信息与对应的固件基准值一致,则判定所述启动组件完整性正常,允许继续运行所述启动组件;
若所述启动组件完整性度量信息与对应的固件基准值不一致,根据启动控制策略控制虚拟机启动组件是否继续运行。
根据本发明提供的虚拟环境启动完整性验证方法,所述根据虚拟机操作系统内核完整性比较结果确定虚拟机操作系统内核的完整性,包括:
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值一致,则判定所述虚拟机操作系统内核完整性正常,允许继续运行所述虚拟机操作系统;
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值不一致,根据启动控制策略控制虚拟机操作系统是否继续运行。
根据本发明提供的虚拟环境启动完整性验证方法,还包括:
在虚拟机网路功能组件启动前,通过虚拟机与宿主机直连通道接收所述虚拟机网路功能组件的完整性度量信息;
从基准值库中获取所述虚拟机网路功能组件对应的固件基准值;
将接收到的所述虚拟机网路功能组件完整性度量信息与对应的固件基准值进行比较;
若所述虚拟机网路功能组件的完整性正常,则允许所述虚拟机访问网络;
若所述虚拟机网路功能组件的完整性异常,则获取所述虚拟机访问网络控制策略;
在所述虚拟机网路功能组件的完整性异常,且,所述虚拟机访问网络控制策略为异常不允许访问网络功能时,删除对应虚拟机的虚拟网络组件。
根据本发明提供的虚拟环境启动完整性验证方法,所述可信根启动服务为统一的可扩展固件接口中已有的可信计算启动服务功能。
根据本发明提供的虚拟环境启动完整性验证方法,所述基准值库构建方法,包括:
获取同一虚拟化环境中使用的虚拟机固件的哈希值,将所述虚拟机固件的哈希值作为固件基准值;
获取不同虚拟机操作系统对应的操作系统内核基准值;
根据所述固件基准值和所述不同虚拟机操作系统对应的操作系统内核基准值构建基准值库。
根据本发明提供的虚拟环境启动完整性验证方法,还包括:
若虚拟机所在宿主机发生迁移,迁移前获取的虚拟机验证数据和完整性信息适用于迁移后虚拟机。
本发明还提供一种虚拟环境启动完整性验证方法,应用于宿主机,包括:
通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
根据本发明提供的虚拟环境启动完整性验证方法,还包括:
接收所述云端管理平台下发的控制信息,以及,当启动组件或操作系统内核完整性验证失败后,根据启动控制策略和所述控制信息控制虚拟机进程是否关闭。
根据本发明提供的虚拟环境启动完整性验证方法,还包括:
当虚拟机网络功能组件完整性验证失败后,根据虚拟机访问网络控制策略和所述控制信息控制虚拟机网路组件是否关闭。
本发明还提供一种虚拟环境启动完整性验证装置,应用于云端管理平台,包括:
接收模块,用于在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
获取模块,用于从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
比较模块,用于将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
验证模块,用于根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
本发明还提供一种虚拟环境启动完整性验证装置,应用于宿主机,包括:
监听模块,用于通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
发送模块,用于响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
本发明还提供一种虚拟环境启动完整性验证系统,包括:
宿主机和应用于云端管理平台;
所述宿主机包括内核态和用户态;
所述内核态包括虚拟设备和输入输出堆栈;
所述用户态包括虚拟化代理程序和虚拟机进程;
所述云端管理平台包括完整性验证模块和基准值库;
所述完整性验证模块与所述虚拟化代理程序通信连接,所述虚拟化代理程序与所述虚拟机进程通信连接,所述虚拟机进程与所述输入输出堆栈通信连接,所述输入输出堆栈与所述虚拟设备通信连接,所述虚拟设备与所述虚拟化代理程序通信连接。
根据本发明提供的虚拟环境启动完整性验证系统,所述虚拟机进程包括统一的可扩展固件接口固件和操作系统内核,所述统一的可扩展固件接口固件包括统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动和统一的可扩展固件接口引导加载程序。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的虚拟环境启动完整性验证方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的虚拟环境启动完整性验证方法。
本发明提供的虚拟环境启动完整性验证方法、装置、系统、设备及介质,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,在虚拟机固件中构建一条数据通信通道,实现虚拟机与宿主机的通信,宿主机与云端管理平台通信,从而实现在有隔离需求的场景实现虚拟机与云端管理平台互通,并且,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。
附图说明
为了更清楚地说明本发明或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的虚拟环境启动完整性验证方法的流程示意图之一;
图2是本发明实施例提供的虚拟机启动时序图;
图3是本发明实施例提供的虚拟机启动管控流程图;
图4是本发明实施例提供的虚拟环境启动完整性验证装置功能结构示意图之一;
图5是本发明实施例提供的虚拟环境启动完整性验证方法的流程示意图之二;
图6是本发明实施例提供的虚拟环境启动完整性验证装置的功能结构示意图之二;
图7是本发明实施例提供的虚拟环境启动完整性验证系统的功能结构示意图;
图8是本发明实施例提供的电子设备的功能结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的虚拟环境启动完整性验证方法的流程图,如图1所示,本发明实施例提供的虚拟环境启动完整性验证方法包括:
步骤101、在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
在本发明实施例中,可信根启动服务(BootService)为统一的可扩展固件接口中已有的可信计算启动服务功能。通过扩展该BootService的功能,在执行完整性扩展操作时将完整性信息传递给虚拟化管理软件,验证当前启动组件的完整性,可以使每一启动组件运行前都会被验证的功能。
步骤102、从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
步骤103、将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
步骤104、根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
传统虚拟环境启动完整性验证主要存在两种手段,一种是在引导操作系统阶段对前期加载运行的所有启动组件进行完整性验证,由于此时组件已经运行,如果存在被篡改的组件,该组件已经生效,已经产生了破坏行为,验证过程并不能阻止被篡改的组件运行。另一种验证虚拟机启动组件完整性的方式是使用远程认证技术,在虚拟机操作系统启动后,收集记录在虚拟可信根中的完整性信息,通过网络传输给验证方,由验证方验证后根据验证结果进行网络管控。而基于远程认证的方式,需要操作系统运行后才能发送完整性信息,如某一组件被恶意篡改,在被验证前该组件已经生效,会破坏操作系统的安全性,且远程认证的方式,在有网络隔离需求的场景中,会面临虚拟机与云管理平台无法通信的问题,无法验证所有虚拟机的完整性。
本发明实施例提供的虚拟环境启动完整性验证方法,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,在虚拟机固件中构建一条数据通信通道,实现虚拟机与宿主机的通信,宿主机与云端管理平台通信,从而实现在有隔离需求的场景实现虚拟机与云端管理平台互通,并且,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。
基于上述任一实施例,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息包括:
步骤201、操作系统启动前,各启动组件使用所述可信根启动服务构建度量链;
步骤202、根据度量链中节点顺序依次收集各启动组件完整性度量信息;
步骤203、将收集到的各启动组件完整性度量信息通过虚拟机与宿主机直连通道传递给宿主机中的监听程序;
步骤204、所述云端管理平台与所述监听程序通信,接收所述监听程序发送的各启动组件的完整性信息。
本发明实施例利用统一的可扩展固件接口(Unified Extensible FirmwareInterface,UEFI)已有的度量链建立流程,通过扩展UEFI固件中已有的Tcg2HashLogExtendEvent BootService功能(该BootService用于生成事件日志并将事件Hash值扩展至可信根中),实现了在每一启动组件运行前验证其完整性功能,解决了当前可信验证技术中验证组件完整性时组件已运行的问题,可及时发现被恶意篡改的组件。
在本发明实施例中,虚拟机与宿主机直连通道为输入输出堆栈,所述输入输出堆栈包括虚拟队列和共享内存;
其中,虚拟队列设置于虚拟机内部,其前端为虚拟化固件提供访问接口,虚拟化固件通过所述虚拟化固件提供访问接口向虚拟机进程发送数据;
虚拟队列后端为虚拟机进程,所述虚拟机进程用于接收虚拟化固件发送的数据,并将接收到数据传入所述共享内存中。
基于上述任一实施例,本发明实施例提供的虚拟环境启动完整性验证方法中度量链中节点顺序依次为统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动、统一的可扩展固件接口引导加载程序和操作系统内核。
在本发明实施例中,根据度量链中节点顺序依次收集各启动组件完整性度量信息,包括:
在所述统一的可扩展固件接口固件主体启动前,收集所述统一的可扩展固件接口固件主体的完整性度量信息,将所述统一的可扩展固件接口固件主体的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口固件主体的完整性度量信息通过后,加载所述统一的可扩展固件接口固件主体;
在所述统一的可扩展固件接口驱动启动前,收集所述统一的可扩展固件接口驱动的完整性度量信息,将所述统一的可扩展固件接口驱动的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口驱动的完整性度量信息通过后,加载所述统一的可扩展固件接口驱动;
在所述统一的可扩展固件接口引导加载程序启动前,收集所述统一的可扩展固件接口引导加载程序的完整性度量信息,将所述统一的可扩展固件接口引导加载程序的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口引导加载程序的完整性度量信息通过后,加载所述统一的可扩展固件接口引导加载程序;
在所述操作系统内核启动前,收集所述操作系统内核的完整性度量信息,将所述操作系统内核的完整性度量信息保存至可信根中;在验证所述操作系统内核的完整性度量信息通过后,加载所述操作系统内核。
虚拟机启动时序如图2所示,首先验证可扩展固件接口固件主体(UEFIMainBlock):UEFI Main Block是UEFI固件的主体,UEFI主要功能(如设备管理、内存管理、UEFI Image管理等)都在UEFI Main Block中,在执行可信根扩展BootService时,将UEFIMain Block的完整性信息通过虚拟队列传递给消息监听程序,有消息监听程序转发给云端管理平台的虚拟机管理软件的完整性验证模块,由完整性验证模块验证UEFI Main Block的完整性。
在UEFI Main Block的完整性通过后验证UEFI驱动:UEFI Main Block会加载UEFI驱动来管理各个物理设备,在加载每一个UEFI驱动前,会执行可信根扩展BootService时,此时将UEFI驱动的完整性信息通过虚拟队列传递给消息监听程序,有消息监听程序转发给虚拟机管理软件的完整性验证模块,由完整性验证模块验证每一UEFI驱动的完整性。
在UEFI驱动的完整性通过后,验证可扩展固件接口引导加载程序(UEFIBootLoader):UEFI运行最后,会加载BootLoader(如Windows系统中的WinLoader、Linux系统中的Grub)用以加载操作系统内核,在加载UEFI BootLoader前,会执行可信根扩展BootService时,此时将UEFI BootLoader的完整性信息通过虚拟队列传递给消息监听程序,有消息监听程序转发给虚拟机管理软件的完整性验证模块,由完整性验证模块验证BootLoader的完整性。
在UEFI BootLoader的完整性通过后,验证操作系统内核:BootLoader在加载内核文件后,会调用UEFI 可信根扩展BootService,此时将内核的完整性信息通过虚拟队列传递给消息监听程序,有消息监听程序转发给虚拟机管理软件的完整性验证模块,由完整性验证模块验证内核的完整性。
基于上述任一实施例,本发明实施例提供的虚拟环境启动完整性验证方法包括:
步骤301、在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
步骤302、从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
步骤303、将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
步骤304、若启动组件完整性度量信息与对应的固件基准值一致,则判定所述启动组件完整性正常,允许继续运行所述启动组件;
步骤305、若启动组件完整性度量信息与对应的固件基准值不一致,根据启动控制策略控制虚拟机启动组件是否继续运行;
步骤306、若虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值一致,则判定所述虚拟机操作系统内核完整性正常,允许继续运行所述虚拟机操作系统;
步骤307、若虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值不一致,根据启动控制策略控制虚拟机操作系统是否继续运行。
在本发明实施例中,通过启动控制策略,可以控制启动组件不可信的虚拟机运行情况。
基于上述任一实施例,本发明提供的虚拟环境启动完整性验证方法,包括:
步骤401、在虚拟机网路功能组件启动前,通过虚拟机与宿主机直连通道接收所述虚拟机网路功能组件的完整性度量信息;
步骤402、从基准值库中获取所述虚拟机网路功能组件对应的固件基准值;
步骤403、将接收到的所述虚拟机网路功能组件完整性度量信息与对应的固件基准值进行比较;
步骤404、若所述虚拟机网路功能组件的完整性正常,则允许所述虚拟机访问网络;
步骤405、若所述虚拟机网路功能组件的完整性异常,则获取所述虚拟机访问网络控制策略;
步骤406、在所述虚拟机网路功能组件的完整性异常,且,所述虚拟机访问网络控制策略为异常不允许访问网络功能时,删除对应虚拟机的虚拟网络组件。
在本发明实施例中,通过虚拟机访问网络控制策略,可以实现在网络组件被恶意篡改后,可限制虚拟机的网络访问功能。
基于上述任一实施例中,本发明提供的基准值库构建方法,包括:
获取同一虚拟化环境中使用的虚拟机固件的哈希值,将所述虚拟机固件的哈希值作为固件基准值;
获取不同虚拟机操作系统对应的操作系统内核基准值;
根据所述固件基准值和所述不同虚拟机操作系统对应的操作系统内核基准值构建基准值库。
如图3所示,虚拟机启动管控流程包括:
1)验证启动组件完整性:根据消息监听程序发送的组件完整性信息,获取完整性基准值库中对应的验证基准,判断该组件是否完整,如完整性正常,则允许UEFI固件继续运行该组件;如完整性被破坏,则首先记录该信息,以便进行审计。
2)虚拟机启动控制:如某一启动组件完整性被破坏,获取控制策略模块存放的启动控制策略,如策略不允许虚拟机固件继续运行,则由虚拟机管理模块关闭该虚拟机进程,如策略允许虚拟机固件继续运行,则虚拟机启动组件继续运行。
在本发明实施例中,启动控制策略依据用户需求和安全环境要求设定,在安全环境要求较严格的场景中,若某一启动组件完整性被破坏,则关闭该虚拟机进程。
3)虚拟机资源控制:如某一不可信组件为网路相关功能组件(如UEFI网卡驱动)时,且虚拟机访问网络控制策略为不允许访问网络功能时,则通过虚拟机管理模块删除对应虚拟机的虚拟网络设备,禁止该虚拟机接入网络。
基于上述任一实施例,本发明提供的虚拟环境启动完整性验证方法,还包括:
若虚拟机所在宿主机发生迁移,迁移前获取的虚拟机验证数据和完整性信息适用于迁移后虚拟机。
在本发明实施例中,由于使用云端管理平台,验证数据、验证策略等信息不用跟随虚拟机迁移,验证过程是在虚拟化管理软件中执行,当出现虚拟机迁移的情况时,不影响已有的虚拟化迁移过程以及虚拟机启动完整性验证过程。
本发明实施例提供的虚拟环境启动完整性验证方法,利用固件提供的可信根操作启动服务,获取每一个待加载运行的启动组件的完整性信息,利用虚拟化已有的数据通信机制将完整性信息传递给云端管理平台,由云端管理平台监控每一虚拟机每一启动组件的完整性,可及时发现被恶意篡改的组件,且可根据控制策略控制虚拟机后续的行为。并且,可以及时发现虚拟机中被恶意篡改的启动组件,并根据控制策略控制不可信虚拟机的行为,防止不可信虚拟机影响其他业务的安全。
下面对本发明提供的虚拟环境启动完整性验证装置进行描述,下文描述的虚拟环境启动完整性验证装置与上文描述的虚拟环境启动完整性验证方法可相互对应参照。
图4为本发明实施例提供的虚拟环境启动完整性验证装置的功能结构示意图,如图4所示,本发明实施例提供的虚拟环境启动完整性验证装置,应用于云端管理平台,包括:
接收模块401,用于在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
获取模块402,用于从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
比较模块403,用于将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
验证模块404,用于根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
在本发明实施例中,接收模块401被配置为:
操作系统启动前,各启动组件使用所述可信根启动服务构建度量链;根据度量链中节点顺序依次收集各启动组件完整性度量信息;将收集到的各启动组件完整性度量信息通过虚拟机与宿主机直连通道传递给宿主机中的监听程序;所述云端管理平台与所述监听程序通信,接收所述监听程序发送的各启动组件的完整性信息。
在本发明实施例中,验证模块404被配置为:
在所述统一的可扩展固件接口固件主体启动前,收集所述统一的可扩展固件接口固件主体的完整性度量信息,将所述统一的可扩展固件接口固件主体的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口固件主体的完整性度量信息通过后,加载所述统一的可扩展固件接口固件主体;
在所述统一的可扩展固件接口驱动启动前,收集所述统一的可扩展固件接口驱动的完整性度量信息,将所述统一的可扩展固件接口驱动的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口驱动的完整性度量信息通过后,加载所述统一的可扩展固件接口驱动;
在所述统一的可扩展固件接口引导加载程序启动前,收集所述统一的可扩展固件接口引导加载程序的完整性度量信息,将所述统一的可扩展固件接口引导加载程序的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口引导加载程序的完整性度量信息通过后,加载所述统一的可扩展固件接口引导加载程序;
在所述操作系统内核启动前,收集所述操作系统内核的完整性度量信息,将所述操作系统内核的完整性度量信息保存至可信根中;在验证所述操作系统内核的完整性度量信息通过后,加载所述操作系统内核。
在本发明一些实施例中,还包括策略模块,被配置为:
若所述启动组件完整性度量信息与对应的固件基准值一致,则判定所述启动组件完整性正常,允许继续运行所述启动组件;
若所述启动组件完整性度量信息与对应的固件基准值不一致,根据启动控制策略控制虚拟机启动组件是否继续运行。
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值一致,则判定所述虚拟机操作系统内核完整性正常,允许继续运行所述虚拟机操作系统;
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值不一致,根据启动控制策略控制虚拟机操作系统是否继续运行。
本发明实施例提供的虚拟环境启动完整性验证装置,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,在虚拟机固件中构建一条数据通信通道,实现虚拟机与宿主机的通信,宿主机与云端管理平台通信,从而实现在有隔离需求的场景实现虚拟机与云端管理平台互通,并且,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。
图5为本发明实施例提供的虚拟环境启动完整性验证方法的流程图,如图5所示,本发明实施例提供的虚拟环境启动完整性验证方法,应用于宿主机,包括:
步骤501、通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
步骤502、响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
基于上述任一实施例,本发明提供的虚拟环境启动完整性验证方法,还包括:
接收所述云端管理平台下发的控制信息,以及,当启动组件或操作系统内核完整性验证失败后,根据启动控制策略和所述控制信息控制虚拟机进程是否关闭;
以及,
当虚拟机网络功能组件完整性验证失败后,根据虚拟机访问网络控制策略和所述控制信息控制虚拟机网路组件是否关闭。
本发明实施例提供的虚拟环境启动完整性验证方法,通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台,可以利用固件提供的可信根操作启动服务,获取每一个待加载运行的启动组件的完整性信息,传递给云端管理平台从而及时发现被恶意篡改的组件,且可根据控制策略控制虚拟机后续的行为。
下面对本发明提供的虚拟环境启动完整性验证装置进行描述,下文描述的虚拟环境启动完整性验证装置与上文描述的虚拟环境启动完整性验证方法可相互对应参照。
如图6所示,本发明还提供一种虚拟环境启动完整性验证装置,应用于宿主机,包括:
监听模块601,用于通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
发送模块602,用于响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
本发明实施例提供的虚拟环境启动完整性验证装置,通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台,可以利用固件提供的可信根操作启动服务,获取每一个待加载运行的启动组件的完整性信息,传递给云端管理平台从而及时发现被恶意篡改的组件,且可根据控制策略控制虚拟机后续的行为。
如图7所示,本发明实施例还提供一种虚拟环境启动完整性验证系统,包括:
宿主机和应用于云端管理平台;
宿主机包括内核态和用户态;内核态包括虚拟设备和输入输出堆栈;用户态包括虚拟化代理程序和虚拟机进程;
云端管理平台包括完整性验证模块和基准值库;完整性验证模块与所述虚拟化代理程序通信连接,虚拟化代理程序与所述虚拟机进程通信连接,虚拟机进程与所述输入输出堆栈通信连接,输入输出堆栈与所述虚拟设备通信连接,所述虚拟设备与所述虚拟化代理程序通信连接。
在本发明实施例中,虚拟机进程包括统一的可扩展固件接口固件和操作系统内核,所述统一的可扩展固件接口固件包括统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动和统一的可扩展固件接口引导加载程序。
在本发明实施例中,虚拟机进程包括虚拟队列和扩展度量BootService,虚拟队列用于实现虚拟机与宿主机数据通信功能,虚拟队列位于虚拟机内部,其前端为虚拟化固件提供访问接口,虚拟化固件通过该接口向虚拟机进程发送数据,虚拟队列后端为虚拟机进程中,由于接收虚拟化固件发送的数据,并将接受到的消息传入宿主机内核态空间中,由宿主机内核通知消息监听程序读取消息。扩展度量BootService复用原有BootService的功能,计算启动组件的完整性信息,并记录到虚拟可信根中,同时将计算的完整性值通过虚拟队列传递至宿主机侧,使得宿主机中的消息监听程序可以及时获取启动组件的完整性信息。
在本发明实施例中,宿主机内核包括IO堆栈和虚拟设备;虚拟机进程将完整性信息缓存至宿主机内核空间,而不是直接与消息监听程序通信,减少因进程调度或中断等引起的内核态/用户态上下文切换,提高消息传输效率。内核空间模拟出一虚拟设备,用以通知消息监听程序,每当有完整性信息传递至宿主机内核IO堆栈中时,该设备便通知消息监听程序获取启动组件完整性信息。
在本发明实施例中,虚拟化代理程序用于在虚拟环境中提供管理、调度和优化资源,采集完整性信息传递至虚拟化管理软件,并根据虚拟化管理软件下发的控制信息控制虚拟机进程的状态。
消息监听模块用于收集各个虚拟机中启动组件的完整性信息,发送给虚拟化管理软件完整性验证模块。消息监听程序监听内核空间的虚拟设备,每次获取到内核虚拟设备发送的通知后,便读取内核空间中的启动组件完整性信息,然后将该完整性信息传输给虚拟化管理软件。
虚拟机管理模块根据虚拟化管理软件下发的控制信息控制虚拟机进程的状态,当完整性验证失败后,根据策略关闭虚拟机进程或关闭虚拟机网路组件。
在本发明实施例中,虚拟化管理软件主要包括以下模块:
1)完整性基准值库:记录所有虚拟机启动组件完整性基准值,一般情况下,一个虚拟化环境中使用的虚拟机固件是相同的,因此基准值库可维护一套固件部分的基准值供所有虚拟机验证使用。而虚拟机上的操作系统存在差异,基准值库需要为每一虚拟机创建不同的操作系统部分的基准值。
2)完整性验证模块:获取消息监听程序传递的虚拟机启动组件完整性信息,提取完整性基准值库维护的该虚拟机启动组件完整性基准值,验证该组件是否完整可信。
3)控制策略模块:当完整性验证模块验证虚拟机的某一启动组件不可信时,可根据控制策略模块设定的启动控制策略和虚拟机访问网络控制策略对虚拟机进程进行控制,如关闭虚拟机进程,或限制虚拟机的网络功能。
4)虚拟机管理模块:根据控制策略模块设定的策略,对存在不可信启动组件的虚拟机执行控制,如关闭虚拟机、限制虚拟机访问资源等。
本发明实施例提供的虚拟环境启动完整性验证系统,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,在虚拟机固件中构建一条数据通信通道,实现虚拟机与宿主机的通信,宿主机与云端管理平台通信,从而实现在有隔离需求的场景实现虚拟机与云端管理平台互通,并且,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。
图8示例了一种电子设备的实体结构示意图,如图8所示,该服务器可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行虚拟环境启动完整性验证方法,该方法包括:在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,
和/或,
通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的虚拟环境启动完整性验证方法,该方法包括:在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,
和/或,
通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种虚拟环境启动完整性验证方法,其特征在于,应用于云端管理平台,包括:
在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
2.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,所述通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息,包括:
操作系统启动前,各启动组件使用所述可信根启动服务构建度量链;
根据度量链中节点顺序依次收集各启动组件完整性度量信息;
将收集到的各启动组件完整性度量信息通过虚拟机与宿主机直连通道传递给宿主机中的监听程序;
所述云端管理平台与所述监听程序通信,接收所述监听程序发送的各启动组件的完整性信息。
3.根据权利要求1或2所述的虚拟环境启动完整性验证方法,其特征在于,所述虚拟机与宿主机直连通道为输入输出堆栈,所述输入输出堆栈包括虚拟队列和共享内存;
所述虚拟队列设置于虚拟机内部,其前端为虚拟化固件提供访问接口,虚拟化固件通过所述虚拟化固件提供访问接口向虚拟机进程发送数据;
虚拟队列后端为虚拟机进程,所述虚拟机进程用于接收虚拟化固件发送的数据,并将接收到数据传入所述共享内存中。
4.根据权利要求2所述的虚拟环境启动完整性验证方法,其特征在于,所述度量链中节点顺序依次为统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动、统一的可扩展固件接口引导加载程序和操作系统内核。
5.根据权利要求4所述的虚拟环境启动完整性验证方法,其特征在于,所述根据度量链中节点顺序依次收集各启动组件完整性度量信息,包括:
在所述统一的可扩展固件接口固件主体启动前,收集所述统一的可扩展固件接口固件主体的完整性度量信息,将所述统一的可扩展固件接口固件主体的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口固件主体的完整性度量信息通过后,加载所述统一的可扩展固件接口固件主体;
在所述统一的可扩展固件接口驱动启动前,收集所述统一的可扩展固件接口驱动的完整性度量信息,将所述统一的可扩展固件接口驱动的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口驱动的完整性度量信息通过后,加载所述统一的可扩展固件接口驱动;
在所述统一的可扩展固件接口引导加载程序启动前,收集所述统一的可扩展固件接口引导加载程序的完整性度量信息,将所述统一的可扩展固件接口引导加载程序的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口引导加载程序的完整性度量信息通过后,加载所述统一的可扩展固件接口引导加载程序;
在所述操作系统内核启动前,收集所述操作系统内核的完整性度量信息,将所述操作系统内核的完整性度量信息保存至可信根中;在验证所述操作系统内核的完整性度量信息通过后,加载所述操作系统内核。
6.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,所述根据启动组件完整性比较结果确定每一启动组件的完整性,包括:
若所述启动组件完整性度量信息与对应的固件基准值一致,则判定所述启动组件完整性正常,允许继续运行所述启动组件;
若所述启动组件完整性度量信息与对应的固件基准值不一致,根据启动控制策略控制虚拟机启动组件是否继续运行。
7.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,所述根据虚拟机操作系统内核完整性比较结果确定虚拟机操作系统内核的完整性,包括:
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值一致,则判定所述虚拟机操作系统内核完整性正常,允许继续运行所述虚拟机操作系统;
若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值不一致,根据启动控制策略控制虚拟机操作系统是否继续运行。
8.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,还包括:
在虚拟机网路功能组件启动前,通过虚拟机与宿主机直连通道接收所述虚拟机网路功能组件的完整性度量信息;
从基准值库中获取所述虚拟机网路功能组件对应的固件基准值;
将接收到的所述虚拟机网路功能组件完整性度量信息与对应的固件基准值进行比较;
若所述虚拟机网路功能组件的完整性正常,则允许所述虚拟机访问网络;
若所述虚拟机网路功能组件的完整性异常,则获取所述虚拟机访问网络控制策略;
在所述虚拟机网路功能组件的完整性异常,且,所述虚拟机访问网络控制策略为异常不允许访问网络功能时,删除对应虚拟机的虚拟网络组件。
9.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,所述可信根启动服务为统一的可扩展固件接口中已有的可信计算启动服务功能。
10.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,所述基准值库构建方法,包括:
获取同一虚拟化环境中使用的虚拟机固件的哈希值,将所述虚拟机固件的哈希值作为固件基准值;
获取不同虚拟机操作系统对应的操作系统内核基准值;
根据所述固件基准值和所述不同虚拟机操作系统对应的操作系统内核基准值构建基准值库。
11.根据权利要求1所述的虚拟环境启动完整性验证方法,其特征在于,还包括:
若虚拟机所在宿主机发生迁移,迁移前获取的虚拟机验证数据和完整性信息适用于迁移后虚拟机。
12.一种虚拟环境启动完整性验证方法,其特征在于,应用于宿主机,包括:
通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
13.根据权利要求12所述的虚拟环境启动完整性验证方法,其特征在于,还包括:
接收所述云端管理平台下发的控制信息,以及,当启动组件或操作系统内核完整性验证失败后,根据启动控制策略和所述控制信息控制虚拟机进程是否关闭。
14.根据权利要求13所述的虚拟环境启动完整性验证方法,其特征在于,还包括:
当虚拟机网络功能组件完整性验证失败后,根据虚拟机访问网络控制策略和所述控制信息控制虚拟机网路组件是否关闭。
15.一种虚拟环境启动完整性验证装置,其特征在于,应用于云端管理平台,包括:
接收模块,用于在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;
获取模块,用于从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;
比较模块,用于将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;
验证模块,用于根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。
16.一种虚拟环境启动完整性验证装置,其特征在于,应用于宿主机,包括:
监听模块,用于通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;
发送模块,用于响应于虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。
17.一种虚拟环境启动完整性验证系统,其特征在于,包括:
宿主机和应用于云端管理平台;
所述宿主机包括内核态和用户态;
所述内核态包括虚拟设备和输入输出堆栈;
所述用户态包括虚拟化代理程序和虚拟机进程;
所述云端管理平台包括完整性验证模块和基准值库;
所述完整性验证模块与所述虚拟化代理程序通信连接,所述虚拟化代理程序与所述虚拟机进程通信连接,所述虚拟机进程与所述输入输出堆栈通信连接,所述输入输出堆栈与所述虚拟设备通信连接,所述虚拟设备与所述虚拟化代理程序通信连接。
18.根据权利要求17所述的虚拟环境启动完整性验证系统,其特征在于,所述虚拟机进程包括统一的可扩展固件接口固件和操作系统内核,所述统一的可扩展固件接口固件包括统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动和统一的可扩展固件接口引导加载程序。
19.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至14任一项所述的虚拟环境启动完整性验证方法。
20.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至14任一项所述的虚拟环境启动完整性验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410228049.6A CN117806777B (zh) | 2024-02-29 | 2024-02-29 | 虚拟环境启动完整性验证方法、装置、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410228049.6A CN117806777B (zh) | 2024-02-29 | 2024-02-29 | 虚拟环境启动完整性验证方法、装置、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117806777A true CN117806777A (zh) | 2024-04-02 |
CN117806777B CN117806777B (zh) | 2024-05-10 |
Family
ID=90430330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410228049.6A Active CN117806777B (zh) | 2024-02-29 | 2024-02-29 | 虚拟环境启动完整性验证方法、装置、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117806777B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118070293A (zh) * | 2024-04-18 | 2024-05-24 | 清华大学 | 数据中心服务器操作系统内核扩展管理系统及运行方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244684A (zh) * | 2011-07-29 | 2011-11-16 | 电子科技大学 | 基于usbkey的efi可信云链引导方法 |
CN104239802A (zh) * | 2014-10-15 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于云数据中心的可信服务器设计方法 |
CN107545184A (zh) * | 2017-08-17 | 2018-01-05 | 大唐高鸿信安(浙江)信息科技有限公司 | 云主机的可信度量系统及方法 |
CN108322306A (zh) * | 2018-03-17 | 2018-07-24 | 北京工业大学 | 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法 |
CN109101284A (zh) * | 2018-07-18 | 2018-12-28 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟机启动方法、装置、设备及存储介质 |
CN113065140A (zh) * | 2021-06-02 | 2021-07-02 | 南方电网数字电网研究院有限公司 | 一种芯片化控制保护装置内嵌安全防护系统及方法 |
CN113641463A (zh) * | 2021-10-14 | 2021-11-12 | 云宏信息科技股份有限公司 | 虚拟化系统可信认证方法、系统及计算机可读存储介质 |
CN116702149A (zh) * | 2022-02-28 | 2023-09-05 | 华为技术有限公司 | 一种可信度量方法、服务器以及芯片 |
WO2023179745A1 (zh) * | 2022-03-24 | 2023-09-28 | 华为技术有限公司 | 可信验证方法及装置 |
-
2024
- 2024-02-29 CN CN202410228049.6A patent/CN117806777B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244684A (zh) * | 2011-07-29 | 2011-11-16 | 电子科技大学 | 基于usbkey的efi可信云链引导方法 |
CN104239802A (zh) * | 2014-10-15 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于云数据中心的可信服务器设计方法 |
CN107545184A (zh) * | 2017-08-17 | 2018-01-05 | 大唐高鸿信安(浙江)信息科技有限公司 | 云主机的可信度量系统及方法 |
CN108322306A (zh) * | 2018-03-17 | 2018-07-24 | 北京工业大学 | 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法 |
CN109101284A (zh) * | 2018-07-18 | 2018-12-28 | 浪潮(北京)电子信息产业有限公司 | 一种虚拟机启动方法、装置、设备及存储介质 |
CN113065140A (zh) * | 2021-06-02 | 2021-07-02 | 南方电网数字电网研究院有限公司 | 一种芯片化控制保护装置内嵌安全防护系统及方法 |
CN113641463A (zh) * | 2021-10-14 | 2021-11-12 | 云宏信息科技股份有限公司 | 虚拟化系统可信认证方法、系统及计算机可读存储介质 |
CN116702149A (zh) * | 2022-02-28 | 2023-09-05 | 华为技术有限公司 | 一种可信度量方法、服务器以及芯片 |
WO2023179745A1 (zh) * | 2022-03-24 | 2023-09-28 | 华为技术有限公司 | 可信验证方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118070293A (zh) * | 2024-04-18 | 2024-05-24 | 清华大学 | 数据中心服务器操作系统内核扩展管理系统及运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117806777B (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2880589B1 (en) | Trusted execution environment virtual machine cloning | |
RU2568295C2 (ru) | Система и способ временной защиты операционной системы программно-аппаратных устройств от приложений, содержащих уязвимости | |
CN111158767B (zh) | 基于bmc的服务器安全启动方法及装置 | |
KR20160130790A (ko) | 신뢰 커널 시작 방법 및 장치 | |
US20160335151A1 (en) | Systems and methods for providing service and support to computing devices | |
EP4116851A1 (en) | Trusted measurement method and related apparatus | |
JP6293133B2 (ja) | 被保護データー集合のネットワーク・ベース管理 | |
CN117806777B (zh) | 虚拟环境启动完整性验证方法、装置、系统、设备及介质 | |
US9021008B1 (en) | Managing targeted scripts | |
US20160342477A1 (en) | Systems and methods for providing automatic system stop and boot-to-service os for forensics analysis | |
CN110334519A (zh) | 基于双体系结构的可信计算平台的静态度量方法 | |
US10474518B1 (en) | Obtaining historical information in a device core dump | |
US20160350132A1 (en) | Systems and methods for exporting diagnostic data and securing privileges in a service operating system | |
CN114995894A (zh) | 操作系统的启动控制方法、终端设备及可读存储介质 | |
CN113641463A (zh) | 虚拟化系统可信认证方法、系统及计算机可读存储介质 | |
CN117032908B (zh) | 基于冗余架构的集成计算设备部署运行方法及系统 | |
CN115618366B (zh) | 用于服务器的验证方法及装置 | |
US8250413B2 (en) | Connection broker assignment status reporting | |
CN112685063B (zh) | 特征库更新方法、装置、网络设备及可读存储介质 | |
CN116680045A (zh) | 一种分布式多设备数据采集方法及系统 | |
CN113157386A (zh) | 一种从物理机到虚拟机的信任链构建方法及系统 | |
CN114651240A (zh) | 安全检查 | |
CN112769800B (zh) | 交换机的完整性验证方法、装置和计算机存储介质 | |
CN116881091B (zh) | 系统事件日志上报方法、装置、芯片、设备及存储介质 | |
CN112422478B (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 |