虚拟机内存的漏洞修复方法、装置及计算机设备制造方法及图纸

技术编号:22565408 阅读:13 留言:0更新日期:2019-11-16 12:09
本发明专利技术涉及虚拟机内存的漏洞修复方法、装置及计算机设备,属于漏洞修复技术领域。该方法包括:确定漏洞代码所在的第一内存区域;将漏洞补丁加载到第二内存区域中,以对第二内存区域中的漏洞代码进行漏洞修复;第二内存区域为与第一内存区域对应的影子内存区域;第二内存区域中保存有漏洞代码;控制虚拟机的运行进程从运行第一代码变为运行第二代码;第一代码为第一内存区域中的代码,第二代码为经过漏洞修复的第二内存区域中的代码。上述技术方案,在影子内存区域中修复漏洞代码,并控制运行进程运行漏洞修复后的影子内存区域,不需要修改主内存中的代码就能保证虚拟机业务的正常运行。

The method, device and computer equipment of repairing the memory hole of virtual machine

The invention relates to a vulnerability repair method, device and computer device of virtual machine memory, belonging to the technical field of vulnerability repair. The method includes: determining the first memory area of the vulnerability code; loading the vulnerability patch into the second memory area to fix the vulnerability code in the second memory area; the second memory area is the shadow memory area corresponding to the first memory area; the second memory area holds the vulnerability code; controlling the running process of the virtual machine from running the first code To run the second code; the first code is the code in the first memory area, and the second code is the code in the second memory area after vulnerability repair. In the above technical scheme, fix the vulnerability code in the shadow memory area, and control the shadow memory area after the vulnerability repair of the running process. Without modifying the code in the main memory, the normal operation of the virtual machine business can be guaranteed.

【技术实现步骤摘要】
虚拟机内存的漏洞修复方法、装置及计算机设备
本专利技术涉及漏洞修复
,特别是涉及虚拟机内存的漏洞修复方法、装置、计算机设备及存储介质。
技术介绍
当前云技术为了充分利用资源,可以在实体设备上安装由虚拟机软件模拟出的一台虚拟机,即逻辑上的服务器,在该虚拟机运行过程中,用户可以像对真实物理机的操作一样对虚拟机进行操作。例如,当检测到虚拟机中出现漏洞时,可以通过升级代码的方式,对该高危漏洞进行修复,但是,完成系统级漏洞修复的前提是关闭或者重新启动该虚拟机,如此便会出现虚拟机间断或者停机的问题;由于虚拟机中同时运行多个应用程序,若关闭或者重新启动该虚拟机,会造成虚拟机业务的中断。针对上述问题,传统的解决方案是直接将漏洞修复补丁注入到内存区域中,修改内存区域中漏洞对应的程序代码。但是由于系统运行环境的多样性以及漏洞的复杂性,直接对现有内存代码进行修改的风险是极高的,一旦出现错误将不可挽回。
技术实现思路
基于此,本专利技术实施例提供了虚拟机内存的漏洞修复方法、装置、计算机设备及存储介质,可以将漏洞补丁加载到影子内存中,无需直接修改现有内存,保证虚拟机业务的正常运行。本专利技术实施例的内容如下:第一方面,本专利技术实施例提供一种虚拟机内存的漏洞修复方法,包括以下步骤:确定漏洞代码所在的第一内存区域;将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。第二方面,本专利技术实施例提供一种虚拟机内存的漏洞修复装置,包括:区域确定模块,用于确定漏洞代码所在的第一内存区域;漏洞修复模块,用于将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;进程控制模块,用于在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。第三方面,本专利技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:确定漏洞代码所在的第一内存区域;将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。第四方面,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:确定漏洞代码所在的第一内存区域;将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。上述虚拟机内存的漏洞修复方法、装置、计算机设备和存储介质,确定漏洞代码所在的第一内存区域,创建第一内存区域的影子内存区域,在影子内存区域中修复漏洞代码,并控制运行进程运行漏洞修复后的影子内存区域,不需要修改主内存中的代码就能保证虚拟机业务的正常运行。附图说明图1为一个实施例中虚拟机内存的漏洞修复方法的应用环境图;图2为一个实施例中虚拟机内存的漏洞修复方法的流程示意图;图3为一个实施例中虚拟化内存的结构示意图;图4为一个实施例中内存分页的结构示意图;图5为另一个实施例中虚拟化内存的结构示意图;图6为另一个实施例中内存分页的结构示意图;图7为另一个实施例中虚拟机内存的漏洞修复方法的流程示意图;图8为再一个实施例中虚拟机内存的漏洞修复方法的流程示意图;图9为一个实施例中虚拟机内存的漏洞修复装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。本申请提供的虚拟机内存的漏洞修复方法可以应用于如图1所示的计算机设备中。该计算机设备可以是服务器,也可以是终端设备,其内部结构图可以如图1所示。该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置等。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现虚拟机内存的漏洞修复方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行虚拟机内存的漏洞修复方法。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等,计算机设备的网络接口用于与外部的终端通过网络连接通信。其中,该计算机设备为服务器时,可以用独立的服务器或者是多个服务器组成的服务器集群来实现;该计算机设备为终端设备时,可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。本专利技术实施例提供一种虚拟机内存的漏洞修复方法、装置、计算机设备及存储介质。以下分别进行详细说明。在一个实施例中,如图2所示,提供了一种虚拟机内存的漏洞修复方法。以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:S201、确定漏洞代码所在的第一内存区域。首先对虚拟化技术进行解释:虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,本文档来自技高网...

【技术保护点】
1.一种虚拟机内存的漏洞修复方法,其特征在于,包括:/n确定漏洞代码所在的第一内存区域;/n将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;/n在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。/n

【技术特征摘要】
1.一种虚拟机内存的漏洞修复方法,其特征在于,包括:
确定漏洞代码所在的第一内存区域;
将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;
在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。


2.根据权利要求1所述的方法,其特征在于,所述控制所述虚拟机的运行进程从运行第一代码变为运行第二代码的步骤,包括:
获取所述运行进程的控制寄存器页表;
将所述控制寄存器页表中的第一分页挂载到第二分页中;所述第一分页与所述第一内存区域对应,所述第二分页与所述第二内存区域对应。


3.根据权利要求2所述的方法,其特征在于,所述将所述控制寄存器页表中的第一分页挂载到第二分页中的步骤,包括:
锁定所述第一分页;
保存虚拟机CPU的上下文信息;
根据扩展页表技术,将所述运行程序中所述第一分页的地址替换为所述第二分页的地址;
解除所述第一分页的锁定。


4.根据权利要求1所述的方法,其特征在于,所述将漏洞补丁加载到第二内存区域中的步骤之前,还包括:
确定所述第一内存区域的大小;
在外部内存中创建与所述第一内存区域的大小对应的第二内存区域;所述外部内存为虚拟机主内存以外的内存区域;
将所述第一内存区域中的目标代码拷贝到所述第二内存区域中;其中,所述目标代码中包含有所述漏洞代码。


5.根据权利要求4所述的方法,其特征在于,所述在外部内存中创建与所述第一内存区域的大小对应的第二内存区域的步骤之后,还包括:
在所述外部内存中创建与所述第一内存区域的大小对应的备份内存区域;
...

【专利技术属性】
技术研发人员:陈楠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1