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.一种虚拟机内存的漏洞修复方法,其特征在于,包括:/n确定漏洞代码所在的第一内存区域;/n将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;/n在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。/n
【技术特征摘要】
1.一种虚拟机内存的漏洞修复方法,其特征在于,包括:
确定漏洞代码所在的第一内存区域;
将漏洞补丁加载到第二内存区域中,以对所述第二内存区域中的漏洞代码进行漏洞修复;所述第二内存区域为与所述第一内存区域对应的影子内存区域;所述第二内存区域中保存有所述漏洞代码;
在所述第二内存区域中的漏洞代码修复完成之后,控制所述虚拟机的运行进程从运行第一代码变为运行第二代码;所述第一代码为第一内存区域中的代码,所述第二代码为经过漏洞修复的所述第二内存区域中的代码。
2.根据权利要求1所述的方法,其特征在于,所述控制所述虚拟机的运行进程从运行第一代码变为运行第二代码的步骤,包括:
获取所述运行进程的控制寄存器页表;
将所述控制寄存器页表中的第一分页挂载到第二分页中;所述第一分页与所述第一内存区域对应,所述第二分页与所述第二内存区域对应。
3.根据权利要求2所述的方法,其特征在于,所述将所述控制寄存器页表中的第一分页挂载到第二分页中的步骤,包括:
锁定所述第一分页;
保存虚拟机CPU的上下文信息;
根据扩展页表技术,将所述运行程序中所述第一分页的地址替换为所述第二分页的地址;
解除所述第一分页的锁定。
4.根据权利要求1所述的方法,其特征在于,所述将漏洞补丁加载到第二内存区域中的步骤之前,还包括:
确定所述第一内存区域的大小;
在外部内存中创建与所述第一内存区域的大小对应的第二内存区域;所述外部内存为虚拟机主内存以外的内存区域;
将所述第一内存区域中的目标代码拷贝到所述第二内存区域中;其中,所述目标代码中包含有所述漏洞代码。
5.根据权利要求4所述的方法,其特征在于,所述在外部内存中创建与所述第一内存区域的大小对应的第二内存区域的步骤之后,还包括:
在所述外部内存中创建与所述第一内存区域的大小对应的备份内存区域;
...
【专利技术属性】
技术研发人员:陈楠,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。