CN104750534B - 触发虚拟机自省的方法、装置及系统 - Google Patents
触发虚拟机自省的方法、装置及系统 Download PDFInfo
- Publication number
- CN104750534B CN104750534B CN201310733827.9A CN201310733827A CN104750534B CN 104750534 B CN104750534 B CN 104750534B CN 201310733827 A CN201310733827 A CN 201310733827A CN 104750534 B CN104750534 B CN 104750534B
- Authority
- CN
- China
- Prior art keywords
- data
- virtual machine
- protected
- oneself
- triggering virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
Abstract
本发明公开了一种触发虚拟机自省的方法、装置及系统,以提供一种及时有效的安全检查触发机制。本发明中确定需要保护的数据;对所述需要保护的数据进行监测;当监测到所述需要保护的数据被修改时,触发虚拟机自省。通过本发明避免了定时启动虚拟机自省系统进行安全检查带来的性能损失与安全问题,适用性更强。
Description
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种触发虚拟机自省的方法、装置及系统。
背景技术
近年来,随着个人电脑、移动计算设备,以及云计算的普及,计算机安全越来越成为人们关注的热点。人们在各种设备中保存了大量关键数据,包括电子邮件、私人照片、银行账号与密码、社交网络账号等等,这使得设备本身成为了黑客的攻击目标。如何提高计算机的安全成为了亟待解决的关键问题。
VMI(Virtual Machine Introspection,虚拟机自省)是一种应用于虚拟化环境,利用VMM(Virtual Machine Monitor,虚拟机监控器),从虚拟机外部增强虚拟机安全的一种方法。该技术通过直接扫描虚拟机运行时的内存、磁盘、监控网络行为等操作,可进行杀毒、网络防火墙等安全操作。
由于虚拟化平台对VMM与虚拟机的执行隔离能力,使得应用虚拟机自省技术时,VMM运行在虚拟机外部,相比传统运行在虚拟机内部的安全软件,其安全性不依赖于虚拟机本身,因此恶意软件即使感染了虚拟机,也无法干扰VMM的执行。然而VMM与虚拟机的执行隔离能力也带来了语义鸿沟(Semantic Gap)问题,即VMM无法获知虚拟机的内部语义,这为应用虚拟机自省技术增强虚拟机安全的应用带来了很大的挑战。
VMI系统尝试用不同的方法,尽可能缩小语义鸿沟,在众多语义鸿沟问题中,比较重要的就是如何选择触发虚拟机自省的时机。一般的,VMI系统中触发虚拟机自省主要采用如下方式:
通过设置一个固定的间隔时间,定时触发VMI系统进行安全检查。该方法的优点在于实现简单,无需根据具体的语义信息来触发。但是定时检查方案必须在性能与安全性之间进行权衡。若检查的时间间隔设置过长,则可能导致漏掉一些本可以成功检测攻击,或在攻击成功之后才检测出,从而可能导致无法挽回的损失,如机密数据的泄露等;若检查的时间间隔设置过短,则可能大大增加系统的额外负载,从而影响正常的执行,导致系统的可用性下降。
因此,在VMI系统中提供一种及时并且有效的安全检查触发机制,势在必行。
发明内容
本发明实施例提供一种触发虚拟机自省的方法、装置及系统,以提供一种及时有效的安全检查触发机制。
第一方面,本发明实施例提供一种触发虚拟机自省的方法,包括:
确定需要保护的数据;
对所述需要保护的数据进行监测;
当监测到所述需要保护的数据被修改时,触发虚拟机自省。
结合第一方面,在第一种实现方式中,对所述需要保护的数据进行监测前包括:
将确定的所述需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中;
对所述需要保护的数据进行监测包括:
对存储在所述读取集合的内存地址所对应的需要保护的数据进行监测。
结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述对所述需要保护的数据进行监测之前,还包括:
保存所述需要保护的数据的副本;
所述触发虚拟机自省包括:
定位被修改数据的内存地址;
所述触发虚拟机自省后还包括:
根据所述副本和所述定位的被修改数据的内存地址,对被修改的数据进行修复。
结合第一方面、第一方面的第一种实现方式或第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述触发虚拟机自省后还包括:
取消监测所述需要保护的数据。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式或第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述触发虚拟机自省后还包括:
向虚拟机用户发出告警提示,以便用户进行安全检查。
第二方面,本发明实施例提供一种触发虚拟机自省的装置,包括:确定单元、监测单元与触发单元,其中,
所述确定单元,用于确定需要保护的数据;
所述监测单元,用于对所述确定单元确定的需要保护的数据进行监测;
所述触发单元,用于当所述监测单元监测到所述需要保护的数据被修改时,触发虚拟机自省。
结合第二方面,在第二方面的第一种实现方式中,该装置还包括存储单元:
所述存储单元,用于将所述确定单元确定的所述需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中;
所述监测单元具体用于:
对所述存储单元存储在所述读取集合的内存地址所对应的需要保护的数据进行监测。
结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,该装置还包括:保存单元和修复单元,其中,
所述保存单元,用于保存所述确定单元确定的需要保护的数据的副本;
所述触发单元具体用于:
定位被修改数据的内存地址;
所述修复单元,用于根据所述保存单元保存的副本和所述触发单元定位的被修改数据的内存地址,对被修改的数据进行修复。
结合第二方面、第二方面的第一种实现方式或第二方面的第二种可能实现方式,在第二方面的第三种实现方式中,所述装置还包括取消单元,
所述取消单元,用于在所述触发单元触发虚拟机自省时,取消监测所述需要保护的数据。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式或第二方面的第三种实现方式,在第二方面的第四种实现方式中,所述装置还包括告警单元,
所述告警单元,具体用于在所述触发单元触发虚拟机自省时,向虚拟机用户发出告警提示,以便用户进行安全检查。
第三方面,本发明实施例提供一种触发虚拟机自省的系统,包括硬件事务内存和上述第二方面任何一种实现方式中涉及的触发虚拟机自省的装置,其中,
所述硬件事务内存,用于对所述触发虚拟机自省的装置确定的所述需要保护的数据进行监测;
所述触发虚拟机自省的装置,用于在所述硬件事务内存监测到所述需要保护的数据被修改时,触发虚拟机自省。
本发明实施例提供的触发虚拟机自省的方法、装置及系统,通过对确定的需要保护的数据进行监测,当监测到需要保护的数据被修改时,触发虚拟机自省,能够及时的触发虚拟机自省,并且无需设置进行安全检查的时间间隔,避免了定时检查带来的性能损失与安全问题。
附图说明
图1A-图1B为本发明实施例提供的触发虚拟机自省的方法流程图;
图2A-图2C为本发明实施例触发虚拟机自省并进行安全检查的过程示意图;
图3为本发明实施例提供的触发虚拟机自省的另一流程图;
图4为本发明实施例提供的触发虚拟机自省的另一流程图;
图5A-图5E为本发明实施例提供的触发虚拟机自省的装置构成示意图;
图6为本发明实施例提供的触发虚拟机自省的装置另一构成示意图;
图7为本发明实施例提供的触发虚拟机自省的系统构成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
硬件事务内存(Hardware Transactional Memory,HTM)具有在多核内存访问冲突情况下将程序跳转至内存访问冲突处理程序的特性,具体的执行过程如下:
上述处理过程中,通过xbegin指令开始执行一个事务(Transaction),在执行事务中,读取的所有内存地址,均由硬件记录到读取集合(Read Set)中;写入的所有内存地址,也均由硬件记录到写入集合(Write Set)中。在事务未结束前,所有写入操作对事务内部程序可见,而对事务外部不可见。
在事务执行过程中,若其他处理器修改了处于该事务的读取集合中的内存地址对应存储的数据,或读取了处于该事务的写入集合中的内存地址,则表明发生了内存访问冲突,将程序跳转至内存访问冲突处理程序,该事务被取消(Transaction Abort)。
通过xend指令,可使通过xbegin指令开始执行的整个事务运行结束(TransactionCommit),并使写入操作同时生效,对外可见。
本发明实施例应用硬件事务内存在事务执行过程中能够将程序跳转至内存访问冲突处理程序的特性,在VMI(Virtual Machine Introspection,虚拟机自省)系统中添加硬件事务内存功能模块,通过该硬件事务内存功能执行数据保护事务,对需要保护的数据进行数据保护,当数据被修改时,触发虚拟机自省。
如图1A所示为本发明实施例提供的触发虚拟机自省的方法流程图,具体包括:
S101:确定需要保护的数据。
VMI系统通常会对虚拟机中的关键数据进行保护,防止被篡改,例如,保护系统调用表、中断向量表以及内核的关键函数指针表等数据的完整性。本发明实施例需要保护的数据包括但不限于上述涉及的数据,例如还可以是模块数据。
S102:对S101中确定的需要保护的数据进行监测。
具体的,本发明实施例在VMI系统中增加硬件事务内存功能,通过硬件事务内存的事务处理程序对确定的需要保护的数据进行监测,执行数据保护。
S103:当需要保护的数据被修改时,触发虚拟机自省。
本发明实施例中确定需要保护的数据后,对需要保护的数据进行监测,当监测到需要保护的数据被修改时,触发虚拟机自省,能够及时的触发虚拟机自省。
可选的,本发明实施例在执行S102之前,可将确定的需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中,通过硬件事务内存对需要保护的数据进行监测,执行数据保护。
本发明实施例中涉及的通过硬件事务内存的事务处理程序执行数据保护,可选如下方式:
S1021:启动硬件事务内存。
具体的,本发明实施例中可通过xbegin指令控制硬件事务内存开始执行一个事务,即对需要保护的数据执行数据保护的数据保护事务,该事务的事务处理程序用于对S101中确定的需要保护的数据进行安全保护。
S1022:读取需要保护的数据,并将读取的需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中。
本发明实施例中在启动的数据保护事务中,读取需要保护的数据,可使硬件事务内存自动将读取的需要保护的数据对应的内存地址存储在硬件事务的读取集合中。
S1023:对存储在读取集合的内存地址所对应的需要保护的数据进行监测。
本发明实施例中,硬件事务内存可监测读取集合中存储的内存地址对应存储的数据是否被执行写操作。
硬件事务内存的读取集合可自动记录VMI系统读取需要保护的数据对应的内存地址,该读取集合中记录的内存地址对应存储的数据是不允许被执行写操作的,当监测到读取集合中存储的内存地址对应存储的数据被执行写操作时,则会确定内存地址对应的数据被修改,执行S103中触发虚拟机自省的步骤。
执行S103中触发虚拟机自省的步骤具体包括:
S1030:当确定需要保护的数据被执行写操作时,触发虚拟机自省。
本发明实施例中数据被执行的写操作,可包括数据被删除、在数据中增加或删减数据内容,当被保护的数据被执行上述操作时,确定内存地址对应的数据被修改。
本发明实施例中,在VMI系统中设定硬件事务内存的内存访问冲突处理程序为触发虚拟机自省的程序,当确定需要保护的数据被执行写操作时,则可控制硬件事务内存的事务处理程序跳转到触发虚拟机自省的程序,并按照预设的安全检查程序,进行安全检查。
本发明实施例上述触发虚拟机自省的过程,可参考图1B所示。
进一步的,本发明实施例在执行S102对需要保护的数据进行监测之前还可保存需要保护的数据的副本,例如在虚拟机外部保存需要保护的数据的副本。本发明实施例中S103中触发虚拟机自省的步骤具体执行过程可采用定位被修改数据的内存地址的方式。在触发虚拟机自省后,进行安全检查时,根据保存的副本和定位的被修改数据的内存地址,对被修改的数据进行修复,具体的实施过程如图2A所示,包括:
S1011:确定需要保护的数据。
S1012:保存需要保护的数据的副本。
S1021:将确定的需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中。
S1022:对存储在读取集合的内存地址对应的需要保护的数据进行监测。
S103:定位被修改数据的内存地址。
S104:根据保存的副本和定位的被修改数据的内存地址,对被修改的数据进行修复。
本发明实施例上述利用硬件事务内存触发VMI进行安全检查的实施过程,可采用如下实施方式:
保存需保护的数据副本
上述实施过程的具体实施示意图,如图2B所示。
可选的,本发明实施例中,硬件事务内存启动了数据保护事务后,,对需要保护的数据进行监测,若数据保护事务中保护的数据未被修改,则数据保护事务持续运行,若数据保护事务中保护的数据被修改,则触发虚拟机自省,定位被修改的内存地址。本发明实施例中触发虚拟机自省后还可取消监测需要保护的数据,减少资源占用。本发明实施例中触发虚拟机自省后还可向虚拟机用户发出告警提示,以便用户进行安全检查。用户进行安全检查时可根据保存的副本和定位的被修改的内存地址,对被修改的数据进行修复。本发明实施例上述涉及的触发虚拟机自省并进行安全检查的过程如图2C所示。
图2C在图2A的基础上,在S103定位被修改数据的内存地址后,包括:
S1031:取消监测需要保护的数据。
S1032:向虚拟机用户发出告警提示,以便用户进行安全检查。
本发明实施例中可控制硬件事务内存取消对需要保护的数据执行的数据保护,即取消数据保护事务的进程,通过监测硬件事务内存取消执行的数据保护事务的进程的时间,能够及时的监测到数据被修改的时间。
从上可知,由于本发明的实施方式可以在监测到数据保护事务的进程被取消时,触发虚拟机自省,在降低定时启动VMI进行安全检查带来的性能损失的同时,也提高了虚拟机的安全性。
本发明以下实施例将结合实际应用对上述涉及到的应用硬件事务内存触发虚拟机自省并进行安全检查的过程进行详细说明。
本发明的一个实施例中以保护系统调用表为例进行说明,系统调用表是操作系统的重要数据结构,也是恶意软件(如Rootkit等)经常篡改的数据结构。VMI通过检查当前使用的系统调用表的正确性保证其不被篡改。
应用硬件事务内存触发虚拟机自省并进行安全检查的具体过程如图3所示,包括:
S201:VMI系统启动后,将当前正确的系统调用表,在虚拟机外部保存一份副本。
S202:VMI系统控制硬件事务内存启动一个数据保护事务。
S203:在数据保护事务中读取系统调用表包含的所有数据项,以及保存系统调用表的指针所在内存。
具体的,在VMI系统读取系统调用表过程中,读取的内存地址均被硬件事务内存自动记录在读取集合中。
S204:保持数据保护事务的持续运行。
S205:监测数据保护事务执行的进程,判断数据保护事务进程是否被取消。
具体的,本发明实施例中,若系统调用表并没有被修改,则进行S204,保持数据保护事务持续运行,若系统调用表被修改,则硬件事务内存会取消数据保护事务,进行S206。
S206:触发虚拟机自省,进行安全检查。
本发明实施例中可在硬件事务内存的事务处理取消程序中通过代码定义取消数据保护事务后,跳转至安全检查程序,实现安全检查的触发。
进行安全检查时,可通过对比修改后的数据和保存的正确副本,定位并恢复修改的数据项,并触发警告给管理员;或确定导致数据保护事务的进程被取消的内存访问进程,并停止运行该内存访问进程,等待管理员处理。
从上可知,由于本发明的实施方式可以在监测到数据保护事务的进程被取消时,触发虚拟机自省,并且根据保存的副本和修改的数据进行定位,在降低定时启动VMI进行安全检查带来的性能损失的同时,也提高了虚拟机的安全性。
本发明另一实施例以保护模块加载的过程为例,进行说明。恶意软件另一种常用的攻击方式,是通过模块的方式插入内核,从而执行恶意代码。因此,本发明实施例中VMI系统可在新插入模块的时刻进行安全检查。
本发明实施例中应用硬件事务内存触发虚拟机自省的具体过程如图4所示,包括:
S301:VMI系统启动后,当所有正常模块加载结束后,VMI系统首先将当前的模块(modules)数据结构,在虚拟机外部保存一份副本。该数据结构记录了系统中当前运行的所有模块。
S302:VMI系统控制硬件事务内存启动一个数据保护事务。
S303:在数据保护事务中读取modules数据结构中的所有数据项。
读取modules数据结构中所有数据项的过程中,读取的内存地址均被硬件事务内存自动记录在读取集合中。
S304:若modules数据结构并没有被修改,则数据保护事务持续运行;
S305:若modules数据结构被修改,则数据保护事务被取消。
S306:触发虚拟机自省,进行安全检查。
进行安全检查时,通过对比修改后的数据和正确的副本,确定新增的模块,并对模块进行安全检查。若检查通过则继续运行,否则通知管理员,或确定导致数据保护事务的进程被取消的内存访问进程,并停止运行该内存访问进程,等待管理员处理。
本发明实施例中通过对确定的需要保护的数据进行监测,当监测到需要保护的数据被修改时,触发虚拟机自省,能够及时的触发虚拟机自省。进一步的,本发明实施例中利用硬件事务内存在多核内存访问冲突情况下会发生事务取消的特性,将需要保护的数据预先读取至硬件事务内存的读取集合中,通过硬件事务内存监测需要保护的数据,当这些数据发生修改时,硬件事务内存取消事务处理程序中的数据保护事务,并触发虚拟机自省程序,对需要保护的数据进行安全检查,从而保证检查的合法性。通过本发明一方面能够实现在数据发生修改的时刻进行安全检查,从而避免了定时检查带来的性能损失与安全问题;另一方面,需要保护的数据对应的内存地址保存在读取集合中,由于硬件事务内存具有超大读取集合的特性,因此只要是将需要保护的数据进行读取并记录到读取集合中,就能实现对数据的安全保护,对VMI保护的数据没有限制;再一方面,本发明实施例不需要对客户操作系统进行修改,不依赖于客户操作系统本身的安全,提高了其适用性和安全性。
本发明还提供了一种触发虚拟机自省的装置,如图5A所示,包括:确定单元501、监测单元502与触发单元503,其中,
确定单元501,用于确定需要保护的数据。
监测单元502,用于对确定单元501确定的需要保护的数据进行监测。
触发单元503,用于在监测单元502监测到需要保护的数据被修改时,触发虚拟机自省。
结合上述涉及的触发虚拟机自省的装置,该装置还包括存储单元504,如图5B所示,存储单元504具体用于:
将确定单元501确定的需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中。
监测单元502,具体用于:
对存储单元504存储在读取集合的内存地址所对应的需要保护的数据进行监测。
进一步的,本发明实施例涉及的装置还包括保存单元505和修复单元506,如图5C所示,其中,
保存单元505,用于保存确定单元501确定的需要保护的数据的副本。
触发单元503,具体用于定位被修改数据的内存地址。
修复单元506,用于在根据保存单元505保存的副本和触发单元503定位的被修改数据的内存地址,对被修改的数据进行修复。
进一步的,该装置还包括取消单元507,如图5D所示,其中,
取消单元507,用于在触发单元503触发虚拟机自省时,取消监测需要保护的数据。
更进一步的,该装置还包括告警单元508,如图5E所示,其中,
告警单元508,具体用于在触发单元503触发虚拟机自省时,向虚拟机用户发出告警提示,以便用户进行安全检查。
基于上述涉及的触发虚拟机自省的装置,本发明实施例还提供了一种触发虚拟机自省的装置,如图6所示,该装置包括:收发器601,处理器602,存储器603和总线604,其中,收发器601,处理器602和存储器603均与总线604连接。
处理器602,用于通过收发器601获取确定的需要保护的数据,并对需要保护的数据进行监测,当监测到需要保护的数据被修改时,触发虚拟机自省。
其中,处理器602执行上述过程通常由一个或多个软件程序控制完成,上述一个或多个软件程序存储于存储器603中,当处理器602需要执行上述过程时,将上述一个或多个软件程序调入处理器602,由处理器602控制完成上述过程。当然处理器602执行上述过程也可通过硬件实现,本发明实施例不做限定。
本发明实施例提供的触发虚拟机自省的装置,可以用来执行图1A-图4所示的触发虚拟机自省的方法,因此对于图5A-图5E和图6中涉及的触发虚拟机自省的装置说明不够详尽的地方,可参阅图1A-图4的说明。
需要说明的是,本发明实施例提供的触发虚拟机自省的装置可以是独立的部件,也可以是集成在VMI系统中的部件,本发明实施例不做限定。
本发明实施例提供的触发虚拟机自省的装置,通过对确定的需要保护的数据进行监测,当监测到需要保护的数据被修改时,触发虚拟机自省,能够及时的触发虚拟机自省。进一步的,本发明实施例中通过硬件事务内存对需要保护的数据进行监测,由于硬件事务内存具有在多核内存访问冲突情况下会将程序跳转至内存访问冲突处理程序的特性,本发明实施例中通过硬件事务内存对需要保护的数据执行数据保护,并在确定需要保护的数据被修改时,触发虚拟机自省,使得在需要保护的数据被修改时,硬件事务内存会及时的将程序跳转至触发虚拟机自省的冲突处理程序,并且无需设置进行安全检查的时间间隔,避免了定时检查带来的性能损失与安全问题,并且只要是需要保护的数据就可以进行数据保护事务,不会对VMI保护的数据进行限制,也无需对操作系统进行修改,不会依赖操作系统本身的安全,适用性更强。
基于上述涉及的触发虚拟机自省的方法及装置,本发明实施例还提供了一种触发虚拟机自省的系统,如图7所示,包括硬件事务内存701和触发虚拟机自省的装置702,其中,
硬件事务内存701,用于对触发虚拟机自省的装置702确定的需要保护的数据进行监测;
触发虚拟机自省的装置702,在硬件事务内存701监测搭配需要保护的数据被修改时,触发虚拟机自省。
需要说明的是,本发明实施例涉及的触发虚拟机自省的装置702具有图5A-图5E涉及的触发虚拟机自省的装置全部功能,具体可参阅图5A-图5E的说明,在此不再赘述。
本发明实施例提供的触发虚拟机自省的系统,通过硬件事务内存,对需要保护的数据执行数据保护,当确定需要保护的数据被修改时,触发虚拟机自省。由于硬件事务内存具有在多核内存访问冲突情况下会将程序跳转至内存访问冲突处理程序的特性,本发明实施例中通过硬件事务内存对需要保护的数据执行数据保护,并在确定需要保护的数据被修改时,触发虚拟机自省,使得在需要保护的数据被修改时,硬件事务内存会及时的将程序跳转至触发虚拟机自省的冲突处理程序,并且无需设置进行安全检查的时间间隔,避免了定时检查带来的性能损失与安全问题,并且只要是需要保护的数据就可以进行数据保护事务,不会对VMI保护的数据进行限制,也无需对操作系统进行修改,不会依赖操作系统本身的安全,适用性更强。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种触发虚拟机自省的方法,其特征在于,包括:
确定需要保护的数据;
将确定的所述需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中;
对存储在所述读取集合的内存地址所对应的所述需要保护的数据进行监测;
当监测到所述需要保护的数据被修改时,控制硬件事务内存的事务处理程序跳转到触发虚拟机自省的程序,并按照预设的安全检查程序,进行安全检查。
2.如权利要求1所述的方法,其特征在于,所述对所述需要保护的数据进行监测之前,还包括:
保存所述需要保护的数据的副本;
所述触发虚拟机自省包括:
定位被修改数据的内存地址;
所述触发虚拟机自省后还包括:
根据所述副本和所述定位的被修改数据的内存地址,对被修改的数据进行修复。
3.如权利要求1-2任一项所述的方法,其特征在于,所述触发虚拟机自省后还包括:
取消监测所述需要保护的数据。
4.如权利要求1-2任一所述的方法,其特征在于,所述触发虚拟机自省后还包括:
向虚拟机用户发出告警提示,以便用户进行安全检查。
5.一种触发虚拟机自省的装置,其特征在于,包括:确定单元、监测单元与触发单元,其中,
所述确定单元,用于确定需要保护的数据,并将确定的所述需要保护的数据对应的内存地址存储在硬件事务内存的读取集合中;
所述监测单元,用于对所述确定单元确定的存储在所述读取集合的内存地址所对应的需要保护的数据进行监测;
所述触发单元,用于当所述监测单元监测到所述需要保护的数据被修改时,控制硬件事务内存的事务处理程序跳转到触发虚拟机自省的程序,并按照预设的安全检查程序,进行安全检查。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:保存单元和修复单元,其中,
所述保存单元,用于保存所述确定单元确定的需要保护的数据的副本;
所述触发单元具体用于:
定位被修改数据的内存地址;
所述修复单元,用于根据所述保存单元保存的副本和所述触发单元定位的被修改数据的内存地址,对被修改的数据进行修复。
7.如权利要求5-6任一项所述的装置,其特征在于,所述装置还包括取消单元,
所述取消单元,用于在所述触发单元触发虚拟机自省时,取消监测所述需要保护的数据。
8.如权利要求5-6任一项所述的装置,其特征在于,所述装置还包括告警单元,
所述告警单元,具体用于在所述触发单元触发虚拟机自省时,向虚拟机用户发出告警提示,以便用户进行安全检查。
9.一种触发虚拟机自省的系统,其特征在于,包括硬件事务内存和权利要求5-8任一项所述的触发虚拟机自省的装置,其中,
所述硬件事务内存,用于对所述触发虚拟机自省的装置确定的所述需要保护的数据进行监测;
所述触发虚拟机自省的装置,用于在所述硬件事务内存监测到所述需要保护的数据被修改时,触发虚拟机自省。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733827.9A CN104750534B (zh) | 2013-12-26 | 2013-12-26 | 触发虚拟机自省的方法、装置及系统 |
EP14197984.9A EP2902937B1 (en) | 2013-12-26 | 2014-12-15 | Method, apparatus, and system for triggering virtual machine introspection |
US14/572,515 US9785770B2 (en) | 2013-12-26 | 2014-12-16 | Method, apparatus, and system for triggering virtual machine introspection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310733827.9A CN104750534B (zh) | 2013-12-26 | 2013-12-26 | 触发虚拟机自省的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750534A CN104750534A (zh) | 2015-07-01 |
CN104750534B true CN104750534B (zh) | 2018-10-30 |
Family
ID=52102567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310733827.9A Active CN104750534B (zh) | 2013-12-26 | 2013-12-26 | 触发虚拟机自省的方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9785770B2 (zh) |
EP (1) | EP2902937B1 (zh) |
CN (1) | CN104750534B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9239909B2 (en) * | 2012-01-25 | 2016-01-19 | Bromium, Inc. | Approaches for protecting sensitive data within a guest operating system |
US9606853B2 (en) * | 2014-03-28 | 2017-03-28 | Intel Corporation | Protecting a memory device from becoming unusable |
US9596261B1 (en) * | 2015-03-23 | 2017-03-14 | Bitdefender IPR Management Ltd. | Systems and methods for delivering context-specific introspection notifications |
US9531735B1 (en) | 2015-03-23 | 2016-12-27 | Bitdefender IPR Management Ltd. | Systems and methods for delivering introspection notifications from a virtual machine |
US9536084B1 (en) | 2015-03-23 | 2017-01-03 | Bitdefender IPR Management Ltd. | Systems and methods for delivering event-filtered introspection notifications |
US9852295B2 (en) | 2015-07-14 | 2017-12-26 | Bitdefender IPR Management Ltd. | Computer security systems and methods using asynchronous introspection exceptions |
US10140448B2 (en) | 2016-07-01 | 2018-11-27 | Bitdefender IPR Management Ltd. | Systems and methods of asynchronous analysis of event notifications for computer security applications |
CN107169347B (zh) * | 2017-05-08 | 2019-07-05 | 中国科学院信息工程研究所 | 一种增强arm平台虚拟机自省安全的方法及装置 |
CN107608756B (zh) * | 2017-08-24 | 2020-10-13 | 武汉大学 | 一种基于cpu硬件特性的虚拟机自省触发方法及系统 |
CN109426586B (zh) * | 2017-08-25 | 2023-05-12 | 中兴通讯股份有限公司 | 一种数据文件修复方法、设备及计算机可读存储介质 |
FR3083887B1 (fr) * | 2018-07-11 | 2020-11-27 | Wallix | Procede et dispositif de detection de compromission d’une cible par une attaque laterale |
US11144217B2 (en) * | 2018-10-02 | 2021-10-12 | Jmicron Technology Corp. | Data protection method and associated storage device |
WO2022081733A1 (en) * | 2020-10-13 | 2022-04-21 | BedRock Systems, Inc. | A formally verified trusted computing base with active security and policy enforcement |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
CN102129531A (zh) * | 2011-03-22 | 2011-07-20 | 北京工业大学 | 一种基于Xen的主动防御方法 |
CN102147843A (zh) * | 2011-05-16 | 2011-08-10 | 湖南大学 | 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129745A1 (en) * | 2004-12-11 | 2006-06-15 | Gunther Thiel | Process and appliance for data processing and computer program product |
US8239947B1 (en) * | 2006-02-06 | 2012-08-07 | Symantec Corporation | Method using kernel mode assistance for the detection and removal of threats which are actively preventing detection and removal from a running system |
US20080320594A1 (en) * | 2007-03-19 | 2008-12-25 | Xuxian Jiang | Malware Detector |
US7516365B2 (en) * | 2007-07-27 | 2009-04-07 | Sun Microsystems, Inc. | System and method for split hardware transactions |
US8307443B2 (en) * | 2007-09-28 | 2012-11-06 | Microsoft Corporation | Securing anti-virus software with virtualization |
US9003402B1 (en) * | 2010-12-15 | 2015-04-07 | Symantec Corporation | Method and system for injecting function calls into a virtual machine |
CN102147483B (zh) | 2010-12-30 | 2013-01-02 | 杨佃俊 | 地下水回灌双极双表电测井方法 |
US9529614B2 (en) * | 2012-03-05 | 2016-12-27 | Board Of Regents The University Of Texas Systems | Automatically bridging the semantic gap in machine introspection |
-
2013
- 2013-12-26 CN CN201310733827.9A patent/CN104750534B/zh active Active
-
2014
- 2014-12-15 EP EP14197984.9A patent/EP2902937B1/en active Active
- 2014-12-16 US US14/572,515 patent/US9785770B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
CN102129531A (zh) * | 2011-03-22 | 2011-07-20 | 北京工业大学 | 一种基于Xen的主动防御方法 |
CN102147843A (zh) * | 2011-05-16 | 2011-08-10 | 湖南大学 | 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法 |
Non-Patent Citations (1)
Title |
---|
Enforcing Authorization Policies using Transactional Memory Introspection;Arnar Birgisson;《Proceedings of the 15th ACM Conference on Computer and Communications Security》;20081031;第1-12页 * |
Also Published As
Publication number | Publication date |
---|---|
US20150186643A1 (en) | 2015-07-02 |
CN104750534A (zh) | 2015-07-01 |
EP2902937A1 (en) | 2015-08-05 |
EP2902937B1 (en) | 2016-10-12 |
US9785770B2 (en) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750534B (zh) | 触发虚拟机自省的方法、装置及系统 | |
KR102297133B1 (ko) | 비동기적 인트로스펙션 예외를 이용한 컴퓨터 보안 시스템들 및 방법들 | |
US9037873B2 (en) | Method and system for preventing tampering with software agent in a virtual machine | |
CN109831420B (zh) | 内核进程权限的确定方法及装置 | |
KR101835250B1 (ko) | 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출 | |
AU2018229557A1 (en) | Methods and apparatus for identifying and removing malicious applications | |
JP4938576B2 (ja) | 情報収集システムおよび情報収集方法 | |
EP2541453A1 (en) | System and method for malware protection using virtualization | |
CN104392175A (zh) | 一种云计算系统中云应用攻击行为处理方法、装置及系统 | |
EP3422238B1 (en) | Detecting a malware process | |
CN105975328A (zh) | 基于安全虚拟机的日志文件安全审计系统及方法 | |
US10007785B2 (en) | Method and apparatus for implementing virtual machine introspection | |
CN108334404B (zh) | 应用程序的运行方法和装置 | |
CN103561045A (zh) | 用于Android系统的安全监测系统和方法 | |
CN108388793A (zh) | 一种基于主动防御的虚拟机逃逸防护方法 | |
EP2720170B1 (en) | Automated protection against computer exploits | |
CN106909838A (zh) | 一种拦截系统调用的方法及装置 | |
CN109784037B (zh) | 文档文件的安全防护方法及装置、存储介质、计算机设备 | |
KR20140124906A (ko) | 행위 기반 프로세스 검사 시스템 및 방법 | |
CN106909808B (zh) | 一种隐藏应用的桌面图标的方法及装置 | |
CN115329331A (zh) | 应用程序的入侵检测方法及装置、存储介质和电子设备 | |
CN115292707A (zh) | 基于动态类调用序列的可信度判断方法及装置 | |
CN114547612A (zh) | 一种进程查询方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |