虚拟环境启动完整性验证方法、装置、系统、设备及介质与流程

文档序号:37550834发布日期:2024-04-08 13:59阅读:9来源:国知局
虚拟环境启动完整性验证方法、装置、系统、设备及介质与流程

本发明涉及计算机,尤其涉及一种虚拟环境启动完整性验证方法、装置、系统、设备及介质。


背景技术:

1、现阶段很多用户选择云端的计算、存储、网络等资源来构建计算环境,因此,云端虚拟环境安全是保证计算数据安全的关键因素,虚拟环境中启动组件完整性验证是保证虚拟环境安全的重要措施。相关技术中,对虚拟环境中启动组件完整性验证主要存在两种手段,一种是在引导操作系统阶段对前期加载运行的所有启动组件进行完整性验证,由于此时组件已经运行,如果存在被篡改的组件,该组件已经生效,已经产生了破坏行为,验证过程并不能阻止被篡改的组件运行。另一种验证虚拟机启动组件完整性的方式是使用远程认证技术,在虚拟机操作系统启动后,收集记录在虚拟可信根中的完整性信息,通过网络传输给验证方,由验证方验证后根据验证结果进行网络管控。而基于远程认证的方式,需要操作系统运行后才能发送完整性信息,如某一组件被恶意篡改,在被验证前该组件已经生效,会破坏操作系统的安全性,且远程认证的方式,在有网络隔离需求的场景中,会面临虚拟机与云管理平台无法通信的问题,无法验证所有虚拟机的完整性。


技术实现思路

1、本发明提供一种虚拟环境启动完整性验证方法、装置、系统、设备及介质,用以解决传统虚拟环境启动完整性验证方法由于验证过程滞后,不能阻止被篡改的组件运行,以及,在有网络隔离需求的场景中,会面临虚拟机与云管理平台无法通信,无法验证所有虚拟机的完整性的缺陷。

2、本发明提供一种虚拟环境启动完整性验证方法,应用于云端管理平台,包括:

3、在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;

4、从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;

5、将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;

6、根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。

7、根据本发明提供的虚拟环境启动完整性验证方法,所述通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息,包括:

8、操作系统启动前,各启动组件使用所述可信根启动服务构建度量链;

9、根据度量链中节点顺序依次收集各启动组件完整性度量信息;

10、将收集到的各启动组件完整性度量信息通过虚拟机与宿主机直连通道传递给宿主机中的监听程序;

11、所述云端管理平台与所述监听程序通信,接收所述监听程序发送的各启动组件的完整性信息。

12、根据本发明提供的虚拟环境启动完整性验证方法,所述虚拟机与宿主机直连通道为输入输出堆栈,所述输入输出堆栈包括虚拟队列和共享内存;

13、所述虚拟队列设置于虚拟机内部,其前端为虚拟化固件提供访问接口,虚拟化固件通过所述虚拟化固件提供访问接口向虚拟机进程发送数据;

14、虚拟队列后端为虚拟机进程,所述虚拟机进程用于接收虚拟化固件发送的数据,并将接收到数据传入所述共享内存中。

15、根据本发明提供的虚拟环境启动完整性验证方法,所述度量链中节点顺序依次为统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动、统一的可扩展固件接口引导加载程序和操作系统内核。

16、根据本发明提供的虚拟环境启动完整性验证方法,所述根据度量链中节点顺序依次收集各启动组件完整性度量信息,包括:

17、在所述统一的可扩展固件接口固件主体启动前,收集所述统一的可扩展固件接口固件主体的完整性度量信息,将所述统一的可扩展固件接口固件主体的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口固件主体的完整性度量信息通过后,加载所述统一的可扩展固件接口固件主体;

18、在所述统一的可扩展固件接口驱动启动前,收集所述统一的可扩展固件接口驱动的完整性度量信息,将所述统一的可扩展固件接口驱动的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口驱动的完整性度量信息通过后,加载所述统一的可扩展固件接口驱动;

19、在所述统一的可扩展固件接口引导加载程序启动前,收集所述统一的可扩展固件接口引导加载程序的完整性度量信息,将所述统一的可扩展固件接口引导加载程序的完整性度量信息保存至可信根中;在验证所述统一的可扩展固件接口引导加载程序的完整性度量信息通过后,加载所述统一的可扩展固件接口引导加载程序;

20、在所述操作系统内核启动前,收集所述操作系统内核的完整性度量信息,将所述操作系统内核的完整性度量信息保存至可信根中;在验证所述操作系统内核的完整性度量信息通过后,加载所述操作系统内核。

21、根据本发明提供的虚拟环境启动完整性验证方法,所述根据启动组件完整性比较结果确定每一启动组件的完整性,包括:

22、若所述启动组件完整性度量信息与对应的固件基准值一致,则判定所述启动组件完整性正常,允许继续运行所述启动组件;

23、若所述启动组件完整性度量信息与对应的固件基准值不一致,根据启动控制策略控制虚拟机启动组件是否继续运行。

24、根据本发明提供的虚拟环境启动完整性验证方法,所述根据虚拟机操作系统内核完整性比较结果确定虚拟机操作系统内核的完整性,包括:

25、若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值一致,则判定所述虚拟机操作系统内核完整性正常,允许继续运行所述虚拟机操作系统;

26、若所述虚拟机操作系统内核完整性度量信息与对应的虚拟机操作系统内核基准值不一致,根据启动控制策略控制虚拟机操作系统是否继续运行。

27、根据本发明提供的虚拟环境启动完整性验证方法,还包括:

28、在虚拟机网路功能组件启动前,通过虚拟机与宿主机直连通道接收所述虚拟机网路功能组件的完整性度量信息;

29、从基准值库中获取所述虚拟机网路功能组件对应的固件基准值;

30、将接收到的所述虚拟机网路功能组件完整性度量信息与对应的固件基准值进行比较;

31、若所述虚拟机网路功能组件的完整性正常,则允许所述虚拟机访问网络;

32、若所述虚拟机网路功能组件的完整性异常,则获取所述虚拟机访问网络控制策略;

33、在所述虚拟机网路功能组件的完整性异常,且,所述虚拟机访问网络控制策略为异常不允许访问网络功能时,删除对应虚拟机的虚拟网络组件。

34、根据本发明提供的虚拟环境启动完整性验证方法,所述可信根启动服务为统一的可扩展固件接口中已有的可信计算启动服务功能。

35、根据本发明提供的虚拟环境启动完整性验证方法,所述基准值库构建方法,包括:

36、获取同一虚拟化环境中使用的虚拟机固件的哈希值,将所述虚拟机固件的哈希值作为固件基准值;

37、获取不同虚拟机操作系统对应的操作系统内核基准值;

38、根据所述固件基准值和所述不同虚拟机操作系统对应的操作系统内核基准值构建基准值库。

39、根据本发明提供的虚拟环境启动完整性验证方法,还包括:

40、若虚拟机所在宿主机发生迁移,迁移前获取的虚拟机验证数据和完整性信息适用于迁移后虚拟机。

41、本发明还提供一种虚拟环境启动完整性验证方法,应用于宿主机,包括:

42、通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;

43、响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。

44、根据本发明提供的虚拟环境启动完整性验证方法,还包括:

45、接收所述云端管理平台下发的控制信息,以及,当启动组件或操作系统内核完整性验证失败后,根据启动控制策略和所述控制信息控制虚拟机进程是否关闭。

46、根据本发明提供的虚拟环境启动完整性验证方法,还包括:

47、当虚拟机网络功能组件完整性验证失败后,根据虚拟机访问网络控制策略和所述控制信息控制虚拟机网路组件是否关闭。

48、本发明还提供一种虚拟环境启动完整性验证装置,应用于云端管理平台,包括:

49、接收模块,用于在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;

50、获取模块,用于从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;

51、比较模块,用于将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;

52、验证模块,用于根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性。

53、本发明还提供一种虚拟环境启动完整性验证装置,应用于宿主机,包括:

54、监听模块,用于通过消息监听程序监听内核空间的虚拟设备,所述内核空间的虚拟设备用于在有完整性信息传递至虚拟机与宿主机直连通道中时,通知获取启动组件和操作系统内核完整性信息;

55、发送模块,用于响应于内核虚拟设备的监听结果,读取虚拟机与宿主机直连通道中的启动组件和操作系统内核完整性信息,将所述启动组件和操作系统内核完整性信息发送至云端管理平台。

56、本发明还提供一种虚拟环境启动完整性验证系统,包括:

57、宿主机和应用于云端管理平台;

58、所述宿主机包括内核态和用户态;

59、所述内核态包括虚拟设备和输入输出堆栈;

60、所述用户态包括虚拟化代理程序和虚拟机进程;

61、所述云端管理平台包括完整性验证模块和基准值库;

62、所述完整性验证模块与所述虚拟化代理程序通信连接,所述虚拟化代理程序与所述虚拟机进程通信连接,所述虚拟机进程与所述输入输出堆栈通信连接,所述输入输出堆栈与所述虚拟设备通信连接,所述虚拟设备与所述虚拟化代理程序通信连接。

63、根据本发明提供的虚拟环境启动完整性验证系统,所述虚拟机进程包括统一的可扩展固件接口固件和操作系统内核,所述统一的可扩展固件接口固件包括统一的可扩展固件接口固件主体、统一的可扩展固件接口驱动和统一的可扩展固件接口引导加载程序。

64、本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的虚拟环境启动完整性验证方法。

65、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的虚拟环境启动完整性验证方法。

66、本发明提供的虚拟环境启动完整性验证方法、装置、系统、设备及介质,通过在虚拟机固件启动前执行可信根启动服务阶段,通过虚拟机与宿主机直连通道接收每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息,所述每个启动组件的完整性度量信息及虚拟机操作系统内核完整性度量信息基于可信根启动服务收集;从基准值库中获取每个启动组件对应的固件基准值和虚拟机操作系统对应的操作系统内核基准值;将接收到的每个启动组件完整性度量信息与对应的固件基准值进行比较,以及,将接收到虚拟机操作系统内核完整性度量信息与对应的操作系统内核基准值进行比较;根据启动组件完整性比较结果确定每一启动组件的完整性,以及,根据虚拟机操作系统内核完整性比较结果验证虚拟机操作系统内核的完整性,在虚拟机固件中构建一条数据通信通道,实现虚拟机与宿主机的通信,宿主机与云端管理平台通信,从而实现在有隔离需求的场景实现虚拟机与云端管理平台互通,并且,在每一启动组件运行前便可验证该组件是否安全可信,确保待运行组件完整可信,提升虚拟机启动验证的及时性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1