CN104750536B - 一种实现虚拟机自省的方法和装置 - Google Patents

一种实现虚拟机自省的方法和装置 Download PDF

Info

Publication number
CN104750536B
CN104750536B CN201310746868.1A CN201310746868A CN104750536B CN 104750536 B CN104750536 B CN 104750536B CN 201310746868 A CN201310746868 A CN 201310746868A CN 104750536 B CN104750536 B CN 104750536B
Authority
CN
China
Prior art keywords
data
checked
read
virtual machine
copy
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
Application number
CN201310746868.1A
Other languages
English (en)
Other versions
CN104750536A (zh
Inventor
涂彬
陈海波
夏虞斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310746868.1A priority Critical patent/CN104750536B/zh
Priority to EP14876189.3A priority patent/EP3079057B1/en
Priority to PCT/CN2014/093427 priority patent/WO2015101148A1/zh
Publication of CN104750536A publication Critical patent/CN104750536A/zh
Priority to US15/199,200 priority patent/US10007785B2/en
Application granted granted Critical
Publication of CN104750536B publication Critical patent/CN104750536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种实现虚拟机自省的方法和装置,涉及信息技术领域,解决了VMI系统无法准确的对VM中的内存数据进行安全检查的问题。本发明提供的方法具体可以包括:确定虚拟机中的待检查数据;开始读取待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得硬件事务内存能够根据存储地址对已读取的待检查数据进行监测;当监测到已读取的待检查数据被修改时,则停止读取待检查数据并删除副本;当读取待检查数据完毕并且未监测到已读取的待检查数据被修改时,则对副本进行安全检查。可应用于虚拟机自省中。

Description

一种实现虚拟机自省的方法和装置
技术领域
本发明涉及信息技术领域,尤其涉及实现虚拟机自省的方法和装置。
背景技术
在增强计算机安全的诸多技术中,虚拟机自省(Virtual MachineIntrospection,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系统的运行。
具体的安全检测步骤可以包括:VMI系统可以从VM中获取待检查内存数据;对获取到的待检查内存数据进行安全检查。
但是,在VMI系统对VM中的内存数据进行安全检查的同时,VM可能也正在对待检查内存数据进行访问,此时,若VMI系统在获取完成部分待检查内存数据后,VM对本地的与所述部分待检查内存数据对应的内存数据进行了修改,则导致VMI系统获取到的内存数据,与VM本地的内存数据不一致,进而导致VMI系统无法准确的对VM中的内存数据进行安全检查。
发明内容
本发明提供一种实现虚拟机自省的方法和装置,解决了VMI系统无法准确的对VM中的数据进行安全检查的问题。
为达到上述目的,本发明采用如下技术方案:
第一方面,提供了一种实现虚拟机自省的方法,包括:
确定虚拟机中的待检查数据;
开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测;
当监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
当读取所述待检查数据完毕并且未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
结合第一方面,在第一方面的第一种实现方式中,所述待检查数据包括锁数据,所述锁数据用于表征所述待检查数据当前是否正在被访问;
在所述确定虚拟机中的待检查数据之后,所述方法还包括:
判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测,包括:
若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
结合第一方面或第一方面的第一种实现方式,在第二种实现方式中,所述对所述副本进行安全检查,包括:
检查所述副本的完整性;和/或,
根据所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式,在第三种实现方式中,在所述对所述副本进行安全检查之后,所述方法还包括:
若所述副本未通过所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使所述虚拟机根据所述安全检查未通过消息进行相应处理。
结合第一方面或第一方面的第一种实现方式至第一方面的第三种实现方式中任一种实现方式,在第四种实现方式中,所述方法还包括:
当监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
第二方面,提供了一种实现虚拟机自省的方法,包括:
确定单元,用于确定虚拟机中的待检查数据;
读取单元,用于读取所述确定单元确定的所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
监测单元,用于通过所述硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
结束单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
安全检查单元,用于当所述读取单元读取所述待检查数据完毕并且所述监测单元未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
结合第二方面,在第二方面的第一种实现方式中,所述读取单元保存的所述副本包括锁数据,所述锁数据用于表征所述确定单元确定的所述待检查数据当前是否正在被访问;
所述装置还包括:
判断单元,用于在所述确定单元确定虚拟机中的待检查数据之后,判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述读取单元,具体用于若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
结合第二方面或第二方面的第一种实现方式,在第二种实现方式中,所述安全检查单元,具体用于检查所述读取单元保存的所述副本的完整性;和/或,根据所述读取单元保存的所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式,在第三种实现方式中,所述装置还包括:
发送单元,用于在所述安全检查单元完成对所述读取单元保存的所述副本进行的安全检查时,若所述副本未通过所述安全检查单元进行的所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使得所述虚拟机根据所述发送单元发送的所述安全检查未通过消息进行相应处理。
结合第二方面或第二方面的第一种实现方式至第二方面的第三种实现方式中任一种实现方式,在第四种实现方式中,所述装置还包括:
获取单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
所述发送单元,还用于在所述获取单元获取所述已读取的待检查数据中被修改数据的存储地址时,向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
本发明提供的实现虚拟机自省的方法和装置,在读取所述待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明所述副本与虚拟机中的待检查数据一致,此时,可以对所述副本进行安全检查,若在读取所述待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取所述待检查数据并删除所述副本,即不对所述待检查数据进行安全检查,这样,增加安全检查的准确性。
另外,本发明还记载了在读取所述待检查数据之前,首先判断所述待检查数据的锁是否处于释放状态,只有在所述锁处于释放状态时,才读取所述待检查数据,这样,保证了在开始读取所述待检查数据时,没有其他进程对所述待检查数据进行访问,减少了访问冲突的发生次数,进而降低了在所述读取过程中已读取的待检查数据被修改的概率;进一步的,还可以读取所述锁对应的锁数据,即所述副本包括所述锁数据,这样,在读取完成所述锁数据后,所述锁数据在虚拟机中的存储地址便被存储到硬件事务内存中,所述硬件事务内存还对所述锁数据进行监测,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则不仅可以说明所述副本与虚拟机中的待检查数据一致,而且还可以说明在读取所述待检查数据的过程中,不存在其他进程访问所述待检查数据,进而更加严格的保证了所述副本与虚拟机中的待检查数据的一致性。
再有,本发明还记载了若在所述读取的过程中所述已读取的待检查数据被修改,则获取所述已读取的待检查数据中被修改数据的存储地址,并向所述虚拟机发送访问冲突消息,所述虚拟机可以根据访问冲突消息中的所述被修改数据的存储地址立即定位到发生冲突访问的位置,并确定修改所述被修改数据的进程是否为安全进程,这样,加快了虚拟机确定发生冲突访问的位置,进而提高了检查出恶意软件的效率,进而增加了虚拟机的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例提供的一种实现虚拟机自省的方法的流程图;
图2为本实施例提供的另一种实现虚拟机自省的方法的流程图;
图3为本实施例提供的一种实现虚拟机自省的装置的虚拟装置结构示意图;
图4为本实施例提供的另一种实现虚拟机自省的装置的虚拟装置结构示意图;
图5为本实施例提供的一种实现虚拟机自省的装置的实体装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,随着个人电脑、移动计算设备,以及云计算的普及,计算机安全越来越成为人们关注的焦点。人们在各种计算设备中保存了大量关键数据,包括电子邮件、私人照片、银行账号与密码、社交网络账号等等,这使得计算设备成为了黑客的攻击目标。各种恶意软件,如病毒、木马、间谍软件、欺诈广告等,数量越来越大,威胁越来越强。
现有技术中,可以通过VMI(Virtual Machine Introspection,虚拟机自省)技术来实现对虚拟机的安全保护。但是,在通过VMI实现对虚拟机的安全保护过程中,在VMI系统对虚拟机中的内存数据进行安全检查的同时,虚拟机可能也正在对待检查内存数据进行访问,此时,若VMI系统在获取完成部分待检查内存数据后,虚拟机对本地的与所述部分待检查内存数据对应的内存数据进行了修改,则导致VMI系统获取到的内存数据,与虚拟机本地的内存数据不一致,进而导致VMI系统无法准确的对虚拟机中的内存数据进行安全检查。为了解决该问题,下面提供一些实施例进行具体说明。
本实施例提供一种实现虚拟机自省的方法,如图1所示,可以包括:
101、确定虚拟机中的待检查数据。
其中,待检查数据可以为虚拟机的内存中的内存数据。
102、开始读取该待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得硬件事务内存能够根据该存储地址对已读取的待检查数据进行监测。
在读取该待检查数据时,已读取的待检查数据在虚拟机中的存储地址会被自动存储到硬件事务内存中,另外,还可以将已读取的待检查数据的副本存储到硬件事务内存中。
硬件事务内存可以对存储于本地的存储地址对应的数据进行监控,可以监控这些数据是否被修改等,在本实施例中,由于硬件事务内存中存储有已读取的待检查数据的存储地址,因此硬件事务内存可以监控已读取的待检查数据是否被修改。
103、当监测到已读取的待检查数据被修改时,则停止读取该待检查数据并删除该待检查数据的副本。
在读取的过程中,若已读取的待检查数据被修改,则说明该待检查数据的副本中的数据与虚拟机中的待检查数据不一致,由于,在数据不一致的情况下无法对该待检查数据的副本进行正确的安全检查,因此,在读取待检查数据的过程中,若硬件事务内存监测到已读取的待检查数据被修改,则不对该待检查数据的副本进行安全检查,并停止读取待检查数据并删除该待检查数据的副本。
值得说明的是,本实施例提供的数据不一致是指已读取的待检查数据与虚拟机中的待检查数据不一致,之后不再赘述。
104、当读取待检查数据完毕并且未监测到已读取的待检查数据被修改时,则对该待检查数据的副本进行安全检查。
在读取待检查数据的过程中,若已读取的待检查数据未被修改,则说明该待检查数据的副本中的数据与虚拟机中的待检查数据一致,此时,可以对该待检查数据的副本进行安全检查。
本实施例中,在读取待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取该待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明所述副本与虚拟机中的待检查数据一致,此时,可以对该待检查数据的副本进行安全检查,若在读取待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取待检查数据并删除该待检查数据的副本,即不对待检查数据进行安全检查,这样,增加安全检查的准确性。
本实施例提供另一种实现虚拟机自省的方法,该方法是对图1所示的方法的进一步扩展和优化,如图2所示,可以包括:
201、确定虚拟机中的待检查数据。
202、判断锁数据对应的锁是否处于释放状态。若所述锁处于所述释放状态,则执行步骤203,若所述锁未处于所述释放状态,则执行步骤202。
其中,该释放状态可以用于表征待检查数据当前未被访问。
为了避免虚拟机中的待检查数据同时被多个进程访问,因此设置了锁,锁可以通过锁数据的形式存储于待检查虚拟机中。待检查数据的锁的状态可以用于表征该待检查数据是否正在被虚拟机系统中的进程访问,当没有虚拟机系统中的进程访问所述待检查数据时,锁的状态为释放状态,当有虚拟机系统中的进程访问该待检查数据时,锁的状态为加锁状态,在虚拟机系统中的某一进程访问待检查数据之前,首先确定锁的状态,若所述锁处于释放状态,则可以对所述待检查数据进行访问,若所述锁处于加锁状态,则不能对所述待检查数据进行访问。
若所述锁当前处于释放状态,则当虚拟机系统中的某一进程访问所述待检查数据时,需要获取所述锁,在该进程获取所述锁之后,所述锁的状态便会从释放状态切换为加锁状态,当所述某进程访问所述待检查数据结束后,所述某进程可以释放所述锁,所述锁的状态便可以从加锁状态切换为释放状态,该状态变化可以通过存储于虚拟机中的与所述锁对应的锁数据的数值变化体现。
若VMI系统监测到所述锁当前处于加锁状态,则说明当前虚拟机系统中的某进程正在访问所述待检查数据,若此时VMI系统读取所述待检查数据,由于某一进程可能会对待检查数据进行修改,因此会出现虚拟机系统读取的数据与所述待检查数据不一致的情况,进而导致无法准确的对虚拟机进行安全检查,由此,若VMI系统监测到所述锁当前处于加锁状态,则可以不对虚拟机进行安全检查,而是继续监测所述锁的状态,直到检测到所述锁的状态切换为释放状态时,即可以执行安全检查。
作为本实施例的一种实施方式,VMI系统可以通过所述锁数据的数值判断锁数据对应的锁是否处于释放状态。
本实施例对所述锁的原理及实现方式不作限定,为现有技术,且为本领域技术人员熟知的技术,在此不再赘述。
203、开始读取该待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中。
若VMI系统检查到所述锁当前的状态为释放状态,则说明不存在任何进程访问该待检查数据,此时,VMI系统可以读取该待检查数据,并将已读取的待检查数据的存储地址存储到硬件事务内存中,并保存已读取的待检查数据的副本。
硬件事务内存可以是设置于VMM中的,硬件事务内存中可以包括读取集合,该读取集合可以用于存储所述VMI系统已读取的数据的存储地址。本实施例中,在所述VMI系统读取所述待检查数据的过程中,VMI系统已读取的待检查数据在虚拟机中的存储地址便被自动存储于所述读取集合中,另外,在VMI系统读取待检查数据的过程中,VMI系统还可以将已读取的待检查数据的副本存储于硬件事务内存中。
值得说明的是,本实施例提供的所述待检查数据的存储地址均是指待检查数据在虚拟机中的存储地址,在后续内容中不再赘述。
204、通过硬件事务内存监测已读取的待检查数据是否被修改。若在读取的过程中未监测到已读取的待检查数据被修改,则执行步骤205,若在读取的过程中监测到已读取的待检查数据被修改,则执行步骤207。
硬件事务内存可以对读取集合中的存储地址对应的数据进行监测,具体可以是监测这些数据是否被修改过。
作为本实施例的一种实施方式,在VMI系统读取所述待检查数据的过程中,可以自动将已读取的待检查数据的存储地址存储于所述读取集合中,在此之后,由于读取集合中存储有已读取的待检查数据的存储地址,因此硬件事务内存可以监测已读取的待检查数据是否被修改。
进一步的,VMI系统还可以读取待检查数据的锁数据,所述锁数据可以存储于所述虚拟机的内存中,这样,在VMI系统在读取完成所述锁数据后,所述锁数据在虚拟机中的存储地址便被存储到读取集合中,且该待检查数据的副本中页包括所述锁数据,硬件事务内存还对所述锁数据进行监测,由于,在VMI系统开始读取锁数据时,所述锁数据是处于释放状态的,因此,在读取所述待检查数据的过程中,硬件事务内存不仅可以监测所述待检查数据是否被修改,还可以监测所述锁数据的状态是否发生了改变,即是否从释放状态切换到加锁状态,此时,所述副本中也包括所述锁数据。
本实施例对硬件事务内存监测已读取的待检查数据是否被修改的方法不作限定,为本领域技术人员熟知的技术,在此不再赘述。
205、对该待检查数据的副本进行安全检查。若该待检查数据的副本通过安全检查,则流程结束,或者,在预设时间之后,再执行步骤201,若该待检查数据的副本未通过安全检查,则执行步骤206。
进一步的,对该待检查数据的副本进行安全检查可以但不限于包括:
VMI系统检查该待检查数据的副本的完整性;和/或,VMI系统根据该待检查数据的副本判断所述虚拟机运行的系统中是否存在恶意软件。
具体的,VMI系统检查该待检查数据的副本的完整性可以但不限于包括:VMI系统可以通过校验码检查该待检查数据的副本中的数据是否完整,具体的检查方法为本领域技术人员熟知的技术,在此不再赘述。
VMI系统根据该待检查数据的副本判断所述虚拟机运行的系统中是否存在恶意软件可以但不限于包括:由于,若虚拟机系统中运行有恶意软件,则可能会在虚拟机的数据中留下标识,如,可以通过某段数据体现出,因此,VMI系统可以对该待检查数据的副本进行检查,判断该待检查数据的副本中是否包括恶意软件留下的标识,若有,则说明虚拟机系统中存在恶意软件。本实施例对VMI系统根据该待检查数据的副本判断虚拟机运行的系统中是否存在恶意软件的方法不作限定,为本领域技术人员熟知的技术,在此不再赘述。
本实施例对VMI系统对该待检查数据的副本进行安全检查的方法不作限定,为本领域技术人员熟知的技术,不限于上述列举的方法,具体可以根据实际需要进行设定。
206、向虚拟机发送安全检查未通过消息,以使该虚拟机根据安全检查未通过消息进行相应处理。
作为本实施例的一种实施方式,若VMI系统检查出虚拟机运行的系统中存在恶意软件,则虚拟机在接收到所述安全检查未通过消息之后,可以根据安全检查未通过消息停止运行所述恶意软件;若VMI系统检查出该待检查数据的副本中的数据不完整,则虚拟机在接收到安全检查未通过消息之后,可以根据安全检查未通过消息修复待检查数据中的不完整数据。
本实施例对虚拟机根据所述安全检查未通过消息进行的相应处理不作限定,为本领域技术人员熟知的技术,且可以根据实际需要进行设定,在此不再赘述。
流程结束。
207、停止读取待检查数据并删除该待检查数据的副本。
在读取的过程中,若硬件事务内存监测到已读取的待检查数据被修改,则说明该待检查数据的副本与已读取的待检查数据不一致,此时,由于VMI系统无法准确的对该副本进行安全检查,因此VMI系统停止读取待检查数据并删除所述副本。在此之后,VMI系统还可以重新启动安全检查步骤,即可以执行步骤201。
由于,在虚拟机系统中的某进程访问待检查数据时,首先会获取所述锁,此时相应的锁数据或发生变化,因此,在VMI系统读取所述锁数据后,硬件事务内存便会监测到,进而结束安全检查进程,这样,更加严格的保证了所述副本与虚拟机中的待检查数据的一致性。
值得说明的是,VMI系统读取所述锁数据可以包括:复制锁数据,然后获取复制的锁数据,并不是获取所述锁数据,因此,VMI系统读取所述锁数据之后并不会改变所述锁的状态,也不会改变锁数据的代码,进而使得某些恶意软件无法在根据锁数据判断出VMI系统当前正在对虚拟机进行安全检查之后,以修改数据来暂时停止侵害操作。
208、获取被修改的待检查数据的存储地址。
本实施例中,VMI系统可以从已读取的待检查数据中获取被修改数据,然后,再获取被修改数据在虚拟机中的存储地址。
209、向该虚拟机发送访问冲突消息,以使得该虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
作为本实施例的一种实施方式,在读取的过程中,若已读取的待检查数据被修改,则可以向虚拟机发送访问冲突消息以告知虚拟机待检查数据发生了访问冲突,所述访问冲突消息可以包括所述被修改数据的存储地址;虚拟机可以根据快速的访问冲突消息中的所述被修改数据的存储地址快速的定位发生访问冲突的位置;并还可以根据所述位置确定修改所述被修改数据的进程是否为安全进程。
本实施例中,在读取待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明该待检查数据的副本与虚拟机中的待检查数据一致,此时,可以对该待检查数据的副本进行安全检查,若在读取待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取待检查数据并删除该待检查数据的副本,即不对待检查数据进行安全检查,这样,增加安全检查的准确性。
另外,本发明还记载了在读取所述待检查数据之前,首先判断所述待检查数据的锁是否处于释放状态,只有在所述锁处于释放状态时,才读取该待检查数据,这样,保证了在开始读取所述待检查数据时,没有其他进程对所述待检查数据进行访问,减少了访问冲突的发生次数,进而降低了在读取过程中已读取的待检查数据被修改的概率;进一步的,还可以读取所述锁对应的锁数据,即该待检查数据的副本包括所述锁数据,这样,在读取完成所述锁数据后,所述锁数据在虚拟机中的存储地址便被存储到硬件事务内存中,所述硬件事务内存还对所述锁数据进行监测,若在读取待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则不仅可以说明该待检查数据的副本与虚拟机中的待检查数据一致,而且还可以说明在读取待检查数据的过程中,不存在其他进程访问该待检查数据,进而更加严格的保证了该待检查数据的副本与虚拟机中的待检查数据的一致性。
再有,本发明还记载了若在读取的过程中已读取的待检查数据被修改,则获取已读取的待检查数据中被修改数据的存储地址,并向虚拟机发送访问冲突消息,该虚拟机可以根据访问冲突消息中的被修改数据的存储地址立即定位到发生冲突访问的位置,并确定修改所述被修改数据的进程是否为安全进程,这样,加快了虚拟机确定发生冲突访问的位置,进而提高了检查出恶意软件的效率,进而增加了虚拟机的安全性。
下面提供一些虚拟装置实施例,该虚拟装置实施例分别于上述提供的相应的方法实施例相对应。
本实施例提供一种实现虚拟机自省的装置,如图3所示,可以包括:
确定单元31,用于确定虚拟机中的待检查数据;
读取单元32,用于读取确定单元31确定的所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
监测单元33,用于通过硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
结束单元34,用于当所述监测单元33监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
安全检查单元35,用于当读取单元32读取该待检查数据完毕并且监测单元33未监测到已读取的待检查数据被修改时,则对该待检查数据的副本进行安全检查。
本实施例中,在读取待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取该待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明该待检查数据的副本与虚拟机中的待检查数据一致,此时,可以对所述副本进行安全检查,若在读取待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取该待检查数据并删除该待检查数据的副本,即不对所述待检查数据进行安全检查,这样,增加安全检查的准确性。
本实施例提供另一种实现虚拟机自省的装置,该装置是对图3所示的装置的进一步扩展,如图4所示,可以包括:
确定单元41,用于确定虚拟机中的待检查数据;
读取单元42,用于读取确定单元41确定的待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
监测单元43,用于通过硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
结束单元44,用于当监测单元43监测到已读取的待检查数据被修改时,则停止读取该待检查数据并删除该待检查数据的副本;
安全检查单元45,用于当读取单元42读取该待检查数据完毕并且监测单元43未监测到已读取的待检查数据被修改时,则对该待检查数据的副本进行安全检查。
进一步的,所述读取单元42保存的该待检查数据的副本包括锁数据,所述锁数据用于表征确定单元41确定的待检查数据当前是否正在被访问;
所述装置还包括:
判断单元46,用于在确定单元41确定虚拟机中的待检查数据之后,判断锁数据对应的锁是否处于释放状态,该释放状态用于表征所述待检查数据当前未被访问;
读取单元42,具体用于若锁数据对应的锁处于所述释放状态,则开始读取待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
进一步的,安全检查单元45,具体用于检查读取单元42保存的该待检查数据的副本的完整性;和/或,根据读取单元42保存的该待检查数据的副本判断虚拟机运行的系统中是否存在恶意软件。
进一步的,所述装置还包括:
发送单元47,用于在安全检查单元45完成对读取单元42保存的该待检查数据的副本进行的安全检查时,若该待检查数据的副本未通过安全检查单元45进行的所述安全检查,则向该虚拟机发送安全检查未通过消息,以使得该虚拟机根据所述发送单元发送的所述安全检查未通过消息进行相应处理。
进一步的,所述装置还包括:
获取单元48,用于当监测单元43监测到已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
发送单元47,还用于在获取单元48获取已读取的待检查数据中被修改数据的存储地址时,向该虚拟机发送访问冲突消息,该访问冲突消息包括被修改的待检查数据的存储地址,以使得该虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
本实施例中,在读取待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取该待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明该待检查数据的副本与虚拟机中的待检查数据一致,此时,可以对该待检查数据的副本进行安全检查,若在读取待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取待检查数据并删除该待检查数据的副本,即不对待检查数据进行安全检查,这样,增加安全检查的准确性。
另外,本发明还记载了在读取所述待检查数据之前,首先判断待检查数据的锁是否处于释放状态,只有在所述锁处于释放状态时,才读取所述待检查数据,这样,保证了在开始读取所述待检查数据时,没有其他进程对所述待检查数据进行访问,减少了访问冲突的发生次数,进而降低了在所述读取过程中已读取的待检查数据被修改的概率;进一步的,还可以读取所述锁对应的锁数据,即该待检查数据的副本包括锁数据,这样,在读取完成所述锁数据后,该锁数据在虚拟机中的存储地址便被存储到硬件事务内存中,硬件事务内存还对该锁数据进行监测,若在读取待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则不仅可以说明该待检查数据的副本与虚拟机中的待检查数据一致,而且还可以说明在读取待检查数据的过程中,不存在其他进程访问所述待检查数据,进而更加严格的保证了该待检查数据的副本与虚拟机中的待检查数据的一致性。
再有,本发明还记载了若在读取的过程中已读取的待检查数据被修改,则获取已读取的待检查数据中被修改数据的存储地址,并向虚拟机发送访问冲突消息,虚拟机可以根据访问冲突消息中的被修改数据的存储地址立即定位到发生冲突访问的位置,并确定修改所述被修改数据的进程是否为安全进程,这样,加快了虚拟机确定发生冲突访问的位置,进而提高了检查出恶意软件的效率,进而增加了虚拟机的安全性。
下面提供一些实体装置实施例,该实体装置实施例分别于上述提供的相应的方法实施例和虚拟装置实施例相对应。
本实施例还提供一种计算机1,如图5所示,该计算机1包括:至少一个处理器15,例如CPU(Central Processing Unit,中央处理器),至少一个输出接口16或者其他用户接口17,存储器18,至少一个通信总线19。通信总线19用于实现上述组件之间的连接通信。该计算机1可选的包含其他用户接口17,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器18可能包含高速RAM(Random AccessMemory,随机存取存储器),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器18可选的可以包含至少一个位于远离前述处理器15的存储装置。
在一些实施方式中,存储器18存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统180,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用程序181中可以但不限于包括:
确定单元,用于确定虚拟机中的待检查数据;
读取单元,用于读取所述确定单元确定的所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
监测单元,用于通过所述硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
结束单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
安全检查单元,用于当所述读取单元读取所述待检查数据完毕并且所述监测单元未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
进一步的,所述读取单元保存的所述副本包括锁数据,所述锁数据用于表征所述确定单元确定的所述待检查数据当前是否正在被访问;
所述应用程序181还可以包括:
判断单元,用于在所述确定单元确定虚拟机中的待检查数据之后,判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述读取单元,具体用于若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
进一步的,所述安全检查单元,具体用于检查所述读取单元保存的所述副本的完整性;和/或,根据所述读取单元保存的所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
进一步的,所述应用程序181还可以包括:
发送单元,用于在所述安全检查单元完成对所述读取单元保存的所述副本进行的安全检查时,若所述副本未通过所述安全检查单元进行的所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使得所述虚拟机根据所述发送单元发送的所述安全检查未通过消息进行相应处理。
进一步的,所述应用程序181还可以包括:
获取单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
所述发送单元,还用于在所述获取单元获取所述已读取的待检查数据中被修改数据的存储地址时,向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
在本发明实施例中,通过调用存储器18中存储的程序或指令,处理器15用于:
确定虚拟机中的待检查数据;
确定虚拟机中的待检查数据;
开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测;
当监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
当读取所述待检查数据完毕并且未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
进一步的,所述待检查数据包括锁数据,所述锁数据用于表征所述待检查数据当前是否正在被访问;
所述处理器15,还用于在所述确定虚拟机中的待检查数据之后,判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述处理器15,具体用于若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
进一步的,所述处理器15,具体用于检查所述副本的完整性;和/或,
根据所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
进一步的,所述处理器15,还用于在所述对所述副本进行安全检查之后,若所述副本未通过所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使所述虚拟机根据所述安全检查未通过消息进行相应处理。
进一步的,所述处理器15,还用于当监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定修改所述被修改的待存储数据的进程是否为安全进程。
本实施例中,确定虚拟机中的待检查数据;开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测;当监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;当读取所述待检查数据完毕并且未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。采用上述方案后,在读取所述待检查数据的过程中可以通过硬件事务内存监控已读取的待检查数据是否被修改,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则说明所述副本与虚拟机中的待检查数据一致,此时,可以对所述副本进行安全检查,若在读取所述待检查数据的过程中,监测到已读取的待检查数据中存在被修改数据,则停止读取所述待检查数据并删除所述副本,即不对所述待检查数据进行安全检查,这样,增加安全检查的准确性。
另外,本发明还记载了在读取所述待检查数据之前,首先判断所述待检查数据的锁是否处于释放状态,只有在所述锁处于释放状态时,才读取所述待检查数据,这样,保证了在开始读取所述待检查数据时,没有其他进程对所述待检查数据进行访问,减少了访问冲突的发生次数,进而降低了在所述读取过程中已读取的待检查数据被修改的概率;进一步的,还可以读取所述锁对应的锁数据,即所述副本包括所述锁数据,这样,在读取完成所述锁数据后,所述锁数据在虚拟机中的存储地址便被存储到硬件事务内存中,所述硬件事务内存还对所述锁数据进行监测,若在读取所述待检查数据的过程中,未监测到已读取的待检查数据中存在被修改数据,则不仅可以说明所述副本与虚拟机中的待检查数据一致,而且还可以说明在读取所述待检查数据的过程中,不存在其他进程访问所述待检查数据,进而更加严格的保证了所述副本与虚拟机中的待检查数据的一致性。
再有,本发明还记载了若在所述读取的过程中所述已读取的待检查数据被修改,则获取所述已读取的待检查数据中被修改数据的存储地址,并向所述虚拟机发送访问冲突消息,所述虚拟机可以根据访问冲突消息中的所述被修改数据的存储地址立即定位到发生冲突访问的位置,并确定修改所述被修改数据的进程是否为安全进程,这样,加快了虚拟机确定发生冲突访问的位置,进而提高了检查出恶意软件的效率,进而增加了虚拟机的安全性。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种实现虚拟机自省的方法,其特征在于,包括:
确定虚拟机中的待检查数据;
开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测;
当监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
当读取所述待检查数据完毕并且未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
2.根据权利要求1所述的实现虚拟机自省的方法,其特征在于,所述待检查数据包括锁数据,所述锁数据用于表征所述待检查数据当前是否正在被访问;
在所述确定虚拟机中的待检查数据之后,所述方法还包括:
判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测,包括:
若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
3.根据权利要求1或2所述的实现虚拟机自省的方法,其特征在于,所述对所述副本进行安全检查,包括:
检查所述副本的完整性;和/或,
根据所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
4.根据权利要求3所述的实现虚拟机自省的方法,其特征在于,在所述对所述副本进行安全检查之后,所述方法还包括:
若所述副本未通过所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使所述虚拟机根据所述安全检查未通过消息进行相应处理。
5.根据权利要求4所述的实现虚拟机自省的方法,其特征在于,所述方法还包括:
当监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定所述被修改的待检查数据的修改进程是否为安全进程。
6.一种实现虚拟机自省的装置,其特征在于,包括:
确定单元,用于确定虚拟机中的待检查数据;
读取单元,用于读取所述确定单元确定的所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中;
监测单元,用于通过所述硬件事务内存监测所述存储地址所对应的已读取的待检查数据是否被修改;
结束单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则停止读取所述待检查数据并删除所述副本;
安全检查单元,用于当所述读取单元读取所述待检查数据完毕并且所述监测单元未监测到所述已读取的待检查数据被修改时,则对所述副本进行安全检查。
7.根据权利要求6所述的实现虚拟机自省的装置,其特征在于,所述读取单元保存的所述副本包括锁数据,所述锁数据用于表征所述确定单元确定的所述待检查数据当前是否正在被访问;
所述装置还包括:
判断单元,用于在所述确定单元确定虚拟机中的待检查数据之后,判断所述锁数据对应的锁是否处于释放状态,所述释放状态用于表征所述待检查数据当前未被访问;
所述读取单元,具体用于若所述锁数据对应的锁处于所述释放状态,则开始读取所述待检查数据,保存已读取的待检查数据的副本,并将已读取的待检查数据的存储地址存储到硬件事务内存中,以使得所述硬件事务内存能够根据所述存储地址对已读取的待检查数据进行监测。
8.根据权利要求6或7所述的实现虚拟机自省的装置,其特征在于,所述安全检查单元,具体用于检查所述读取单元保存的所述副本的完整性;和/或,根据所述读取单元保存的所述副本判断所述虚拟机运行的系统中是否存在恶意软件。
9.根据权利要求8所述的实现虚拟机自省的装置,其特征在于,所述装置还包括:
发送单元,用于在所述安全检查单元完成对所述读取单元保存的所述副本进行的安全检查时,若所述副本未通过所述安全检查单元进行的所述安全检查,则向所述虚拟机发送安全检查未通过消息,以使得所述虚拟机根据所述发送单元发送的所述安全检查未通过消息进行相应处理。
10.根据权利要求9所述的实现虚拟机自省的装置,其特征在于,所述装置还包括:
获取单元,用于当所述监测单元监测到所述已读取的待检查数据被修改时,则获取被修改的待检查数据的存储地址;
所述发送单元,还用于在所述获取单元获取所述已读取的待检查数据中被修改数据的存储地址时,向所述虚拟机发送访问冲突消息,所述访问冲突消息包括所述被修改的待检查数据的存储地址,以使得所述虚拟机确定所述被修改的待检查数据的修改进程是否为安全进程。
CN201310746868.1A 2013-12-30 2013-12-30 一种实现虚拟机自省的方法和装置 Active CN104750536B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201310746868.1A CN104750536B (zh) 2013-12-30 2013-12-30 一种实现虚拟机自省的方法和装置
EP14876189.3A EP3079057B1 (en) 2013-12-30 2014-12-10 Method and device for realizing virtual machine introspection
PCT/CN2014/093427 WO2015101148A1 (zh) 2013-12-30 2014-12-10 一种实现虚拟机自省的方法和装置
US15/199,200 US10007785B2 (en) 2013-12-30 2016-06-30 Method and apparatus for implementing virtual machine introspection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310746868.1A CN104750536B (zh) 2013-12-30 2013-12-30 一种实现虚拟机自省的方法和装置

Publications (2)

Publication Number Publication Date
CN104750536A CN104750536A (zh) 2015-07-01
CN104750536B true CN104750536B (zh) 2018-08-21

Family

ID=53493171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310746868.1A Active CN104750536B (zh) 2013-12-30 2013-12-30 一种实现虚拟机自省的方法和装置

Country Status (4)

Country Link
US (1) US10007785B2 (zh)
EP (1) EP3079057B1 (zh)
CN (1) CN104750536B (zh)
WO (1) WO2015101148A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3239883A1 (de) * 2016-04-28 2017-11-01 Siemens Aktiengesellschaft Erkennen einer abweichung eines sicherheitszustandes einer recheneinrichtung von einem sollsicherheitszustand
RU2628923C1 (ru) * 2016-05-20 2017-08-22 Акционерное общество "Лаборатория Касперского" Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки
CN107608756B (zh) * 2017-08-24 2020-10-13 武汉大学 一种基于cpu硬件特性的虚拟机自省触发方法及系统
US11720385B2 (en) * 2019-06-17 2023-08-08 National Technology & Engineering Solutions Of Sandia, Llc Automated platform to assess commercial off the shelf (COTS) software assurance
CN112905365B (zh) * 2019-10-30 2024-02-13 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
US11442770B2 (en) * 2020-10-13 2022-09-13 BedRock Systems, Inc. Formally verified trusted computing base with active security and policy enforcement

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508696A (zh) * 2002-12-19 2004-06-30 英特尔公司 高速缓存一致性协议的非随机分布式冲突解决
CN1525328A (zh) * 2003-02-28 2004-09-01 为复制文件管理多个文件状态的方法
CN1823318A (zh) * 2003-05-13 2006-08-23 国际商业机器公司 实时修复重要计算机文件的系统
CN101853175A (zh) * 2009-03-31 2010-10-06 甲骨文美国公司 虚拟化环境中促进的自检
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
CN102147843A (zh) * 2011-05-16 2011-08-10 湖南大学 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法
CN102541691A (zh) * 2011-12-27 2012-07-04 北京人大金仓信息技术股份有限公司 面向内存数据库oltp应用的日志检查点恢复方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
US7788699B2 (en) * 2002-03-06 2010-08-31 Vir2Us, Inc. Computer and method for safe usage of documents, email attachments and other content that may contain virus, spy-ware, or malicious code
US9660808B2 (en) * 2005-08-01 2017-05-23 Schneider Electric It Corporation Communication protocol and method for authenticating a system
US8549198B2 (en) * 2009-03-27 2013-10-01 Schneider Electric It Corporation Communication protocol
CN101814049A (zh) * 2010-03-23 2010-08-25 北京大学 一种内存泄漏探测方法
US8984478B2 (en) * 2011-10-03 2015-03-17 Cisco Technology, Inc. Reorganization of virtualized computer programs

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508696A (zh) * 2002-12-19 2004-06-30 英特尔公司 高速缓存一致性协议的非随机分布式冲突解决
CN1525328A (zh) * 2003-02-28 2004-09-01 为复制文件管理多个文件状态的方法
CN1823318A (zh) * 2003-05-13 2006-08-23 国际商业机器公司 实时修复重要计算机文件的系统
US7984304B1 (en) * 2004-03-02 2011-07-19 Vmware, Inc. Dynamic verification of validity of executable code
CN101853175A (zh) * 2009-03-31 2010-10-06 甲骨文美国公司 虚拟化环境中促进的自检
CN102147843A (zh) * 2011-05-16 2011-08-10 湖南大学 一种基于内核不变量保护的rootkit入侵检测和系统恢复方法
CN102541691A (zh) * 2011-12-27 2012-07-04 北京人大金仓信息技术股份有限公司 面向内存数据库oltp应用的日志检查点恢复方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Lares: An Architecture for Secure Active Monitoring Using Virtualization;Bryan D. Payne等;《2008 IEEE Symposium on Security and Privacy》;20080518;第233-247页 *

Also Published As

Publication number Publication date
CN104750536A (zh) 2015-07-01
EP3079057A1 (en) 2016-10-12
WO2015101148A1 (zh) 2015-07-09
US10007785B2 (en) 2018-06-26
EP3079057A4 (en) 2017-01-18
EP3079057B1 (en) 2018-06-06
US20160314297A1 (en) 2016-10-27

Similar Documents

Publication Publication Date Title
CN104750536B (zh) 一种实现虚拟机自省的方法和装置
Payer HexPADS: a platform to detect “stealth” attacks
CN105723348B (zh) 使用事务性存储器检测未授权存储器修改及访问
CN105393255B (zh) 用于虚拟机中的恶意软件检测的过程评估
CN104769604B (zh) 实时模块保护
CN104704472B (zh) 防止侧信道攻击的系统、方法和装置
JP6212548B2 (ja) カーネルレベル・セキュリティ・エージェント
Ho et al. PREC: practical root exploit containment for android devices
CN104750534B (zh) 触发虚拟机自省的方法、装置及系统
JP2017527931A (ja) マルウェア検出の方法及びそのシステム
US9542557B2 (en) Snoop-based kernel integrity monitoring apparatus and method thereof
JP2015511340A (ja) オンライン不正行為の検出の動的採点集計のシステムおよび方法
CN103984536B (zh) 一种云计算平台中的 i/o 请求计数系统及其方法
Bohra et al. Remote repair of operating system state using backdoors
US9805190B1 (en) Monitoring execution environments for approved configurations
CN106575336A (zh) 对敏感代码恶意调用的检测与抑制
CN107729751A (zh) 数据检测方法及装置
CN107889551A (zh) 用于识别恶意软件的异常检测
CN110505246A (zh) 客户端网络通讯检测方法、装置及存储介质
Zhu et al. Detecting privilege escalation attacks through instrumenting web application source code
Grace et al. Behaviour analysis of inter-app communication using a lightweight monitoring app for malware detection
CN106464513A (zh) 用于抑制恶意调用的系统和方法
JP2005234661A (ja) アクセスポリシ生成システム、アクセスポリシ生成方法およびアクセスポリシ生成用プログラム
Paundu et al. Leveraging KVM Events to Detect Cache‐Based Side Channel Attacks in a Virtualization Environment
EP4288884A1 (en) Malware detection system

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