虚拟机敏感文件的保护方法和装置转让专利

申请号 : CN201610044452.9

文献号 : CN105718810B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李博师斌何珊沃天宇

申请人 : 北京航空航天大学

摘要 :

本发明提供了一种虚拟机敏感文件的保护方法和装置。该方法包括:截获I/O操作指令,I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号;根据对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;若确定进行I/O操作的文件是预设的只读敏感文件,则判断I/O操作是否为O操作;若确定I/O操作为O操作,则禁止对进行I/O操作的文件的O操作;若确定I/O操作为I操作,则允许对进行I/O操作的文件的I操作,并将I操作的文件缓存到内存中的内存页设置为只读内存页。该方法实现了对敏感文件的缓存层和IO层中的多重保护。

权利要求 :

1.一种虚拟机敏感文件的保护方法,其特征在于,包括:

截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号;

根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;

若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作;

若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作;

若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页;

监测是否有以所述只读内存页为目标内存页的I/O操作或以所述只读内存页为目标内存页的除I/O操作外的写操作;

若监测到有以所述只读内存页为目标内存页的I/O操作,则判断对应I/O操作的文件是否为预设的另一只读敏感文件;

若所述对应I/O操作的文件不是预设的另一只读敏感文件,则解除对应只读内存页的只读限制;

其中,所述O操作是对虚拟磁盘文件的写入操作,所述O操作用于将内存缓存中的文件写入到虚拟磁盘中;

所述I操作是对虚拟磁盘文件的读取操作,所述I操作用于从虚拟磁盘中读取所需的文件。

2.根据权利要求1所述的方法,其特征在于,所述根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件之后,还包括:若确定所述进行I/O操作的文件不是预设的只读敏感文件,则判断所述进行I/O操作的文件是否为预设的不可访问敏感文件;

若确定所述进行I/O操作的文件为预设的不可访问敏感文件,则禁止对所述进行I/O操作的文件的I/O操作。

3.根据权利要求2所述的方法,其特征在于,所述截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号之前,还包括:根据文件保护等级,将所述预设的敏感文件设置为只读敏感文件和不可访问敏感文件;

将所述预设的只读敏感文件及所述预设的不可访问敏感文件的对应的磁盘数据块号分别进行存储。

4.根据权利要求1-3任一项所述的方法,其特征在于,所述监测是否有以所述只读内存页为目标内存页的I/O操作或除I/O操作外的写操作之后,还包括:若监测到有以所述只读内存页为目标内存页的除I/O操作外的写操作,则查看对应的只读内存页的页面类型是否为缓存页;

若确定对应的只读内存页的页面类型不是缓存页,则解除对应只读内存页的只读限制。

5.一种虚拟机敏感文件的保护装置,其特征在于,包括:

截获模块,用于截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的对象对应的磁盘数据块号;

判断模块,用于根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;

所述判断模块,还用于若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作;

禁止操作模块,用于若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作;

允许操作模块,用于若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页;

监测模块,用于监测是否有以所述只读内存页为目标内存页的I/O操作或以所述只读内存页为目标内存页的除I/O操作外的写操作;

所述判断模块还用于若监测到有以所述只读内存页为目标内存页的I/O操作,则判断对应I/O操作的文件是否为预设的另一只读敏感文件;

解除限制模块,用于若所述对应I/O操作的文件不是预设的另一只读敏感文件,则解除对应只读内存页的只读限制;

其中,所述O操作是对虚拟磁盘文件的写入操作,所述O操作用于将内存缓存中的文件写入到虚拟磁盘中;

所述I操作是对虚拟磁盘文件的读取操作,所述I操作用于从虚拟磁盘中读取所需的文件。

6.根据权利要求5所述的装置,其特征在于,

所述判断模块,还用于所述根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件之后,若确定所述进行I/O操作的文件不是预设的只读敏感文件,则判断所述进行I/O操作的文件是否为预设的不可访问敏感文件;

所述禁止操作模块,还用于若确定所述进行I/O操作的文件为预设的不可访问敏感文件,则禁止对所述进行I/O操作的文件的I/O操作。

7.根据权利要求6所述的装置,其特征在于,还包括:设置模块和存储模块;

所述设置模块,用于所述截获模块截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号之前,根据文件保护等级,将所述预设的敏感文件设置为只读敏感文件和不可访问敏感文件;

所述存储模块,用于将所述预设的只读敏感文件及所述预设的不可访问敏感文件对应的磁盘数据块号分别进行存储。

8.根据权利要求5-7任一项所述的装置,其特征在于,还包括:查看模块;

所述查看模块,用于所述监测模块监测是否有以所述只读内存页为目标内存页的I/O操作或除I/O操作外的写操作之后,若监测到有以所述只读内存页为目标内存页的除I/O操作外的写操作,则查看对应的只读内存页的页面类型是否为缓存页;

所述解除限制模块,还用于若确定对应的只读内存页的页面类型不是缓存页,则解除对应只读内存页的只读限制。

说明书 :

虚拟机敏感文件的保护方法和装置

技术领域

[0001] 本发明实施例涉及虚拟机安全技术领域,尤其涉及一种虚拟机敏感文件的保护方法和装置。

背景技术

[0002] 随着互联网的高速发展,计算机网络逐渐融入人们的日常生活,成为人们在生活和工作上不可或缺的工具。但是,由于恶意程序如计算机病毒、木马的层出不穷,也为计算机的安全问题带来了新的挑战。在这些恶意程序对计算机操作系统进行破坏后,会给人们的生活和工作带来诸多不便甚至是巨大的经济损失。
[0003] 在恶意程序对计算机操作系统进行攻击时,最主要的是攻击对象是用户认为非常重要的,不能在用户未知的情况下进行更改甚至是读取的敏感文件。针对恶意程序对敏感文件的攻击具有隐蔽性、传染性、非授权性和破坏性等特征,出现了虚拟化技术,其具备敏感的洞察力、良好的隔离性和灵活的干涉能力,为敏感文件的保护提供了新的机遇。
[0004] 在虚拟化技术中,为了防御恶意程序的攻击,对敏感文件进行保护,现有技术中主要有事件截获的敏感文件保护方法和对敏感文件进行加密和数字签名的保护方法。在事件截获的敏感文件保护方法中主要通过截获IO层中敏感文件相关系统调用事件,I/O操作事件,并与相关上下文进行分析与相关行为规则对比,判断是否为恶意攻击进而进行保护的方法。在对敏感文件进行加密和数字签名的保护方法中,也是对IO层中的敏感文件进行加密和数字签名的保护方法。
[0005] 所以面对恶意程序对缓存层中的敏感文件的攻击,现有技术中并未有行之有效的对敏感文件的保护方法,所以针对恶意程序对敏感文件进行攻击的问题亟需一种针对缓存层和IO层的对敏感文件进行多重保护的方法。

发明内容

[0006] 本发明实施例提供一种虚拟机敏感文件的保护方法和装置,实现了对缓存层和IO层中的敏感文件的多重保护。
[0007] 本发明实施例提供一种虚拟机敏感文件的保护方法,包括:
[0008] 截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号;
[0009] 根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作;
[0010] 若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作;
[0011] 若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页。
[0012] 本发明实施例提供一种虚拟机敏感文件的保护装置,包括:
[0013] 截获模块,用于截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的对象对应的磁盘数据块号。
[0014] 判断模块,用于根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;
[0015] 所述判断模块,还用于若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作;
[0016] 禁止操作模块,用于若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作;
[0017] 允许操作模块,用于若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页。
[0018] 本发明实施例提供一种虚拟机敏感文件的保护方法和装置。通过截获I/O操作指令,I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号;根据对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件;若确定进行I/O操作的文件是预设的只读敏感文件,则判断I/O操作是否为O操作;若确定I/O操作为O操作,则禁止对进行I/O操作的文件的O操作;若确定I/O操作为I操作,则允许对进行I/O操作的文件的I操作,并将I操作的文件缓存到内存中的内存页设置为只读内存页。该方法实现了敏感文件的缓存层和IO层中的多重保护。

附图说明

[0019] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1为本发明虚拟机敏感文件的保护方法实施例一的流程图;
[0021] 图2为本发明虚拟机敏感文件的保护方法实施例二的流程图;
[0022] 图3为本发明虚拟机敏感文件的保护方法实施例三的流程图;
[0023] 图4为本发明虚拟机敏感文件的保护装置实施例一的结构示意图;
[0024] 图5为本发明虚拟机敏感文件的保护装置实施例二的结构示意图;
[0025] 图6为本发明虚拟机敏感文件的保护装置实施例三的结构示意图。

