CN105393255B - 用于虚拟机中的恶意软件检测的过程评估 - Google Patents
用于虚拟机中的恶意软件检测的过程评估 Download PDFInfo
- Publication number
- CN105393255B CN105393255B CN201480038552.XA CN201480038552A CN105393255B CN 105393255 B CN105393255 B CN 105393255B CN 201480038552 A CN201480038552 A CN 201480038552A CN 105393255 B CN105393255 B CN 105393255B
- Authority
- CN
- China
- Prior art keywords
- evaluated
- virtual machine
- score
- executed
- indicator
- 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/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/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
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
所描述的系统及方法允许保护计算机系统不受例如病毒及rootkits的恶意软件的攻击。反恶意软件组件在由在所述计算机系统上执行的管理程序公开的虚拟机VM内执行。存储器自省引擎以所述管理程序的处理器特权级在所述虚拟机外部执行,且通过写入保护相应过程的存储器页来保护在所述虚拟机内执行的过程。通过组合在所述相应VM内部及外部执行的反恶意软件组件,本发明的一些实施例可使用内部VM组件可获取的丰富的行为数据,同时保护此类组件的完整性免受所述相应VM外部的影响。
Description
技术领域
本发明涉及用于保护计算机系统不受恶意软件攻击的系统及方法,且尤其涉及使用硬件虚拟化技术的反恶意软件系统。
背景技术
恶意软件(Malicious software)(其英文简称为malware)影响世界范围内的大量计算机系统。恶意软件以其众多的形式(例如,计算机病毒、蠕虫及rootkits)对数以百万计的计算机用户造成严重的威胁,使计算机用户易于丢失数据及敏感信息、身份盗用及生产率损失等。
硬件虚拟化技术允许通常被称作虚拟机的模拟计算机环境的创建,其在许多方面表现为物理计算机系统。在典型应用(例如,服务器整合及基础结构即服务(IAAS))中,若干虚拟机可同时在同一物理机上运行,共享它们之间的硬件资源,因此降低投资及操作成本。每一虚拟机可独立于其它虚拟机而运行其自己的操作系统及/或软件应用程序。归因于恶意软件的稳定增殖,在此环境中操作的每一虚拟机潜在地需要恶意软件保护。
通常在所属领域中使用的虚拟化解决方案包括管理程序(还被称作虚拟机监视器),其由在计算硬件与虚拟机的操作系统(OS)之间操作的软件层组成,且与相应OS相比较具有更多处理器特权。由于一些恶意软件(例如,rootkits)以OS特权级操作,因此开发以管理程序的特权级执行的反恶意软件解决方案是有利的。
发明内容
根据一个方面,主机系统包括至少一个处理器,所述主机系统经配置以执行:管理程序,其经配置以公开虚拟机;过程评估器,其在所述虚拟机内执行;存储器自省引擎,其在所述虚拟机的外部执行;及过程评分模块。所述过程评估器经配置以确定在所述虚拟机内执行的被评估过程是否执行动作,且作为响应,当所述被评估过程执行所述动作时,将第一过程评估指示符传输到所述过程评分模块,所述第一过程评估指示符是针对所述被评估过程确定。所述存储器自省引擎经配置以拦截对操作系统功能的调用,以检测在所述虚拟机内执行的受保护过程的启动,其中所述操作系统功能经配置以将所述受保护过程添加到在所述虚拟机内执行的过程列表,且响应于检测到所述启动,确定所述被评估过程是否尝试修改所述受保护过程的存储器页,且作为响应,当所述被评估过程尝试修改所述存储器页时,将第二过程评估指示符传输到所述过程评分模块,所述第二过程评估指示符是针对所述被评估过程确定。所述过程评分模块经配置以接收所述第一及第二过程评估指示符,且作为响应,根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的。
根据另一方面,一种非暂时性计算机可读媒体编码指令,所述指令当在包括至少一个处理器的主机系统上执行时导致所述主机系统形成:管理程序,其经配置以公开虚拟机;过程评估器,其在所述虚拟机内执行;存储器自省引擎,其在所述虚拟机的外部执行;及过程评分模块。所述过程评估器经配置以确定在所述虚拟机内执行的被评估过程是否执行动作,且作为响应,当所述被评估过程执行所述动作时,将第一过程评估指示符传输到所述过程评分模块,所述第一过程评估指示符是针对所述被评估过程确定。所述存储器自省引擎经配置以拦截对操作系统功能的调用,以检测在所述虚拟机内执行的受保护过程的启动,其中所述操作系统功能经配置以将所述受保护过程添加到在所述虚拟机内执行的过程列表,且响应于检测到所述启动,确定所述被评估过程是否尝试修改所述受保护过程的存储器页,且作为响应,当所述被评估过程尝试修改所述存储器页时,将第二过程评估指示符传输到所述过程评分模块,所述第二过程评估指示符是针对所述被评估过程确定。所述过程评分模块经配置以接收所述第一及第二过程评估指示符,且作为响应,根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的。
根据另一方面,一种方法包括使用主机系统的至少一个处理器以接收针对被评估过程而确定的第一过程评估指示符,所述被评估过程在由在所述主机系统上执行的管理程序公开的虚拟机内执行。所述方法进一步包括使用所述至少一个处理器以接收针对所述被评估过程而确定的第二过程评估指示符,且响应于接收到所述第一及第二过程评估指示符,使用所述至少一个处理器以根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的。确定所述第一过程评估指示符包括使用在所述虚拟机内执行的过程评估器来确定所述被评估过程是否执行第一动作。确定所述第二过程评估指示符包括使用在所述虚拟机的外部执行的存储器自省引擎来确定所述被评估过程是否执行第二动作。
根据另一方面,一种方法包括使用主机系统的至少一个处理器以执行存储器自省引擎,所述存储器自省引擎在由在所述主机系统上执行的管理程序公开的虚拟机的外部执行,其中执行所述存储器自省引擎包括检测在所述虚拟机内执行的过程的启动。所述方法进一步包括响应于所述存储器自省引擎检测到所述过程的所述启动,使用所述至少一个处理器以确定所述过程的第一及第二过程评估指示符。所述方法进一步包括响应于确定所述第一及第二评估指示符,使用所述至少一个处理器以根据所述第一及第二过程评估指示符来确定所述过程是否为恶意的。
附图说明
在阅读以下详细描述后及在参考图式后就将更好地理解本发明的前述方面及优点,在图式中:
图1展示根据本发明的一些实施例的受保护而不受恶意软件攻击的主机计算机系统的示范性硬件配置。
图2展示根据本发明的一些实施例的由在图1的所述主机系统上执行的管理程序公开的虚拟机的示范性集合,及结合存储器自省引擎操作以保护虚拟机的安全应用程序。
图3说明在各种处理器特权级的主机系统上执行的软件对象的示范性阶层,包含根据本发明的一些实施例的反恶意软件对象的集合。
图4展示根据本发明的一些实施例的接收由多个过程评估器针对过程而确定的多个过程评估指示符的示范性过程评分模块。
图5展示根据本发明的一些实施例的由图4的过程评分模块执行的示范性步骤序列。
图6展示根据本发明的一些实施例的图2的系统配置中的存储器地址的示范性映射。
图7说明在环境中的过程的集合的示范性执行流程。实线箭头指示在不存在反恶意软件系统的情况下的示范性执行流程。虚线箭头指示对所述执行流程的修改,所述修改由根据本发明的一些实施例而操作的多个过程评估器引入。
图8说明根据本发明的一些实施例由图2到3的存储器自省引擎执行的示范性步骤序列。
图9展示根据本发明的一些实施例的由存储器自省引擎执行以保护存储器页的示范性步骤序列。
图10说明包括经由计算机网络连接到安全服务器的多个主机系统的示范性配置。
图11展示根据本发明的一些实施例的主机系统与安全服务器之间的示范性反恶意软件事务。
具体实施方式
在以下描述中,应理解,结构之间的所有列举的连接可为直接操作连接或通过中介结构的间接操作连接。元件集合包含一或多个元件。元件的任何列举应被理解为是指至少一个元件。多个元件包含至少两个元件。除非另有要求,否则任何所描述的方法步骤未必需要按所说明的特定顺序执行。来源于第二元件的第一元件(例如,数据)涵盖等于第二元件的第一元件,以及通过处理第二元件而产生的第一元件及任选的其它数据。根据参数做出确定或决定涵盖根据参数且任选地根据其它数据做出确定或决定。除非另有指定,否则一些数量/数据的指示符可为所述数量/数据自身,或为与所述数量/数据自身不同的指示符。除非另有指定,否则过程表示计算机程序的例子,其中计算机程序为确定计算机系统以执行指定任务的指令序列。除非另有指定,否则页代表个别地映射到计算机系统的物理存储器的虚拟化物理存储器的最小单元。计算机可读媒体涵盖例如磁性、光学及半导体存储媒体(例如,硬盘驱动器、光盘、块闪存储器、DRAM)的非暂时性媒体,以及例如导电电缆及光纤链路的通信链路。根据一些实施例,本发明尤其提供包括硬件(例如,一或多个处理器)以及计算机可读媒体的计算机系统,所述硬件经编程以执行本文中所描述的方法,所述计算机可读媒体编码指令以执行本文中所描述的方法。
以下描述作为实例而未必作为限制来说明本发明的实施例。
图1展示根据本发明的一些实施例的执行反恶意软件操作的主机系统10的示范性硬件配置。主机系统10可表示公司计算装置(例如,企业服务器)或最终用户装置(例如,个人计算机或智能电话等)。其它主机系统包含娱乐装置,例如,电视机及游戏机,或具有支持虚拟化且需要恶意软件保护的存储器及处理器的任何其它装置。图1展示用于说明性目的的计算机系统;其它客户端装置(例如,移动电话或平板计算机)可具有不同配置。在一些实施例中,系统10包括物理装置的集合,其包含处理器12、存储器单元14、输入装置16的集合、输出装置18的集合、存储装置20的集合及网络适配器22的集合,其全部由总线24的集合连接。
在一些实施例中,处理器12包括物理装置(例如,多核集成电路),其经配置以用信号及/或数据集合来执行计算及/或逻辑运算。在一些实施例中,此类逻辑运算是以处理器指令序列(例如,机器码或其它软件类型)的形式递送到处理器12。存储器单元14可包括易失性计算机可读媒体(例如,RAM),其存储由处理器12在进行指令期间存取或产生的数据/信号。输入装置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到b的示范性集合。虚拟机(VM)在所属领域中通常被称作实际物理机/计算机系统的软件模拟,其各自能够独立于其它VM而运行其自己的操作系统及软件。管理程序30包括允许由主机系统10的硬件资源的多个虚拟机的多路复用(共享)的软件,例如,处理器操作、存储器、存储、输入/输出及联网装置。在一些实施例中,管理程序30使多个虚拟机及/或操作系统(OS)能够在主机系统10上同时运行,具有各种程度的隔离。为实现此类配置,管理程序30的软件形成部分可产生多个虚拟化(即)经软件模拟的装置,每一虚拟化装置模拟系统10的物理硬件装置,例如,处理器12及存储器14等等。管理程序30可进一步将虚拟装置的集合指派到在主机系统10上操作的每一VM。因此,每一VM 32a到b如同其拥有其自己的物理装置的集合而操作,即,作为或多或少完整的计算机系统。流行的管理程序的实例包含来自VMware公司(VMware Inc)的VMware vSphereTM,及开源Xen管理程序(open-sourceXen hypervisor)等等。
在一些实施例中,管理程序30包含存储器自省引擎40,其经配置以执行反恶意软件操作,如下文进一步描述。引擎40可并入管理程序30中,或可作为与管理程序30不同且独立于管理程序30的软件组件而被递送,但以与管理程序30实质上类似的处理器特权级执行。单个引擎40可经配置以保护在主机系统10上执行的多个VM不受恶意软件的攻击。
尽管为简单起见,图2仅展示两个VM 32a到b,但主机系统10可同时执行大量的(例如,几百个)VM,且此类VM的数目可在主机系统10的操作期间改变。在一些实施例中,VM 32a到b各自同时且独立于在主机系统10上运行的其它VM而分别执行客户操作系统34a到b及/或软件应用程序42a到b、42c及44的集合。OS 34a到b各自包括向相应VM 32a到b的(虚拟化)硬件提供接口的软件,且充当在相应OS上执行的软件应用程序的主机。操作系统34a到b可包括任何广泛可用的操作系统,例如, 或AndroidTM等等。应用程序42a到c可包含文字处理、图像处理、数据库、浏览器及电子通信应用程序等等。在以下描述中,据称在虚拟机的虚拟处理器上执行的软件在相应虚拟机内执行。例如,在图2中,据称应用程序42b在VM 32a内执行,同时据称应用程序42c在VM 32b内执行。相反,据称存储器自省引擎40在VM 32a到b的外部执行。
在图2的实例中,安全应用程序44在客户OS 34b上执行,应用程序44经配置以结合存储器自省引擎40而执行反恶意软件(AM)操作(如下文所描述)以保护虚拟机32b不受恶意软件的攻击。在一些实施例中,应用程序44的例子可在在主机系统10上操作的多个VM中的每一者上执行,每一此例子经配置以与自省引擎40介接以保护相应虚拟机。安全应用程序44可为独立程序,或可形成包括反恶意软件、反垃圾邮件及反间谍软件组件等等的软件套件的部分。
图3说明根据本发明的一些实施例的在主机系统10上执行的软件对象的阶层。图3是从处理器特权级的角度来表示,在所属领域还被称作层或保护环。在一些实施例中,每一此层或保护环的特征在于指令的集合,其允许执行在相应处理器特权级处执行的软件对象。当软件对象尝试执行在相应特权级内不允许的指令时,所述尝试可触发处理器事件,例如,异常、故障或虚拟机退出事件。在一些实施例中,特权级之间的切换可经由专用指令的集合来实现。此类示范性指令包含SYSCALL/SYSENTER,其从用户级向内核级切换;SYSRET/SYSEXIT,其从内核级向用户级切换;VMCALL,其从用户级或内核级向根级切换;及VMRESUME,其从根级向内核级或用户级切换。
在一些实施例中,管理程序30控制在最高特权级的处理器12(例如,支持虚拟化的VMXroot on平台,且也被称作环-1或根模式),因此创建呈现为虚拟机32的硬件虚拟化平台到在主机系统10上执行的其它软件。操作系统34(例如,图2中的OS 34a到b)在VM 32的虚拟环境内执行,OS 34具有与管理程序30相比较更少的处理器特权(例如,Intel平台上的环0,或内核模式)。应用程序42d到e的集合以与OS 34相比较更少的处理器特权执行(例如,环3,或用户模式)。
在一些实施例中,安全应用程序44的部分可在用户级处理器特权(即,与应用程序42d到e相同的级)执行。例如,此类部分可包括图形用户接口,其通知用户在相应VM上检测到的任何恶意软件或安全威胁,且从用户接收指示(例如)针对应用程序44的所要配置选项的输入。在用户级执行的组件的另一实例为用户级处理评估器,如下文详细描述。应用程序44的其它部分可在内核特权级执行。例如,应用程序44可安装反恶意软件驱动器36及过程评分模块38,两者皆在内核模式中操作。示范性AM驱动器36向反恶意软件应用程序44提供功能(例如)以扫描存储器是否有恶意软件签名及/或检测过程及/或在OS 34上执行的其它软件对象的恶意软件指示行为。
在一些实施例中,过程评分模块38经配置以从多个软件组件接收过程评估数据,针对被评估过程确定所述过程评估数据,并且根据相应数据来确定所述被评估过程是否为恶意的。过程为计算机程序(例如,应用程序或操作系统的部分)的例子,且其特征在于具有至少一个执行线程及由所述操作系统指派到所述至少一个执行线程的虚拟存储器的区段,相应区段包括可执行代码。在一些实施例中,所述操作系统管理当前在主机系统10上(或虚拟机32内(在虚拟化的情形中))执行的过程,此管理包含将虚拟存储器指派到每一过程及针对执行而调度每一过程或其线程等等。
图4展示接收多个过程评估指示符52a到d的示范性过程评分模块38,每一指示符52a到d由过程评估器组件确定。在图4中,此评估组件包含用户级过程评估器50a、内核级过程评估器50b及系统调用评估器50c等等。评估器50a到c可由反恶意程序驱动器36建立或形成反恶意程序驱动器36的部分。每一此评估器可独立于其它评估器而执行,且各自可确定被评估过程的多个不同过程评估指示符。下文将进一步详细描述评估器50a到c的操作。在一些实施例中,一些过程评估指示符(例如,图4中的指示符52a到c)由在VM 32内执行的组件来确定,而其它过程评估指示符(例如,52d)由在VM32外部执行的组件(例如,由存储器自省引擎40)来确定。
一些评估指示符可为恶意软件指示的(即,可指示被评估过程为恶意的)。一些评估指示符自身可不为恶意软件指示的,但当其与其它评估指示符组合时可指示恶意。可根据不同方法或标准来确定每一评估指示符52a到d。针对被评估过程确定的示范性过程评估指示符可包含(例如)行为指示符,其指示被评估过程是否执行或尝试执行特定动作(例如编辑VM 32的系统寄存器密钥或写入归属于受保护软件对象的存储器页)。另一示范性过程评估指示符可指示归属于被评估过程的存储器的区段是否含有恶意软件指示签名。在一些实施例中,每一过程评估指示符52a到d包括过程识别指示符(例如,过程ID、标签或散列索引),从而允许模块38识别过程(针对所述过程而确定相应指示符)。
在一些实施例中,过程评估指示符可包括由相应过程评估器确定的数值得分,所述得分指示相应过程的恶意程度。替代地,此类得分可由模块38根据过程评估指示符52a到d来确定。恶意得分可为二进制(1/0、是/否),或可在连续范围的值中变化。可在一定范围的值内变化的示范性恶意得分包括指示被评估过程为恶意的可能性的数字(例如,概率);此得分可在(例如)0与1之间或0%与100%之间变化。得分值可为行为特定的。举例来说,被评估过程可在其创建磁盘文件时接收0.2的恶意得分,且在其修改Windows注册表值时接收0.7的恶意得分。
图5展示根据本发明的一些实施例的由过程评分模块38执行的示范性步骤序列。在步骤302中,模块38从可在VM 32内(参见(例如)图4中的评估器50a到c)或在VM 32外(例如,存储器自省引擎40)操作的过程评估器接收过程评估指示符(例如,图4中的指示符52a到d)。在步骤304中,模块38可识别过程(针对所述过程而确定相应过程评估指示符)。在一些实施例中,过程评分模块38可保存从各种过程评估器接收的所有过程评估指示符的每个过程记录;步骤304可进一步包括将步骤302中接收的指示符添加到相应过程的记录。
为确定被评估过程是否为恶意的,在步骤306中,过程评分模块38可通过组合针对相应过程而确定的及从各种过程评估器接收的个别得分来确定累积得分。示范性累积得分包括个别得分的加权总和及加权平均。在一些实施例中,累积得分可将针对被评估过程而确定的过程评估指示符/得分与针对其它过程或软件对象而确定的过程评估指示符/得分组合。例如,可将针对被评估过程而确定的得分与针对被评估过程的子过程而确定的得分组合,及/或与针对被评估过程的母过程而确定的得分组合。
在步骤308中,模块38可将累积得分与预定阈值相比较。当累积得分未超过所述阈值时,模块38可返回上文所描述的步骤302。在一些实施例中,所述阈值可被设置成根据从相应VM的用户接收(例如,通过由安全应用程序44公开的用户接口)的输入而确定的值。阈值可反映相应用户的安全首选项。例如,当用户选择严密安全时,可将阈值设置成相对较低的值;当用户优选更宽容的安全设置时,可将阈值设置成相对较高的值。在一些实施例中,可从远程安全服务器接收阈值,如下文关于图10到11所描述。
在一些实施例中,在步骤306到308中,过程评分模块38可确定多个累积得分,且将每一累积得分与(可能不同的)阈值相比较。可根据过程评估指示符的不同子集来确定每一此累积得分。在示范性实施例中,过程评估指示符的每一此集合可表示特定类别或类型的恶意软件(例如,特洛伊木马、rootkits等等),从而允许模块38执行经检测的恶意软件的分类。
当累积得分超过阈值时,在步骤310中,模块38可决定被评估过程为恶意的,且可采取反恶意软件动作。在一些实施例中,此反恶意软件动作可尤其包含终止被评估过程、隔离被评估过程及移除或停用被评估过程的源(例如,文件或存储器的区段)。在一些实施例中,反恶意软件动作可进一步包括提醒主机系统10的用户,及/或提醒系统管理员,例如,通过将消息通过经由网络适配器22连接到主机系统10的计算机网络发送给系统管理员。在一些实施例中,反恶意软件动作还可包括将安全报告发送到远程安全服务器,如下文关于图10到11所描述。
图3到4中所描绘的示范性过程评分模块38以OS处理器特权级(例如,内核模式)在VM 32内操作。在替代实施例中,过程评分模块38可以用户模式在VM 32内执行,或甚至以管理程序30的处理器特权级在VM 32外部操作。
在一些实施例中,自省引擎40以实质上与管理程序30相同的特权级执行,且经配置以执行虚拟机(例如,VM 32)的自省。VM的自省或在相应VM上执行的软件对象的自省可包括:分析所述软件对象的行为,确定及/或存取此类软件对象的存储器地址,将某些过程的存取限制到在此类地址处定位的存储器的内容,分析此内容,且确定相应软件对象的过程评估指示符(例如,图4中的指示符52d)等等。在一些实施例中,作为自省引擎40的目标的软件对象包括过程、指令流、寄存器及数据结构(例如,页表)以及相应VM的驱动器对象等等。
为从相应VM的外部执行VM 32的自省,引擎40的一些实施例使用存储器映射结构及处理器12的机制。虚拟机通常与虚拟化物理存储器(即,主机系统10的实际物理存储器14的虚拟表示)一起操作。虚拟化物理存储器包括虚拟化地址的连续空间,具体到在主机系统10上执行的每一客户VM,其中相应空间的部分映射到物理存储器14及/或物理存储装置20内的地址。在经配置以支持虚拟化的系统中,此映射通常通过由处理器12控制的专用数据结构(例如,扩展页表(EPT)或嵌套页表(NPT))来实现。在此类系统中,虚拟化物理存储器可被划分成所属领域中已知的作为页的单元。页表示经由机制(例如,EPT及/或NPT)个别地映射到物理存储器的虚拟化物理存储器的最小单元,即,使用页粒度来执行物理存储器与虚拟化物理存储器之间的映射。所有页通常具有预定大小,例如,4千字节、2兆字节等等。将虚拟化物理存储器划分成页通常由管理程序30配置。在一些实施例中,管理程序30还配置EPT/NPT且因此配置物理存储器与虚拟化物理存储器之间的映射。虚拟化存储器地址到物理存储器地址的实际转译可包括在主机系统10的转译后备缓冲器(TLB)中查找物理存储器地址。在一些实施例中,地址转译包括执行页行走,其包含在页表的集合中的连续地址查找的集合,且执行计算(例如,将页的偏移添加到与相应页相关的地址)。
一些硬件配置允许管理程序30选择性地控制对存储于每一页内的数据的存取,例如通过设置对相应页的读取及写入存取权限。例如,通过修改EPT或NPT内的相应页的条目可设置此权限。管理程序30可因此选择哪一个软件对象可存取存储在每一页内的地址处的数据,且可指示允许借助于相应数据的哪些操作,例如,读取、写入等等。由在VM内执行的软件对象尝试执行操作(例如,从页读取数据或将数据写入页,所述对象不具有对所述页的相应权限)可触发虚拟机退出事件(例如,Intel平台上的VM退出事件)。在一些实施例中,虚拟机退出事件将处理器的控制从执行相应软件对象的VM转移到管理程序30或存储器自省引擎40,因此允许管理程序30及/或引擎40拦截及分析未经授权的读取/写入尝试。
在一些实施例中,OS 34配置虚拟存储器空间(也称作逻辑地址空间)且将所述虚拟存储器空间公开到例如图3中的应用程序42d到e及44的应用程序。在此类系统中,OS 34配置且维持虚拟存储器空间与VM 32的虚拟化物理存储器之间的映射,例如,使用页表机制。在一些实施例中,虚拟存储器空间还被划分成页,此类页表示个别地由OS 34映射到虚拟化物理存储器的虚拟存储器的最小单元(借助于页粒度执行虚拟到虚拟化物理存储器映射)。
图6说明根据图2中所展示的实施例的存储器地址的示范性映射(转译)。软件对象(例如,在VM 32a内执行的应用程序或过程)由客户OS 34a指派虚拟地址空间214a。当相应软件对象尝试存取空间214a的示范性存储器地址60a时,由客户VM 32a的虚拟化处理器根据由客户OS 34a配置且控制的页表将地址60a转译成虚拟机32a的虚拟化物理存储器空间114a内的地址60b。地址60b在所属领域还被称作客户-物理地址。管理程序30(其配置且控制虚拟化物理存储器114a)(例如)使用如上文所论述的EPT或NPT方式将地址60b映射到主机系统10的物理存储器14内的地址60c。
类似地,虚拟存储器空间214b由针对应用程序(例如,42c)的客户OS 34b或在客户VM 32b上执行的其它软件对象来建立。由客户VM 32b的虚拟化处理器根据由客户OS34b配置且控制的页表将空间214b内的示范性虚拟地址60d转译成客户VM 32b的虚拟化物理存储器空间114b内的地址60e。地址60e进一步由管理程序30映射到物理存储器14内的地址60f。
在一些实施例中,管理程序30建立其自己的虚拟存储器空间214c(包括物理存储器14的表示),且使用转译机制(例如,页表)将空间214c中的地址映射到物理存储器14中的地址。在图6中,此类示范性映射将地址60g转译成地址60h。类似地,物理存储器14中的地址(例如60c及60f)分别对应于管理程序30的虚拟存储器空间214c内的地址60k及60m。此转译允许管理程序30管理(例如,读取、写入及控制存取)归属于在主机系统10上运行的各种VM内执行的软件对象的存储器页。
图7说明根据本发明的一些实施例的在VM 32上执行的过程70a到b的集合的示范性执行流程。图7的实例展示运行OS版本的系统中的执行流程;针对其它操作系统(例如,Linux)可呈现类似图。实线箭头表示在不存在反恶意软件系统(例如,安全应用程序44)的情况下的执行流程。虚线箭头表示归因于根据本发明的一些实施例而执行的过程评估器的存在而对所述流程的修改。
过程70a包括多个动态链接库(DLL)72a到c;在图7的实例中,DLL 72c由(可能是恶意的)过程70b注入过程70a。代码注入为所属领域中使用以指示将代码序列(例如,DLL)引入现有过程的存储器空间以改变相应过程的原始功能性的一族方法的通用术语。当过程70a执行要求一些系统功能性(例如,将一些东西写入磁盘文件,或编辑注册表密钥)的指令时,相应指令调用用户模式API(例如,KERNEL32.DLL或NTDLL.DLL)。在图7的实例中,由用户级行为过滤器50a拦截且分析相应用户模式API调用。此拦截可通过例如DLL注入或挂钩等的方法来实现。挂钩为所属领域中使用的针对拦截在软件组件之间传递的功能调用或消息或事件的方法的通用术语。一个示范性挂钩方法包括通过插入重新定向到第二功能的执行的指令来改变目标功能的入口点。遵循此挂钩,可替代执行所述目标功能而执行所述第二功能,或在执行所述目标功能之前执行第二功能。在图7的实例中,反恶意软件驱动器36可挂钩到KERNEL32.DLL或NTDLL.DLL的某些功能中,从而指示相应功能重新定向到过滤器50a的执行。因此,过滤器50a可检测过程70a正尝试执行根据执行重新定向的功能而识别的特定行为。当过滤器50a检测到此行为时,过滤器50可制定过程评估指示符52a(图4)且将指示符52a传输到过程评分模块38。
在典型的执行流程中,用户模式API功能可从操作系统的内核请求服务。在一些实施例中,此类操作通过发出系统调用(例如,x86平台上的SYSCALL及SYSENTER)来执行。在图7的实例中,此类系统调用由系统调用评估器50c拦截。在一些实施例中,此拦截包括(例如)通过改变存储于处理器12的模式特定的寄存器(MSR)中的值来修改系统调用处理程序例程,其有效地重新定向到过滤器50c的执行。此类技术在所属领域中被称作MRS挂钩,且可允许系统调用评估器50c检测被评估过程正尝试执行某些系统调用。当此类系统调用被拦截时,系统调用过滤器50c可制定过程评估指示符52c且将指示符52c传输到过程评分模块38。
继系统调用之后,处理器的控制通常被移交到OS 34的内核。在一些实施例中,内核级过程评估器50b经配置以拦截OS内核的某些操作,且因此确定被评估过程正尝试执行某些操作(其可为恶意的)。为拦截此类操作,一些实施例可使用内置于OS 34且由OS 34公开的过滤机制的集合。举例来说,在Windows OS中,FltRegisterFilter可用以拦截如创建文件、打开文件、写入文件及删除文件的操作。在另一实例中,评估器50b可使用ObRegisterCallback以拦截创建或复制对象处置操作,或使用PsSetCreateProcessNotifyRoutine以拦截新过程的创建。在另一实施例中,可使用CmRegisterCallbackEx来拦截Windows注册表操作(例如,创建及设置注册表密钥/值)。所述领域中已知针对其它操作系统(例如,)的类似过滤机制。当内核模式过程评估器50b拦截此类操作时,评估器50b可制定过程评估指示符52b且将指示符52b传输到过程评分模块38。
为将数据(例如,过程评估指示符52a到c)从评估器50a到c传输到评分模块38,所属领域的技术人员可使用任何过程间通信方法。例如,为在用户模式组件与内核模式组件之间通信,评估器50a到c及模块38可经配置以使用存储器的共享区段。
图8展示根据本发明的一些实施例的由存储器自省引擎40执行的示范性步骤序列。在步骤312中,引擎40可检测在VM 32内启动需要保护以不受恶意软件的攻击的过程(以下称作受保护过程)。在一些实施例中,此类受保护过程包含归属于安全应用程序44的过程等等。
为检测受保护过程的启动,引擎40可使用OS 34原生的数据结构及/或机制。举例来说,一些版本的OS使用由内核维持的作用过程列表来管理过程。每一次过程被创建,将相应过程的指示符插入所述作用过程列表;在相应过程终止时,将所述指示符从所述列表移除。在一些实施例中,OS 34的内核将每一过程表示为数据结构(例如,Windows中的执行过程块(EPROCESS)),其包括对相应过程的线程中的每一者的处置及允许OS 34从多个执行过程识别相应过程的唯一过程ID等等。
为检测受保护过程的创建(图8中的步骤312),一些实施例使用所属领域已知的任何挂钩方法挂钩到操纵作用过程列表的内核功能中。Windows OS的此功能的实例为PspInsertProcess,其在启动相应过程到执行时将过程添加到作用过程列表。AM驱动器36的一些实施例可将重新定向补丁应用到相应内核功能,例如,VMCALL指令或JMP指令。其它实施例可修改相应内核功能的EPT条目以指向新地址。此类补丁及/或EPT挂钩的作用是将原生OS功能的执行重新定向到由存储器自省引擎40提供的代码片段。继挂钩之后,当OS 34尝试将过程启动到执行时,将在执行相应内核功能的代码之前执行所述代码片段或替代执行相应内核功能的代码而执行所述代码片段,因此向存储器自省引擎40通知正执行相应过程。在一些实施例中,引擎40可根据在启动相应过程时传递到内核功能的参数(例如,包含所述唯一过程ID的EPROCESS结构)来识别相应过程。替代实施例可使用存储器挂钩(例如,EPT挂钩)来获取对存储作用过程列表的存储器的区段的地址的存取,且根据相应存储器区段的内容,进一步确定描述当前执行的每一过程的EPROCESS结构的地址。
在步骤314中,存储器自省引擎40可向AM驱动器36通知正执行受保护过程。例如,引擎40可将指示符(例如,受保护过程的过程ID)发送到AM驱动器36。接下来,在步骤316中,引擎40可从驱动器36接收存储器页的指示符(例如,在虚拟存储器中的页的地址),所述存储器页存储受保护过程的代码及/或数据。在一些实施例中,引擎40使用步骤314到316以桥接语义鸿沟,所述语义鸿沟的出现是因为引擎40在VM 32外部执行,而受保护过程在VM 32内执行。AM驱动器36通过在VM 32内以内核模式执行可具有对信息(例如,由受保护过程使用的存储器地址(例如,存储受保护过程的代码及/或数据的相应VM的虚拟化物理存储器(参见图6中的空间114a到b)内的页的地址))的直接存取。尽管管理程序30可获取对在相应VM内执行的作用过程列表的存取,但剖析所述列表以确定由相应过程加载的所有模块(例如,DLL)及进一步确定存储来自管理程序30的级的此数据/代码的存储器页的所有地址可需要大量的计算。在一些实施例中,针对步骤序列314到316的另一原因是归属于用户模式过程的数据可由OS 34在物理存储器14与其它计算机可读媒体(例如,存储装置20)之间交换。存储器自省引擎40在相应VM外部执行,其可检测数据何时被交换入物理存储器及何时从物理存储器交换出,但由于存储器自省引擎40不驻留在物理存储器中,其不能够存取及/或保护此类数据。相反,在VM 32内执行的AM驱动器36通过迫使OS 34加载相应页而可容易地存取从物理存储器交换出的页。AM驱动器36可因此有效地列出由受保护过程使用/加载的所有模块,且确定VM 32的虚拟化物理存储器内的此类模块的大小及位置。
在替代实施例中,替代于主动地检测受保护过程的启动(以上步骤312),存储器自省引擎40可从AM驱动器36接收受保护过程的指示符,其中AM驱动器36可实际上检测来自VM32内的受保护过程的启动。在此类实施例中,如上文所描述的步骤314不再为必须的。在另一实施例中,在步骤316中,引擎40可实际上执行必要的计算以确定受保护过程的存储器页的地址,而不是依赖于如上文所描述的AM驱动器36。
在步骤318中,存储器自省引擎保护目标页不受非所要修改(例如,由试图破坏VM32的恶意软件)的影响。所属领域中已知若干此类存储器保护机制。由管理程序30在存储器自省引擎40发出请求时可使用数据结构(例如,EPT或NPT)来强制执行保护。例如,管理程序30可通过修改相应页的EPT/NPT存取权限位而将目标存储器页设置为只读。在一些实施例中,管理程序30可拦截写入分配给目标对象的存储器页的任何尝试,且重新定向到存储器自省引擎40的相应尝试用于分析。下文关于图9将进一步详细描述步骤318中的引擎40的操作。
为将写入保护应用到目标页,步骤318可包括执行图6中所说明的种类的存储器地址的转译:从由OS 34针对受保护过程而建立的虚拟存储器空间一直到主机系统10的物理存储器14,或从相应VM的虚拟化物理存储器空间到物理存储器14。根据步骤316中从AM驱动器36接收的指示符,相应转译允许存储器自省引擎40确定实际物理存储器14中的目标页的地址。此类转译可使用EPT/NPT机制,如关于图6所描述。
在步骤320中,引擎40可检测受保护过程的终止。在一些实施例中,步骤320可以类似于上文所描述的步骤312的方式进行。例如,步骤320可包括从内核功能(其经配置以从VM32的作用过程列表移除过程)接收信号,由AM驱动器36通过挂钩(例如,将补丁(例如,VMCALL指令)应用到相应功能,所述补丁重新定向到引擎40的执行)来修改相应功能。可以此方式修改的示范性Windows功能为PspDeleteProcess。当引擎40检测到受保护过程的终止时,步骤322例如通过指示管理程序30改变针对所述目标页的写入权限将保护从相应目标页移除。
图9说明由存储器自省引擎40执行以保护目标页(图8中的步骤318)的步骤序列。在步骤332中,引擎40可拦截写入目标页的尝试;此类尝试可指示恶意意图,且可经由管理程序30而被拦截,如上文所描述。在步骤334中,引擎40可识别执行所述尝试的过程;相应过程将被称作攻击过程。在一些实施例中,为执行步骤334,引擎40可使用指令指针寄存器(例如,x86系统上的EIP及/或RIP寄存器)的内容来识别执行所述尝试的处理器指令(或其地址),及使用CR3寄存器的内容来识别相应指令所归属的过程。替代地,引擎40可使用片段寄存器的内容(例如,x86处理器上的FS及GS寄存器)以根据某些内核数据结构(其在每一次OS34切换过程之间的执行时被修改)来识别攻击过程。
在步骤336中,引擎40可制订攻击过程的过程评估指示符52d(参见例如图4)且将指示符52d传输到过程评分模块38。示范性指示符52d可包括在步骤334中识别的攻击过程的指示符(例如,过程ID),及由攻击过程尝试的且在步骤332中被拦截的动作的类型的指示符(例如,写入受保护存储器页的尝试)。
一些上文所描述的方法及系统需要在VM 32内执行的组件之间的通信(例如,数据交换及/或消息接发),及在相应VM的外部执行的组件之间的通信(例如,数据交换及/或消息接发)。可使用虚拟化的技术领域中已知的任何方法执行此通信。例如,为将数据从以内核模式执行的组件(例如,AM驱动器36)传输到存储器自省引擎40(参见例如图8中的步骤316),一些实施例使用特权指令将处理器12的控制从VM 32转移到管理程序30。此类特权指令的实例为Intel平台上的VMCALL,其可用以向引擎40发信号表示正从VM 32内转移一些数据。被传输的实际数据可放置在驱动器36与引擎40之间共享的存储器的预定区段中。为将数据从存储器自省引擎40传输到AM驱动器36(参见例如图8中的步骤314及图9中的步骤336),一些实施例使用中断注入机制以向驱动器36发信号表示正从相应VM的外部传输数据。可(例如)通过上文所描述的共享存储器区段来转移实际数据。
在一些实施例中,主机系统10可经配置以与远程安全服务器交换安全信息,例如,关于恶意软件检测事件的细节。图10说明此示范性配置,其中多个主机系统10a到c经由计算机网络26连接到安全服务器110。在示范性实施例中,主机系统10a到c为由公司的雇员使用的个人计算机,而安全服务器110可包括由相应公司的网络管理员配置以监视发生在系统10a到c上的恶意软件威胁或安全事件的计算机系统。在另一实施例中,例如,在基础结构即服务(IAAS)系统(其中每一主机系统10a到c为托管数十或数百个虚拟机的服务器)中,安全服务器110可包括计算机系统,所述计算机系统经配置以管理针对来自中央位置的所有此类VM的反恶意软件操作。在另一实施例中,安全服务器110可包括计算机系统,所述计算机系统由反恶意软件的提供商(例如,安全应用程序44的提供商等)配置以接收关于在围绕网络26的各种系统上检测到的恶意软件的统计及/或行为数据。网络26可包含广域网(例如,因特网),而网络26的部分可包含局域网(LAN)。
图11展示在图10中所展示的实施例中的主机系统10与安全服务器110之间的示范性数据交换。主机系统10可经配置以向服务器110发送安全报告80,且从服务器110接收安全设置82的集合。在一些实施例中,安全报告80包括过程评估指示符及/或由在主机系统10上执行的过程评估器确定的得分,及/或由过程评分模块38确定的累积得分等等。安全报告80还可包括识别相应虚拟机及被评估过程的数据(例如,过程ID、名称、路径、散列、版本信息或应用程序及/或过程的其它种类的标识符),以及将过程评估指示符/得分与VM及过程(针对所述过程而确定所述指示符)相关联的指示符。在一些实施例中,报告80可进一步包括关于在主机系统10上执行的过程及/或应用程序的统计及/或行为数据。系统10可经配置以在检测到恶意软件时及/或根据时间表(例如,每几分钟、每小时等等)而发送报告80。
在一些实施例中,安全设置82可包含过程评估器的操作参数(例如,图4中的过滤器50a到c的参数),及/或过程评分模块38的参数。模块38的操作参数的实例为用于确定被评估过程是否为恶意的阈值(参见图5中的步骤308及相关联的描述)。过程评估器的示范性操作参数为指派到被评估过程(当所述被评估过程执行特定动作时)的恶意得分的值。当相应过程写入磁盘文件时,被评估过程可接收0.1的恶意得分;且当被评估过程修改Windows注册表值时,被评估过程可接收0.7的恶意得分。
在一些实施例中,服务器110运行优化算法来动态地调整此类参数以最大化恶意软件检测性能,例如,在最小化误报的同时提高检测率。优化算法可接收关于在多个主机系统10a到c上执行的各种过程的统计及/或行为数据(包含由各种过程评估器向过程评分模块38报告的过程评估指示符/得分),且确定参数的最优值。所述值随后经由网络26被传输到相应主机系统。在一些实施例中,为确定最优参数值,服务器110可使用已知为干净(未受恶意软件的影响)的过程的集合来校准过程评分模块38及/或过程评估器50a到c的操作。在示范性校准方案中,安全服务器110可指示主机系统10执行校准过程的集合(已知为干净的),且发送回服务器110针对所述校准过程确定的过程评估指示符/得分的集合。服务器110可随后确定针对相应虚拟机及/或主机系统定制的参数值。
在另一实例中,安全设置82包括权重值的集合,由过程评分模块38使用所述权重值的集合以根据从各种过程评估器接收的个别过程评估指示符来确定针对被评估过程的累积恶意得分。在实施例中,其中累积得分为个别得分的加权总和或加权平均,且其中根据不同恶意软件检测标准或方法(例如,当每一得分指示被评估过程是否执行特定恶意软件指示行为时)来计算每一得分,与其它标准/方法相比较,改变个别得分的权重可有效地改变相应标准或方法的相关性。恶意软件威胁通常以波的形式发生,其中世界范围内的大量计算机系统在短时间间隔中受到相同恶意软件代理的影响。通过实时从多个主机系统接收安全报告80,安全服务器110可保持与当前恶意软件威胁的更新,且可迅速地将最优安全设置82传递到相应主机系统,设置82包含(例如)针对检测当前恶意软件威胁而优化的得分权重的集合。
以上所描述的示范性系统及方法允许保护主机系统(例如,计算机系统)不受恶意软件(例如,病毒或rootkits)的攻击。常规反恶意软件系统通常以操作系统的处理器特权级(例如,内核模式)执行。一些恶意软件(例如,rootkits)也可以OS的级操作,且可因此使常规反恶意软件系统瘫痪且破坏计算机系统的安全性。相反,在本发明的一些实施例中,管理程序以最高处理器特权级在计算机系统上执行,用虚拟机代替操作系统。根据本发明的一些实施例而操作的反恶意软件系统包括以管理程序级在VM内执行的组件及在VM外部执行的组件。因此可以与操作系统的处理器特权级相比较更高的处理器特权级进行一些反恶意软件操作,其中在VM内执行的恶意软件不能够将其破坏。在一些实施例中,以管理程序的级执行的单个存储器自省引擎可保护在相应计算机系统上同时执行的多个虚拟机。
在一些实施例中,存储器自省引擎的操作包含选择关键软件对象(例如,某些驱动器、库、寄存器及页表等)的集合,且防止恶意修改此类对象。特定来说,一些实施例可因此保护在VM内执行的反恶意软件组件不受恶意攻击。
为保护此类对象,一些实施例可通过拦截写入分配到相应对象的存储器空间的尝试来防止恶意修改,且阻止或重新定向所述尝试。其它实施例可通过将分配到相应对象的存储器空间标记为只读来保护目标对象。在典型的硬件及软件配置中,存储器被划分成具有连续地址的个别块(被称作页)。在支持虚拟化的系统中,页存取权限由管理程序(例如)使用专用数据结构(例如,Intel平台上的扩展页表(EPT))来控制。因此(例如)通过存储器自省引擎指示管理程序将含有归属于相应对象的数据的页的集合标记为只读可实现保护目标对象的存储器空间。
在一些实施例中,一些反恶意软件组件在受保护虚拟机内执行,与存储器自省引擎合作以检测恶意软件。此类配置通过桥接通过虚拟化而产生的语义鸿沟可实质上简化恶意软件检测。在典型的软件配置中,以用户模式执行的恶意软件检测组件可获取关于被评估过程的行为的丰富信息,而大部分此信息对以内核级执行的组件或在相应VM外部执行的组件来说不是容易获得的。例如,当被评估过程尝试从因特网下载文件时,用户模式过程评估器(例如)使用所属领域已知的方法(例如,DLL注入)可识别哪一过程正执行动作,可检测所述被评估过程正尝试下载文件,且可确定文件从哪个IP地址下载及下载的文件的磁盘位置等等。同时,以管理程序级执行的过程评估器可仅检测网络包的集合正在主机系统的网络适配器中循环。尽管将关于被评估过程的行为的信息从管理程序的级恢复在原则上可为可能的,但此类任务针对恶意软件检测可为不切实际的,因为其可耗费显著的计算成本。通过组合在相应VM内执行的反恶意软件组件与在VM外部执行的存储器自省引擎,本发明的一些实施例可使用内部VM组件可获取的丰富的行为数据,同时保护此类组件的完整性免于相应VM外部的影响。
在常规反恶意软件系统中,以类似于操作系统的处理器特权级的处理器特权级执行的软件组件检测过程何时被启动,且指示其它反恶意软件组件监视相应过程的行为。一些恶意软件代理设法通过停用检测过程启动的软件组件来破坏此类反恶意软件系统,因此导致反恶意软件系统仅监视当前执行过程的子集。相反,在本发明的一些实施例中,组件检测过程启动被移到相应虚拟机外部,其以与操作系统相比较更高的处理器特权级启动。此类配置可防止恶意软件躲避反恶意软件组件。
在一些实施例中,过程评分模块从在相应VM内或外部执行的多个过程评估器接收每过程评估指示符。从在受保护VM内执行的组件接收的过程评估指示符可指示(例如)被评估过程已执行恶意软件指示行为(例如,尝试修改OS的注册表值或尝试删除文件)。在相应VM的外部确定的过程评估指示符可指示(例如)被评估过程正尝试写入受保护存储器区段。过程评估指示符可包括指示相应过程的恶意程度的数值得分。在一些实施例中,过程评分模块根据从各种过程评估器接收的多个过程评估指示符/得分来确定累积得分,且根据所述累积得分来确定被评估过程是否为恶意的。
所属领域的技术人员将清楚,在不脱离本发明的范围的情况下,可以多种方式更改以上实施例。因此,本发明的范围应由所附权利要求书及其合法等效物确定。
Claims (20)
1.一种包括至少一个处理器的主机系统,其经配置以执行:
管理程序,其经配置以公开虚拟机;
过程评估器,其在所述虚拟机内执行;
存储器自省引擎,其在所述虚拟机的外部执行;及
过程评分模块,其中:
所述过程评估器经配置以:
确定在所述虚拟机内执行的被评估过程是否执行动作,且
作为响应,当所述被评估过程执行所述动作时,将第一过程评估指示符传输到所述过程评分模块,所述第一过程评估指示符是针对所述被评估过程确定;
所述存储器自省引擎经配置以:
拦截对操作系统功能的调用,以检测在所述虚拟机内执行的受保护过程的启动,其中所述操作系统功能经配置以将所述受保护过程添加到在所述虚拟机内执行的过程列表,且
响应于检测到所述启动,
确定所述被评估过程是否尝试修改所述受保护过程的存储器页,且
作为响应,当所述被评估过程尝试修改所述存储器页时,
将第二过程评估指示符传输到所述过程评分模块,所述第二过程评估指示符是针对所述被评估过程确定;且
所述过程评分模块经配置以:
从安全服务器接收第一权重及第二权重,所述安全服务器经配置以执行与包含所述主机系统的多个计算机系统的反恶意软件事务;
接收所述第一及第二过程评估指示符,且
作为响应,根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的,其中确定所述被评估过程是否为恶意的包括确定第一得分及第二得分的加权总和,所述第一权重乘所述加权总和中的所述第一得分,且所述第二权重乘所述加权总和中的所述第二得分,其中所述第一得分及所述第二得分是根据所述第一过程评估指示符及所述第二过程评估指示符分别确定。
2.根据权利要求1所述的系统,其中所述存储器自省引擎进一步经配置以:
响应于检测到所述受保护过程的所述启动,将所述受保护过程的指示符发送到在所述虚拟机内执行的安全应用程序,且
作为响应,从所述安全应用程序接收所述存储器页的指示符。
3.根据权利要求1所述的主机系统,其中所述过程评估器包括以处理器特权的用户级执行的用户级过程评估器,所述用户级过程评估器经配置以确定所述被评估过程是否执行所述动作。
4.根据权利要求1所述的主机系统,其中所述过程评估器包括以处理器特权的内核级执行的内核级过程评估器,所述内核级过程评估器经配置以确定所述被评估过程是否执行所述动作。
5.根据权利要求1所述的主机系统,其中所述过程评估器包括系统调用评估器,所述系统调用评估器经配置以拦截由所述被评估过程执行的系统调用。
6.根据权利要求1所述的主机系统,其中所述过程评分模块在所述虚拟机内执行。
7.根据权利要求1所述的主机系统,其中所述过程评分模块在所述虚拟机外部执行。
8.根据权利要求1所述的主机系统,其中所述受保护过程包含所述过程评分模块。
9.根据权利要求1所述的主机系统,其中所述受保护过程形成包括所述过程评估器的安全应用程序的部分。
10.一种非暂时性计算机可读媒体,其编码指令,所述指令当在包括至少一个处理器的主机系统上执行时导致所述主机系统形成:
管理程序,其经配置以公开虚拟机;
过程评估器,其在所述虚拟机内执行;
存储器自省引擎,其在所述虚拟机的外部执行;及
过程评分模块,其中:
所述过程评估器经配置以:
确定在所述虚拟机内执行的被评估过程是否执行动作,且
作为响应,当所述被评估过程执行所述动作时,将第一过程评估指示符传输到所述过程评分模块,所述第一过程评估指示符是针对所述被评估过程确定;
所述存储器自省引擎经配置以:
拦截对操作系统功能的调用,以检测在所述虚拟机内执行的受保护过程的启动,其中所述操作系统功能在所述虚拟机内执行且经配置以将所述受保护过程添加到在所述虚拟机内执行的过程列表,且
响应于检测到所述启动,
确定所述被评估过程是否尝试修改所述受保护过程的存储器页,且
作为响应,当所述被评估过程尝试修改所述存储器页时,
将第二过程评估指示符传输到所述过程评分模块,所述第二过程评估指示符是针对所述被评估过程确定;且
所述过程评分模块经配置以:
从安全服务器接收第一权重及第二权重,所述安全服务器经配置以执行与包含所述主机系统的多个计算机系统的反恶意软件事务;
接收所述第一及第二过程评估指示符,且
作为响应,根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的,其中确定所述被评估过程是否为恶意的包括确定第一得分及第二得分的加权总和,所述第一权重乘所述加权总和中的所述第一得分,且所述第二权重乘所述加权总和中的所述第二得分,其中所述第一得分及所述第二得分是根据所述第一过程评估指示符及所述第二过程评估指示符分别确定。
11.根据权利要求10所述的非暂时性计算机可读媒体,其中所述存储器自省引擎进一步经配置以:
响应于检测到所述受保护过程的所述启动,将所述受保护过程的指示符发送到在所述虚拟机内执行的安全应用程序,且
作为响应,从所述安全应用程序接收所述存储器页的指示符。
12.根据权利要求10所述的非暂时性计算机可读媒体,其中所述过程评估器包括以处理器特权的用户级执行的用户级过程评估器,所述用户级过程评估器经配置以确定所述被评估过程是否执行所述动作。
13.根据权利要求10所述的非暂时性计算机可读媒体,其中所述过程评估器包括以处理器特权的内核级执行的内核级过程评估器,所述内核级过程评估器经配置以确定所述被评估过程是否执行所述动作。
14.根据权利要求10所述的非暂时性计算机可读媒体,其中所述过程评估器包括系统调用评估器,所述系统调用评估器经配置以拦截由所述被评估过程执行的系统调用。
15.根据权利要求10所述的非暂时性计算机可读媒体,其中所述过程评分模块在所述虚拟机内执行。
16.根据权利要求10所述的非暂时性计算机可读媒体,其中所述过程评分模块在所述虚拟机外部执行。
17.根据权利要求10所述的非暂时性计算机可读媒体,其中所述受保护过程包含所述过程评分模块。
18.根据权利要求10所述的非暂时性计算机可读媒体,其中所述受保护过程形成经配置以执行所述过程评估器的安全应用程序的部分。
19.一种方法,其包括:
使用主机系统的至少一个处理器以从安全服务器接收第一权重及第二权重,所述安全服务器经配置以执行与包含所述主机系统的多个计算机系统的反恶意软件事务;
使用所述至少一个处理器以接收针对被评估过程而确定的第一过程评估指示符,所述被评估过程在由在所述主机系统上执行的管理程序公开的虚拟机内执行,其中确定所述第一过程评估指示符包括使用在所述虚拟机内执行的过程评估器来确定所述被评估过程是否执行第一动作;
使用所述至少一个处理器以接收针对所述被评估过程而确定的第二过程评估指示符,其中确定所述第二过程评估指示符包括使用在所述虚拟机的外部执行的存储器自省引擎来确定所述被评估过程是否执行第二动作;且
响应于接收到所述第一及第二过程评估指示符,使用所述至少一个处理器以根据所述第一及第二过程评估指示符来确定所述被评估过程是否为恶意的,其中确定所述被评估过程是否为恶意的包括确定第一得分及第二得分的加权总和,所述第一权重乘所述加权总和中的所述第一得分,且所述第二权重乘所述加权总和中的所述第二得分,其中所述第一得分及所述第二得分是根据所述第一过程评估指示符及所述第二过程评估指示符分别确定。
20.一种方法,其包括:
使用主机系统的至少一个处理器以从安全服务器接收第一权重及第二权重,所述安全服务器经配置以执行与包含所述主机系统的多个计算机系统的反恶意软件事务;
使用所述至少一个处理器以执行存储器自省引擎,所述存储器自省引擎在由在所述主机系统上执行的管理程序公开的虚拟机的外部执行,其中执行所述存储器自省引擎包括检测在所述虚拟机内执行的过程的启动;
响应于所述存储器自省引擎检测到所述过程的所述启动,使用所述至少一个处理器以确定所述过程的第一及第二过程评估指示符;以及
响应于确定所述第一及第二评估指示符,使用所述至少一个处理器以根据所述第一及第二过程评估指示符来确定所述过程是否为恶意的,其中确定所述被评估过程是否为恶意的包括确定第一得分及第二得分的加权总和,所述第一权重乘所述加权总和中的所述第一得分,且所述第二权重乘所述加权总和中的所述第二得分,其中所述第一得分及所述第二得分是根据所述第一过程评估指示符及所述第二过程评估指示符分别确定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/936,058 | 2013-07-05 | ||
US13/936,058 US9117080B2 (en) | 2013-07-05 | 2013-07-05 | Process evaluation for malware detection in virtual machines |
PCT/RO2014/000019 WO2015152748A1 (en) | 2013-07-05 | 2014-07-02 | Process evaluation for malware detection in virtual machines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105393255A CN105393255A (zh) | 2016-03-09 |
CN105393255B true CN105393255B (zh) | 2019-07-12 |
Family
ID=52133728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038552.XA Active CN105393255B (zh) | 2013-07-05 | 2014-07-02 | 用于虚拟机中的恶意软件检测的过程评估 |
Country Status (13)
Country | Link |
---|---|
US (1) | US9117080B2 (zh) |
EP (1) | EP3017392B1 (zh) |
JP (1) | JP6378758B2 (zh) |
KR (1) | KR101946982B1 (zh) |
CN (1) | CN105393255B (zh) |
AU (1) | AU2014389572B2 (zh) |
CA (1) | CA2915888C (zh) |
ES (1) | ES2785350T3 (zh) |
HK (1) | HK1216930A1 (zh) |
IL (1) | IL243123B (zh) |
RU (1) | RU2634205C2 (zh) |
SG (1) | SG11201510313SA (zh) |
WO (1) | WO2015152748A1 (zh) |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10187452B2 (en) | 2012-08-23 | 2019-01-22 | TidalScale, Inc. | Hierarchical dynamic scheduling |
JP6176868B2 (ja) * | 2013-02-10 | 2017-08-09 | ペイパル・インク | 予測的なセキュリティ製品を提供し、既存のセキュリティ製品を評価する方法と製品 |
US9824225B1 (en) * | 2013-09-20 | 2017-11-21 | EMC IP Holding Company LLC | Protecting virtual machines processing sensitive information |
WO2015065330A1 (en) * | 2013-10-29 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Virtual machine introspection |
US9692789B2 (en) | 2013-12-13 | 2017-06-27 | Oracle International Corporation | Techniques for cloud security monitoring and threat intelligence |
EP3084667A4 (en) * | 2013-12-19 | 2017-07-26 | Intel Corporation | Policy-based trusted inspection of rights managed content |
US9507935B2 (en) * | 2014-01-16 | 2016-11-29 | Fireeye, Inc. | Exploit detection system with threat-aware microvisor |
US20150229659A1 (en) * | 2014-02-13 | 2015-08-13 | Guardicore Ltd. | Passive detection of malicious network-mapping software in computer networks |
US9836318B2 (en) * | 2014-02-21 | 2017-12-05 | Infineon Technologies Ag | Safety hypervisor function |
US9241010B1 (en) * | 2014-03-20 | 2016-01-19 | Fireeye, Inc. | System and method for network behavior detection |
JP6370098B2 (ja) * | 2014-05-16 | 2018-08-08 | 杉中 順子 | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 |
US10038703B2 (en) * | 2014-07-18 | 2018-07-31 | The Regents Of The University Of Michigan | Rating network security posture and comparing network maliciousness |
US9710648B2 (en) * | 2014-08-11 | 2017-07-18 | Sentinel Labs Israel Ltd. | Method of malware detection and system thereof |
US11507663B2 (en) | 2014-08-11 | 2022-11-22 | Sentinel Labs Israel Ltd. | Method of remediating operations performed by a program and system thereof |
US9552481B1 (en) * | 2014-12-30 | 2017-01-24 | Symantec Corporation | Systems and methods for monitoring programs |
US9189630B1 (en) | 2015-01-21 | 2015-11-17 | AO Kaspersky Lab | Systems and methods for active operating system kernel protection |
US10944764B2 (en) * | 2015-02-13 | 2021-03-09 | Fisher-Rosemount Systems, Inc. | Security event detection through virtual machine introspection |
US10127064B2 (en) * | 2015-02-24 | 2018-11-13 | Red Hat Israel, Ltd. | Read-only VM function chaining for secure hypervisor access |
US10417031B2 (en) * | 2015-03-31 | 2019-09-17 | Fireeye, Inc. | Selective virtualization for security threat detection |
US10567395B2 (en) * | 2015-05-10 | 2020-02-18 | Check Point Advanced Threat Prevention Ltd | Detection of potentially malicious web content by emulating user behavior and user environment |
US9703956B1 (en) * | 2015-06-08 | 2017-07-11 | Symantec Corporation | Systems and methods for categorizing virtual-machine-aware applications for further analysis |
US10691476B2 (en) * | 2015-06-27 | 2020-06-23 | Mcafee, Llc | Protection of sensitive data |
US10216927B1 (en) * | 2015-06-30 | 2019-02-26 | Fireeye, Inc. | System and method for protecting memory pages associated with a process using a virtualization layer |
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 |
RU2618947C2 (ru) * | 2015-06-30 | 2017-05-11 | Закрытое акционерное общество "Лаборатория Касперского" | Способ предотвращения работы программ, содержащих нежелательный для пользователя функционал |
RU2589862C1 (ru) * | 2015-06-30 | 2016-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ обнаружения вредоносного кода в оперативной памяти |
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 |
US11113086B1 (en) | 2015-06-30 | 2021-09-07 | Fireeye, Inc. | Virtual system and method for securing external network connectivity |
US10395029B1 (en) | 2015-06-30 | 2019-08-27 | Fireeye, Inc. | Virtual system and method with threat protection |
US10033759B1 (en) | 2015-09-28 | 2018-07-24 | Fireeye, Inc. | System and method of threat detection under hypervisor control |
CN105389197B (zh) | 2015-10-13 | 2019-02-26 | 北京百度网讯科技有限公司 | 用于基于容器的虚拟化系统的操作捕获方法和装置 |
JP6721329B2 (ja) * | 2015-12-21 | 2020-07-15 | 三菱電機株式会社 | パワー半導体装置およびその製造方法 |
US10089124B2 (en) | 2015-12-31 | 2018-10-02 | International Business Machines Corporation | Security application for a guest operating system in a virtual computing environment |
JP6711000B2 (ja) * | 2016-02-12 | 2020-06-17 | 日本電気株式会社 | 情報処理装置、ウィルス検出方法及びプログラム |
US10536478B2 (en) * | 2016-02-26 | 2020-01-14 | Oracle International Corporation | Techniques for discovering and managing security of applications |
US10127368B2 (en) | 2016-03-01 | 2018-11-13 | Filevine, Inc. | Systems for identity validation and association |
US20210026950A1 (en) * | 2016-03-07 | 2021-01-28 | Crowdstrike, Inc. | Hypervisor-based redirection of system calls and interrupt-based task offloading |
US11086660B2 (en) * | 2016-03-09 | 2021-08-10 | Hewlett Packard Enterprise Development Lp | Server virtual address space |
US10116630B2 (en) * | 2016-04-04 | 2018-10-30 | Bitdefender IPR Management Ltd. | Systems and methods for decrypting network traffic in a virtualized environment |
US11379385B2 (en) * | 2016-04-16 | 2022-07-05 | Vmware, Inc. | Techniques for protecting memory pages of a virtual computing instance |
CN107360120B (zh) * | 2016-05-10 | 2019-06-11 | 华为技术有限公司 | 虚拟网络功能的审计方法和装置 |
US10592267B2 (en) | 2016-05-17 | 2020-03-17 | Vmware, Inc. | Tree structure for storing monitored memory page data |
US10430223B2 (en) | 2016-05-17 | 2019-10-01 | Vmware, Inc. | Selective monitoring of writes to protected memory pages through page table switching |
FR3051934A1 (fr) * | 2016-05-24 | 2017-12-01 | Orange | Procede d'identification d'au moins une fonction d'un noyau d'un systeme d'exploitation |
US10353736B2 (en) * | 2016-08-29 | 2019-07-16 | TidalScale, Inc. | Associating working sets and threads |
CN106445639A (zh) * | 2016-09-30 | 2017-02-22 | 北京奇虎科技有限公司 | 监测虚拟机的方法及装置 |
US10635479B2 (en) * | 2016-12-19 | 2020-04-28 | Bitdefender IPR Management Ltd. | Event filtering for virtual machine security applications |
CN108241801B (zh) * | 2016-12-26 | 2021-03-30 | 华为技术有限公司 | 处理系统调用的方法和装置 |
US9734337B1 (en) | 2017-01-24 | 2017-08-15 | Malwarebytes Inc. | Behavior-based ransomware detection |
US10592664B2 (en) * | 2017-02-02 | 2020-03-17 | Cisco Technology, Inc. | Container application security and protection |
JP6841703B2 (ja) * | 2017-03-29 | 2021-03-10 | アドソル日進株式会社 | コンピュータ装置 |
US11023135B2 (en) | 2017-06-27 | 2021-06-01 | TidalScale, Inc. | Handling frequently accessed pages |
KR101937935B1 (ko) * | 2017-07-07 | 2019-04-11 | 한국전자통신연구원 | 가상머신 프로세스 실행에 따른 감사 증적 저장 장치 및 방법 |
US10802863B2 (en) * | 2017-07-07 | 2020-10-13 | Electronics And Telecommunications Research Institute | Apparatus and method for storing audit trail in response to virtual-machine process execution |
US10467552B2 (en) * | 2017-07-31 | 2019-11-05 | Pearson Education, Inc. | System and method for automatic content provisioning |
US11294898B2 (en) | 2017-07-31 | 2022-04-05 | Pearson Education, Inc. | System and method of automated assessment generation |
US10462171B2 (en) | 2017-08-08 | 2019-10-29 | Sentinel Labs Israel Ltd. | Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking |
KR20190021673A (ko) * | 2017-08-23 | 2019-03-06 | 주식회사 수산아이앤티 | 랜섬웨어 방지 장치 및 방법 |
US10817347B2 (en) | 2017-08-31 | 2020-10-27 | TidalScale, Inc. | Entanglement of pages and guest threads |
US11687654B2 (en) | 2017-09-15 | 2023-06-27 | Intel Corporation | Providing isolation in virtualized systems using trust domains |
US10546120B2 (en) * | 2017-09-25 | 2020-01-28 | AO Kaspersky Lab | System and method of forming a log in a virtual machine for conducting an antivirus scan of a file |
US10678922B2 (en) * | 2017-11-23 | 2020-06-09 | Nicira, Inc. | Detecting arbitrary code execution using a hypervisor |
US10713357B2 (en) * | 2017-11-23 | 2020-07-14 | Nicira, Inc. | Detecting lateral movement using a hypervisor |
CN107798236B (zh) * | 2017-11-30 | 2021-05-04 | 阿里巴巴(中国)有限公司 | 一种对应用程序安装包实现安全安装的方法和装置 |
US11250123B2 (en) | 2018-02-28 | 2022-02-15 | Red Hat, Inc. | Labeled security for control flow inside executable program code |
CN108804225B (zh) * | 2018-05-24 | 2021-01-01 | 新华三云计算技术有限公司 | 一种虚拟机负载调控方法和装置 |
EP3884412A1 (en) * | 2018-11-19 | 2021-09-29 | Secure Micro Ltd | Computer implemented method |
US11295008B2 (en) * | 2019-02-13 | 2022-04-05 | Nec Corporation | Graphics processing unit accelerated trusted execution environment |
US11550903B1 (en) * | 2019-04-26 | 2023-01-10 | Joseph Alan Epstein | System and method for trustworthiness, reputation, provenance, and measurement of software |
EP3973427A4 (en) | 2019-05-20 | 2023-06-21 | Sentinel Labs Israel Ltd. | SYSTEMS AND METHODS FOR EXECUTABLE CODE DETECTION, AUTOMATIC FEATURE EXTRACTION, AND POSITION-INDEPENDENT CODE DETECTION |
US11277436B1 (en) * | 2019-06-24 | 2022-03-15 | Ca, Inc. | Identifying and mitigating harm from malicious network connections by a container |
US11782713B1 (en) * | 2019-08-27 | 2023-10-10 | Amazon Technologies, Inc. | Security vulnerability mitigation using address space co-execution |
US11630900B2 (en) * | 2019-09-30 | 2023-04-18 | Mcafee, Llc | Detection of malicious scripted activity in fileless attacks |
US10754506B1 (en) * | 2019-10-07 | 2020-08-25 | Cyberark Software Ltd. | Monitoring and controlling risk compliance in network environments |
US11836247B2 (en) * | 2020-03-30 | 2023-12-05 | Fortinet, Inc. | Detecting malicious behavior in a network using security analytics by analyzing process interaction ratios |
IL275098A (en) * | 2020-06-03 | 2022-01-01 | Kazuar Advanced Tech Ltd | A multi-computing environment with the fewest loopholes |
RU2763112C1 (ru) * | 2020-08-24 | 2021-12-27 | Акционерное общество "Лаборатория Касперского" | Система и способ формирования списка виртуальных машин с указанием статуса защиты |
US11442770B2 (en) * | 2020-10-13 | 2022-09-13 | BedRock Systems, Inc. | Formally verified trusted computing base with active security and policy enforcement |
US11579857B2 (en) | 2020-12-16 | 2023-02-14 | Sentinel Labs Israel Ltd. | Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach |
US20230229761A1 (en) * | 2021-04-20 | 2023-07-20 | Assured Information Security, Inc. | Prevention and remediation of malware based on selective presentation of files to processes |
CN113221103B (zh) * | 2021-05-08 | 2022-09-20 | 山东英信计算机技术有限公司 | 一种容器安全防护方法、系统及介质 |
US11899782B1 (en) * | 2021-07-13 | 2024-02-13 | SentinelOne, Inc. | Preserving DLL hooks |
WO2023069166A1 (en) * | 2021-10-21 | 2023-04-27 | Microsoft Technology Licensing, Llc | Securely redirecting system service routines |
KR102656980B1 (ko) * | 2022-03-14 | 2024-04-15 | 세종대학교산학협력단 | 가상화 환경에서 인스턴스의 메모리를 연속적으로 기록하는 방법 및 장치 |
WO2023239008A1 (ko) * | 2022-06-10 | 2023-12-14 | 엘지전자 주식회사 | 차량의 신호 처리 장치 및 이를 구비하는 차량용 통신 장치용 통신 장치 |
US11977496B1 (en) | 2022-09-29 | 2024-05-07 | Amazon Technologies, Inc. | Security vulnerability mitigation using hardware-supported context-dependent address space hiding |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841397A (zh) * | 2005-03-31 | 2006-10-04 | 微软公司 | 聚合计算机系统的知识库以主动保护计算机免受恶意软件侵害 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4412156B2 (ja) * | 2004-11-30 | 2010-02-10 | 沖電気工業株式会社 | 処理装置 |
US7996836B1 (en) | 2006-12-29 | 2011-08-09 | Symantec Corporation | Using a hypervisor to provide computer security |
US8380987B2 (en) * | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
US7797748B2 (en) * | 2007-12-12 | 2010-09-14 | Vmware, Inc. | On-access anti-virus mechanism for virtual machine architecture |
US8561182B2 (en) * | 2009-01-29 | 2013-10-15 | Microsoft Corporation | Health-based access to network resources |
US8387046B1 (en) | 2009-03-26 | 2013-02-26 | Symantec Corporation | Security driver for hypervisors and operating systems of virtualized datacenters |
US20120254993A1 (en) * | 2011-03-28 | 2012-10-04 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
WO2012135192A2 (en) * | 2011-03-28 | 2012-10-04 | Mcafee, Inc. | System and method for virtual machine monitor based anti-malware security |
US8099596B1 (en) | 2011-06-30 | 2012-01-17 | Kaspersky Lab Zao | System and method for malware protection using virtualization |
US9069586B2 (en) * | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
-
2013
- 2013-07-05 US US13/936,058 patent/US9117080B2/en active Active
-
2014
- 2014-07-02 EP EP14882802.3A patent/EP3017392B1/en active Active
- 2014-07-02 ES ES14882802T patent/ES2785350T3/es active Active
- 2014-07-02 RU RU2016103212A patent/RU2634205C2/ru active
- 2014-07-02 WO PCT/RO2014/000019 patent/WO2015152748A1/en active Application Filing
- 2014-07-02 KR KR1020157036979A patent/KR101946982B1/ko active IP Right Grant
- 2014-07-02 CA CA2915888A patent/CA2915888C/en active Active
- 2014-07-02 JP JP2016523693A patent/JP6378758B2/ja active Active
- 2014-07-02 SG SG11201510313SA patent/SG11201510313SA/en unknown
- 2014-07-02 CN CN201480038552.XA patent/CN105393255B/zh active Active
- 2014-07-02 AU AU2014389572A patent/AU2014389572B2/en active Active
-
2015
- 2015-12-15 IL IL24312315A patent/IL243123B/en active IP Right Grant
-
2016
- 2016-04-25 HK HK16104719.4A patent/HK1216930A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841397A (zh) * | 2005-03-31 | 2006-10-04 | 微软公司 | 聚合计算机系统的知识库以主动保护计算机免受恶意软件侵害 |
Non-Patent Citations (1)
Title |
---|
A Layered Malware Detection Model Using VMM;Lin Chen等;《2012 IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications》;20120627;全文 |
Also Published As
Publication number | Publication date |
---|---|
AU2014389572A1 (en) | 2016-01-21 |
KR20160030385A (ko) | 2016-03-17 |
US9117080B2 (en) | 2015-08-25 |
US20150013008A1 (en) | 2015-01-08 |
CA2915888A1 (en) | 2015-10-08 |
CN105393255A (zh) | 2016-03-09 |
KR101946982B1 (ko) | 2019-05-10 |
SG11201510313SA (en) | 2016-01-28 |
ES2785350T3 (es) | 2020-10-06 |
IL243123B (en) | 2019-11-28 |
JP6378758B2 (ja) | 2018-08-22 |
AU2014389572B2 (en) | 2019-03-07 |
JP2016526730A (ja) | 2016-09-05 |
RU2634205C2 (ru) | 2017-10-24 |
HK1216930A1 (zh) | 2016-12-09 |
RU2016103212A (ru) | 2017-08-10 |
CA2915888C (en) | 2021-05-04 |
EP3017392A1 (en) | 2016-05-11 |
WO2015152748A1 (en) | 2015-10-08 |
EP3017392B1 (en) | 2020-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105393255B (zh) | 用于虚拟机中的恶意软件检测的过程评估 | |
CN105393229B (zh) | 虚拟机中的页面错误注入 | |
CN105593870B (zh) | 用于恶意软件检测的复杂评分 | |
CN103620613B (zh) | 用于基于虚拟机监视器的反恶意软件安全的系统和方法 | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US9223966B1 (en) | Systems and methods for replicating computing system environments | |
CN103907098B (zh) | 用于管理程序环境中的关键地址空间保护的系统和方法 | |
US10635479B2 (en) | Event filtering for virtual machine security applications | |
US20140259169A1 (en) | Virtual machines | |
CN108475217A (zh) | 用于审计虚拟机的系统及方法 | |
CN106575237A (zh) | 用于在退出虚拟机器后暴露当前处理器指令的结果的系统及方法 | |
CN107851153A (zh) | 使用异步自测异常的计算机安全系统及方法 | |
CN107851155A (zh) | 用于跨越多个软件实体跟踪恶意行为的系统及方法 | |
CN104769604A (zh) | 实时模块保护 | |
US9424427B1 (en) | Anti-rootkit systems and methods | |
CN103310152B (zh) | 基于系统虚拟化技术的内核态Rootkit检测方法 | |
JPWO2016203759A1 (ja) | 分析システム、分析方法、分析装置及び、コンピュータ・プログラムが記憶された記録媒体 | |
CN109597675B (zh) | 虚拟机恶意软件行为检测方法及系统 | |
CN109074321A (zh) | 用于保护虚拟计算实例的存储页的技术 | |
CN106156621A (zh) | 一种检测虚拟机逃逸的方法及装置 | |
US20170053118A1 (en) | Changed Block Tracking Driver for Agentless Security Scans of Virtual Disks | |
Tsifountidis | Virtualization security: Virtual machine monitoring and introspection | |
WO2018235858A1 (ja) | 情報処理監視装置、情報処理監視方法、プログラム、記録媒体及び情報処理装置 | |
Yan et al. | MOSKG: countering kernel rootkits with a secure paging mechanism | |
Zhan et al. | A low-overhead kernel object monitoring approach for virtual machine introspection |
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: 1216930 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |