一种实现虚拟机自省的方法和装置的制造方法

文档序号:8430574阅读:506来源:国知局
一种实现虚拟机自省的方法和装置的制造方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及实现虚拟机自省的方法和装置。
【背景技术】
[0002]在增强计算机安全的诸多技术中,虚拟机自省(Virtual MachineIntrospect1n, VMI)技术可以较好的对VM (Virtual Machine,虚拟机)进行安全保护。VMI系统可以是运行在VMM (Virtual Machine Monitor,虚拟机监控器)中的,VMM可以通过VMI系统从VM外部增强VM的安全性能,以实现对VM的保护。具体的,VMM可以通过VMI系统在VM外部监控VM内部的运行状态,如,VMI系统可以直接扫描VM的内存、磁盘以及监控网络行为等以对VM进行安全检查。在使用VMI技术后,由于VMI系统本身运行在VM外部,因此即使恶意软件已经感染了 VM,也无法干扰VMI系统的运行。
[0003]具体的安全检测步骤可以包括:VMI系统可以从VM中获取待检查内存数据;对获取到的待检查内存数据进行安全检查。
[0004]但是,在VMI系统对VM中的内存数据进行安全检查的同时,VM可能也正在对待检查内存数据进行访问,此时,若VMI系统在获取完成部分待检查内存数据后,VM对本地的与所述部分待检查内存数据对应的内存数据进行了修改,则导致VMI系统获取到的内存数据,与VM本地的内存数据不一致,进而导致VMI系统无法准确的对VM中的内存数据进行安全检查。

【发明内容】

[0005]本发明提供一种实现虚拟机自省的方法和装置,解决了 VMI系统无法准确的对VM中的数据进行安全检查的问题。
[0006]为达到上述目的,本发明采用如下技术方案:
[0007]第一方面,提供了一种实现虚拟机自省的方法,包括:
[0008]确定虚拟机中的待检查数据;
[0009]开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测;
[0010]当监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
[0011]当读取所述待检查数据完毕并且未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
[0012]结合第一方面,在第一方面的第一种实现方式中,所述待检查数据包括锁数据,所述锁数据用于表征所述待检查数据当前是否正在被访问;
[0013]在所述确定虚拟机中的待检查数据之后,所述方法还包括:
[0014]判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
[0015]所述开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测,包括:
[0016]若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
[0017]结合第一方面或第一方面的第一种实现方式,在第二种实现方式中,所述对所述副本进行安全检查,包括:
[0018]检查所述副本的完整性;和/或,
[0019]根据所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
[0020]结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式,在第三种实现方式中,在所述对所述副本进行安全检查之后,所述方法还包括:
[0021]若所述副本未通过所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使所述虚拟机根据所述安全检查未通过消息进行相应处理。
[0022]结合第一方面或第一方面的第一种实现方式至第一方面的第三种实现方式中任一种实现方式,在第四种实现方式中,所述方法还包括:
[0023]当监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
[0024]向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
[0025]第二方面,提供了一种实现虚拟机自省的方法,包括:
[0026]确定单元,用于确定虚拟机中的待检查数据;
[0027]读取单元,用于读取所述确定单元确定的所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
[0028]监测单元,用于通过所述硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
[0029]结束单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
[0030]安全检查单元,用于当所述读取单元读取所述待检查数据完毕并且所述监测单元未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
[0031]结合第二方面,在第二方面的第一种实现方式中,所述读取单元保存的所述副本包括锁数据,所述锁数据用于表征所述确定单元确定的所述待检查数据当前是否正在被访问;
[0032]所述装置还包括:
[0033]判断单元,用于在所述确定单元确定虚拟机中的待检查数据之后,判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
[0034]所述读取单元,具体用于若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
[0035]结合第二方面或第二方面的第一种实现方式,在第二种实现方式中,所述安全检查单元,具体用于检查所述读取单元保存的所述副本的完整性;和/或,根据所述读取单元保存的所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
[0036]结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式,在第三种实现方式中,所述装置还包括:
[0037]发送单元,用于在所述安全检查单元完成对所述读取单元保存的所述副本进行的安全检查时,若所述副本未通过所述安全检查单元进行的所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使得所述虚拟机根据所述发送单元发送的所述安全检查未通过消息进行相应处理。
[0038]结合第二方面或第二方面的第一种实现方式至第二方面的第三种实现方式中任一种实现方式,在第四种实现方式中,所述装置还包括:
[0039]获取单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
[0040]所述发送单元,还用于在所述获取单元获取所述已读取的待检查数据中被修改数据的存储地址时,向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
[0041]本发明提供的实现虚拟机自省的方法和装置,在读取所述待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明所述副本与虚拟机中的待检查数据一致,此时,可以对所述副本进行安全检查,若在读取所述待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取所述待检查数据并删除所述副本,即不对所述待检查数据进行安全检查,这样,增加安全检查的准确性。
[0042]另外,本发明还记载了在读取所述待检查数据之前,首先判断所述待检查数据的锁是否处于释放状态,只有在所述锁处于释放状态时,才读取所述待检查数据,这样,保证了在开始读取所述待检查数据时,没有其他进程对所述待检查数据进行访问,减少了访问冲突的发生次数,进而降低了在所述读取过程中已读取的待检查数据被修改的概率;进一步的,还可以读取所述锁对应的锁数据,即所述副本包括所述锁数据,这样,在读取完成所述锁数据后,所述锁数据在虚拟机中的存储地址便被存储到硬件事务内存中,所述硬件事务内存还对所述锁数据进行监测,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则不仅可以说明所述副本与虚拟机中的待检查数据一致,而且还可以说明在读取所述待检查数据的过程中,不存在其他进程访问所述待检查数据,进而更加严格的保证了所述副本与虚拟机中的待检查数据的一致性。
[0043]再有,本发明还记载了若在所述读取的过程中所述已读取的待检查数据被修改,则获取所述已读取的待检查数据中被修改数据的存储地址,并向所述虚拟机发送访问冲突消息,所述虚拟机可以根据访问冲突消息中的所述被修改数据的存储地址立即定位到发生冲突访问的位置,并确定修改所述被修改数据的进程是否为安全进程,这样,加快了虚拟机确定发生冲突访问的位置,进而提高了检查出恶意软件的效率,进而增
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1