具体实施方式

[0026] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0027] 图1为本发明虚拟机敏感文件的保护方法实施例一的流程图,如图1所示,本实施例的执行主体为虚拟机监控器或承载有虚拟机监控器和虚拟机的计算机、笔记本电脑等终端设备。本实施例提供的虚拟机敏感文件的保护方法包括:
[0028] 步骤101,截获I/O操作指令,I/O操作指令中携带进行I/O操作文件对应的磁盘数据块号。
[0029] 本实施例中,虚拟机监控器是安装在计算机或笔记本电脑等终端设备上承载并监控一个或多个虚拟机操作的软件。
[0030] 本实施例中,I/O操作是指在虚拟机上运行的操作系统对虚拟磁盘文件的读写操作。具体地,当I/O操作为I操作时,操作系统从虚拟磁盘中进行所需的文件的读取,当I/O操作为O操作时,操作系统将内存缓存中相应的文件写入到虚拟磁盘中。
[0031] 本实施例中,在操作系统对虚拟磁盘文件进行I/O操作时,截获I/O操作指令。在I/O操作指令中携带进行I/O操作文件对应的磁盘数据块号。
[0032] 步骤102,根据对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件。
[0033] 本实施例中,预设的敏感文件是指预先存储在虚拟机的虚拟磁盘中的用户认为非常重要的文件。本实施例中,预设的敏感文件包括预设的只读敏感文件。只读敏感文件是指预先存储在虚拟机的虚拟磁盘中用户认为非常重要的并在用户未知的情况下只能进行读取的文件。
[0034] 本实施例中,预设的敏感文件的设置可根据用户的需求进行更新。
[0035] 本实施例中,可将预设的只读敏感文件对应的磁盘数据块号以列表、名单或其他形式进行存储。
[0036] 本实施例中,根据进行I/O操作的文件对应的磁盘数据块号,与预先存储的预设的只读敏感文件对应的磁盘数据块号进行比对,判断进行I/O操作的文件是否为预设的只读敏感文件。
[0037] 步骤103,若确定进行I/O操作的文件是预设的只读敏感文件,则判断I/O操作是否为O操作。
[0038] 本实施例中,将进行I/O操作文件对应的磁盘数据块号,与以名单、列表或其他形式存储的预设的只读敏感文件对应的磁盘数据块号进行比对后,若进行I/O操作的文件对应的磁盘数据块号存在于预设的只读敏感文件对应的磁盘数据块号中,则确定进行I/O操作的文件是预设的只读敏感文件。
[0039] 在确定进行I/O操作的文件是预设的只读敏感文件后,判断I/O操作是否为O操作。
[0040] 其中,O操作是将内存缓存中的只读敏感文件写入到虚拟磁盘中。
[0041] 步骤104,若确定I/O操作为O操作,则禁止对进行I/O操作的文件的O操作。
[0042] 本实施例中,若确定该I/O操作为O操作,即是将内存缓存中的预设的只读敏感文件写入到虚拟磁盘中,则禁止对进行I/O操作的文件的O操作。
[0043] 本实施例中,由于预先将用户认为非常重要的敏感文件并在用户未知的情况下只能进行读取的文件设置为只读敏感文件。所以正常应用程序只会对该预设的只读敏感文件进行I操作,当应用程序对该预设的只读敏感程序进行O操作时,说明该应用程序为恶意程序,试图将用户认为非常重要的敏感文件进行篡改,对敏感文件篡改后写到虚拟磁盘中,当对虚拟磁盘中的敏感文件进行篡改后,使虚拟磁盘中敏感文件的完整性遭到破坏,造成对虚拟磁盘的攻击。
[0044] 由于预先将用户认为非常重要的敏感文件设置为只读敏感文件,在恶意程序对预设的只读敏感文件进行O操作时,由于该敏感文件设置为只读敏感文件,对该预设的只读敏感文件只能进行I操作不能O操作,所以在对预设的只读敏感文件进行O操作时,进行禁止,使内存缓存中的预设的只读敏感文件和虚拟磁盘中的预设的只读敏感文件都能够获得保护,防止恶意程序的攻击。
[0045] 步骤105,若确定I/O操作为I操作,则允许对进行I/O操作的文件的I操作,并将I操作的文件缓存到内存中的内存页设置为只读内存页。
[0046] 本实施例中,若确定所进行I/O操作为对预设的只读敏感文件的I操作,则说明该应用程序为正常的应用程序,则允许对进行I/O操作的文件的I操作。
[0047] 在对预设的只读敏感文件进行I操作后,将I操作的文件缓存到内存中的内存页设置为只读内存页。在恶意程序对内存缓存中的设置为只读内存页进行写入时,将发生权限错误,阻止了恶意程序对预设的只读敏感文件的篡改。
[0048] 本实施例中,若进行I/O操作的文件不是预设的只读敏感文件,说明对该文件进行I/O操作的应用程序为正常的应用程序,则允许对该文件的I/O操作。
[0049] 本实施实例提供的虚拟机敏感文件的保护方法,通过截获I/O操作指令,I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号;根据对应的磁盘数据块号,判断进行I/O操作的对象是否为预设的敏感文件;若确定进行I/O操作的文件是预设的只读敏感文件,则判断I/O操作是否为O操作;若确定I/O操作为O操作,则禁止对进行I/O操作的文件的O操作;若确定I/O操作为I操作,则允许对进行I/O操作的文件的I操作,并将I操作的文件缓存到内存中的内存页设置为只读内存页。将在虚拟磁盘或内存缓存中的预设的只读敏感文件只能进行I操作不能进行O操作,当恶意程序试图对内存缓存和虚拟磁盘中的预设的只读敏感文件进行O操作时,被禁止操作,对应用程序和内存缓存之间,及内存缓存和虚拟磁盘之间的敏感文件的操作进行限制,实现了对敏感文件的缓存层和IO层中的多重保护。
[0050] 图2为本发明虚拟机敏感文件的保护方法实施例二的流程图,如图2所示,本实施例的执行主体为虚拟机监控器或承载有虚拟机监控器和虚拟机的计算机、笔记本电脑等终端设备。本实施例提供的虚拟机敏感文件的保护方法包括:
[0051] 步骤201,根据文件保护等级,将预设的敏感文件设置为只读敏感文件和不可访问敏感文件,将预设的只读敏感文件及预设的不可访问敏感文件对应的磁盘数据块号分别进行存储。
[0052] 本实施例中,用户根据预设的敏感文件是否保密,为预设的敏感文件设置文件保护等级。虚拟机监控器根据文件保护等级,将预设的敏感文件设置为只读敏感文件和不可访问敏感文件。当敏感文件为一级保护文件,即保密敏感文件时,将该敏感文件预设为不可访问敏感文件,当敏感文件为二级保护文件,即不保密敏感文件时,将该敏感文件预设为只读敏感文件。
[0053] 将敏感文件设置为只读敏感文件和不可访问敏感文件后,存储在虚拟磁盘中,并将预设的只读敏感文件及预设的不访问读敏感文件对应的磁盘数据块号以名单、列表或其他形式进行存储。可将预设的只读敏感文件的对应的磁盘数据块号与预设的不可访问敏感文件的对应的磁盘数据块号分开进行存储。
[0054] 步骤202,截获I/O操作指令,I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号。
[0055] 本实施例中步骤202和本发明虚拟机敏感文件的保护方法实施例一中的步骤101相同,本实施例中不再赘述。
[0056] 步骤203,根据对应的磁盘数据块号,判断进行I/O操作的对象是否为预设的敏感文件,若是,则执行步骤204,若否,则执行步骤209。
[0057] 本实施例中,将进行I/O操作的对象对应的磁盘数据块号,与预先存储的预设的只读敏感文件和预设的不可访问敏感文件对应的磁盘数据块号进行比对后,若进行I/O操作的文件对应的磁盘数据块号存在于预设的只读敏感文或不可访问敏感文件对应的磁盘数据块号中,则确定进行I/O操作的文件是预设的敏感文件,否则确定进行I/O操作的文件不是预设的敏感文件。
[0058] 步骤204,判断进行I/O操作的文件是否为预设的只读敏感文件,若是,则执行步骤205,若否,则执行步骤208。
[0059] 本实施例中,在确定进行I/O操作的文件对应的磁盘数据块号为预设的敏感文件后,判断进行I/O操作的文件对应的磁盘数据块号是否存在于预设的只读敏感文件对应的磁盘数据块号中,若是,则确定进行I/O操作的文件为预设的只读敏感文件,若确定进行I/O操作的文件对应的磁盘数据块号存在于预设的不可访问敏感文件对应的磁盘数据块号中,则确定进行I/O操作的文件为预设的不可访问敏感文件。
[0060] 步骤205,判断I/O操作是否为O操作,若是,则执行步骤206,若否,则执行步骤207。
[0061] 本实施例中,O操作是将内存缓存中的预设的只读敏感文件写入到虚拟磁盘中。
[0062] 本实施例中,通过判断I/O操作是否为O操作来判断对预设的只读敏感文件的操作是否为正常应用程序的I/O操作,由于在敏感文件预设为只读敏感文件的情况下,正常的应用程序不会对该敏感文件进行写操作,而恶意程序需要通过O操作篡改敏感文件,以对缓存层和IO层进行攻击。
[0063] 步骤206,禁止对进行I/O操作的文件的O操作。
[0064] 本实施例中,若确定该I/O操作为O操作,即是将内存缓存中的预设的只读敏感文件写入到虚拟磁盘中,则禁止对进行I/O操作的文件的O操作。
[0065] 在步骤206执行后,执行步骤210。
[0066] 步骤207,允许对进行I/O操作的文件的I操作,并将I操作的文件缓存到内存中的内存页设置为只读内存页。
[0067] 本实施例中,若判断所进行I/O操作为对预设的只读敏感文件的I操作,则说明该应用程序为正常的应用程序,则允许对进行I/O操作的文件的I操作。
[0068] 在对预设的只读敏感文件进行I操作后,将I操作的预设的只读敏感文件缓存到内存中的内存页设置为只读内存页。在恶意程序对内存缓存中的设置为只读内存页的文件进行写入时,将发生权限错误,阻止了恶意程序对预设的只读敏感文件的篡改。
[0069] 在步骤207执行后,执行步骤210。
[0070] 步骤208,确定进行I/O操作的文件是预设的不可访问敏感文件,禁止对进行I/O操作的对象的I/O操作。
[0071] 本实施例中,确定进行I/O操作的文件为预设的不可访问敏感文件,则说明对该预设的不可访问敏感文件的I/O操作不是正常应用程序进行的I/O操作,因为正常应用程序不会对预设的不可访问敏感文件进行I/O操作。说明该应用程序为恶意程序,欲通过对预设的不可访问敏感文件进行I/O操作对该敏感文件进行篡改,由于该敏感文件设置为了不可访问,当恶意程序对该敏感文件进行I/O操作时,发生权限错误,禁止了对该预设的不可访问敏感文件的I/O操作。
[0072] 在步骤208执行后,执行步骤210。
[0073] 步骤209,允许进行I/O操作的文件的I/O操作。
[0074] 本实施例中,判断进行I/O操作的文件是否为预设的敏感文件时,若确定进行I/O操作的文件不为预设的敏感文件,则说明进行I/O操作的文件既不是预设的只读敏感文件也不是预设的不可读敏感文件,而为普通的文件,是正常的应用程序对普通文件的I/O操作,则允许对进行I/O操作的文件的I/O操作。
[0075] 在步骤209执行后,执行步骤210。
[0076] 步骤210,结束。
[0077] 本实施例提供的虚拟机敏感文件的保护方法,通过根据文件保护等级,将预设的敏感文件设置为只读敏感文件和不可访问敏感文件;将预设的只读敏感文件和预设的不可访问敏感文件对应的磁盘数据块号进行存储,在截获I/O操作时,对进行I/O操作的文件进行是否为预设的只读敏感文件和预设的不可读敏感文件进行判断,当进行I/O操作的文件为预设的不可访问敏感文件时,禁止对该预设的不可访问敏感文件的I/O操作,使该不可访问敏感文件只能存在于虚拟磁盘中,进一步加强了对用户认为非常重要的保密的敏感文件的保护。当进行I/O操作的文件为预设的只读敏感文件时,使用户认为非常重要的只可以读取的敏感文件在IO层和缓存层中只能进行I操作,不能进行O操作,实现了对敏感文件在IO层和缓存层的多重保护。
[0078] 图3为本发明虚拟机敏感文件的保护方法实施例三的流程图,本实施例提供的虚拟机敏感文件的保护方法在本发明虚拟机敏感文件的保护方法实施例一步骤105之后或本发明虚拟机敏感文件的保护方法实施例二步骤210之后,还包括:
[0079] 步骤301,监测是否有以只读内存页为目标内存页的I/O操作或除I/O操作外的写操作,若是,则执行步骤302,否则,继续执行步骤301。
[0080] 本实施例中,在将预设的只读敏感文件缓存到内存中的内存页,并将该对应的内存页设置为只读内存页后,由于内存缓存随时可能被释放掉,当设置为只读内存页的内存缓存被释放掉后,如果还将该内存页设置为只读内存页,将发生不可预知的错误。
[0081] 所以,本实施例中,以监测只读内存页是否被重用的方法来判断该只读内存页是否进行只读权限的解除。
[0082] 本实施例中,当监测到有以只读内存页为目标内存页的I/O操作或除O操作的其他写操作的方式来监测该只读内存页是否被重用。
[0083] 本实施例中,除I/O操作外的写操作可以是由命名产生的写操作,或由计算产生的写操作,或其他的除I/O操作外的写操作,本实施例中对此不做限定。
[0084] 步骤302,判断监测到的是否为以只读内存页为目标内存页的I/O操作,若是,则执行步骤303,若否,则执行步骤306。
[0085] 步骤303,判断对应I/O操作的文件是否为预设的另一只读敏感文件,若是,则执行步骤304,否则执行步骤305。
[0086] 本实施例中,若监测到有以只读内存页为目标内存页的I/O操作,说明该只读内存页中原有的预设的只读敏感文件已被释放,此次I/O操作为针对于其他文件的I/O操作。判断对应I/O操作的文件是否为预设的另一只读敏感文件。
[0087] 步骤304,维持对应只读内存页的只读权限。
[0088] 本实施例中,若对应I/O操作的文件是预设的另一只读敏感文件,则维持以只读内存页为目标内存页的只读权限。
[0089] 具体地,本实施例中,若对应的I/O操作为I操作,则可将该预设的另一只读敏感文件进行I操作。若对应的I/O操作为O操作,则首先解除对应只读内存页的只读权限,将预设的另一只读敏感文件O操作后,重新设置该对应的内存页为只读内存页。
[0090] 在步骤304执行后,执行步骤309。
[0091] 步骤305,解除对应只读内存页的只读限制。
[0092] 本实施例中,若对应I/O操作的文件不是预设的另一只读敏感文件,则说明进行I/O操作的文件为普通文件,并非敏感文件,则解除对应只读内存页的只读限制,使该内存页能够进行I/O操作。
[0093] 在步骤305执行后,执行步骤309。
[0094] 步骤306,查看对应的只读内存页的页面类型是否为缓存页,若是,则执行步骤307,否则执行步骤308。
[0095] 本实施例中,当判断到的不是以只读内存页为目标内存页的I/O操作,则说明监测到的为以只读内存页为目标内存页的除O操作外的写操作。在以只读内存页为目标内存页的除O操作外的写操作中,可以是由命名产生的写操作,或由计算产生的写操作,或其他的除O操作外的写操作,本实施例中对此不做限定。
[0096] 本实施例中,具体可通过查看Mmap结构体中对应的只读内存页,查看该只读内存页的页面类型是否为缓存页。
[0097] 步骤307,禁止对对应只读内存页的除I/O操作外的写操作。
[0098] 本实施例中,若查看对应的只读内存页的页面类型为缓存页,表示该只读内存页中继续存储着原有的预设的只读敏感文件,则禁止对对应只读内存页的除O操作外的写操作。防止恶意程序对该只读内存页中预设的只读敏感文件的篡改。
[0099] 在步骤307执行后,执行步骤309。
[0100] 步骤308,解除对应只读内存页的只读限制。
[0101] 本实施例中,若查看对应的只读内存页的页面类型不是缓存页,表示该只读内存页将重用为其他类型的内存页,如若写操作为由计算产生的写操作,则对应的内存页为计算内存页,再如写操作为由命名产生的写操作,则对应的内存页为命名内存页,为了能够顺利进行除O操作外的写操作,解除对应只读内存页的只读限制。
[0102] 在步骤308执行后,执行步骤309。
[0103] 步骤309,结束。
[0104] 本实施例提供的虚拟机敏感文件的保护方法,在将I操作的文件缓存到内存中的内存页设置为只读内存页之后,通过监测是否有以只读内存页为目标内存页的I/O操作或除I/O操作外的写操作来检测只读内存页是否被重用,对只读内存页的只读权限进行维持或解除,能够有效防止系统错误的发生,并且通过监测是否有以只读内存页为目标内存页的I/O操作或除I/O操作外的写操作来监测只读内存页是否重用的方法来监测只读内存页的缓存是否释放,使监测的效率更高。
[0105] 图4为本发明虚拟机敏感文件的保护装置实施例一的结构示意图,如图4所示,该虚拟机敏感文件的保护装置包括:截获模块401,判断模块402,禁止操作模块403及允许操作模块404。
[0106] 其中,截获模块401,用于截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的对象对应的磁盘数据块号。判断模块402,用于根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件。判断模块402,还用于若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作。禁止操作模块403,用于若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作。允许操作模块404,用于若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页。
[0107] 本实施例的虚拟机敏感文件的保护装置可以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0108] 图5为本发明虚拟机敏感文件的保护装置实施例二的结构示意图,如图5所示,本实施例提供的本发明虚拟机敏感文件的保护装置在本发明虚拟机敏感文件的保护装置实施例一的基础上,本实施例中的虚拟机敏感文件的保护装置包括:截获模块501,判断模块502,禁止操作模块503,允许操作模块504,设置模块505及存储模块506。
[0109] 其中,截获模块501,用于截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的对象对应的磁盘数据块号。判断模块502,用于根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件。判断模块502,还用于若确定所述进行I/O操作的文件是预设的只读敏感文件,则判断所述I/O操作是否为O操作。禁止操作模块503,用于若确定所述I/O操作为O操作,则禁止对所述进行I/O操作的文件的O操作。允许操作模块504,用于若确定所述I/O操作为I操作,则允许对所述进行I/O操作的文件的I操作,并将所述I操作的文件缓存到内存中的内存页设置为只读内存页。
[0110] 优选地,判断模块502,还用于所述根据所述对应的磁盘数据块号,判断进行I/O操作的文件是否为预设的敏感文件之后,若确定所述进行I/O操作的文件不是预设的只读敏感文件,则判断所述进行I/O操作的文件是否为预设的不可访问敏感文件。
[0111] 禁止操作模块503,还用于若确定所述进行I/O操作的文件为预设的不可访问敏感文件,则禁止对所述进行I/O操作的文件的I/O操作。
[0112] 进一步地,设置模块505,用于所述截获模块截获I/O操作指令,所述I/O操作指令中携带进行I/O操作的文件对应的磁盘数据块号之前,根据文件保护等级,将所述预设的敏感文件设置为只读敏感文件和不可访问敏感文件。
[0113] 存储模块506,用于将所述预设的只读敏感文件及所述预设的不可访问敏感文件对应的磁盘数据块号分别进行存储。
[0114] 本实施例的虚拟机敏感文件的保护装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0115] 图6为本发明虚拟机敏感文件的保护装置实施例三的结构示意图,如图6所示,本实施例提供的本发明虚拟机敏感文件的保护装置在本发明虚拟机敏感文件的保护装置实施例二的基础上,本实施例中的虚拟机敏感文件的保护装置包括:截获模块601,判断模块602,禁止操作模块603,允许操作模块604,设置模块605,存储模块606,监测模块607,解除限制模块608及查看模块609。
[0116] 本实施例中提供的虚拟机敏感文件的保护装置中的截获模块601,判断模块602,禁止操作模块603,允许操作模块604,设置模块605,存储模块606的用途和功能与本发明虚拟机敏感文件的保护装置实施例二的相同,此处不再赘述。
[0117] 进一步地,监测模块607,用于监测是否有以只读内存页为目标内存页的I/O操作或除I/O操作外的写操作。判断模块602,还用于若监测到有以只读内存页为目标内存页的I/O操作,则判断对应I/O操作的文件是否为预设的另一只读敏感文件。解除限制模块608,用于若对应I/O操作的文件不是预设的另一只读敏感文件,则解除对应只读内存页的只读限制。
[0118] 进一步地,查看模块609,用于监测模块监测是否有以只读内存页为目标内存页的I/O操作或除I/O操作外的写操作之后,若监测到有以只读内存页为目标内存页的除I/O操作外的写操作,则查看对应的只读内存页的页面类型是否为缓存页。解除限制模块608,还用于若确定对应的只读内存页的页面类型不是缓存页,则解除对应只读内存页的只读限制。
[0119] 本实施例的虚拟机敏感文件的保护装置可以执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0120] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0121] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。