CN105190570A - 用于虚拟机器的完整性保护的存储器自省引擎 - Google Patents
用于虚拟机器的完整性保护的存储器自省引擎 Download PDFInfo
- Publication number
- CN105190570A CN105190570A CN201480009502.9A CN201480009502A CN105190570A CN 105190570 A CN105190570 A CN 105190570A CN 201480009502 A CN201480009502 A CN 201480009502A CN 105190570 A CN105190570 A CN 105190570A
- Authority
- CN
- China
- Prior art keywords
- software object
- target software
- page
- virtual machine
- memory
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 120
- 230000006870 function Effects 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000008859 change Effects 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 8
- 241000700605 Viruses Species 0.000 abstract description 5
- 230000037452 priming Effects 0.000 abstract 1
- 238000013507 mapping Methods 0.000 description 7
- 238000005315 distribution function Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/562—Static detection
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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/45583—Memory management, e.g. access or allocation
-
- 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/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Databases & Information Systems (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明描述允许保护计算机系统免受例如病毒及根程序病毒包等恶意软件影响的系统及方法。在一些实施例中,虚拟机监控程序配置托管一组操作系统OS的硬件虚拟化平台。以所述虚拟机监控程序的处理器特权级别执行的存储器自省引擎动态地识别每一OS,且使用保护启动模块来改变通过在所述相应OS本机的存储器分配功能将存储器分配给目标软件对象的方式。在一些实施例中,所述改变仅影响需要恶意软件保护的目标对象,且包括强制执行专门为所述相应对象预留含有所述目标对象的数据的存储器页。所述存储器自省引擎接着对所述相应存储器页写保护。
Description
背景技术
本发明涉及用于保护计算机系统免于恶意软件的系统及方法,且特定来说涉及采用硬件虚拟化技术的反恶意软件系统。
恶意软件(还称为恶意软件(malware))影响全世界的大量计算机系统。在其许多形式(例如计算机病毒、蠕虫及根程序病毒包)中,恶意软件对数百万计算机用户呈现出严重风险,使他们易于遭受数据及敏感信息损失、身份盗用及生产力损失等等。
硬件虚拟化技术允许以许多方式表现为物理计算机系统的模拟计算机环境(通常称为虚拟机器)的形成。在例如服务器合并及服务架构(IAAS)的典型应用程序中,数个虚拟机器可在同一物理机器上同时运行,所述虚拟机器共享硬件资源,因此减少投资及操作成本。每一虚拟机器可与其它虚拟机器分离地运行其自身的操作系统及/或软件应用程序。由于恶意软件的稳定扩散,在此环境中操作的每一虚拟机器可能需要恶意软件保护。
此项技术中通常使用的虚拟化解决方案包括由在虚拟机器的计算硬件与操作系统(OS)之间操作的软件层组成且具有多于相应OS的处理器特权的虚拟机监控程序,还称为虚拟机器监视器。可以虚拟机监控程序的特权级别进行反恶意软件操作。尽管此些配置可促进恶意软件检测与防范,但其引入另一层复杂性且可带来显著计算成本。
对以最小计算额外开销研发用于硬件虚拟化平台的反恶意软件解决方案(稳健且可扩缩的解决方案)相当感兴趣。
发明内容
根据一个方面,一种主机系统包括经配置以执行操作系统及保护启动模块的至少一个处理器。所述操作系统经配置以将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序。所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元。所述保护启动模块响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定而在所述目标软件对象满足所述选择准则时经配置以改变所述目标对象的存储器分配,其中改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
根据另一方面,一种方法包括:采用主机系统的至少一个处理器来形成操作系统,所述操作系统经配置以将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序。所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元。所述方法进一步包括:响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定在所述目标软件对象满足所述选择准则时,采用所述至少一个处理器来改变所述目标软件对象的存储器分配,其中改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
根据另一方面,一种非暂时性计算机可读媒体编码指令,所述指令在由主机系统的至少一个处理器执行时致使所述至少一个处理器:将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序。所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元。所述指令进一步致使所述至少一个处理器响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定而改变所述目标软件对象的存储器分配。在所述目标软件对象满足所述选择准则时执行存储器分配的所述改变。改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
附图说明
将在阅读以下实施方式后且在参考图式后更好地理解本发明的前述方面及优点,在图式中:
图1展示根据本发明的一些实施例的被保护免受恶意软件影响的主机计算机系统的示范性硬件配置。
图2展示根据本发明的一些实施例的受作用于在图1的主机系统上执行的虚拟机监控程序的一组示范性虚拟机器。
图3图解说明根据本发明的一些实施例的以各种处理器特权级别在主机系统上执行的软件对象(包含受保护免受恶意软件影响的一组对象)的示范性层次结构。
图4展示根据本发明的一些实施例的在图2的系统配置中的存储器地址的示范性映射。
图5展示示范性存储器分配,其中虚拟化物理存储器空间划分成页,且其中存储器的不同区段分配给多个软件对象中的每一者。
图6图解说明示范性存储器分配,其中页根据本发明的一些实施例专门分配给受保护软件对象。
图7展示根据本发明的一些实施例的由存储器自省引擎执行以保护虚拟机器的示范性步骤序列。
图8展示由保护启动模块的实施例执行以针对目标软件对象修改存储器分配的示范性步骤序列。
图9展示由保护启动模块的另一实施例执行以针对目标软件对象修改存储器分配的示范性步骤序列。
图10展示根据本发明的一些实施例的由保护启动模块执行以针对目标软件对象修改存储器解除分配的示范性步骤序列。
具体实施方式
在以下说明中,应理解,结构之间的所有所叙述连接可为直接操作连接或通过中间结构的间接操作连接。一组元素包含一或多个元素。对一元素的任一叙述应理解为是指至少一个元素。多个元素包含至少两个元素。除非另有需要,否则不必以特定所图解说明的次序执行任何所描述方法步骤。从第二元素导出的第一元素(例如,数据)涵盖等于所述第二元素的第一元素以及通过处理所述第二元素而产生的第一元素及任选地其它数据。根据参数做出确定或决策涵盖根据所述参数及任选地根据其它数据做出所述确定或决策。除非另有规定,否则某一数量/数据的指示符可为所述数量/数据本身或不同于所述数量/数据本身的指示符。除非另有规定,否则页表示个别地映射到主机系统的物理存储器的虚拟化物理存储器的最小单元。除非另有规定,否则虚拟化物理存储器的区段被称为是横跨一组页(当所述组页中的每一页含有相应区段的一部分时)。为目标对象预留页涵盖将整体页分配给目标对象,且另外确保相应页不托管与目标对象不同的对象的部分。计算机可读媒体涵盖非暂时性媒体(例如磁性、光学及半导体存储媒体(例如,硬盘驱动器、光盘、快闪存储器、DRAM))以及通信链路(例如导电电缆及光纤链路)。根据一些实施例,本发明除其它之外还提供包括经编程以执行本文中所描述的方法的硬件(例如,一或多个处理器)以及编码指令以执行本文中所描述的方法的计算机可读媒体的计算机系统。
以下说明通过实例的方式且不必通过限制方式图解说明本发明的实施例。
图1展示根据本发明的一些实施例的主机系统10的示范性硬件配置。主机系统10可表示例如企业服务器的法人计算装置或例如个人计算机或智能手机的终端用户装置等等。其它主机系统包含例如TV及游戏控制台的娱乐装置,或具有支持虚拟化且需要恶意软件保护的存储器及处理器的任何其它装置。出于说明性目的,图1展示计算机系统;例如移动电话或平板计算机的其它客户端装置可具有不同配置。在一些实施例中,系统10包括一组物理装置,包含全部通过一组总线24连接的处理器12、存储器单元14、一组输入装置16、一组输出装置18、一组存储装置20及一组网络适配器22。
在一些实施例中,处理器12包括经配置以借助一组信号及/或数据执行计算及/或逻辑运算的物理装置(例如,多核心集成电路)。在一些实施例中,此类逻辑运算以处理器指令序列(例如,机器代码或其它类型的软件)的形式递送到处理器12。存储器单元14可包括存储由处理器12在执行指令的过程中存取或产生的数据/信号的易失性计算机可读媒体(例如,RAM)。输入装置16可包含计算机键盘、鼠标及麦克风等等,包含允许用户将数据及/或指令引入到系统10中的相应硬件接口及/或适配器。输出装置18可包含例如监视器及扬声器等等的显示装置以及例如图形卡的硬件接口/适配器,从而允许系统10将数据传递给用户。在一些实施例中,输入装置16与输出装置18可共享一件共用硬件,如在触摸屏装置的情形中。存储装置20包含实现软件指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。示范性存储装置20包含磁盘及光盘以及快闪存储器装置,以及可装卸式媒体,例如CD及/或DVD磁盘及驱动程序。所述组网络适配器22使得系统10能够连接到计算机网络及/或其它装置/计算机系统。总线24共同表示多个系统、外围及芯片集总线及/或实现主机系统10的装置12到22的互相通信的所有其它电路。举例来说,总线24可包括将处理器12连接到存储器14的北桥及/或将处理器12连接到装置16到22的南桥等等。
图2展示根据本发明的一些实施例的在主机系统10上执行且受作用于虚拟机监控程序30的一组示范性客户虚拟机器32a到32b。此项技术中通常已知虚拟机器(VM)作为实际物理机器/计算机系统的软件模拟,每一虚拟机器能够独立于其它VM运行其自身的操作系统及软件。虚拟机监控程序30包括允许多个虚拟机器对主机系统10的硬件资源(例如处理器操作、存储器、存储、输入/输出及网络化装置)的多路复用(共享)的软件。在一些实施例中,虚拟机监控程序30使得多个虚拟机器及/或操作系统(OS)能够在主机系统10上以各种隔离度同时运行。为达成此些配置,形成虚拟机监控程序30的部分的软件可形成多个虚拟化(即,软件模拟)装置,每一虚拟化装置模拟系统10的物理硬件装置,例如处理器12及存储器14等等。虚拟机监控程序30可将一组虚拟装置进一步指派给在主机系统10上操作的每一VM。因此,每一VM32a到32b好像其处理其自身组的物理装置似的操作,即,操作为或多或少完整的计算机系统。流行虚拟机监控程序的实例包含来自VMware公司的VMwarevSphereTM及开源Xen虚拟机监控程序等等。
在一些实施例中,虚拟机监控程序30包含经配置以执行如下文进一步描述的反恶意软件操作的存储器自省引擎40及连接到存储器自省引擎40的保护启动模块46。引擎40及模块46可并入到虚拟机监控程序30中,或可实现为不同于且独立于虚拟机监控程序30的软件组件,但以与虚拟机监控程序30实质上相同的处理器特权级别执行。单个引擎40可经配置以对在主机系统10上执行的多个VM进行恶意软件保护。
虽然图2为简单起见仅展示两个VM32a到32b,但主机系统10可操作大量(例如数百个)VM,且此些VM的数目可在主机系统10的操作期间改变。在一些实施例中,每一VM32a到32b与在主机系统10上运行的其它VM同时且独立于其它VM分别执行客户操作系统34a到34b及/或一组软件应用程序42a到42b及42c到42d。每一OS34a到34b包括将接口提供到相应VM32a到32b的(虚拟化)硬件的软件,且充当分别在相应OS上运行的计算应用程序42a到42b及42c到42d的主机。操作系统34a到34b可包括任何广泛可用的操作系统,例如或AndroidTM等等。应用程序42a到42d可包含文字处理、图像处理、数据库、浏览器、电子通信应用程序及反恶意软件应用程序等等。
图3图解说明根据本发明的一些实施例的在主机系统10上执行的软件对象的层次结构。自此项技术中还称为层或保护环的处理器特权级别的视角表现图3。在一些实施例中,虚拟机监控程序30以最具特权的级别(通常称为根模式或Intel平台上的VMXroot)控制处理器12,因此形成作为虚拟机器32呈现给在主机系统10上执行的其它软件的硬件虚拟化平台。操作系统34(例如图2中的OS34a到34b)在VM32的虚拟环境内执行,OS34具有低于虚拟机监控程序30的处理器特权(例如,内核模式或Intel平台上的环0)。OS34可进一步包含受保护OS对象36a,从而以OS特权级别执行。在一些实施例中,受保护OS对象36a包括经选择用于恶意软件保护的数据结构,例如驱动程序对象,如下文进一步展示。一组应用程序42e到42f(例如,图2的应用程序42a到42d)以低于OS34的特权级别的处理器特权级别(例如,Intel平台上的用户模式)执行。
在一些实施例中,反恶意软件应用程序44通常以与应用程序42e到42f相同的处理器特权级别在OS34上执行。示范性反恶意软件应用程序44包含反病毒程序或较大软件套件,包括反病毒、反间谍软件及其它计算机安全应用程序。在一些实施例中,反恶意软件驱动程序36b以类似于OS34的级别的处理器级别执行。驱动程序36b将功能性提供给反恶意软件应用程序44,例如以针对恶意软件签名扫描存储器及/或检测在OS34上执行的软件对象的指示恶意软件的行为。
在一些实施例中,自省引擎40实质上以与虚拟机监控程序30相同的特权级别执行,且经配置以执行例如VM32的虚拟机器的自省。VM或在相应VM上执行的软件对象的自省可包括:分析软件对象的行为;确定及/或存取此些软件对象的存储器地址;限制某些过程对位于此些地址处的存储器内容的存取;及分析此内容等等。在一些实施例中,由自省引擎40定为目标的软件对象包括过程、指令流、寄存器及例如页表及驱动程序对象的数据结构等等。
在示范性操作中,存储器自省引擎40可设置由受保护免受恶意软件影响的软件对象组成的受保护区域38。保护此些对象可包括限制对存储属于相应对象的数据的存储器区的存取。由于虚拟机监控程序30具有对VM32的存储器空间的控制,因此保护由OS34使用的某些存储器区可例如通过虚拟机监控程序30设定对相应存储器区的适当存取权利而达成。在一些实施例中,受保护区域38包含受保护OS对象36a及反恶意软件驱动程序36b。当OS34为Linux操作系统时,示范性受保护OS对象36a包含:内核(只读代码及/或数据,例如sys_call_table)、系统进入/系统调用控制寄存器及地址int0x80(系统调用)及/或int0x01等等。WindowsOS的示范性受保护对象包含:内核(只读代码及/或数据,包含系统服务调度表)、各种描述符表(例如,中断、全体及/或局部)、系统进入/系统调用控制寄存器及/或其它寄存器,例如中断描述符表寄存器(IDTR)、全局描述符表寄存器(GDTR)及局部描述符表寄存器(LDTR)。在一些实施例中,受保护OS对象36a还可包括特定驱动程序对象及快速I/O调度表(例如,磁盘、atapi、clfs、fltmgr、ntfs、fastfat、iastor、iastorv)等等。其它受保护OS对象36a可包含某些模型特定寄存器(MSR),例如ia32_systenter_eip、ia32_sysenter_esp、ia32_efer、ia32_star、ia32_lstar及ia32_gs_base。在一些实施例中,自省引擎40还保护页表,以防止到内含恶意代码的地址的未授权重新路由。
虚拟机器通常借助虚拟化物理存储器(即,主机系统10的实际物理存储器14的虚拟表示)操作。虚拟化物理存储器包括特定于每一客户VM32a到32b的虚拟化地址的连续空间,其中所述空间的部分映射到物理存储器14及/或物理存储装置20内的地址。在经配置以支持虚拟化的系统中,通常通过处理器12所控制的专用数据结构(例如经扩展页表(EPT)或嵌套页表(NPT))达成此映射。在此些系统中,虚拟化物理存储器可以此项技术中称作页的单元经分割,页表示经由例如EPT及/或NPT的机制个别地映射到物理存储器的虚拟化物理存储器的最小单元,即,以页粒度执行物理与虚拟化物理存储器之间的映射。所有页通常具有预定大小,例如,4千字节、2兆字节等。通常由虚拟机监控程序30配置虚拟化物理存储器的分割。在一些实施例中,虚拟机监控程序30还配置EPT/NPT及因此物理存储器与虚拟化物理存储器之间的映射。一些硬件配置允许虚拟机监控程序30(例如)通过设定对每一页的读取及写入存取权利而选择性地控制对存储于相应页内的数据的存取。可(例如)通过修改EPT或NPT内的相应页的条目而设定此些权利。虚拟机监控程序30因此可选择哪一软件对象可存取存储于每一页内的地址处的数据,且可指示哪些操作借助相应数据被允许,例如,读取、写入等。软件对象执行操作(例如,从对象不具有对其的相应权利的页读取数据或将数据写入到所述页)的尝试可触发虚拟机器退出事件(例如,Intel平台上的VMExit事件)。在一些实施例中,虚拟机器退出事件将对处理器的控制从执行相应软件对象的VM转移到虚拟机监控程序30,因此防止未授权读取/写入尝试。
在一些实施例中,OS34配置虚拟存储器空间(还称作逻辑地址空间)且使所述虚拟存储器空间受作用于例如图3中的应用程序42e到42f及44的应用程序及/或例如受保护对象36a到36b的另一软件对象。在此些系统中,OS34(例如)使用页表机制配置且维持所述虚拟存储器空间与VM32的虚拟化物理存储器之间的映射。在一些实施例中,所述虚拟存储器空间还分割成若干页,此些页表示通过OS34个别地映射到虚拟化物理存储器的虚拟存储器的最小单元(以页粒度执行虚拟到虚拟化物理存储器映射)。
图4图解说明如图2中所展示的实施例中的存储器地址的示范性映射。由客户OS34a给例如应用程序42a或客户OS34a的软件对象指派虚拟地址空间214a。当相应软件对象尝试存取示范性存储器地址50a时,由客户VM32a的虚拟化处理器根据由客户OS34a配置及控制的页表将地址50a转换成虚拟机器32a的虚拟化物理存储器空间114a内的地址50b。地址50b在此项技术中还称作客户物理地址。配置及控制虚拟化物理存储器114a的虚拟机监控程序30接着(例如)使用如上文所讨论的EPT或NPT手段将地址50b映射到主机系统10的物理存储器14内的地址50c。
类似地,由客户OS34b针对应用程序(例如42c)或在客户VM32b上执行的其它软件对象设置虚拟存储器空间214b。由客户VM32b的虚拟化处理器根据由客户OS34b配置及控制的转换表将空间214b内的示范性虚拟地址50d转换为客户VM32b的虚拟化物理存储器空间114b内的地址50e。由虚拟机监控程序30将地址50e进一步映射到物理存储器14内的地址50f中。
在一些实施例中,虚拟机监控程序30设置包括物理存储器14的表示的其自身的虚拟存储器空间214c,且采用转换机制(例如,页表)将空间214c中的地址映射到物理存储器14中的地址中。在图4中,此示范性映射将地址50g转换成地址50h。类似地,物理存储器14中的地址(例如)50c及50f分别对应于虚拟机监控程序30的虚拟存储器空间214c内的地址50k及50m。
OS34a到34b的必要任务是将存储器的区段动态地分配给在相应VM32a到32b上执行的软件对象,且在相应过程不再需要此些区段时释放此些区段以供重新使用。可以虚拟存储器214a到214b的级别或以相应虚拟机器的虚拟化物理存储器114a到114b的级别执行此存储器分配。通常通过专用OS存储器管理功能(例如,中的KeAllocatePoolWithTag及KeFreePoolWithTag)执行存储器分配及解除分配。
由于前文所讨论的存储器映射机制,目标对象的存储器分配总是引起相应VM的虚拟化物理存储器的区段到目标对象的分配。相应区段的大小根据页大小及相应软件对象的存储器要求而可为页的仅一小部分或一个以上页。在下文中,区段被称为是横跨一组页(在所述组页中的每一页含有相应区段的一部分时)。可给数个对象分配相同页的不同区段。图5展示划分成多个页26a到26d的虚拟化物理存储器的示范性区,及示范性存储器分配,其中各自分配给不同软件对象的两个区段52及54横跨相同页26b。另一示范性区段56横跨两个页26c到26d。
相比之下,图6展示根据本发明的一些实施例的示范性存储器分配。如下文详细地展示,当目标对象需要恶意软件保护时,例如,当目标对象为驱动程序对象或属于受保护区域38的另一对象时,保护启动模块46的一些实施例修改目标对象的存储器分配,使得为目标对象预留含有目标对象的一部分的每一页。
所属领域的技术人员将了解,可以数种方式实现为目标对象预留一组页。在一些实施例中,预留页包括将整个页分配给目标对象,如图6的实例中所展示,其中区段58占据整个页26f。可(例如)通过将分配给相应对象的区段的大小改变为等于页大小的整数倍数的新大小而实现此排他分配,如下文更详细地展示。相比之下,在图6的相同实例中,给不受保护软件对象分配由另一页26g的仅一小部分组成的区段60。在其它实施例中,为目标对象预留一组页未必包含修改目标对象的大小或将整组页分配给目标对象,但可通过另外确保未给除目标对象之外的对象分配相应组页内的存储器空间来实现。例如,为目标对象预留页可包括例如在OS34的初始化后即刻留出一组空页,且将所述对象分配(或移动)到相应组空页内,如下文更详细地展示。
图7展示根据本发明的一些实施例的由存储器自省引擎40执行的示范性步骤序列。引擎40可经配置以检验及/或保护在主机系统10上同时执行的多个虚拟机器。可针对每一此类虚拟机器重复图7中所展示的步骤。在步骤102中,引擎40检测OS34的初始化。在一些实施例中,步骤102包括依据虚拟机监控程序30的级别听取指示OS初始化的处理器事件。执行OS初始化操作的处理器指令通常需要内核处理器特权,例如,Intel平台上的环0。当依据OS34的特权级别执行时,此些指令可触发虚拟机器退出事件,例如Intel平台上的VMExit事件,所述事件将对处理器12的控制从OS34转移到虚拟机监控程序30。虚拟机器退出事件因此可由虚拟机监控程序30及/或自省引擎40分析。指示OS初始化的事件及/或处理器指令的实例包括中断及全局描述符表的初始化,此是通过使用例如LIDT及/或LGDT的有特权的指令在WindowsOS的初始化中提早进行的。指示OS初始化的事件/指令的其它实例包含通过使用WRMSR机器指令写入到SYSENTER及/或SYSCALL模型特定寄存器,此是在OS的内核图像已加载于存储器中之后立即完成的。又其它实例包括由OS34编程的其它模型特定寄存器(例如机器检查配置寄存器及FS/GS基址寄存器等等)的初始化。在一些实施例中,检测到此些事件/指令指示已初始化OS34。
在步骤104中,存储器自省引擎40的一些实施例识别在相应客户VM上当前执行或初始化的操作系统的类型。示范性OS类型包含Windows、Linux、MacOS及Android等等。OS类型可包括例如Windows的名称指示符及例如7、Home或Enterprise的版本指示符等等。在一些实施例中,步骤104包括根据相应客户VM的模型特定寄存器(MSR)的内容或相应MSR所指向的存储器的区段的内容来识别OS的类型。在一些实施例中,引擎40可根据通过在步骤102中拦截的指令而正写入到此些MSR的数据来确定OS的名称。例如,引擎40可拦截写入到SYSENTER或SYSCALLMSR的指令,且根据此写入指令的参数确定当前执行或当前初始化的OS的类型。可提供关于OS名称的信息的其它示范性寄存器包含控制寄存器、中断描述符表(IDT)及全局描述符表(GDT)等等。为了根据MSR写入识别OS类型,自省引擎40可进一步使用匹配特定于每一OS的快速系统调用处理程序(例如,根据SYSCALL或SYSENTERMSR的内容处理系统调用)的预定库的模式。此些快速系统调用库可与存储器自省引擎40一起经提供,且可经由周期性或按需软件更新记到最新日期。
在一些实施例中,可通过剖析特定于相应类型的OS的某些内核数据结构而获得版本指示符(例如发布名称、创建号等)。允许OS版本的识别的示范性数据结构为Linux内核的某些输出符号或Windows内核的某些输出符号,例如NtBuildNumber等等。
在步骤106中,存储器自省引擎40可访问保护启动模块46以执行存储器启动操作,使引擎40准备好施加完整性保护。在一些实施例中,此些存储器启动操作包括修改经选择用于恶意软件保护的目标对象的分配,使得为相应目标对象预留含有目标对象的部分的所有页。在一些实施例中,步骤106可包含建立经预留未经分配存储器页池,以稍后专门分配给经选择用于恶意软件保护的对象。为建立此经预留池,保护启动模块46可调用本机OS存储器分配功能以将相应池分配给预定大小(例如,20MB)的虚假软件对象。模块46因此可确保相应存储器池将在由本机OS存储器管理功能执行的进一步分配中未使用。下文关于图8到10进一步详述模块46的功能性。
在步骤108中,存储器自省引擎40选择用于保护的目标对象。在一些实施例中,步骤108包括根据在步骤102到104中确定的OS的类型识别需要恶意软件保护(参见图3中的受保护区域38)的软件对象。作为保护的目标的示范性对象为OS驱动程序对象及反恶意软件驱动程序36b等等。为识别此些对象,存储器自省引擎40可维持需要恶意软件保护的OS特定对象列表;所述列表可通过周期性及/或按需软件更新记到最新日期。在一些实施例中,引擎40可拦截OS34加载驱动程序的每一尝试,且执行相应驱动程序的一组完整性及/或签名检查。此些检查可包含匹配相应驱动程序的一部分的哈希与针对已知驱动程序确定的哈希库,且可允许反恶意软件驱动程序36b在OS34正使用及/或当前尝试加载的多个驱动程序当中的识别。一旦经识别,可连同OS的其它组件一起保护驱动程序36b,如下文更详细地展示。
步骤110等待直到已初始化目标对象。例如,当初始化驱动程序时,OS34执行到分配给相应驱动程序或根据相应驱动程序或根据相应驱动程序经配置以控制的装置选择的其它软件对象的存储器空间的若干个合理配置写入;引擎40可允许此些合理写入作为步骤110的一部分继续进行。为确定是否已初始化目标对象,引擎40的一些实施例可听取指示驱动程序初始化的事件及/或处理器指令。此些事件的实例包含对相应对象的某些区域的修改等等。
在步骤112中,引擎40保护相应目标对象免受(举例而言)被尝试危害OS34的恶意软件的不想要的修改影响。此项技术中已知数个此类存储器保护机制。在一些实施例中,保护目标对象包括对由OS34分配给相应目标对象的存储器空间写保护。可由虚拟机监控程序30应存储器自省引擎40上的请求使用例如EPT或NPT的数据结构强制执行此写保护。例如,虚拟机监控程序30可通过修改相应页的EPT/NPT存取权利位而将分配给目标对象的存储器页设定为只读。或者,虚拟机监控程序30可拦截写入到分配给目标对象的存储器页的任何尝试,且重新引导存储器自省引擎40的相应尝试以用于分析。在分析写入尝试之后,存储器自省引擎40可决定允许还是否定(放弃)相应写入操作。可针对需要恶意软件保护的所有目标对象重复步骤108到112。
在一些实施例中,由保护启动模块46执行的存储器启动操作包括修改经选择用于恶意软件保护的目标软件对象的存储器分配,在引擎40施加相应软件对象的完整性保护之前发生所述修改,如上文所展示(图7,步骤108到112)。在一些实施例中,模块46修改存储器分配使得为相应目标对象预留含有目标对象的部分的存储器页。修改所述存储器分配可包括修改执行在OS34本机的存储器管理功能的结果,及/或修改相应存储器管理功能自身。本机存储器管理功能包括由OS34的制造商提供的软件对象,所述本机功能执行存储器分配及解除分配操作。此些功能的实例为在WindowsOS本机的KeAllocatePoolWithTag及KeFreePoolWithTag。
在一些实施例中,保护启动模块46根据由步骤104中的自省引擎确定的OS类型(例如通过确定其中此些功能驻留于相应客户虚拟机器32的存储器中的存储器地址)识别一组本机存储器管理功能。为确定此些存储器地址,模块46可存取某些数据结构,例如内核二进制图像(例如Windows中的可移植可执行、Linux中的可执行且可链接格式)的输出功能表。
在本机存储器管理功能的识别之后,模块46的一些实施例可继续进行以通过提供额外功能性而修改所述功能。可使用此项技术中已知的任何挂起方法达成此些修改。例如,模块46可施加重写或添加到相应本机功能的重新引导修补程序,例如VMCall指令或JMP指令。其它实施例可修改相应存储器管理功能的EPT条目,以指向新地址。在一些实施例中,此些修补程序及/或EPT钩子程序的效应是将本机功能的执行重新引导到由保护启动模块46提供的代码片段;下文给出此代码的示范性功能性。在挂起之后,当OS34尝试将存储器分配给目标对象或从目标对象解除分配存储器时,将在相应本机OS存储器管理功能的代码之前或替代所述代码执行代码片段。
图8展示根据本发明的一些实施例的包括本机OS存储器分配功能(例如Windows中的KeAllocatePoolWithTag)的修改的示范性步骤序列。所述序列可形成保护启动模块46的一部分,且可由于由施加到相应存储器分配功能的修补程序/钩子执行的重新引导而执行。步骤122应用选择准则以确定请求存储器分配的对象是否有恶意软件保护的资格。可(例如)根据相应功能调用的参数及/或自变数而实施此些确定。示范性选择准则包括根据对象的类型选择对象,例如驱动程序对象。在运行来自Windows系列的OS34的实施例中,可根据本机存储器分配功能KeAllocatePoolWithTag的分配标签确定经分配的对象的类型。例如,“Driv”标签指示驱动程序对象。替代选择准则包括确定请求分配的对象是否在作为恶意软件保护的目标的对象列表上。此列表可包含受保护区域38的部件(图3)。在一些实施例中,额外选择准则包括确定是否可通过下文所描述的方法安全地修改相应对象的存储器分配。
步骤124确定目标对象是否满足用于恶意软件保护的选择准则。如果不满足,那么步骤128将执行控制返回给相应OS的本机存储器分配功能。当目标对象经选择用于保护时,在步骤126中,保护启动模块46的一些实施例将目标对象的大小改变为等于页大小的整数倍数的新对象大小。以此方式改变对象大小可有效地驱迫存储器分配器将一组整体页分配给相应目标对象,而非容纳对象所需要的实际量的存储器。在一些实施例中,目标对象的大小大约为页大小的次近邻整数倍数。例如,可给320字节的目标对象分配整体4kB页,可给6kB的对象分配两个整体4kB页等。在一些实施例中,例如执行WindowsOS、分配测量至少一个页的大小的存储器的区段的虚拟机器将所分配区段自动对准到页边界(例如,图6中的区段58)。在其它实施例中,步骤126可包含将所分配区段明确地对准到页边界,使得由所述区段横跨的所有页专门分配给目标对象。所属领域的技术人员将了解,可存在达成区段到页边界的对准的许多方式。例如,步骤126可包含使目标对象的大小增加一个页的大小,且改变存储器的所得所分配区段的指针。在完成步骤126之后,将执行控制返回给本机OS存储器管理功能。
图9展示图解说明保护启动模块46可达成存储器分配(其中为受保护软件对象预留由分配给相应对象的区段横跨的所有页)的替代方式的示范性步骤序列。图9中所展示的序列包括修改本机OS存储器分配功能(例如Windows中的KeAllocatePoolWithTag)的功能性,且可响应于施加到相应存储器分配功能的修补程序/钩子而执行。步骤132到134序列验证目标对象是否满足用于恶意软件保护的准则;步骤132到134可以类似于上文所描述的步骤122到124的方式的方式继续进行。当目标对象未经选择用于保护时,步骤138将处理器控制返回给相应本机存储器分配功能。当目标对象经选择用于恶意软件保护时,步骤136绕过本机分配功能,且直接分配位于为受保护对象保留的存储器区内的区段。在一些实施例中,步骤136包括确定指示位于由模块46在OS34的初始化后即刻建立的经预留存储器池(参见上文,关于图7,步骤106)内的地址的分配指针。在一些实施例中,模块46可进一步确定分配指针,使得所分配区段对准到页边界。接下来,步骤140返回在步骤136中确定的分配指针。
在一些实施例中,保护启动模块46还可通过改变执行本机OS存储器解除分配功能的结果或通过修改相应功能自身而修改解除分配过程。可(例如)通过挂起本机OS存储器解除分配功能(例如KeFreePoolWithTag)以包含额外功能性而达成此些修改。图10展示根据本发明的一些实施例的包括存储器解除分配功能的此修改的示范性步骤序列。步骤142到144序列确定经解除分配的对象的地址是否受到自省引擎40及/或虚拟机监控程序30(参见上文)写保护。当相应地址/页不具有此保护时,步骤148将执行控制返回给本机OS解除分配功能。当相应地址/页受到引擎40及/或虚拟机监控程序30写保护时,在步骤146中,存储器自省引擎40及/或虚拟机监控程序30的组件可在继续进行到步骤148之前移除保护。在一些实施例中,从相应对象移除保护包括操作EPT或NPT的改变,此指示内含相应对象的地址的页不再被写保护,例如只读。
上文所描述的示范性系统及方法允许保护主机系统(例如计算机系统)免受例如病毒及根程序病毒包的恶意软件影响。在常规系统中,根程序病毒包可通过以实质上类似于操作系统的级别的处理器特权级别操作而控制计算机系统。相比之下,在本发明的一些实施例中,虚拟机监控程序在计算机系统上以最高特权级别执行,从而使操作系统位移到虚拟机器。在一些实施例中,存储器自省引擎以与虚拟机监控程序相同的处理器特权级别执行。因此可依据高于操作系统的级别的处理器特权级别进行反恶意软件操作。在一些实施例中,单个存储器自省引擎可保护在相应计算机系统上同时执行的多个虚拟机器。
在一些实施例中,保护相应系统免受恶意软件影响包括选择一组关键软件对象,例如某些驱动程序、寄存器及页表等等,且防止对此些对象的恶意改变。为保护目标对象,一些实施例可通过拦截写入到分配给相应对象的存储器空间的尝试而防止此些恶意改变。可依据虚拟机监控程序的级别执行此些拦截。
其它实施例可通过将分配给目标对象的存储器空间标记为只读而保护相应对象。在典型硬件及软件配置中,存储器被分割成连续地址的个别块,称作页。通常以页粒度设定存取权限(例如,读取及写入权限),即,页内的所有地址具有相同存取权限。因此,可(例如)通过将含有属于目标对象的数据的一组页标记为只读而达成保护相应对象的存储器空间。由虚拟机监控程序(例如)使用专用数据结构(例如Intel平台上的经扩展页表(EPT))控制页级存取权限。
在常规系统中,当OS将存储器空间分配给在相应系统上执行的软件对象时,可在相同页内分配多个软件对象,例如,当相应对象具有小存储器占用面积时。在一些情境中,相应对象中的一者对于OS可是关键的且因此需要保护以免受恶意软件影响,而来自相同页的另一对象可需要频繁且合理重写入。由于以页粒度设定存取权限,因此保护关键对象可导致否定对作为关键对象驻留于相同页内的所有对象的写入存取。写入到驻留于受保护页内的存储器地址的每一尝试通常导致错误,后续接着将对处理器的控制从相应虚拟机器的OS转移到虚拟机监控程序的虚拟机器退出事件。此些事件可包括将相应虚拟机器的状态加载到处理器上及/或从处理器卸载相应虚拟机器的状态,从而进一步添加计算额外开销。甚至写入到尤其内含受保护对象的页的合理尝试可因此产生计算机系统的显著减速。
相比之下,本发明的一些实施例修改存储器分配给需要恶意软件保护的软件对象的方式,使得为相应对象预留含有相应对象的一部分的每一存储器页。在将完整性保护施加到相应软件对象之前执行此修改。通过确保没有其它对象与目标对象共享存储器页,本发明的一些实施例允许以页粒度的完整性保护,同时避免由合理写入尝试的拦截导致的计算额外开销。
在一些实施例中,修改在相应OS本机的分配方式包括识别OS的存储器分配及解除分配功能,且挂起相应功能以将其执行重新引导到依据虚拟机监控程序的处理器特权级别执行的指令集。或者,所述修改将相应功能重新引导到在运行相应OS的VM内侧运行的指令集,所述指令集依据虚拟机监控程序的级别注入到相应VM的存储器中。在一些实施例中,修改存储器分配功能以驱迫整体存储器页到需要保护的软件对象的分配,所分配区段与页边界对准。因此,需要保护的对象可不再分配给与不需要保护的对象相同的存储器页。
替代实施例确保通过例如在OS初始化后即刻留出经预留存储器池而为目标对象预留分配给所述目标对象的每一页。当操作系统请求用于目标对象的存储器分配时,一些实施例可将分配指针重新引导到经预留池内的地址,因此将目标对象有效地移动到一组经预留页。
常规反恶意软件解决方案通常适合单个操作系统。一个操作系统与另一操作系统之间的切换可需要加载反恶意软件的软件的不同版本。相比之下,在本发明的一些实施例中,相同存储器自省引擎可对相应计算机系统进行恶意软件保护,而不考虑正运行的操作系统的类型及版本。通过以虚拟机监控程序的级别执行存储器自省引擎,且通过使操作系统位移到虚拟机器,一些实施例可同时运行且保护数个操作系统。在一些实施例中,存储器自省引擎可动态地识别每一操作系统,例如开机时,且可进一步保护OS特定软件对象及数据结构。
所属领域的技术人员将清楚,可在不背离本发明的范围的情况下以许多方式更改以上实施例。因此,本发明的范围应由所附权利要求书及其法律等效形式确定。
Claims (29)
1.一种主机系统,其包括至少一个处理器,所述至少一个处理器经配置以执行:
操作系统,其经配置以将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序,其中所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元;及
保护启动模块,其响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定而在所述目标软件对象满足所述选择准则时经配置以改变所述目标对象的存储器分配,其中改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
2.根据权利要求1所述的主机系统,其进一步包括连接到所述保护启动模块的存储器自省引擎,所述存储器自省引擎响应于所述保护启动模块改变所述存储器分配而经配置以对含有所述目标软件对象的至少一部分的所有页写保护。
3.根据权利要求2所述的主机系统,其中所述存储器自省引擎进一步经配置以:
确定是否已初始化所述目标软件对象,且
作为响应,当已初始化所述目标软件对象时,对含有所述目标软件对象的至少一部分的所有页写保护。
4.根据权利要求1所述的主机系统,其中所述选择准则包括根据所述操作系统的类型选择所述目标软件对象。
5.根据权利要求4所述的主机系统,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括根据所述虚拟机器的模型特定寄存器MSR的内容识别所述操作系统的所述类型。
6.根据权利要求4所述的主机系统,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括根据所述虚拟机器的模型特定寄存器MSR所指向的存储器内容识别所述操作系统的所述类型。
7.根据权利要求1所述的主机系统,其中改变所述存储器分配包括挂起所述操作系统的存储器分配功能。
8.根据权利要求1所述的主机系统,其中改变所述存储器分配包括指令所述操作系统的存储器分配功能将含有所述目标软件对象的至少一部分的任何页专门分配给所述目标软件对象。
9.根据权利要求8所述的主机系统,其中指令所述存储器分配功能包括将所述目标软件对象的大小改变为页大小的整数倍数。
10.根据权利要求9所述的主机系统,其中指令所述存储器分配功能进一步包括将所述区段对准到页边界。
11.根据权利要求1所述的主机系统,其中所述保护启动模块进一步经配置以建立经预留页池,所述池经预留用于到受恶意软件保护的软件对象的分配,且其中改变所述存储器分配包括在所述经预留存储器页池内分配所述区段。
12.根据权利要求1所述的主机系统,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括:
确定所述目标软件对象是否为驱动程序对象;及
作为响应,当所述目标软件对象为驱动程序对象时,确定所述目标软件对象满足用于恶意软件保护的所述选择准则。
13.根据权利要求1所述的主机系统,其中所述保护启动模块进一步经配置以改变所述目标对象的解除分配,其中改变所述解除分配包括:
确定含有所述目标软件对象的至少一部分的页是否受到写保护,及
作为响应,当所述页受到写保护时,从所述页移除所述写保护。
14.根据权利要求12所述的主机系统,其中改变所述解除分配进一步包括挂起所述操作系统的存储器解除分配功能。
15.一种方法,其包括:
采用主机系统的至少一个处理器来形成操作系统,所述操作系统经配置以将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序,其中所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元;及
响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定,在所述目标软件对象满足所述选择准则时,采用所述至少一个处理器来改变所述目标软件对象的存储器分配,其中改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
16.根据权利要求15所述的方法,其进一步包括响应于改变所述存储器分配而对含有所述目标软件对象的至少一部分的所有页写保护。
17.根据权利要求16所述的方法,其进一步包括:
确定是否已初始化所述目标软件对象,及
作为响应,当已初始化所述目标软件对象时,对含有所述目标软件对象的至少一部分的所有页写保护。
18.根据权利要求15所述的方法,其中所述选择准则包括根据所述操作系统的类型选择所述目标软件对象。
19.根据权利要求18所述的方法,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括根据所述虚拟机器的模型特定寄存器MSR的内容识别所述操作系统的所述类型。
20.根据权利要求18所述的方法,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括根据所述虚拟机器的模型特定寄存器MSR所指向的存储器内容识别所述操作系统的所述类型。
21.根据权利要求15所述的方法,其中改变所述存储器分配包括挂起所述操作系统的存储器分配功能。
22.根据权利要求21所述的方法,其中改变所述存储器分配包括指令所述操作系统的存储器分配功能将含有所述目标软件对象的至少一部分的所有页专门分配给所述目标软件对象。
23.根据权利要求22所述的方法,其中指令所述存储器分配功能包括将所述目标软件对象的大小改变为页大小的整数倍数。
24.根据权利要求23所述的方法,其中指令所述存储器分配功能进一步包括将所述区段对准到页边界。
25.根据权利要求15所述的方法,其中改变所述存储器分配包括:
建立经预留页池,所述池经预留用于到受恶意软件保护的软件对象的分配,及
在所述经预留存储器页池内分配所述区段。
26.根据权利要求15所述的方法,其中所述目标软件对象是否满足用于恶意软件保护的所述选择准则的所述确定包括:
确定所述目标软件对象是否为驱动程序对象;及
作为响应,当所述目标软件对象为驱动程序对象时,确定所述目标软件对象满足用于恶意软件保护的所述选择准则。
27.根据权利要求15所述的方法,其进一步包括采用所述至少一个处理器来改变所述目标软件对象的解除分配,其中改变所述解除分配包括:
确定含有所述软件对象的至少一部分的页是否受到写保护,及
作为响应,当所述页受到写保护时,从所述页移除所述写保护。
28.根据权利要求27所述的方法,其中改变所述解除分配进一步包括挂起所述操作系统的存储器解除分配功能。
29.一种编码指令的非暂时性计算机可读媒体,所述指令在由主机系统的至少一个处理器执行时致使所述至少一个处理器:
将虚拟机器的虚拟化物理存储器的区段分配给在所述虚拟机器内执行的目标软件对象,所述虚拟机器受作用于在所述主机系统上执行的虚拟机监控程序,其中所述虚拟化物理存储器被分割成若干页,一页为在所述虚拟化物理存储器与所述主机系统的物理存储器之间个别地映射的最小存储器单元;及
响应于所述目标软件对象是否满足用于恶意软件保护的选择准则的确定,在所述目标软件对象满足所述选择准则时,改变所述目标软件对象的存储器分配,其中改变所述存储器分配包括确保为所述目标软件对象预留含有所述目标软件对象的至少一部分的任何页。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/774,720 US8875295B2 (en) | 2013-02-22 | 2013-02-22 | Memory introspection engine for integrity protection of virtual machines |
US13/774,720 | 2013-02-22 | ||
PCT/RO2014/000006 WO2014129918A1 (en) | 2013-02-22 | 2014-02-04 | Memory introspection engine for integrity protection of virtual machines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105190570A true CN105190570A (zh) | 2015-12-23 |
CN105190570B CN105190570B (zh) | 2018-02-13 |
Family
ID=50389476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480009502.9A Active CN105190570B (zh) | 2013-02-22 | 2014-02-04 | 用于虚拟机器的完整性保护的存储器自省引擎 |
Country Status (13)
Country | Link |
---|---|
US (1) | US8875295B2 (zh) |
EP (1) | EP2959392B1 (zh) |
JP (1) | JP6218859B2 (zh) |
KR (1) | KR101863174B1 (zh) |
CN (1) | CN105190570B (zh) |
AU (1) | AU2014219466B2 (zh) |
CA (1) | CA2897747C (zh) |
ES (1) | ES2873229T3 (zh) |
HK (1) | HK1214663A1 (zh) |
IL (1) | IL239855B (zh) |
RU (1) | RU2640300C2 (zh) |
SG (1) | SG11201505931RA (zh) |
WO (1) | WO2014129918A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844005A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN108475217A (zh) * | 2016-01-05 | 2018-08-31 | 比特梵德知识产权管理有限公司 | 用于审计虚拟机的系统及方法 |
CN109074321A (zh) * | 2016-04-16 | 2018-12-21 | 威睿公司 | 用于保护虚拟计算实例的存储页的技术 |
CN109923546A (zh) * | 2016-12-19 | 2019-06-21 | 比特梵德知识产权管理有限公司 | 虚拟机安全性应用程序的事件过滤 |
CN112534416A (zh) * | 2018-08-08 | 2021-03-19 | 华为技术有限公司 | 用于在计算设备的虚拟机监视器中提供一次性可编程存储器部件的装置和方法 |
Families Citing this family (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8989705B1 (en) | 2009-06-18 | 2015-03-24 | Sprint Communications Company L.P. | Secure placement of centralized media controller application in mobile access terminal |
US9239909B2 (en) * | 2012-01-25 | 2016-01-19 | Bromium, Inc. | Approaches for protecting sensitive data within a guest operating system |
US9027102B2 (en) | 2012-05-11 | 2015-05-05 | Sprint Communications Company L.P. | Web server bypass of backend process on near field communications and secure element chips |
US9282898B2 (en) | 2012-06-25 | 2016-03-15 | Sprint Communications Company L.P. | End-to-end trusted communications infrastructure |
US9066230B1 (en) | 2012-06-27 | 2015-06-23 | Sprint Communications Company L.P. | Trusted policy and charging enforcement function |
US8649770B1 (en) | 2012-07-02 | 2014-02-11 | Sprint Communications Company, L.P. | Extended trusted security zone radio modem |
US8667607B2 (en) | 2012-07-24 | 2014-03-04 | Sprint Communications Company L.P. | Trusted security zone access to peripheral devices |
US9183412B2 (en) | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
US10187452B2 (en) | 2012-08-23 | 2019-01-22 | TidalScale, Inc. | Hierarchical dynamic scheduling |
US9215180B1 (en) | 2012-08-25 | 2015-12-15 | Sprint Communications Company L.P. | File retrieval in real-time brokering of digital content |
US8954588B1 (en) | 2012-08-25 | 2015-02-10 | Sprint Communications Company L.P. | Reservations in real-time brokering of digital content delivery |
US9015068B1 (en) | 2012-08-25 | 2015-04-21 | Sprint Communications Company L.P. | Framework for real-time brokering of digital content delivery |
US9161227B1 (en) | 2013-02-07 | 2015-10-13 | Sprint Communications Company L.P. | Trusted signaling in long term evolution (LTE) 4G wireless communication |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9104840B1 (en) | 2013-03-05 | 2015-08-11 | Sprint Communications Company L.P. | Trusted security zone watermark |
US9075995B2 (en) * | 2013-03-11 | 2015-07-07 | Microsoft Technology Licensing, Llc | Dynamically loaded measured environment for secure code launch |
US9335886B2 (en) * | 2013-03-13 | 2016-05-10 | Assured Information Security, Inc. | Facilitating user interaction with multiple domains while preventing cross-domain transfer of data |
US9613208B1 (en) * | 2013-03-13 | 2017-04-04 | Sprint Communications Company L.P. | Trusted security zone enhanced with trusted hardware drivers |
US9049013B2 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone containers for the protection and confidentiality of trusted service manager data |
US9049186B1 (en) | 2013-03-14 | 2015-06-02 | Sprint Communications Company L.P. | Trusted security zone re-provisioning and re-use capability for refurbished mobile devices |
US9374363B1 (en) | 2013-03-15 | 2016-06-21 | Sprint Communications Company L.P. | Restricting access of a portable communication device to confidential data or applications via a remote network based on event triggers generated by the portable communication device |
US9021585B1 (en) | 2013-03-15 | 2015-04-28 | Sprint Communications Company L.P. | JTAG fuse vulnerability determination and protection using a trusted execution environment |
US8984592B1 (en) | 2013-03-15 | 2015-03-17 | Sprint Communications Company L.P. | Enablement of a trusted security zone authentication for remote mobile device management systems and methods |
US9191388B1 (en) | 2013-03-15 | 2015-11-17 | Sprint Communications Company L.P. | Trusted security zone communication addressing on an electronic device |
US9454723B1 (en) | 2013-04-04 | 2016-09-27 | Sprint Communications Company L.P. | Radio frequency identity (RFID) chip electrically and communicatively coupled to motherboard of mobile communication device |
US9171243B1 (en) | 2013-04-04 | 2015-10-27 | Sprint Communications Company L.P. | System for managing a digest of biographical information stored in a radio frequency identity chip coupled to a mobile communication device |
US9324016B1 (en) | 2013-04-04 | 2016-04-26 | Sprint Communications Company L.P. | Digest of biographical information for an electronic device with static and dynamic portions |
US9838869B1 (en) | 2013-04-10 | 2017-12-05 | Sprint Communications Company L.P. | Delivering digital content to a mobile device via a digital rights clearing house |
US9443088B1 (en) | 2013-04-15 | 2016-09-13 | Sprint Communications Company L.P. | Protection for multimedia files pre-downloaded to a mobile device |
US9069952B1 (en) | 2013-05-20 | 2015-06-30 | Sprint Communications Company L.P. | Method for enabling hardware assisted operating system region for safe execution of untrusted code using trusted transitional memory |
US9560519B1 (en) | 2013-06-06 | 2017-01-31 | Sprint Communications Company L.P. | Mobile communication device profound identity brokering framework |
US9183606B1 (en) | 2013-07-10 | 2015-11-10 | Sprint Communications Company L.P. | Trusted processing location within a graphics processing unit |
US9208339B1 (en) | 2013-08-12 | 2015-12-08 | Sprint Communications Company L.P. | Verifying Applications in Virtual Environments Using a Trusted Security Zone |
WO2015030746A1 (en) * | 2013-08-28 | 2015-03-05 | Empire Technology Development, Llc | Virtual machine exit analyzer |
US9185626B1 (en) | 2013-10-29 | 2015-11-10 | Sprint Communications Company L.P. | Secure peer-to-peer call forking facilitated by trusted 3rd party voice server provisioning |
US10089474B2 (en) * | 2013-10-29 | 2018-10-02 | Hewlett Packard Enterprise Development Lp | Virtual machine introspection |
US9191522B1 (en) | 2013-11-08 | 2015-11-17 | Sprint Communications Company L.P. | Billing varied service based on tier |
US9161325B1 (en) | 2013-11-20 | 2015-10-13 | Sprint Communications Company L.P. | Subscriber identity module virtualization |
US9118655B1 (en) | 2014-01-24 | 2015-08-25 | Sprint Communications Company L.P. | Trusted display and transmission of digital ticket documentation |
US10078752B2 (en) | 2014-03-27 | 2018-09-18 | Barkly Protects, Inc. | Continuous malicious software identification through responsive machine learning |
WO2015148914A1 (en) * | 2014-03-27 | 2015-10-01 | Cylent Systems, Inc. | Malicious software identification integrating behavioral analytics and hardware events |
US9733976B2 (en) * | 2014-03-27 | 2017-08-15 | Barkly Protects, Inc. | Method and apparatus for SYSRET monitoring of system interactions |
US9226145B1 (en) | 2014-03-28 | 2015-12-29 | Sprint Communications Company L.P. | Verification of mobile device integrity during activation |
US9973531B1 (en) * | 2014-06-06 | 2018-05-15 | Fireeye, Inc. | Shellcode detection |
US9230085B1 (en) | 2014-07-29 | 2016-01-05 | Sprint Communications Company L.P. | Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services |
US20160062655A1 (en) * | 2014-08-28 | 2016-03-03 | Endgame, Inc. | System and Method for Improved Memory Allocation in a Computer System |
US9600664B1 (en) * | 2014-09-03 | 2017-03-21 | Amazon Technologies, Inc. | Monitoring execution environments for approved configurations |
WO2016037650A1 (en) * | 2014-09-10 | 2016-03-17 | Irdeto B.V. | Memory privilege |
US9716727B1 (en) | 2014-09-30 | 2017-07-25 | Palo Alto Networks, Inc. | Generating a honey network configuration to emulate a target network environment |
US10044675B1 (en) | 2014-09-30 | 2018-08-07 | Palo Alto Networks, Inc. | Integrating a honey network with a target network to counter IP and peer-checking evasion techniques |
US9882929B1 (en) | 2014-09-30 | 2018-01-30 | Palo Alto Networks, Inc. | Dynamic selection and generation of a virtual clone for detonation of suspicious content within a honey network |
US9495188B1 (en) | 2014-09-30 | 2016-11-15 | Palo Alto Networks, Inc. | Synchronizing a honey network configuration to reflect a target network environment |
US9860208B1 (en) | 2014-09-30 | 2018-01-02 | Palo Alto Networks, Inc. | Bridging a virtual clone of a target device in a honey network to a suspicious device in an enterprise network |
US9921979B2 (en) | 2015-01-14 | 2018-03-20 | Red Hat Israel, Ltd. | Position dependent code in virtual machine functions |
US9779232B1 (en) | 2015-01-14 | 2017-10-03 | Sprint Communications Company L.P. | Trusted code generation and verification to prevent fraud from maleficent external devices that capture data |
US9189630B1 (en) * | 2015-01-21 | 2015-11-17 | AO Kaspersky Lab | Systems and methods for active operating system kernel protection |
US9838868B1 (en) | 2015-01-26 | 2017-12-05 | Sprint Communications Company L.P. | Mated universal serial bus (USB) wireless dongles configured with destination addresses |
US9600190B2 (en) | 2015-02-27 | 2017-03-21 | Red Hat Israel, Ltd. | Virtual machine functions for multiple privileged pages |
US9473945B1 (en) | 2015-04-07 | 2016-10-18 | Sprint Communications Company L.P. | Infrastructure for secure short message transmission |
US11010054B1 (en) | 2015-06-10 | 2021-05-18 | EMC IP Holding Company LLC | Exabyte-scale data processing system |
US10713334B1 (en) | 2015-06-10 | 2020-07-14 | EMC IP Holding Company LLC | Data processing system with a scalable architecture over ethernet |
US10503416B1 (en) | 2015-06-10 | 2019-12-10 | EMC IP Holdings Company LLC | Flash memory complex with a replication interface to replicate data to another flash memory complex of a data processing system |
US10515014B1 (en) | 2015-06-10 | 2019-12-24 | EMC IP Holding Company LLC | Non-uniform memory access (NUMA) mechanism for accessing memory with cache coherence |
US10496284B1 (en) * | 2015-06-10 | 2019-12-03 | EMC IP Holding Company LLC | Software-implemented flash translation layer policies in a data processing system |
US10496626B2 (en) | 2015-06-11 | 2019-12-03 | EB Storage Systems Ltd. | Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect |
US10395029B1 (en) * | 2015-06-30 | 2019-08-27 | Fireeye, Inc. | Virtual system and method with threat protection |
US10726127B1 (en) | 2015-06-30 | 2020-07-28 | Fireeye, Inc. | System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer |
US11113086B1 (en) | 2015-06-30 | 2021-09-07 | Fireeye, Inc. | Virtual system and method for securing external network connectivity |
US10642753B1 (en) | 2015-06-30 | 2020-05-05 | Fireeye, Inc. | System and method for protecting a software component running in virtual machine using a virtualization layer |
US9819679B1 (en) | 2015-09-14 | 2017-11-14 | Sprint Communications Company L.P. | Hardware assisted provenance proof of named data networking associated to device data, addresses, services, and servers |
RU2609761C1 (ru) * | 2015-09-30 | 2017-02-02 | Акционерное общество "Лаборатория Касперского" | Способ выполнения кода в режиме гипервизора |
US10281743B2 (en) | 2015-10-01 | 2019-05-07 | Verily Life Sciences Llc | Eye convergence detection with contact lenses |
US10222632B2 (en) | 2015-10-01 | 2019-03-05 | Verily Life Sciences Llc | Lens-to-lens communication for contact lenses |
KR102513961B1 (ko) * | 2015-11-11 | 2023-03-27 | 삼성전자주식회사 | 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법 |
US10282719B1 (en) | 2015-11-12 | 2019-05-07 | Sprint Communications Company L.P. | Secure and trusted device-based billing and charging process using privilege for network proxy authentication and audit |
US9817992B1 (en) | 2015-11-20 | 2017-11-14 | Sprint Communications Company Lp. | System and method for secure USIM wireless network access |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US9842084B2 (en) | 2016-04-05 | 2017-12-12 | E8 Storage Systems Ltd. | Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices |
US10255088B2 (en) | 2016-05-13 | 2019-04-09 | Red Hat Israel, Ltd. | Modification of write-protected memory using code patching |
US10353736B2 (en) * | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
KR101970176B1 (ko) * | 2016-10-24 | 2019-04-17 | 주식회사 산엔지니어링 | 가상 플랫폼 기반의 통합 항해 시스템 |
US9798482B1 (en) * | 2016-12-05 | 2017-10-24 | Red Hat, Inc. | Efficient and secure memory allocation in virtualized computer systems |
US10031872B1 (en) * | 2017-01-23 | 2018-07-24 | E8 Storage Systems Ltd. | Storage in multi-queue storage devices using queue multiplexing and access control |
US10489185B2 (en) * | 2017-03-17 | 2019-11-26 | Nicira, Inc. | Hypervisor-assisted approach for locating operating system data structures based on attribute matching |
EP3379445B1 (en) | 2017-03-22 | 2024-06-12 | Diebold Nixdorf Systems GmbH | System and method to generate encryption keys based on information of peripheral devices |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
US10503904B1 (en) | 2017-06-29 | 2019-12-10 | Fireeye, Inc. | Ransomware detection and mitigation |
US10499249B1 (en) | 2017-07-11 | 2019-12-03 | Sprint Communications Company L.P. | Data link layer trust signaling in communication network |
US10742491B2 (en) | 2017-07-20 | 2020-08-11 | Vmware, Inc. | Reducing initial network launch time of container applications |
US10579439B2 (en) | 2017-08-29 | 2020-03-03 | Red Hat, Inc. | Batched storage hinting with fast guest storage allocation |
US10956216B2 (en) | 2017-08-31 | 2021-03-23 | Red Hat, Inc. | Free page hinting with multiple page sizes |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US10685010B2 (en) | 2017-09-11 | 2020-06-16 | Amazon Technologies, Inc. | Shared volumes in distributed RAID over shared multi-queue storage devices |
US10565376B1 (en) | 2017-09-11 | 2020-02-18 | Palo Alto Networks, Inc. | Efficient program deobfuscation through system API instrumentation |
US10474382B2 (en) | 2017-12-01 | 2019-11-12 | Red Hat, Inc. | Fast virtual machine storage allocation with encrypted storage |
US10970390B2 (en) | 2018-02-15 | 2021-04-06 | Intel Corporation | Mechanism to prevent software side channels |
US10922096B2 (en) * | 2018-02-28 | 2021-02-16 | Vmware, Inc. | Reducing subsequent network launch time of container applications |
US20200409740A1 (en) * | 2019-06-27 | 2020-12-31 | Shih-Wei Li | Systems, methods, and media for trusted hypervisors |
US11436141B2 (en) | 2019-12-13 | 2022-09-06 | Red Hat, Inc. | Free memory page hinting by virtual machines |
US11265346B2 (en) | 2019-12-19 | 2022-03-01 | Palo Alto Networks, Inc. | Large scale high-interactive honeypot farm |
US11271907B2 (en) | 2019-12-19 | 2022-03-08 | Palo Alto Networks, Inc. | Smart proxy for a large scale high-interaction honeypot farm |
KR102370848B1 (ko) * | 2020-11-17 | 2022-03-07 | 주식회사 시큐브 | 분할된 보안 모듈을 구비하는 컴퓨터 장치 및 보안 모듈 업데이트 방법 |
US12086237B2 (en) | 2021-10-21 | 2024-09-10 | Microsoft Technology Licensing, Llc | Securely redirecting system service routines |
EP4420019A1 (en) * | 2021-10-21 | 2024-08-28 | Microsoft Technology Licensing, LLC | Securely redirecting system service routines |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070055837A1 (en) * | 2005-09-06 | 2007-03-08 | Intel Corporation | Memory protection within a virtual partition |
US20120216187A1 (en) * | 2011-02-17 | 2012-08-23 | International Business Machines Corporation | Multilevel support in a nested virtualization environment |
US20120254993A1 (en) * | 2011-03-28 | 2012-10-04 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
CN102859502A (zh) * | 2011-03-02 | 2013-01-02 | 松下电器产业株式会社 | 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851057B1 (en) * | 1999-11-30 | 2005-02-01 | Symantec Corporation | Data driven detection of viruses |
US6779099B2 (en) * | 2001-07-20 | 2004-08-17 | Chien-Tzu Hou | Operation method for controlling access attributes of a memorized page of a memory unit and its structure |
KR101044173B1 (ko) * | 2003-03-06 | 2011-06-24 | 마이크로소프트 코포레이션 | 분산형 컴퓨팅 시스템상에서 분산형 애플리케이션들을 설계, 배포 및 관리하기 위한 방법 및 장치, 자원 관리자 및 컴퓨터 판독가능 기록 매체 |
US7760882B2 (en) * | 2004-06-28 | 2010-07-20 | Japan Communications, Inc. | Systems and methods for mutual authentication of network nodes |
US7277999B1 (en) | 2004-08-12 | 2007-10-02 | Vmware, Inc. | Restricting memory access to protect data when sharing a common address space |
US7836504B2 (en) * | 2005-03-01 | 2010-11-16 | Microsoft Corporation | On-access scan of memory for malware |
US20070067590A1 (en) * | 2005-09-22 | 2007-03-22 | Uday Savagaonkar | Providing protected access to critical memory regions |
GB0525871D0 (en) * | 2005-12-20 | 2006-02-01 | Symbian Software Ltd | Malicious software detecting in a computing device |
US20140373144A9 (en) * | 2006-05-22 | 2014-12-18 | Alen Capalik | System and method for analyzing unauthorized intrusion into a computer network |
US7822941B2 (en) | 2006-06-05 | 2010-10-26 | Oracle America, Inc. | Function-based virtual-to-physical address translation |
US20080320594A1 (en) * | 2007-03-19 | 2008-12-25 | Xuxian Jiang | Malware Detector |
US7657695B1 (en) | 2007-05-30 | 2010-02-02 | Paravirtual Corporation | Efficient processing of memory accesses to virtual hardware using runtime code patching |
US7797748B2 (en) * | 2007-12-12 | 2010-09-14 | Vmware, Inc. | On-access anti-virus mechanism for virtual machine architecture |
US8839237B2 (en) * | 2007-12-31 | 2014-09-16 | Intel Corporation | Method and apparatus for tamper resistant communication in a virtualization enabled platform |
US8104089B1 (en) * | 2007-12-31 | 2012-01-24 | Symantec Corporation | Tracking memory mapping to prevent packers from evading the scanning of dynamically created code |
US8510828B1 (en) * | 2007-12-31 | 2013-08-13 | Symantec Corporation | Enforcing the execution exception to prevent packers from evading the scanning of dynamically created code |
JP4783392B2 (ja) * | 2008-03-31 | 2011-09-28 | 株式会社東芝 | 情報処理装置および障害回復方法 |
US20090307705A1 (en) | 2008-06-05 | 2009-12-10 | Neocleus Israel Ltd | Secure multi-purpose computing client |
US8381288B2 (en) * | 2008-09-30 | 2013-02-19 | Intel Corporation | Restricted component access to application memory |
RU2406138C1 (ru) * | 2009-06-18 | 2010-12-10 | Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." | Система безопасности виртуализованной компьютерной системы |
US8397242B1 (en) * | 2009-06-30 | 2013-03-12 | Symantec Corporation | System and method for managing operations within virtual machines |
US8838913B1 (en) * | 2009-09-15 | 2014-09-16 | Symantec Corporation | System and method for locating a memory page in a guest virtual machine |
US8327059B2 (en) | 2009-09-30 | 2012-12-04 | Vmware, Inc. | System and method to enhance memory protection for programs in a virtual machine environment |
US8209510B1 (en) | 2010-01-13 | 2012-06-26 | Juniper Networks, Inc. | Secure pool memory management |
US8474039B2 (en) * | 2010-01-27 | 2013-06-25 | Mcafee, Inc. | System and method for proactive detection and repair of malware memory infection via a remote memory reputation system |
US20120240224A1 (en) * | 2010-09-14 | 2012-09-20 | Georgia Tech Research Corporation | Security systems and methods for distinguishing user-intended traffic from malicious traffic |
US20130179971A1 (en) * | 2010-09-30 | 2013-07-11 | Hewlett-Packard Development Company, L.P. | Virtual Machines |
KR101213572B1 (ko) * | 2010-12-03 | 2012-12-18 | 한국과학기술원 | 하이퍼바이저를 활용한 사용자 어플리케이션 메모리 보호방법 |
US8307169B2 (en) | 2011-03-10 | 2012-11-06 | Safenet, Inc. | Protecting guest virtual machine memory |
US8893124B2 (en) | 2011-03-31 | 2014-11-18 | Intel Corporation | Method, apparatus and system for limiting access to virtualization information in a memory |
US20140053272A1 (en) * | 2012-08-20 | 2014-02-20 | Sandor Lukacs | Multilevel Introspection of Nested Virtual Machines |
US8656482B1 (en) * | 2012-08-20 | 2014-02-18 | Bitdefender IPR Management Ltd. | Secure communication using a trusted virtual machine |
US9043653B2 (en) * | 2012-08-31 | 2015-05-26 | International Business Machines Corporation | Introspection of software program components and conditional generation of memory dump |
US8910238B2 (en) * | 2012-11-13 | 2014-12-09 | Bitdefender IPR Management Ltd. | Hypervisor-based enterprise endpoint protection |
US10572665B2 (en) * | 2012-12-28 | 2020-02-25 | Fireeye, Inc. | System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events |
US20140259169A1 (en) * | 2013-03-11 | 2014-09-11 | Hewlett-Packard Development Company, L.P. | Virtual machines |
-
2013
- 2013-02-22 US US13/774,720 patent/US8875295B2/en active Active
-
2014
- 2014-02-04 KR KR1020157022480A patent/KR101863174B1/ko active IP Right Grant
- 2014-02-04 WO PCT/RO2014/000006 patent/WO2014129918A1/en active Application Filing
- 2014-02-04 CA CA2897747A patent/CA2897747C/en active Active
- 2014-02-04 EP EP14713274.0A patent/EP2959392B1/en active Active
- 2014-02-04 SG SG11201505931RA patent/SG11201505931RA/en unknown
- 2014-02-04 JP JP2015559213A patent/JP6218859B2/ja active Active
- 2014-02-04 AU AU2014219466A patent/AU2014219466B2/en active Active
- 2014-02-04 RU RU2015135541A patent/RU2640300C2/ru active
- 2014-02-04 CN CN201480009502.9A patent/CN105190570B/zh active Active
- 2014-02-04 ES ES14713274T patent/ES2873229T3/es active Active
-
2015
- 2015-07-09 IL IL239855A patent/IL239855B/en active IP Right Grant
-
2016
- 2016-03-03 HK HK16102460.9A patent/HK1214663A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070055837A1 (en) * | 2005-09-06 | 2007-03-08 | Intel Corporation | Memory protection within a virtual partition |
US20120216187A1 (en) * | 2011-02-17 | 2012-08-23 | International Business Machines Corporation | Multilevel support in a nested virtualization environment |
CN102859502A (zh) * | 2011-03-02 | 2013-01-02 | 松下电器产业株式会社 | 虚拟计算机系统、虚拟计算机控制方法、虚拟计算机控制程序及半导体集成电路 |
US20120254993A1 (en) * | 2011-03-28 | 2012-10-04 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108475217A (zh) * | 2016-01-05 | 2018-08-31 | 比特梵德知识产权管理有限公司 | 用于审计虚拟机的系统及方法 |
CN108475217B (zh) * | 2016-01-05 | 2022-05-17 | 比特梵德知识产权管理有限公司 | 用于审计虚拟机的系统及方法 |
CN109074321A (zh) * | 2016-04-16 | 2018-12-21 | 威睿公司 | 用于保护虚拟计算实例的存储页的技术 |
CN109074321B (zh) * | 2016-04-16 | 2023-06-30 | 威睿公司 | 用于保护虚拟计算实例的存储器的方法和系统 |
CN109923546A (zh) * | 2016-12-19 | 2019-06-21 | 比特梵德知识产权管理有限公司 | 虚拟机安全性应用程序的事件过滤 |
CN109923546B (zh) * | 2016-12-19 | 2023-04-07 | 比特梵德知识产权管理有限公司 | 虚拟机安全性应用程序的事件过滤 |
CN106844005A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN106844005B (zh) * | 2016-12-29 | 2020-04-14 | 北京瑞星网安技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN112534416A (zh) * | 2018-08-08 | 2021-03-19 | 华为技术有限公司 | 用于在计算设备的虚拟机监视器中提供一次性可编程存储器部件的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US8875295B2 (en) | 2014-10-28 |
CN105190570B (zh) | 2018-02-13 |
US20140245444A1 (en) | 2014-08-28 |
RU2640300C2 (ru) | 2017-12-27 |
JP6218859B2 (ja) | 2017-10-25 |
IL239855A0 (en) | 2015-08-31 |
KR20150118957A (ko) | 2015-10-23 |
JP2016511903A (ja) | 2016-04-21 |
EP2959392B1 (en) | 2021-03-31 |
KR101863174B1 (ko) | 2018-05-31 |
CA2897747A1 (en) | 2014-08-28 |
CA2897747C (en) | 2019-12-31 |
WO2014129918A1 (en) | 2014-08-28 |
EP2959392A1 (en) | 2015-12-30 |
AU2014219466A1 (en) | 2015-08-06 |
ES2873229T3 (es) | 2021-11-03 |
HK1214663A1 (zh) | 2016-07-29 |
SG11201505931RA (en) | 2015-09-29 |
IL239855B (en) | 2018-07-31 |
AU2014219466B2 (en) | 2018-11-22 |
RU2015135541A (ru) | 2017-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105190570B (zh) | 用于虚拟机器的完整性保护的存储器自省引擎 | |
US10296470B2 (en) | Systems and methods for dynamically protecting a stack from below the operating system | |
US9507727B2 (en) | Page fault injection in virtual machines | |
JP6306578B2 (ja) | メモリ保護装置及び保護方法 | |
KR102189296B1 (ko) | 가상 머신 보안 어플리케이션을 위한 이벤트 필터링 | |
US10630484B2 (en) | Securing code loading by a guest in a virtual environment | |
US20140053272A1 (en) | Multilevel Introspection of Nested Virtual Machines | |
US10489185B2 (en) | Hypervisor-assisted approach for locating operating system data structures based on attribute matching | |
US20180267818A1 (en) | Hypervisor-assisted approach for locating operating system data structures based on notification data | |
CN112256396B (zh) | 内存管理方法、系统及安全处理装置、数据处理装置 | |
CN113449292B (zh) | 一种可信应用的运行方法、装置及设备 | |
US20150302222A1 (en) | Computing machine, access management method, and access management program | |
US20240289152A1 (en) | Dynamically enabling advanced programmable interrupt controller virtualization capabilities for virtual machines | |
CN113296910B (zh) | 文件系统的调用方法、装置、终端设备及可读存储介质 | |
Dibble et al. | Programming embedded systems: interacting with the embedded platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1214663 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1214663 Country of ref document: HK |