本发明涉及中断栈,尤其涉及一种虚拟化保护guestos中断栈的方法、装置及存储介质。
背景技术:
1、中断机制是计算机系统中的基本机制之一,它是中央处理单元(centralprocessing unit,cpu)对系统某个时刻发生的某个事件做出的一种反应。cpu在接收中断源的中断请求后,会暂停当前正在执行的程序,转而去处理突发的中断事件, cpu在执行完中断服务程序后,需要返回中断返回地址继续执行程序。系统收到中断事件后,进行中断处理的时候,需要中断栈来支持函数调用。中断栈在中断过程中,可能会遭受到缓冲区溢出攻击和其他恶意操作。因此,需要对中断栈进行保护。
2、目前,对中断栈进行保护主要在操作系统层级,利用程序对中断栈状态进行监控,并在异常时利用处理机制进行处理。但在基于linux 的分区虚拟管理机制下,当前guestos中断栈可能受到其它guestos或者其它操作系统级的不当访问和修改,产生安全隐患。
技术实现思路
1、本发明实施例提供了一种虚拟化保护guestos中断栈的方法、装置及存储介质,以解决现有技术中无法对guestos中断栈进行全面保护的技术问题。
2、第一方面,本发明实施例提供了一种虚拟化保护guestos中断栈的方法,包括:
3、在中断上下文中获取中断回调函数的压栈和出栈原子操作汇编时,执行陷入监控层指令,将中断对应的程序陷入到监控层;
4、在监控层对中断栈信息进行备份,形成中断栈备份;
5、在运行至下一次压栈/出栈临界点时,启用监控层控制指令,利用所述监控层控制指令将所述中断栈备份的信息与所述guestos的操作系统层中对应的中断栈中的信息进行比较,并根据比较结果对所述guestos的操作系统层中断栈进行保护。
6、第二方面,本发明实施例还提供了一种虚拟化保护guestos中断栈的装置,包括:
7、执行模块,用于在中断上下文中获取中断回调函数的压栈和出栈原子操作汇编时,执行陷入监控层指令,将中断对应的程序陷入到监控层;
8、备份模块,用于在监控层对中断栈信息进行备份,形成中断栈备份;
9、保护模块,用于在运行至下一次压栈/出栈临界点时,启用监控层控制指令,利用所述监控层控制指令将所述中断栈备份的信息与所述guestos的操作系统层中对应的中断栈中的信息进行比较,并根据比较结果对所述guestos的操作系统层中断栈进行保护。
10、第三方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的虚拟化保护guestos中断栈的方法。
11、本发明实施例提供的虚拟化保护guestos中断栈的方法、装置及存储介质,通过在中断上下文中获取中断回调函数的压栈和出栈原子操作汇编时,执行陷入监控层指令,将中断对应的程序陷入到监控层;在监控层对中断栈信息进行备份,形成中断栈备份;在运行至下一次压栈/出栈临界点时,启用监控层控制指令,利用所述监控层控制指令将所述中断栈备份的信息与所述guestos的操作系统层中对应的中断栈中的信息进行比较,并根据比较结果对所述guestos的操作系统层中断栈进行保护。利用监控层对操作系统层级中断的截获,从更高权限级别上实现实时对guestos中断栈的监控与防护,解决中断栈在操作系统层级会被恶意访问修改以及被破坏后栈数据无法保证恢复的问题。
1.一种虚拟化保护guestos中断栈的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,在所述在中断上下文中获取中断回调函数压栈和出栈原子操作汇编时之前,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述根据比较结果对所述guestos的操作系统层中断栈进行保护,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据比较结果对所述guestos的操作系统层中断栈进行保护,还包括:
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述压栈/出栈临界点,包括:
8.一种虚拟化保护guestos中断栈的装置,其特征在于,包括:
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7任一所述的虚拟化保护guestos中断栈的方法。