[go: up one dir, main page]

HK1247295B - Computer security systems and methods using asynchronous introspection exceptions - Google Patents

Computer security systems and methods using asynchronous introspection exceptions

Info

Publication number
HK1247295B
HK1247295B HK18106407.4A HK18106407A HK1247295B HK 1247295 B HK1247295 B HK 1247295B HK 18106407 A HK18106407 A HK 18106407A HK 1247295 B HK1247295 B HK 1247295B
Authority
HK
Hong Kong
Prior art keywords
condition
target entity
met
response
event
Prior art date
Application number
HK18106407.4A
Other languages
Chinese (zh)
Other versions
HK1247295A1 (en
Inventor
卢卡奇 山多尔
瑟尔布 克里斯蒂安-波格丹
卢察什 安德烈-弗拉德
Original Assignee
比特梵德知识产权管理有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/209,317 external-priority patent/US9852295B2/en
Application filed by 比特梵德知识产权管理有限公司 filed Critical 比特梵德知识产权管理有限公司
Publication of HK1247295A1 publication Critical patent/HK1247295A1/en
Publication of HK1247295B publication Critical patent/HK1247295B/en

Links

Description

使用异步自测异常的计算机安全系统及方法Computer security system and method using asynchronous self-test exceptions

相关申请案Related applications

本申请案自申请之日起主张2015年7月14日提出申请的标题为“使用异步自测异常的计算机安全系统及方法(Computer Security Systems and Methods UsingAsynchronous Introspection Exceptions)”的美国临时专利申请案第62/192,384号的权益,所述申请案的全部内容以引用的方式并入本文中。This application claims the benefit of U.S. Provisional Patent Application No. 62/192,384, filed on July 14, 2015, entitled “Computer Security Systems and Methods Using Asynchronous Introspection Exceptions,” which is hereby incorporated by reference in its entirety.

技术领域Technical Field

本发明涉及计算机安全系统及方法,且特定来说涉及用于保护硬件虚拟化环境免受计算机安全威胁的系统及方法。The present invention relates to computer security systems and methods, and in particular to systems and methods for protecting hardware virtualization environments from computer security threats.

背景技术Background Art

恶意软件(Malicious software,也被称为malware)在世界范围内影响大量计算机系统。恶意软件以其许多形式(例如,计算机病毒、蠕虫、隐匿程序(rootkit)、间谍软件及非所要广告软件)给数百万计算机用户带来严重风险,使其容易丢失数据及敏感信息、身份被盗用及损失工作效率等等。Malicious software (also known as malware) affects numerous computer systems worldwide. Malware, in its many forms (e.g., computer viruses, worms, rootkits, spyware, and unwanted adware), poses a serious risk to millions of computer users, exposing them to loss of data and sensitive information, identity theft, and loss of productivity.

计算机安全软件可用于保护计算机系统免受恶意软件影响。检测及打击恶意软件的常用方法包含签名匹配及行为方法。基于签名的方法试图将目标软件实体的代码区段与从已知恶意软件提取的代码片段集合进行匹配。行为方法通常包括:检测由目标软件实体所致的或在目标软件实体的执行期间发生的事件的发生,及分析相应事件以确定其是否指示潜在安全威胁。Computer security software can be used to protect computer systems from malware. Common methods for detecting and combating malware include signature matching and behavioral approaches. Signature-based approaches attempt to match code segments of a target software entity with a collection of code snippets extracted from known malware. Behavioral approaches typically involve detecting the occurrence of events caused by or occurring during the execution of the target software entity and analyzing these events to determine whether they indicate a potential security threat.

常规事件检测通常依赖于此项技术中已知的一类方法,如挂钩(hook)。这些方法通常易受攻击且可被恶意软件阻挠。此外,常规行为方法通常暂停导致所检测事件的实体的执行,同时分析相应事件以发现恶意指示符。这些暂停可对用户体验造成负面影响,尤其是在其中安全软件在受保护虚拟机外部执行的硬件虚拟化配置中。Conventional event detection typically relies on methods known in the art, such as hooks. These methods are often vulnerable to attack and can be thwarted by malware. Furthermore, conventional behavioral methods often suspend the execution of the entity that caused the detected event while analyzing the corresponding event for malicious indicators. These pauses can negatively impact the user experience, especially in hardware virtualization configurations where security software executes outside of the protected virtual machine.

一直以来希望提高计算机安全系统及方法的效率,且特定来说希望开发出能解决上述与事件检测及分析有关的缺点的系统及方法。There is a continuing desire to improve the effectiveness of computer security systems and methods, and in particular to develop systems and methods that address the aforementioned shortcomings associated with event detection and analysis.

发明内容Summary of the Invention

根据一个方面,一种主机系统包括硬件处理器及存储器,所述硬件处理器经配置以执行目标实体、同步异常分析程序及异步异常分析程序。所述硬件处理器进一步经配置以:响应于检测到由所述目标实体的执行所致的事件的发生而暂停所述目标实体的所述执行且切换成执行所述同步异常分析程序。所述同步异常分析程序经配置以根据所述事件而确定所述目标实体是否有恶意嫌疑。所述同步异常分析程序进一步经配置以:作为响应,当所述目标实体有恶意嫌疑时,从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码。所述同步异常分析程序进一步经配置以:响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足。响应于确定所述第一条件是否被满足,当所述第一条件被满足时,所述同步异常分析程序进一步经配置以致使所述硬件处理器重新开始所述目标实体的执行。所述同步异常分析程序进一步经配置以:响应于确定所述第一条件是否被满足,当所述第一条件未被满足时,确定所述目标实体是恶意的。所述异步异常分析程序经配置以:响应于所述硬件处理器重新开始所述目标实体的执行,根据所述事件且根据所述目标实体而确定所述第二条件是否被满足。所述异步异常分析程序进一步经配置以:响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的。所述异步异常分析程序进一步经配置以:响应于确定所述第二条件是否被满足,当所述第二条件未被满足时,确定所述目标实体是恶意的。According to one aspect, a host system includes a hardware processor and memory. The hardware processor is configured to execute a target entity, a synchronous exception analyzer, and an asynchronous exception analyzer. The hardware processor is further configured to, in response to detecting the occurrence of an event caused by the execution of the target entity, suspend the execution of the target entity and switch to executing the synchronous exception analyzer. The synchronous exception analyzer is configured to determine whether the target entity is suspected of being malicious based on the event. The synchronous exception analyzer is further configured to, in response, when the target entity is suspected of being malicious, selectively retrieve a rule exception signature from a plurality of rule exception signatures, the rule exception signature retrieved based on the event, wherein the rule exception signature includes an encoding of a first condition and an encoding of a second condition. The synchronous exception analyzer is further configured to, in response to retrieving the rule exception signature, determine whether the first condition is satisfied based on the event and based on the target entity. In response to determining whether the first condition is satisfied, the synchronous exception analyzer is further configured to cause the hardware processor to resume execution of the target entity if the first condition is satisfied. The synchronous exception analyzer is further configured to: in response to determining whether the first condition is satisfied, determine that the target entity is malicious when the first condition is not satisfied. The asynchronous exception analyzer is configured to: in response to the hardware processor resuming execution of the target entity, determine whether the second condition is satisfied based on the event and based on the target entity. The asynchronous exception analyzer is further configured to: in response to determining whether the second condition is satisfied, determine that the target entity is not malicious when the second condition is satisfied. The asynchronous exception analyzer is further configured to: in response to determining whether the second condition is satisfied, determine that the target entity is malicious when the second condition is not satisfied.

根据另一方面,一种非暂时性计算机可读媒体存储处理器指令,所述处理器指令在由主机系统的硬件处理器执行时,致使所述主机系统形成同步异常分析程序及异步异常分析程序。所述硬件处理器进一步经配置以:响应于检测到由所述目标实体的执行所致的事件的发生,暂停所述目标实体的所述执行,且响应于暂停所述目标实体的执行,切换成执行所述同步异常分析程序。所述同步异常分析程序经配置以根据所述事件而确定所述目标实体是否有恶意嫌疑。所述同步异常分析程序进一步经配置以:作为响应,当所述目标实体有恶意嫌疑时,从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码。所述同步异常分析程序进一步经配置以响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足。响应于确定所述第一条件是否被满足,当所述第一条件被满足时,所述同步异常分析程序进一步经配置以致使所述硬件处理器重新开始所述目标实体的执行。所述同步异常分析程序进一步经配置以:响应于确定所述第一条件是否被满足,当所述第一条件未被满足时,确定所述目标实体是恶意的。所述异步异常分析程序经配置以:响应于所述硬件处理器重新开始所述目标实体的执行,根据所述事件且根据所述目标实体而确定所述第二条件是否被满足。所述异步异常分析程序进一步经配置以:响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的。所述异步异常分析程序进一步经配置以:响应于确定所述第二条件是否被满足,当所述第二条件未被满足时,确定所述目标实体是恶意的。According to another aspect, a non-transitory computer-readable medium stores processor instructions that, when executed by a hardware processor of a host system, cause the host system to form a synchronous exception analyzer and an asynchronous exception analyzer. The hardware processor is further configured to, in response to detecting the occurrence of an event caused by execution of the target entity, suspend the execution of the target entity, and, in response to suspending the execution of the target entity, switch to executing the synchronous exception analyzer. The synchronous exception analyzer is configured to determine whether the target entity is suspected of being malicious based on the event. The synchronous exception analyzer is further configured to, in response, when the target entity is suspected of being malicious, selectively retrieve a rule exception signature from a plurality of rule exception signatures, the rule exception signature retrieved based on the event, wherein the rule exception signature includes an encoding of a first condition and an encoding of a second condition. The synchronous exception analyzer is further configured to, in response to retrieving the rule exception signature, determine whether the first condition is satisfied based on the event and based on the target entity. In response to determining whether the first condition is satisfied, the synchronous exception analyzer is further configured to cause the hardware processor to restart execution of the target entity when the first condition is satisfied. The synchronous exception analyzer is further configured to, in response to determining whether the first condition is satisfied, determine that the target entity is malicious when the first condition is not satisfied. The asynchronous exception analyzer is configured to, in response to the hardware processor restarting execution of the target entity, determine whether the second condition is satisfied based on the event and based on the target entity. The asynchronous exception analyzer is further configured to, in response to determining whether the second condition is satisfied, determine that the target entity is not malicious when the second condition is satisfied. The asynchronous exception analyzer is further configured to, in response to determining whether the second condition is satisfied, determine that the target entity is malicious when the second condition is not satisfied.

根据另一方面,一种方法保护主机系统免受计算机安全威胁,其中所述主机系统包括硬件处理器及存储器。所述方法包括:采用所述硬件处理器来检测由目标实体的执行所致的事件的发生。所述方法进一步包括:响应于检测到所述事件的所述发生,采用所述硬件处理器来暂停所述目标实体的所述执行且切换成执行同步异常分析程序。所述同步异常分析程序经配置以根据所述事件而确定所述目标实体是否有恶意嫌疑。当所述目标实体有恶意嫌疑时,作为响应,所述同步异常分析程序经配置以从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码。所述同步异常分析程序进一步经配置以响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足。所述同步异常分析程序进一步经配置以,响应于确定所述第一条件是否被满足,当所述第一条件被满足时,致使所述硬件处理器重新开始所述目标实体的执行,且当所述第一条件未被满足时,确定所述目标实体是恶意的。所述方法进一步包括,响应于所述硬件处理器重新开始所述目标实体的执行,采用所述硬件处理器来根据所述事件且根据所述目标实体而确定所述第二条件是否被满足。所述方法进一步包括:响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的,且当所述第二条件未被满足时,确定所述目标实体是恶意的。According to another aspect, a method for protecting a host system from computer security threats, wherein the host system includes a hardware processor and a memory. The method includes: using the hardware processor to detect the occurrence of an event caused by the execution of a target entity. The method further includes: in response to detecting the occurrence of the event, using the hardware processor to suspend the execution of the target entity and switch to executing a synchronous anomaly analysis program. The synchronous anomaly analysis program is configured to determine whether the target entity is suspected of being malicious based on the event. When the target entity is suspected of being malicious, in response, the synchronous anomaly analysis program is configured to selectively retrieve a rule anomaly signature from a plurality of rule anomaly signatures, the rule anomaly signature being retrieved based on the event, wherein the rule anomaly signature includes an encoding of a first condition and an encoding of a second condition. The synchronous anomaly analysis program is further configured to determine whether the first condition is satisfied based on the event and based on the target entity in response to retrieving the rule anomaly signature. The synchronous anomaly analysis program is further configured to, in response to determining whether the first condition is satisfied, cause the hardware processor to restart execution of the target entity when the first condition is satisfied, and determine that the target entity is malicious when the first condition is not satisfied. The method further includes, in response to the hardware processor restarting execution of the target entity, employing the hardware processor to determine whether the second condition is satisfied based on the event and based on the target entity. The method further includes, in response to determining whether the second condition is satisfied, determining that the target entity is not malicious when the second condition is satisfied, and determining that the target entity is malicious when the second condition is not satisfied.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

在阅读以下详细描述后且在参考图式后,本发明的前述方面及优点将立即变得更好理解,在图式中:The foregoing aspects and advantages of the present invention will become immediately better understood upon reading the following detailed description and upon reference to the accompanying drawings, in which:

图1展示根据本发明的一些实施例的受保护免受计算机安全威胁的主机系统的示范性硬件配置。FIG. 1 shows an exemplary hardware configuration of a host system protected from computer security threats according to some embodiments of the present invention.

图2-A展示在不涉及硬件虚拟化的配置中保护根据本发明的一些实施例的主机系统的示范性计算机安全应用程序(CSA)。FIG. 2-A shows an exemplary computer security application (CSA) protecting a host system according to some embodiments of the present invention in a configuration not involving hardware virtualization.

图2-B展示根据本发明的一些实施例的其中一组示范性受保护虚拟机由在主机系统上执行的管理程序公开且其中CSA在受保护虚拟机外部执行的替代配置。2-B shows an alternative configuration in which a set of exemplary protected virtual machines are exposed by a hypervisor executing on a host system and in which a CSA executes externally to the protected virtual machines, according to some embodiments of the invention.

图3图解说明根据本发明的一些实施例的计算机安全应用程序的示范性组件。FIG3 illustrates exemplary components of a computer security application according to some embodiments of the present invention.

图4-A展示其中通知处理程序在受保护虚拟机内执行且其中同步及异步异常分析程序在受保护虚拟机外部执行的示范性配置。FIG. 4-A shows an exemplary configuration in which a notification handler executes within a protected virtual machine and in which synchronous and asynchronous exception analyzers execute outside the protected virtual machine.

图4-B展示根据本发明的一些实施例的其中通知处理程序在受保护虚拟机外部执行且其中同步及异步异常分析程序在受保护虚拟机内执行的替代配置。4-B shows an alternative configuration in which the notification handler executes outside the protected virtual machine and in which the synchronous and asynchronous exception analyzers execute within the protected virtual machine, according to some embodiments of the invention.

图4-C展示根据本发明的一些实施例的其中异步异常分析程序在与受保护虚拟机相异的安全虚拟机内执行的又一示范性配置。4-C shows yet another exemplary configuration in which the asynchronous exception analyzer executes within a secure virtual machine distinct from a protected virtual machine, according to some embodiments of the present invention.

图5展示根据本发明的一些实施例的计算机安全应用程序的组件的示范性交互。FIG5 shows an exemplary interaction of components of a computer security application according to some embodiments of the invention.

图6图解说明根据本发明的一些实施例的规则异常的示范性格式。FIG6 illustrates an exemplary format of a rule exception according to some embodiments of the present invention.

图7展示根据本发明的一些实施例的异常分析请求(EAR)的示范性格式。FIG7 shows an exemplary format of an exception analysis request (EAR) according to some embodiments of the invention.

图8展示根据本发明的一些实施例的由通知处理程序实施的一系列示范性步骤。FIG8 shows a series of exemplary steps performed by a notification handler according to some embodiments of the invention.

图9展示根据本发明的一些实施例的由同步异常分析程序执行的一系列示范性步骤。FIG. 9 shows a series of exemplary steps performed by a synchronization anomaly analysis program according to some embodiments of the present invention.

图10展示根据本发明的一些实施例的由异步异常分析程序实施的一系列示范性步骤。FIG. 10 shows a series of exemplary steps performed by an asynchronous exception analyzer according to some embodiments of the invention.

图11图解说明根据本发明的一些实施例的由终止观察程序实施的一系列示范性步骤。FIG. 11 illustrates a series of exemplary steps performed by a termination observation procedure according to some embodiments of the present invention.

具体实施方式DETAILED DESCRIPTION

在以下描述中,应理解,结构之间的所有所述连接可为直接操作性连接或通过中间结构的间接操作性连接。一组元素包含一个或多个元素。对元素的任何引用应理解为指代至少一个元素。多个元素包含至少两个元素。除非另有需要,否则任何所描述的方法步骤不需要一定以所图解说明的特定次序执行。从第二元素导出的第一元素(例如,数据)涵盖等于所述第二元素的第一元素以及通过处理所述第二元素而产生的第一元素及任选地其它数据。根据参数做出确定或决策涵盖根据所述参数及任选地根据其它数据做出确定或决策。除非另有规定,否则一些数量/数据的指示符可为数量/数据本身,或与所述数量/数据本身不同的指示符。计算机安全涵盖保护用户及装备以防对数据及/或硬件的无意或未授权存取、对数据及/或硬件的无意或未授权修改及对数据及/或硬件的破坏。计算机程序是实施任务的处理器指令序列。本发明的一些实施例中所描述的计算机程序可以是独立软件实体或其它计算机程序的子实体(例如,子例程、库)。除非另有规定,否则进程是计算机程序的实例,例如应用程序或操作系统的一部分,且特征在于具有至少一个执行线程及指派给所述进程的虚拟存储器空间,其中相应虚拟存储器空间的内容包含可执行代码。除非另有规定,否则访客进程是在虚拟机内执行的进程。当进程在相应虚拟机的虚拟处理器上执行时,所述进程被视为在虚拟机内执行。除非另有规定,否则页面表示可被个别地映射到主机系统的物理存储器的虚拟存储器的最小单元。计算机可读媒体涵盖:非暂时性媒体,例如磁性存储媒体、光学存储媒体及半导体存储媒体(例如硬盘驱动器、光盘、快闪存储器、DRAM);以及通信链路,例如导电电缆及光纤链路。根据一些实施例,本发明除了别的事物以外还提供计算机系统,所述计算机系统包括经编程以执行本文中所描述的方法的硬件(例如,一个或多个微处理器),以及用以执行本文中所描述的方法的计算机可读媒体编码指令。In the following description, it should be understood that all of the connections between structures may be direct operational connections or indirect operational connections through intermediate structures. A group of elements includes one or more elements. Any reference to an element should be understood to refer to at least one element. A plurality of elements includes at least two elements. Unless otherwise required, any of the described method steps need not necessarily be performed in the specific order illustrated. A first element (e.g., data) derived from a second element encompasses a first element that is equal to the second element and a first element and optionally other data generated by processing the second element. Making a determination or decision based on a parameter encompasses making a determination or decision based on the parameter and, optionally, other data. Unless otherwise specified, an indicator of some quantity/data may be the quantity/data itself, or an indicator different from the quantity/data itself. Computer security encompasses protecting users and equipment from unintentional or unauthorized access to data and/or hardware, unintentional or unauthorized modification of data and/or hardware, and destruction of data and/or hardware. A computer program is a sequence of processor instructions that implements a task. The computer program described in some embodiments of the present invention may be an independent software entity or a sub-entity (e.g., a subroutine, a library) of another computer program. Unless otherwise specified, a process is an instance of a computer program, such as an application or part of an operating system, and is characterized by having at least one thread of execution and a virtual memory space assigned to the process, wherein the contents of the corresponding virtual memory space contain executable code. Unless otherwise specified, a guest process is a process executing within a virtual machine. A process is considered to be executing within a virtual machine when it executes on a virtual processor of the corresponding virtual machine. Unless otherwise specified, a page represents the smallest unit of virtual memory that can be individually mapped to the physical memory of the host system. Computer-readable media encompasses: non-transitory media, such as magnetic storage media, optical storage media, and semiconductor storage media (such as hard drives, optical disks, flash memory, DRAM); and communication links, such as conductive cables and fiber optic links. According to some embodiments, the present invention provides, among other things, a computer system comprising hardware (e.g., one or more microprocessors) programmed to perform the methods described herein, and computer-readable media encoding instructions for performing the methods described herein.

以下描述以实例方式且未必以限制方式图解说明本发明的实施例。The following description illustrates embodiments of the invention by way of example and not necessarily by way of limitation.

图1展示根据本发明的一些实施例的受保护免受计算机安全威胁的主机系统10的示范性硬件配置。主机系统10可表示具有处理器及存储器的任何电子装置。示范性主机系统10包含:个人计算机、服务器、膝上型计算机、平板计算机、移动电信装置(例如,智能电话)、媒体播放器、TV、游戏控制台、家用电器(例如,冰箱、恒温器、智能加热及/或照明系统)及可穿戴装置(例如,智能手表,体育及健身装备)等等。FIG1 shows an exemplary hardware configuration of a host system 10 protected from computer security threats according to some embodiments of the present invention. Host system 10 can represent any electronic device having a processor and memory. Exemplary host systems 10 include: personal computers, servers, laptop computers, tablet computers, mobile telecommunication devices (e.g., smartphones), media players, TVs, game consoles, home appliances (e.g., refrigerators, thermostats, smart heating and/or lighting systems), and wearable devices (e.g., smart watches, sports and fitness equipment), among others.

图1图解说明计算机系统;其它主机系统(例如智能电话及智能手表)的硬件配置可不同于所图解说明配置。主机系统10包括一组物理装置,包含处理器12及存储器单元14。在一些实施例中,处理器12包括经配置以利用一组信号及/或数据执行计算及/或逻辑运算的物理装置(例如微处理器、形成于半导体衬底上的多核心集成电路等)。在一些实施例中,以处理器指令序列(例如,机器代码或其它类型的编码)的形式将这些运算递送到处理器12。存储器单元14可包括存储由处理器12存取或产生的指令及/或数据的易失性计算机可读媒体(例如DRAM、SRAM)。FIG1 illustrates a computer system; the hardware configuration of other host systems (e.g., smartphones and smartwatches) may differ from the illustrated configuration. Host system 10 includes a set of physical devices, including a processor 12 and a memory unit 14. In some embodiments, processor 12 comprises a physical device (e.g., a microprocessor, a multi-core integrated circuit formed on a semiconductor substrate, etc.) configured to perform computational and/or logical operations using a set of signals and/or data. In some embodiments, these operations are delivered to processor 12 in the form of a sequence of processor instructions (e.g., machine code or other type of encoding). Memory unit 14 may include volatile computer-readable media (e.g., DRAM, SRAM) that stores instructions and/or data accessed or generated by processor 12.

取决于装置的类型及性能,主机系统10可进一步包括一组输入装置16(例如键盘、鼠标、触摸屏等),从而使用户能够将数据及/或指令输入到主机系统10。一组输出装置18(例如监视器或液晶显示器)可(例如)经由图形用户界面将信息传达给用户。存储装置20包含达成处理器指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。示范性存储装置20包含磁盘及光盘及快闪存储器装置以及可移动媒体,例如CD及/或DVD磁盘及驱动器。一组网络适配器22使主机系统10能够连接到计算机网络及/或连接到其它装置/计算机系统。控制器集线器24一般表示多个系统、外围装置及/或芯片组总线及/或达成处理器12与装置14、16、18、20及22之间的通信的所有其它电路。举例来说,控制器集线器24可包含存储器管理单元(MMU)、输入/输出(I/O)控制器及中断控制器等等。在另一实例中,控制器集线器24可包括将处理器12连接到存储器14的北桥及/或将处理器12连接到装置16、18、20及22的南桥。在一些实施例中,控制器集线器24可与处理器12部分地或完全地集成,例如MMU可与处理器12共享共同半导体衬底。Depending on the type and capabilities of the devices, host system 10 may further include a set of input devices 16 (e.g., a keyboard, mouse, touch screen, etc.) to enable a user to enter data and/or instructions into host system 10. A set of output devices 18 (e.g., a monitor or liquid crystal display) can convey information to the user, for example, via a graphical user interface. Storage device 20 includes computer-readable media that enables non-volatile storage, reading, and writing of processor instructions and/or data. Exemplary storage devices 20 include magnetic and optical disks and flash memory devices, as well as removable media such as CD and/or DVD disks and drives. A set of network adapters 22 enables host system 10 to connect to a computer network and/or to other devices/computer systems. Controller hub 24 generally represents multiple system, peripheral, and/or chipset buses and/or all other circuitry that enables communication between processor 12 and devices 14, 16, 18, 20, and 22. For example, controller hub 24 may include a memory management unit (MMU), an input/output (I/O) controller, an interrupt controller, and the like. In another example, controller hub 24 may include a north bridge that connects processor 12 to memory 14 and/or a south bridge that connects processor 12 to devices 16, 18, 20, and 22. In some embodiments, controller hub 24 may be partially or fully integrated with processor 12, e.g., an MMU may share a common semiconductor substrate with processor 12.

计算机安全应用程序(CSA)40保护主机系统10免受计算机安全威胁,例如恶意软件、间谍软件、非所要广告软件等。在一些实施例中,CSA 40经配置以监视多个可执行实体(例如,进程、线程、应用程序、操作系统的组件)的行为,且根据其行为确定任何这些所监视实体是否为恶意的。所监视实体可包含操作系统的组件及用户应用程序等等。响应于确定实体是恶意的,CSA 40可采取保护性行动来对抗相应实体,举例来说停止、隔离相应恶意实体或以其它方式使相应恶意实体失去能力。Computer security application (CSA) 40 protects host system 10 from computer security threats, such as malware, spyware, unwanted adware, and the like. In some embodiments, CSA 40 is configured to monitor the behavior of multiple executable entities (e.g., processes, threads, applications, components of an operating system) and, based on their behavior, determine whether any of these monitored entities is malicious. Monitored entities may include components of an operating system and user applications, among others. In response to determining that an entity is malicious, CSA 40 may take protective action against the respective entity, such as stopping, isolating, or otherwise disabling the respective malicious entity.

图2-A到2-B展示根据本发明的一些实施例的示范性软件配置。在图2-A的实例中,主机系统10执行操作系统(OS)34、一组示范性应用程序36a到36b及CSA 40。应用程序36a到36b一般表示任何计算机程序,例如文字处理、图像处理、媒体播放器、数据库、日历、个人联系人管理、浏览器、游戏、语音通信及数据通信应用程序等等。操作系统34可包括任何广泛可用的操作系统,例如或等等。OS 34提供应用程序36a到36b与主机系统10的硬件之间的接口。所图解说明的CSA 40位置指示CSA 40可以各种处理器特权等级执行。举例来说,CSA 40的一部分可以OS内核(例如,环0、内核模式)的处理器特权执行,而其它部分可以应用程序36a到36b(例如,环3、用户模式)的处理器特权执行。Figures 2-A through 2-B illustrate exemplary software configurations according to some embodiments of the present invention. In the example of Figure 2-A, host system 10 executes an operating system (OS) 34, a set of exemplary application programs 36a-36b, and a CSA 40. Application programs 36a-36b generally represent any computer program, such as word processing, image processing, media player, database, calendar, personal contact management, browser, game, voice communication, and data communication applications. Operating system 34 may include any widely available operating system, such as Windows XP, Windows XP, or Windows XP Professional. OS 34 provides an interface between application programs 36a-36b and the hardware of host system 10. The illustrated location of CSA 40 indicates that CSA 40 can execute at various processor privilege levels. For example, portions of CSA 40 can execute at the processor privileges of the OS kernel (e.g., ring 0, kernel mode), while other portions can execute at the processor privileges of application programs 36a-36b (e.g., ring 3, user mode).

图2-B展示本发明的替代实施例,其中主机系统10使用硬件虚拟化技术来操作一组访客虚拟机。硬件虚拟化通常用于例如云计算及服务器合并等应用程序中以及用于其它用途。虚拟机(VM)模拟实际物理机器/计算机系统,且能够运行操作系统及其它应用程序。在一些实施例中,管理程序30在主机系统10上执行,管理程序30经配置以创建或达成多个虚拟化装置(例如,虚拟处理器及虚拟存储器管理单元)且将这些虚拟化装置呈现给其它软件以代替主机系统10的真实物理装置。这些操作在此项技术中通常被称为公开虚拟机。管理程序30可进一步使多个虚拟机能够共享主机系统10的硬件资源,使得每一VM独立地操作且察觉不到同时在主机系统10上执行的其它VM。流行管理程序的实例包含来自VMware公司的VMware vSphereTM及开放源Xen管理程序等等。FIG2-B shows an alternative embodiment of the present invention, in which the host system 10 uses hardware virtualization technology to operate a set of guest virtual machines. Hardware virtualization is commonly used in applications such as cloud computing and server consolidation, as well as for other purposes. A virtual machine (VM) simulates an actual physical machine/computer system and is capable of running an operating system and other applications. In some embodiments, a hypervisor 30 is executed on the host system 10. The hypervisor 30 is configured to create or achieve multiple virtualized devices (e.g., virtual processors and virtual memory management units) and present these virtualized devices to other software in place of the real physical devices of the host system 10. These operations are generally referred to as public virtual machines in the art. The hypervisor 30 can further enable multiple virtual machines to share the hardware resources of the host system 10, so that each VM operates independently and is unaware of other VMs executing simultaneously on the host system 10. Examples of popular hypervisors include VMware vSphere and the open source Xen hypervisor from VMware, among others.

图2-B展示公开于主机系统10上的一组访客VM 32a到32b。每一VM 32a到32b包含虚拟化处理器,且可进一步包含其它虚拟化装置,例如虚拟化输入、输出、存储及网络装置以及虚拟化控制器等等。每一虚拟化处理器包括对硬件处理器12的功能性中的至少一些的模拟,且经配置以接收供执行的处理器指令。使用相应虚拟处理器以执行的软件被视为在相应虚拟机内执行。举例来说,在图2-B的实例中,访客OS 34a及应用程序36c被视为在访客VM 32a内执行。相比之下,管理程序30被视为在访客VM 32a到32b外部或在访客VM 32a到32b下执行。每一虚拟化处理器可如其与对应物理装置一样与这些虚拟化装置交互。举例来说,在VM 32a内执行的软件可经由VM 32a的虚拟化网络适配器发送及/或接收网络流量。在一些实施例中,管理程序30可仅将一子组虚拟化装置公开给每一访客VM,且可给出直接且排外地使用主机系统10的一些硬件装置的选定访客VM。在一个此类实例中,VM 32a可排外地使用输入装置16及输出装置18,但缺少虚拟化网络适配器。同时,VM 32b可直接且排外地使用网络适配器22。举例来说,可使用来自的技术来实施这些配置。FIG2-B shows a set of guest VMs 32a-32b disclosed on a host system 10. Each VM 32a-32b includes a virtualized processor and may further include other virtualized devices, such as virtualized input, output, storage, and network devices, as well as virtualized controllers. Each virtualized processor includes a simulation of at least some of the functionality of the hardware processor 12 and is configured to receive processor instructions for execution. Software executed using a corresponding virtual processor is considered to be executed within the corresponding virtual machine. For example, in the example of FIG2-B, the guest OS 34a and application 36c are considered to be executed within the guest VM 32a. In contrast, the hypervisor 30 is considered to be executed outside of the guest VM 32a-32b or within the guest VM 32a-32b. Each virtualized processor can interact with these virtualized devices just as it would with a corresponding physical device. For example, software executing within VM 32a can send and/or receive network traffic via the virtualized network adapter of VM 32a. In some embodiments, hypervisor 30 may expose only a subset of virtualized devices to each guest VM and may give selected guest VMs direct and exclusive use of some hardware devices of host system 10. In one such example, VM 32a may have exclusive use of input device 16 and output device 18, but lack a virtualized network adapter. Meanwhile, VM 32b may have direct and exclusive use of network adapter 22. For example, these configurations may be implemented using techniques from

每一VM 32a到32b分别执行访客操作系统(OS)34a到34b。每一OS 34a到34b提供在相应VM内执行的应用程序36c到36d与相应VM的虚拟化硬件装置之间的接口。在图2-B的示范性实施例中,CSA 40在访客VM外部执行,且经配置以保护相应访客VM免受计算机安全威胁。单个计算机安全应用程序可保护多个虚拟机。CSA 40可(举例来说)作为库而被并入到管理程序30中,或可作为与管理程序30相异且独立于管理程序30的计算机程序而被递送,但以管理程序30的处理器特权等级执行(例如,根模式,环1)。CSA 40可以是具有单独预安排执行线程的进程,或可作为在被特定通知事件触发时执行的非预安排代码对象集合操作,如下文所进一步图解说明。Each VM 32a-32b executes a guest operating system (OS) 34a-34b, respectively. Each OS 34a-34b provides an interface between applications 36c-36d executing within the respective VM and the virtualized hardware devices of the respective VM. In the exemplary embodiment of FIG2-B , CSA 40 executes externally to the guest VM and is configured to protect the respective guest VM from computer security threats. A single computer security application can protect multiple virtual machines. CSA 40 may, for example, be incorporated into hypervisor 30 as a library, or may be delivered as a computer program distinct and independent from hypervisor 30, but executed at the processor privilege level of hypervisor 30 (e.g., root mode, ring 1). CSA 40 may be a process with a separate, pre-scheduled thread of execution, or may operate as a non-pre-scheduled collection of code objects that executes when triggered by a specific notification event, as further illustrated below.

此项技术中已知保护主机系统(包含硬件虚拟化平台)免受恶意软件影响的数种方法。一种特定类别的方法被称为行为分析。典型行为分析方法采用通知机制,其中通知安全软件所监视VM内事件的发生,所述事件是由软件实体(例如,应用程序或操作系统的组件)触发及/或在软件实体执行期间发生。接着,安全软件可分析相应事件以确定其是否指示潜在安全威胁。Several methods are known in the art for protecting host systems (including hardware virtualization platforms) from malware. One particular class of methods is known as behavioral analysis. Typical behavioral analysis methods employ a notification mechanism, whereby security software is notified of the occurrence of events within a monitored VM. These events are triggered by and/or occur during the execution of a software entity (e.g., an application or operating system component). The security software can then analyze the corresponding events to determine whether they indicate a potential security threat.

图3展示根据本发明的一些实施例的计算机安全应用程序40的示范性组件。引擎40包含通知处理程序42、连接到处理程序42的同步异常分析程序44、异步异常分析程序46及以通信方式耦合到分析程序46的终止观察程序48。3 shows exemplary components of a computer security application 40 according to some embodiments of the present invention. Engine 40 includes a notification handler 42, a synchronous exception analyzer 44 connected to handler 42, an asynchronous exception analyzer 46, and a termination observer 48 communicatively coupled to analyzer 46.

在一些实施例中,通知处理程序42经配置以检测与计算机安全相关的特定事件的发生。示范性所检测事件包含对特定OS功能的调用及系统调用等等。其它类型的所检测事件可包含:打开文件、创建文件、写入到文件、删除文件、复制文件、创建进程、终止进程、预安排线程以供执行、由于同步事件(例如,互相排斥)暂停线程、创建堆、依据堆分配存储器、扩展执行堆栈的大小、改变存储器存取权限、执行换进(例如磁盘到存储器)操作、执行换出(例如存储器到磁盘)操作、加载可执行模块(例如,共享库–DLL)、打开注册表项、重命名注册表项、检测新硬件装置的附件、建立新网络连接、接收网络包、提升线程的执行特权、改变与文件相关联的自定义访问控制(DAC)权限。此项技术中已知数种检测这些事件的方法。其包含挂钩特定OS功能、修改调度表等。这些方法将处理器12配置成响应于相应事件的发生而从执行触发实体(例如,进程)切换成执行处理程序常式。将通知处理程序42登记为处理程序常式允许处理程序42检测各种事件,且将所述事件的发生传达给CSA 40。In some embodiments, notification handler 42 is configured to detect the occurrence of specific events related to computer security. Exemplary detected events include calls to specific OS functions and system calls, among others. Other types of detected events may include: opening a file, creating a file, writing to a file, deleting a file, copying a file, creating a process, terminating a process, pre-scheduling a thread for execution, pausing a thread due to a synchronization event (e.g., mutual exclusion), creating a heap, allocating memory from the heap, expanding the size of the execution stack, changing memory access permissions, performing a swap-in (e.g., disk-to-memory) operation, performing a swap-out (e.g., memory-to-disk) operation, loading an executable module (e.g., a shared library - DLL), opening a registry key, renaming a registry key, detecting the attachment of a new hardware device, establishing a new network connection, receiving a network packet, elevating the execution privileges of a thread, changing the discretionary access control (DAC) permissions associated with a file. Several methods are known in the art for detecting these events. These include hooking specific OS functions, modifying the dispatch table, and so on. These methods configure processor 12 to switch from executing a triggering entity (e.g., a process) to executing a handler routine in response to the occurrence of a corresponding event. Registering notification handler 42 as a handler routine allows handler 42 to detect various events and communicate the occurrence of those events to CSA 40.

在硬件虚拟化平台中,可与计算机安全相关的特殊类别的所检测事件包含检测对存储器存取权限的违反。检测这些违反可提供对常规挂钩的替代方案。大多数现代计算机系统经配置成与虚拟存储器协同操作,且使用专用数据结构(举例来说,页面表)来管理存储器地址转换。经配置以支持硬件虚拟化的系统通常使用第二层地址转换,即从由每一公开VM可见的访客物理存储器转换成主机系统的实际物理存储器14。所述第二地址转换通常是使用硬件加速专用数据结构及由处理器12控制的机制来实现,被称为二级地址转换(SLAT)。流行的SLAT实施方案包含平台上的扩展页面表(EPT)及平台上的快速虚拟化索引(RVI)/嵌套页面表(NPT)。SLAT通常允许为每一存储器页面设定存储器存取权限,例如读取/写入/执行。处理器12可经配置以在软件试图以违反当前存取权限的方式存取相应页面时触发处理器事件(例如,VM退出事件或虚拟化异常)。VM退出事件(举例来说,平台上的VMExit)暂停在相应VM内代码的执行,且将处理器12切换成以管理程序30的等级执行代码。相比之下,虚拟化异常(例如,平台上的#VE)可将处理器12切换成在同一VM内执行代码。在一些实施例中,CSA 40将通知处理程序42登记为用于VM退出(例如,在例如图4-B的配置中)或虚拟化异常(例如,在例如图4-A及4-C的配置中)的处理程序。这使处理程序42能够在受保护虚拟机内检测违反存储器存取权限的尝试,且将这些尝试传达给CSA 40。In hardware virtualization platforms, a special category of detected events that may be relevant to computer security includes detecting violations of memory access permissions. Detecting these violations provides an alternative to conventional hooking. Most modern computer systems are configured to operate with virtual memory and use specialized data structures (e.g., page tables) to manage memory address translation. Systems configured to support hardware virtualization typically use a second layer of address translation, translating from the guest physical memory visible to each public VM to the host system's actual physical memory 14. This second address translation is typically implemented using hardware-accelerated specialized data structures and a mechanism controlled by the processor 12, known as the Second Level Address Translation (SLAT). Popular SLAT implementations include the Extended Page Table (EPT) on the platform and the Rapid Virtualization Index (RVI)/Nested Page Table (NPT) on the platform. The SLAT typically allows memory access permissions, such as read/write/execute, to be set for each memory page. The processor 12 can be configured to trigger a processor event (e.g., a VM exit event or virtualization exception) when software attempts to access the corresponding page in a manner that violates the current access permissions. A VM exit event (e.g., VMExit on a platform) suspends execution of code within the corresponding VM and switches processor 12 to executing code at the level of hypervisor 30. In contrast, a virtualization exception (e.g., #VE on a platform) can switch processor 12 to executing code within the same VM. In some embodiments, CSA 40 registers notification handler 42 as the handler for VM exits (e.g., in a configuration such as FIG. 4-B ) or virtualization exceptions (e.g., in configurations such as FIG. 4-A and 4-C ). This enables handler 42 to detect attempts to violate memory access permissions within a protected virtual machine and communicate these attempts to CSA 40.

常规安全系统通常依赖于恶意软件行为签名来检测恶意实体。恶意软件行为签名包括一组条件,当一个事件(一系列事件)满足所述条件时,所述条件指示触发所述相应事件的实体是恶意的。举例来说,注入代码序列随后写入到磁盘可被视为恶意指示符。恶意软件行为签名可达成高检测率,但也通常会产生相对高的错误肯定率(良性实体被错误地标记为恶意的)。减小错误肯定率可需要增加恶意软件行为签名的复杂性,这可基本上增加计算开销。Conventional security systems often rely on malware behavioral signatures to detect malicious entities. A malware behavioral signature consists of a set of conditions that, when met by an event (or series of events), indicate that the entity that triggered the corresponding event is malicious. For example, injecting a code sequence that is subsequently written to disk can be considered an indicator of maliciousness. Malware behavioral signatures can achieve high detection rates, but they also typically produce relatively high false positive rates (benign entities are mistakenly labeled as malicious). Reducing the false positive rate can require increasing the complexity of the malware behavioral signature, which can substantially increase computational overhead.

与这类基于签名的方法相比,本发明引入一组规则异常以替换恶意软件行为签名或作为恶意软件行为签名的补充。在一些实施例中,规则异常包括一组条件,当<event,triggering entity>元组满足所述条件时,所述条件判定相应触发实体是良性的(非恶意的)。满足规则异常条件的<event,triggering entity>元组在本文中称为与相应规则异常相匹配。这些规则异常的典型使用场景包括首先将恶意软件行为签名应用到所检测事件。当事件与指示恶意的签名相匹配时,CSA 40可进一步试图将事件与一组规则异常进行匹配。当无规则异常与所检测事件相匹配时,CSA 40可推断触发实体确实是恶意的。相反,当事件与至少一个规则异常相匹配时,CSA 40可推断触发实体是良性的。此分析策略可基本上减小错误肯定率,同时也控制计算开销。举例来说,计算成本的减少可由于使用比常规计算机安全系统更简单的恶意软件行为签名。Compared to such signature-based approaches, the present invention introduces a set of rule exceptions to replace or supplement malware behavior signatures. In some embodiments, a rule exception includes a set of conditions that, when satisfied by an <event, triggering entity> tuple, determine that the corresponding triggering entity is benign (non-malicious). An <event, triggering entity> tuple that satisfies the rule exception conditions is referred to herein as matching the corresponding rule exception. A typical usage scenario for these rule exceptions involves first applying a malware behavior signature to a detected event. When an event matches a signature indicating maliciousness, CSA 40 may further attempt to match the event against a set of rule exceptions. If no rule exceptions match the detected event, CSA 40 may infer that the triggering entity is indeed malicious. Conversely, if an event matches at least one rule exception, CSA 40 may infer that the triggering entity is benign. This analysis strategy can substantially reduce false positive rates while also controlling computational overhead. For example, the reduction in computational cost can be achieved by using simpler malware behavior signatures than conventional computer security systems.

常规行为安全方法包含暂停触发实体的执行同时分析检测事件。此种事件分析通常被认为是同步的。相比之下,在本发明的一些实施例中,仅事件分析的一部分是同步执行的,而分析的另一部分是异步执行的。术语“异步”在本文中被是指分析事件及/或规则异常的方式,其中允许触发实体继续执行,而关于相应事件/异常的数据被保存以供稍后进行分析。Conventional behavioral security methods involve pausing the execution of a triggering entity while analyzing detected events. This type of event analysis is typically considered synchronous. In contrast, in some embodiments of the present invention, only a portion of the event analysis is performed synchronously, while another portion of the analysis is performed asynchronously. The term "asynchronous" is used herein to refer to a method of analyzing events and/or rule exceptions in which the triggering entity is allowed to continue executing while data regarding the corresponding events/exceptions is saved for later analysis.

特定来说,在本发明的一些实施例中,一些规则异常匹配是同步执行的,而其它规则异常匹配是异步执行的。同步异常分析程序44可经配置以对在受保护主机系统或访客VM内发生的事件实施同步分析,以确定所述事件是否满足一组预定规则异常中的任一者(与其相匹配)。由同步异常分析程序44核对的一组规则异常在本文中被视为同步异常(下文更多细节)。同步异常通常包括与事件进行匹配所需的计算成本相对低的规则异常。在一些实施例中,同步异常可包括对于评估由所监视实体造成的安全风险至关重要的一子组规则异常。在另一实例中,同步异常包含其核对仅依赖于主机系统10本地的资源(举例来说,存储于存储装置20本地上的签名数据库)的规则异常。In particular, in some embodiments of the present invention, some rule exception matches are performed synchronously, while other rule exception matches are performed asynchronously. The synchronous exception analyzer 44 can be configured to perform synchronous analysis on events occurring within a protected host system or guest VM to determine whether the event satisfies (matches) any one of a set of predetermined rule exceptions. A set of rule exceptions checked by the synchronous exception analyzer 44 is considered herein as synchronous exceptions (more details below). Synchronous exceptions typically include rule exceptions that have a relatively low computational cost to match with the event. In some embodiments, synchronous exceptions may include a subset of rule exceptions that are critical to assessing the security risks posed by the monitored entity. In another example, synchronous exceptions include rule exceptions whose checking relies solely on resources local to the host system 10 (for example, a signature database stored locally on the storage device 20).

反过来,异步异常分析程序46可经配置以对在受保护主机系统或访客VM内发生的事件执行异步分析,以确定所述事件是否与另一组预定规则异常中的任一者相匹配。由异步异常分析程序46核对的一组规则异常在本文中被称为异步异常。与同步分析相比,异步分析模块46的操作在某种意义上与触发实体的执行无关,即允许触发实体继续执行,而可稍后执行将所触发事件与异常进行匹配的操作。异步异常通常包括需要与事件进行匹配所需的计算成本相对高的规则异常,或不被认为对于主机系统10的安全至关重要的规则异常。形成异步异常匹配的一部分的示范性操作包含:确定触发实体的完整性(举例来说,使用散列匹配),对触发实体执行远程扫描(例如,通过将关于相应实体的信息发送到从相应服务器接收恶意裁定的远程云服务器)及确定触发实体是否为由另一实体注入的代码的接收者等等。Conversely, asynchronous exception analyzer 46 can be configured to perform asynchronous analysis on events occurring within a protected host system or guest VM to determine whether the event matches any of another set of predetermined rule exceptions. The set of rule exceptions checked by asynchronous exception analyzer 46 is referred to herein as asynchronous exceptions. In contrast to synchronous analysis, asynchronous analysis module 46 operates independently of the execution of the triggering entity, meaning that the triggering entity is allowed to continue executing while operations to match the triggered event with exceptions can be performed later. Asynchronous exceptions typically include rule exceptions that require a relatively high computational cost to match against the event, or rule exceptions that are not considered critical to the security of host system 10. Exemplary operations that form part of asynchronous exception matching include determining the integrity of the triggering entity (for example, using hash matching), performing remote scanning of the triggering entity (for example, by sending information about the corresponding entity to a remote cloud server that receives a malicious verdict from the corresponding server), and determining whether the triggering entity is the recipient of code injected by another entity, among other things.

图4-A、4-B、4-C展示根据本发明的一些实施例的通知处理程序42、同步异常分析程序44及异步异常分析程序46的各种示范性位置。所属领域的技术人员将了解组件42、44、46可在受保护VM外部(例如,以管理程序30的处理器特权等级)、在受保护VM内(例如,以内核模式)或在单独安全VM内执行。将组件置于受保护VM内可使相应组件存取关于在相应VM内执行的实体的大量信息,但可使相应组件易于受以相同处理器特权等级执行的恶意软件攻击。可使用一组技术(例如,基于平台上的#VE(虚拟化异常)及VMFUNC而交替多个EPT视图)以便增强置于受保护VM内的安全组件的安全性。当相应组件在受保护VM外部执行时,其是相对安全的,但需要解析实体及事件的语义的特定运算可需要大量计算。Figures 4-A, 4-B, and 4-C illustrate various exemplary locations for a notification handler 42, a synchronous exception analyzer 44, and an asynchronous exception analyzer 46, according to some embodiments of the present invention. Those skilled in the art will appreciate that components 42, 44, and 46 can execute outside a protected VM (e.g., at the processor privilege level of hypervisor 30), within a protected VM (e.g., in kernel mode), or within a separate secure VM. Placing components within a protected VM allows the components to access a wealth of information about entities executing within the VM, but can make the components vulnerable to malware executing at the same processor privilege level. A set of techniques, such as alternating multiple EPT views based on #VE (virtualized exceptions) and VMFUNC on the platform, can be used to enhance the security of secure components placed within a protected VM. While components are relatively secure when executed outside a protected VM, certain operations required to parse the semantics of entities and events can be computationally intensive.

图4-A展示其中同步异常分析程序44在受保护访客VM外部执行的示范性配置,而在图4-B、4-C中,分析程序44以内核模式在相应访客VM内部执行。鉴于同步处理暂停触发实体的执行且因此应该尽可能快以便不影响用户体验,可优选以下配置:其中同步异常分析程序44的操作从所监视VM退出不需要高昂代价。在优选实施例中,同步异常分析程序44可在通知处理程序42(例如,图4-C)的上下文中执行。FIG4-A shows an exemplary configuration in which synchronous exception analyzer 44 executes outside of a protected guest VM, while FIG4-B and FIG4-C show that analyzer 44 executes in kernel mode within the corresponding guest VM. Given that synchronous processing pauses the execution of triggering entities and should therefore be as fast as possible to avoid impacting the user experience, a configuration in which synchronous exception analyzer 44's operation does not require a high cost to exit from the monitored VM is preferred. In a preferred embodiment, synchronous exception analyzer 44 can execute within the context of notification handler 42 (e.g., FIG4-C ).

异步异常分析程序46可在受保护访客VM外部或内部执行。在一些实施例中(例如参见图4-C),分析程序46可在公开于主机系统上的专用安全VM 33中执行,安全VM 33与受保护访客VM相异。The asynchronous exception analyzer 46 may be executed outside or inside the protected guest VM. In some embodiments (eg, see FIG. 4-C ), the analyzer 46 may be executed in a dedicated secure VM 33 exposed on the host system, the secure VM 33 being distinct from the protected guest VM.

取决于组件42、44、46的执行上下文,其操作可需要复杂信令/消息,有时跨越虚拟机边界。可使用硬件虚拟化技术中已知的任何技术实施这些信令。举例来说,数据可经由在两个组件之间共享的存储器区段发射,且信令可包括VM退出与事件注入的组合。Depending on the execution context of components 42, 44, 46, their operation may require complex signaling/messaging, sometimes across virtual machine boundaries. Such signaling may be implemented using any technique known in the art of hardware virtualization. For example, data may be transmitted via a memory segment shared between two components, and signaling may include a combination of VM exits and event injection.

图5展示根据本发明的一些实施例的组件42、44、46及48当中的示范性交换。当触发实体致使在访客VM内发生事件时,所述事件致使事件通知52(例如处理器事件,例如VM退出或虚拟化异常)被递送到处理程序42。接着,处理程序42可确定当前所通知事件的类型及一组参数。示范性事件类型包含代码注入、特定系统调用、磁盘文件创建及HTTP请求等等。事件参数可为每一类型的所通知事件所特有。一些示范性事件参数包含导致所通知事件的进程或线程的识别符(例如,进程ID)、文件名、路径、存储器地址及处理器指令的操作数等等。FIG5 illustrates exemplary exchanges among components 42, 44, 46, and 48 according to some embodiments of the present invention. When a triggering entity causes an event to occur within a guest VM, the event causes an event notification 52 (e.g., a processor event, such as a VM exit or virtualization exception) to be delivered to handler 42. Handler 42 may then determine the type of event being notified and a set of parameters. Exemplary event types include code injection, specific system calls, disk file creation, and HTTP requests, among others. Event parameters may be unique to each type of notified event. Some exemplary event parameters include an identifier of the process or thread that caused the notified event (e.g., a process ID), a file name, a path, a memory address, and operands of a processor instruction, among others.

在一些实施例中,处理程序42接着将事件指示符54传递到同步异常分析程序44。事件指示符54可包括相应事件的唯一识别符(事件ID)、事件类型的指示符及一组事件参数等等。接着,同步异常分析程序44可试图(例如)通过查询异常知识库50来将相应事件与一组同步规则异常进行匹配。In some embodiments, handler 42 then passes event indicator 54 to synchronization exception analyzer 44. Event indicator 54 may include, among other things, a unique identifier for the corresponding event (event ID), an indicator of the event type, and a set of event parameters. Synchronization exception analyzer 44 may then attempt to match the corresponding event to a set of synchronization rule exceptions, for example, by querying exception knowledge base 50.

在一些实施例中,异常知识库50(举例来说)在计算机可读媒体上存储一组规则异常条目,所述计算机可读媒体形成主机系统10的一部分或以通信方式耦合到主机系统10。图6展示根据本发明的一些实施例的规则异常条目60的示范性格式。异常条目60包含同步标志62,同步标志62可指示相应条目是否具有一异步部分。条目60可进一步包括指示事件类型的事件类型指示符64(例如,仅与每一事件类型相关联的数字ID)。事件类型指示符64可允许知识库50根据所检测事件的类型选择性地检索规则异常条目。另一选择为,知识库50可维持将每一规则异常条目与和相应规则异常相关的事件类型相关联的内部映射(例如,散列索引)。In some embodiments, the anomaly knowledge base 50 stores, for example, a set of rule anomaly entries on a computer-readable medium that forms part of or is communicatively coupled to the host system 10. FIG6 shows an exemplary format of a rule anomaly entry 60 according to some embodiments of the present invention. The anomaly entry 60 includes a synchronization flag 62 that may indicate whether the corresponding entry has an asynchronous portion. The entry 60 may further include an event type indicator 64 that indicates the type of event (e.g., a numeric ID associated only with each event type). The event type indicator 64 may allow the knowledge base 50 to selectively retrieve the rule anomaly entry based on the type of event detected. Alternatively, the knowledge base 50 may maintain an internal mapping (e.g., a hash index) that associates each rule anomaly entry with the event type associated with the corresponding rule anomaly.

规则异常条目60可进一步包括同步异常签名66及异步异常签名68。签名66包括同步规则异常的编码,即由分析程序46同步验证的一组条件的编码。相比之下,异步签名68包括异步规则异常的编码,即由异步异常分析程序46异步地验证的一组条件的编码。Rule exception entry 60 may further include a synchronous exception signature 66 and an asynchronous exception signature 68. Signature 66 includes an encoding of a synchronous rule exception, i.e., an encoding of a set of conditions that are verified synchronously by analyzer 46. In contrast, asynchronous signature 68 includes an encoding of an asynchronous rule exception, i.e., an encoding of a set of conditions that are verified asynchronously by asynchronous exception analyzer 46.

当与所通知事件的当前类型相关的规则异常条目具有一异步部分时,同步异常分析程序44可将异常分析请求(EAR)56插入到EAR列表58中以供稍后处理(下文更多细节)。在一些实施例中,EAR列表58包括具有多个条目的数据结构,每一条目对异步规则异常匹配的请求进行编码。EAR列表58可被组织为多产生方多使用方队列(举例来说,先进先出队列)。图7给出根据本发明的一些实施例的异常分析请求的示范性格式。所图解说明EAR包括仅与触发相应分析的事件相关联的事件ID。EAR 56可进一步包含仅识别异常知识库50的特定条目60的异常ID。EAR 56可进一步包括触发实体的指示符。EAR 56中包含此实体ID可帮助终止观察程序48确定是否存在与特定执行实体相关联的任何挂起的异常分析请求(参见下文更多细节)。在一些实施例中,EAR 56进一步包含由通知处理程序42及/或同步异常分析程序44确定的各种上下文数据,所述上下文数据包括关于相应事件及/或关于触发实体的信息。上下文数据可包含存储器地址、进程ID、与产生所触发事件的时刻对应的指令指针(RIP)的值等等。这些上下文数据可由异步异常分析程序46在执行异步规则异常匹配时使用。When a rule exception entry associated with the current type of event being notified has an asynchronous portion, the synchronous exception analyzer 44 may insert an exception analysis request (EAR) 56 into an EAR list 58 for later processing (more details below). In some embodiments, the EAR list 58 includes a data structure having multiple entries, each encoding a request for an asynchronous rule exception match. The EAR list 58 may be organized as a multi-producer, multi-consumer queue (e.g., a first-in, first-out queue). FIG7 illustrates an exemplary format for an exception analysis request according to some embodiments of the present invention. The illustrated EAR includes only event IDs associated with the event that triggered the corresponding analysis. The EAR 56 may further include an exception ID that identifies only a specific entry 60 of the exception knowledge base 50. The EAR 56 may further include an indicator of the triggering entity. The inclusion of this entity ID in the EAR 56 may help the termination observer 48 determine whether there are any pending exception analysis requests associated with a specific execution entity (see more details below). In some embodiments, EAR 56 further includes various context data determined by notification handler 42 and/or synchronous exception analyzer 44, including information about the corresponding event and/or about the triggering entity. The context data may include a memory address, a process ID, the value of the instruction pointer (RIP) corresponding to the time when the triggered event occurred, and the like. This context data may be used by asynchronous exception analyzer 46 when performing asynchronous rule exception matching.

图8展示由根据本发明的一些实施例的通知处理程序42执行的一系列例示性步骤。如上文所展示,处理程序42在允许处理程序42有效地暂停触发实体的执行的位置中执行。举例来说,处理程序42可被登记为用于VM退出及/或虚拟化异常的事件处理程序,其中这些处理器事件是响应于发生由软件(例如,存取特定存储器页面的尝试)所致的特定所监视事件而被触发。响应于这些事件,处理器12暂停触发实体的执行且切换成执行通知处理程序42。因此,在触发实体的执行被暂停时通知处理程序42通知发生所监视事件。当处理器事件是VM退出时,处理程序42可以管理程序30的等级执行。FIG8 shows a series of illustrative steps performed by notification handler 42 according to some embodiments of the present invention. As shown above, handler 42 executes in a location that allows handler 42 to effectively suspend execution of the triggering entity. For example, handler 42 can be registered as an event handler for VM exits and/or virtualization exceptions, where these processor events are triggered in response to the occurrence of specific monitored events caused by software (e.g., an attempt to access a specific memory page). In response to these events, processor 12 suspends execution of the triggering entity and switches to executing notification handler 42. Thus, notification handler 42 is notified of the occurrence of the monitored event while execution of the triggering entity is suspended. When the processor event is a VM exit, handler 42 can execute at the level of hypervisor 30.

当处理程序42接收到事件通知时,一系列步骤106到108确定在受保护访客VM内发生的事件的类型及相应事件的一组参数。接着,处理程序42可将事件指示符54发射到同步异常分析程序44(步骤110)。在步骤112中,处理程序42可等待来自分析程序44的释放信号。在一些实施例中,此释放信号指示当前事件已与同步规则异常相匹配,或与当前事件相关联的EAR被添加到EAR列表58(参见下文关于图9的更多细节)。响应于接收到释放信号,处理程序42可指示处理器12重新开始触发实体的执行。When the handler 42 receives the event notification, a series of steps 106 to 108 determine the type of event that occurred within the protected guest VM and a set of parameters for the corresponding event. The handler 42 may then transmit the event indicator 54 to the synchronization exception analyzer 44 (step 110). In step 112, the handler 42 may wait for a release signal from the analyzer 44. In some embodiments, this release signal indicates that the current event has matched a synchronization rule exception, or that the EAR associated with the current event has been added to the EAR list 58 (see below for more details on FIG. 9). In response to receiving the release signal, the handler 42 may instruct the processor 12 to restart execution of the triggering entity.

图9展示根据本发明的一些实施例的由同步异常分析程序44实施的一系列示范性步骤。响应于从通知处理程序42接收到事件指示符54,步骤124对触发实体执行初步安全评估。举例来说,分析程序44可确定相应事件是否为恶意软件指示性的。在一些实施例中,步骤124试图将当前<event,entity>元组与一组恶意软件行为签名进行匹配。此恶意软件指示性签名的一个实例包括事件序列:第一实体下载无有效数字签名的可执行文件、第一实体从可执行文件开启第二实体及第二实体试图登记自身以在系统启动时自动开始。恶意软件行为签名的另一实例包括:驱动器试图覆盖系统服务描述符表(SSDT)条目。当初步评估指示触发实体不可能是恶意的时,分析程序44可给通知处理程序42发信号以重新开始触发实体的执行(参见上文)。FIG9 shows a series of exemplary steps implemented by the synchronous anomaly analyzer 44 according to some embodiments of the present invention. In response to receiving the event indicator 54 from the notification handler 42, step 124 performs a preliminary security assessment of the triggering entity. For example, the analyzer 44 may determine whether the corresponding event is indicative of malware. In some embodiments, step 124 attempts to match the current <event, entity> tuple with a set of malware behavior signatures. An example of such a malware-indicative signature includes a sequence of events: a first entity downloads an executable file without a valid digital signature, the first entity opens a second entity from the executable file, and the second entity attempts to register itself to start automatically at system startup. Another example of a malware behavior signature includes: a driver attempts to overwrite a system service descriptor table (SSDT) entry. When the preliminary assessment indicates that the triggering entity is unlikely to be malicious, the analyzer 44 may signal the notification handler 42 to restart execution of the triggering entity (see above).

当初步评估指示触发实体有恶意嫌疑时,步骤126根据当前事件的事件类型从异常知识库50选择性地检索一组规则异常条目。当知识库50不含有与当前事件的类型相关联的任何规则异常条目时,在步骤130中,CSA 40可采取反恶意软件行动来对抗触发实体。此保护性行动可包含终止、隔离触发实体或以其它方式使触发实体失去能力及复原由于执行触发实体而对主机系统10做出的一组改变等等。在一些实施例中,CSA 40维持与每一所监视实体相关联的一组恶意软件指示性分数。步骤130可包括使相应分数递增可为事件所特有的量。CSA 40可进一步对所述分数与阈值进行比较,且只有当(举例来说)分数超过预定阈值时才采取反恶意软件行动。When the preliminary assessment indicates that the triggering entity is suspected of being malicious, step 126 selectively retrieves a set of rule exception entries from anomaly knowledge base 50 based on the event type of the current event. When knowledge base 50 does not contain any rule exception entries associated with the type of the current event, CSA 40 may take anti-malware action against the triggering entity in step 130. This protective action may include terminating, isolating, or otherwise disabling the triggering entity, reverting a set of changes made to host system 10 due to the execution of the triggering entity, and so on. In some embodiments, CSA 40 maintains a set of malware-indicative scores associated with each monitored entity. Step 130 may include incrementing the respective scores by an amount that may be specific to the event. CSA 40 may further compare the scores to a threshold and take anti-malware action only if, for example, the scores exceed a predetermined threshold.

当知识库50含有至少一个与当前事件的事件类型相关联的规则异常条目60时,步骤131确定当前事件是否与相应规则异常条目的同步规则异常相匹配。步骤131可包括测试<current event,triggering entity>元组是否满足由相应规则异常的同步签名66编码的一组条件。如此,步骤131可包含实施一组计算(举例来说)以根据事件指示符54确定触发实体的实体类型。示范性实体类型包含OS 34的特定组件、特定应用程序的实例(例如,)、特定类别的实体(例如,文件管理器、浏览器)等。实体的其它实例类型包含驱动器、共享库(例如,动态链接库–DLL)及所注入代码区段。When the knowledge base 50 contains at least one rule exception entry 60 associated with the event type of the current event, step 131 determines whether the current event matches the synchronization rule exception of the corresponding rule exception entry. Step 131 may include testing whether the <current event, triggering entity> tuple satisfies a set of conditions encoded by the synchronization signature 66 of the corresponding rule exception. Thus, step 131 may include performing a set of calculations, for example, to determine the entity type of the triggering entity based on the event indicator 54. Exemplary entity types include a specific component of the OS 34, an instance of a specific application (e.g., ), a specific class of entity (e.g., a file manager, a browser), etc. Other instance types of entities include drivers, shared libraries (e.g., dynamic link libraries (DLLs), and injected code segments.

当未发现同步签名匹配时,分析程序44推断触发实体确实是恶意的,且前进到上文所描述的步骤130。在当前事件与至少一个规则异常的同步签名相匹配时,在步骤134中,分析程序44确定相应规则异常条目是否也包括异步签名。在一些实施例中,步骤134包含核对同步标志62的值(参见图6)。当“否”时,分析程序44给处理程序42发信号以重新开始触发实体的执行。当“是”时,步骤136确定关于当前事件及/或关于触发实体的上下文数据。另一步骤138制定EAR 56且将EAR 56添加到EAR列表58。接着,同步异常分析程序44可给处理程序42发信号以重新开始触发实体的执行。When no synchronization signature match is found, the analyzer 44 infers that the triggering entity is indeed malicious and proceeds to step 130 described above. When the current event matches the synchronization signature of at least one rule exception, in step 134, the analyzer 44 determines whether the corresponding rule exception entry also includes an asynchronous signature. In some embodiments, step 134 includes checking the value of the synchronization flag 62 (see Figure 6). When "no", the analyzer 44 signals the handler 42 to restart the execution of the triggering entity. When "yes", step 136 determines context data about the current event and/or about the triggering entity. Another step 138 formulates the EAR 56 and adds the EAR 56 to the EAR list 58. The synchronization exception analyzer 44 may then signal the handler 42 to restart the execution of the triggering entity.

图10展示由异步异常分析程序46的此实例实施的一系列示范性步骤。在一些实施例中,计算机安全应用程序40管理用于异步规则异常匹配的线程池。所述池的线程可在受保护VM外部或在受保护VM内执行,或者在单独安全VM内执行(例如,参见图4-C)。当这些线程在相应受保护VM内执行时,其可以内核模式(环0)执行。每当池的线程变得可用时,CSA40可开启异步异常分析程序46的实例。FIG10 shows a series of exemplary steps performed by this instance of asynchronous exception analyzer 46. In some embodiments, computer security application 40 manages a pool of threads for asynchronous rule exception matching. The threads of the pool can execute outside of a protected VM, within a protected VM, or within a separate secure VM (e.g., see FIG4-C ). When these threads execute within the respective protected VMs, they can execute in kernel mode (ring 0). CSA 40 can start an instance of asynchronous exception analyzer 46 whenever a thread from the pool becomes available.

在一系列步骤142到144中,异步异常分析程序46确定当前是否存在任何未完成异常分析请求。当EAR列表58非空的时,分析程序46可从列表58移除EAR且试图将由相应EAR指示的事件与由相应EAR指示的异步规则异常进行匹配。步骤148可包括进一步确定事件参数及/或关于触发相应事件实体的信息。举例来说,这些计算可包含散列计算、存储器查询、建立各种软件实体之间的源流(filiation)关系(例如,此进程已衍生出(spawn)其它进程)、模拟等。在一些实施例中,步骤148包含与远程安全服务器(云扫描)交换数据。In a series of steps 142 through 144, asynchronous exception analyzer 46 determines whether any outstanding exception analysis requests currently exist. When EAR list 58 is not empty, analyzer 46 may remove an EAR from list 58 and attempt to match the event indicated by the corresponding EAR with the asynchronous rule exception indicated by the corresponding EAR. Step 148 may include further determining event parameters and/or information about the entity that triggered the corresponding event. For example, these calculations may include hash calculations, memory queries, establishing filiation relationships between various software entities (e.g., this process has spawned other processes), simulations, etc. In some embodiments, step 148 includes exchanging data with a remote security server (cloud scanning).

在一些实施例中,当相应事件与异步规则异常相匹配时,分析程序46结束。终止分析程序46的当前实例指示:相应事件不指示计算机安全威胁,且因此不再需要分析相应事件。当分析程序46确定事件不与相应异步规则异常相匹配时,步骤152可给CSA 40发信号以采取保护性反恶意软件行动(参见上文图9中的步骤130)。In some embodiments, when the corresponding event matches the asynchronous rule exception, analysis program 46 ends. Terminating the current instance of analysis program 46 indicates that the corresponding event does not indicate a computer security threat and, therefore, the corresponding event no longer needs to be analyzed. When analysis program 46 determines that the event does not match the corresponding asynchronous rule exception, step 152 may signal CSA 40 to take protective anti-malware action (see step 130 in FIG. 9 above).

在替代实施例中,异步规则异常经制定使得匹配指示相应实体是恶意的。在这些实施例中,当事件不与相应规则异常相匹配时,分析程序46可结束,且当事件与相应规则异常相匹配时,CSA 40可采取反恶意软件行动。In alternative embodiments, asynchronous rule exceptions are formulated such that a match indicates that the corresponding entity is malicious. In these embodiments, when an event does not match a corresponding rule exception, the analyzer 46 may terminate, and when an event does match a corresponding rule exception, the CSA 40 may take anti-malware action.

图11展示由根据本发明的一些实施例的终止观察程序48执行的一系列例示性步骤。终止观察程序48可在受保护虚拟机外部或受保护虚拟机内执行,且以通信方式至少与异步异常分析程序46耦合。11 shows a series of illustrative steps performed by termination observer 48 according to some embodiments of the present invention. Termination observer 48 may execute outside of or within a protected virtual machine and be communicatively coupled with at least asynchronous exception analyzer 46.

由于异步规则异常分析与触发实体的执行无关,因此可出现以下情况:其中触发实体在异步异常分析程序46开始处理与相应实体有关的异常分析请求终止执行。在这些情况中,恶意实体可能逃过检测,或可做出一些无法复原的损坏。为了防止这些情况,在本发明的一些实施例中,终止观察程序48检测OS终止实体的尝试(步骤162到164)。检测终止尝试可有效地暂停终止实体的执行。步骤162可包括与通知处理程序42协作,例如,处理程序42可实际上检测终止尝试,且给终止观察程序48发信号。Because asynchronous rule exception analysis is independent of the execution of the triggering entity, situations may arise in which the triggering entity terminates execution before the asynchronous exception analyzer 46 begins processing an exception analysis request related to the corresponding entity. In these situations, the malicious entity may escape detection or may cause some irreversible damage. To prevent these situations, in some embodiments of the present invention, the termination observer 48 detects attempts by the OS to terminate the entity (steps 162 to 164). Detecting the termination attempt can effectively pause the execution of the terminating entity. Step 162 may include cooperating with the notification handler 42, for example, the handler 42 may actually detect the termination attempt and signal the termination observer 48.

响应于检测到终止尝试,在一系列步骤166到168中,终止观察程序48可确定是否仍存在针对终止实体的任何未完成异常分析请求。当“否”时,步骤170可指示处理器12重新开始终止实体的执行,从而实际上允许相应实体终止。在一些实施例中,步骤170包括将释放信号发送到通知处理程序42,从而指示处理程序42释放终止实体。In response to detecting a termination attempt, termination observer 48 may determine, in a series of steps 166 through 168, whether there are any outstanding exception analysis requests for the terminating entity. If not, step 170 may instruct processor 12 to resume execution of the terminating entity, effectively allowing the corresponding entity to terminate. In some embodiments, step 170 includes sending a release signal to notification handler 42, thereby instructing handler 42 to release the terminating entity.

当EAR列表58含有与终止实体相关联的至少一个EAR时,终止观察程序48可将相应实体维持在暂停状态直到所有这些挂起的请求均被处理为止。一系列步骤172到174促使处理与相应终止实体相关联的请求(一系列步骤可被重复直到所有此类请求均被处理为止)。步骤174可包含调用异步异常分析程序46来处理与终止实体有关的每一未完成EAR。当分析程序46确定由相应EAR指示的事件不与由相应EAR指示的异步规则异常相匹配时,步骤178可给CSA 40发信号以采取保护性行动来对抗终止实体(关于图9到10参见上文)。When EAR list 58 contains at least one EAR associated with a terminating entity, termination observer 48 may maintain the corresponding entity in a suspended state until all such pending requests are processed. A series of steps 172 through 174 cause requests associated with the corresponding terminating entity to be processed (the series of steps may be repeated until all such requests are processed). Step 174 may include invoking asynchronous exception analyzer 46 to process each outstanding EAR associated with the terminating entity. When analyzer 46 determines that an event indicated by the corresponding EAR does not match an asynchronous rule exception indicated by the corresponding EAR, step 178 may signal CSA 40 to take protective action against the terminating entity (see above with respect to Figures 9-10).

上文所描述的示范性系统及方法能够对软件实体进行高效行为监视。在一些实施例中,通知机制经部署以检测受保护主机系统或虚拟机内安全相关事件的发生,并将相应事件报告给安全软件。接着,安全软件分析相应事件以确定是否其指示计算机安全威胁,例如恶意软件、间谍软件、未授权入侵等。The exemplary systems and methods described above enable efficient behavioral monitoring of software entities. In some embodiments, a notification mechanism is deployed to detect the occurrence of security-related events within a protected host system or virtual machine and report the events to security software. The security software then analyzes the events to determine whether they indicate a computer security threat, such as malware, spyware, or unauthorized intrusion.

一些常规行为系统及方法依赖于恶意软件行为签名来确定实体是否为恶意的。恶意软件行为签名通常包括一组条件,当<event,entity>元组满足所述条件时,所述条件判定相应事件指示恶意,且因此触发相应事件的软件实体可能是恶意的。为了防止触发实体实施其恶意活动,常规系统及方法暂停触发实体的执行,同时分析所触发事件以发现恶意指示符。Some conventional behavioral systems and methods rely on malware behavioral signatures to determine whether an entity is malicious. Malware behavioral signatures typically include a set of conditions that, when satisfied by an <event, entity> tuple, determine that the corresponding event indicates maliciousness, and therefore the software entity that triggered the corresponding event is likely malicious. To prevent the triggering entity from carrying out its malicious activities, conventional systems and methods suspend the execution of the triggering entity while analyzing the triggered event for indicators of maliciousness.

本发明的一些实施例依赖于两个观察。第一,并非特定类型事件的所有发生均同样是恶意软件指示性的。同一类型的事件(例如,存取URL、打开磁盘文件等)在一些场景中可指示恶意,而在其它场景中是完全良性的。在一个此类实例中,事件在被孤立地看待时可不指示恶意,但在作为一系列特定事件的一部分发生时可能是恶意软件指示性的。举例来说,写入到磁盘文件在被孤立地看待时可是良性的操作(即,许多进程及应用程序合法地存取磁盘)。然而,当执行写入的实体是从另一实体注入的代码的接收者时,写入事件可能是可疑的。此观察表明成功的恶意软件检测可需要相当复杂的恶意软件行为签名,所述恶意软件行为签名能够在如上文所描述的各种场景之间做出辨别。使用此类复杂行为签名通常负担相对高的计算成本。此外,优化恶意软件行为签名以达成高检测率通常导致错误肯定检测增加(良性的事件被错误地分类为恶意软件指示性的,合法实体被错误地分类为恶意的)。在计算机安全领域中尤其不希望错误肯定分类,这是因为其可导致数据丢失及用户工作效率损失。Some embodiments of the present invention rely on two observations. First, not all occurrences of a particular type of event are equally indicative of malware. The same type of event (e.g., accessing a URL, opening a disk file, etc.) may indicate malware in some scenarios and be completely benign in others. In one such example, an event may not indicate malware when viewed in isolation, but may be indicative of malware when occurring as part of a specific series of events. For example, writing to a disk file may be a benign operation when viewed in isolation (i.e., many processes and applications legitimately access disks). However, when the entity performing the write is the recipient of code injected from another entity, the write event may become suspicious. This observation suggests that successful malware detection may require a fairly complex malware behavioral signature capable of distinguishing between the various scenarios described above. Using such complex behavioral signatures often carries a relatively high computational cost. Furthermore, optimizing malware behavioral signatures to achieve high detection rates often results in an increase in false positive detections (benign events are incorrectly classified as indicative of malware, and legitimate entities are incorrectly classified as malicious). False positive classifications are particularly undesirable in the field of computer security because they can lead to data loss and loss of user productivity.

第二观察是,在进行恶意软件行为签名匹配的整个持续时间内暂停触发实体的执行会对用户体验造成负面影响。在复杂行为签名的情形中,且在其中依据已发生事件的VM外部的位置(举例来说,依据管理程序30层级)执行事件分析的硬件虚拟化配置中,尤其如此。A second observation is that pausing the execution of the triggering entity for the entire duration of malware behavioral signature matching negatively impacts the user experience. This is particularly true in the case of complex behavioral signatures and in hardware virtualization configurations where event analysis is performed at a location external to the VM where the event occurred (e.g., at the hypervisor level).

与此类常规计算机安全系统及方法相比,一些实施例使用一组规则异常签名来作为恶意软件行为签名的补充。规则异常签名包括一组条件,<event,entity>元组满足所述条件时,所述条件判定相应事件是良性的,且因此判定触发实体并非是恶意的。因此,规则异常向将通常指示恶意行为的规则提供异常的编码。在示范性用例场景中,安全软件可首先试图将所检测事件与一组相对简单、计算成本低的恶意软件行为签名进行匹配,以确定触发实体是否可能是恶意的。当“是”时,安全软件可进一步试图将相应事件与一组规则异常签名进行匹配。规则异常签名匹配可指示触发实体实际上是良性的。In contrast to such conventional computer security systems and methods, some embodiments supplement malware behavior signatures with a set of rule anomaly signatures. A rule anomaly signature comprises a set of conditions that, when satisfied by an <event, entity> tuple, determine that the corresponding event is benign, and therefore that the triggering entity is not malicious. Thus, rule anomalies provide an encoding of an exception to a rule that would normally indicate malicious behavior. In an exemplary use case scenario, the security software may first attempt to match the detected event against a set of relatively simple, computationally inexpensive malware behavior signatures to determine whether the triggering entity is likely to be malicious. When "yes", the security software may further attempt to match the corresponding event against a set of rule anomaly signatures. A rule anomaly signature match may indicate that the triggering entity is, in fact, benign.

添加规则异常签名创造机会来使用相对简单的签名,而非在仅使用恶意软件行为签名匹配时所必需的相当复杂签名。因此,一些实施例减小由安全软件产生的计算开销,同时也减小错误肯定检测率。Adding rule anomaly signatures creates the opportunity to use relatively simple signatures rather than the fairly complex signatures that would be necessary when using only malware behavior signature matching.Thus, some embodiments reduce the computational overhead incurred by security software while also reducing false positive detection rates.

此外,在本发明的一些实施例中,至少部分地以异步方式执行规则异常签名的匹配,即在触发相应事件的实体被允许继续执行的同时。通过选择在安全分析的整个持续时间内不暂停执行触发实体,可显著地减小对用户体验的影响。在一些实施例中,规则异常签名经优化以达成低开销:在同步匹配中使用负担相对低计算成本的签名,而在异步匹配中使用相对高代价的签名。Furthermore, in some embodiments of the present invention, matching of rule anomaly signatures is performed at least partially asynchronously, i.e., while the entity that triggered the corresponding event is allowed to continue executing. By choosing not to suspend execution of the triggering entity for the entire duration of the security analysis, the impact on the user experience can be significantly reduced. In some embodiments, rule anomaly signatures are optimized for low overhead: signatures with relatively low computational cost are used in synchronous matching, while signatures with relatively high cost are used in asynchronous matching.

虽然在常规恶意软件行为签名与规则异常签名之间存在一些类似性,但其使用及语义是极为不同的。举例来说,规则异常签名仅是恶意软件行为签名的补充或反面这种表述是不正确的。恶意软件行为签名及规则异常签名并不相互排斥。举例来说,当事件与恶意软件行为签名相匹配时,这也并不意味着其不能与规则异常签名相匹配。相反,正是在其中事件与恶意软件行为签名及规则异常签名两者均相匹配的情况中,规则异常签名才最有价值,这是因为其允许对恶意软件检测进行高效决策过程。While there are some similarities between regular malware behavior signatures and rule-based anomaly signatures, their usage and semantics are very different. For example, it's incorrect to say that rule-based anomaly signatures are simply the complement or opposite of malware behavior signatures. Malware behavior signatures and rule-based anomaly signatures are not mutually exclusive. For example, when an event matches a malware behavior signature, it doesn't mean it can't also match a rule-based anomaly signature. On the contrary, it's in situations where an event matches both a malware behavior signature and a rule-based anomaly signature that rule-based anomaly signatures are most valuable, as they allow for an efficient decision-making process for malware detection.

同步规则异常对异步规则异常的实例以及其与恶意软件行为签名的相关性的实例包括检测所监视软件实体修补共享可执行模块(例如,库)的代码的尝试。代码修补通常指示恶意,因此其可如在恶意软件行为签名中一样被编码。每当检测到代码修补时,使用相应签名可触发恶意软件警报。然而,举例来说,当开启新进程时,各种软件实体(例如OS)执行合法代码修补。同样地,来自给定软件应用程序套件(例如,)的一个进程可合法修补来自同一套件的另一进程。在本发明的一些实施例中,可使用规则异常解决这些情况。示范性同步规则异常可核对修补进程是否为受信任OS进程中的一者,及目标进程(正被修补的进程)是否启动。当两个条件均被满足时,那么修补实体被视为良性的(合法)。如此,当OS开始进程且执行修补时,其可在不被CSA 40阻碍的情况下进行。相比之下,根据以上规则异常,如果未知进程试图执行相同修补操作,那么其将被阻碍。为了允许一些未知进程执行修补,一些实施例可使用两部分规则异常签名:同步部分可验证参与代码修补的实体的身份,而异步部分可验证所注入缓冲区/代码本身(例如通过分解代码及/或在所述代码内搜索特定代码模式)。当所注入代码非恶意的时,未知进程可被视为良性的。An example of synchronous rule exceptions versus asynchronous rule exceptions and their correlation with malware behavior signatures includes detecting attempts by monitored software entities to patch the code of shared executable modules (e.g., libraries). Code patching generally indicates malicious intent and, therefore, can be encoded in malware behavior signatures. Whenever code patching is detected, a malware alert can be triggered using the corresponding signature. However, for example, various software entities (e.g., the OS) can perform legitimate code patching when starting a new process. Similarly, a process from a given software application suite (e.g., ) can legitimately patch another process from the same suite. In some embodiments of the present invention, rule exceptions can be used to address these situations. An exemplary synchronous rule exception can check whether the patching process is one of the trusted OS processes and whether the target process (the process being patched) is started. If both conditions are met, the patching entity is considered benign (legitimate). Thus, when the OS starts the process and performs the patch, it can proceed without being blocked by CSA 40. In contrast, according to the above rule exception, if an unknown process attempts to perform the same patch operation, it will be blocked. To allow patching of some unknown processes, some embodiments may use a two-part rule exception signature: a synchronous part may verify the identity of the entity involved in the code patching, while an asynchronous part may verify the injected buffer/code itself (e.g., by decomposing the code and/or searching for specific code patterns within the code). When the injected code is not malicious, the unknown process may be considered benign.

在另一实例中,恶意软件行为签名可指示代码注入是恶意软件指示性的。当执行注入的进程是众所周知的且受信任时,同步规则异常签名可允许代码注入。然而,同一规则异常签名可具有异步部分,所述异步部分对所注入代码执行内容分析。当内容对所述特定进程来说似乎不寻常时,相应进程可被视为恶意的。在此实例中,就计算开销来说相对高代价的内容分析被异步地执行(即在执行相应进程的同时)以便对用户体验具有最小影响。In another example, a malware behavior signature may indicate that a code injection is indicative of malware. A synchronous rule exception signature may allow code injection when the process performing the injection is well-known and trusted. However, the same rule exception signature may have an asynchronous portion that performs content analysis on the injected code. When the content appears unusual for that particular process, the corresponding process may be deemed malicious. In this example, the content analysis, which is relatively expensive in terms of computational overhead, is performed asynchronously (i.e., while the corresponding process is executing) to minimize the impact on the user experience.

在又一实例中,恶意软件行为签名可指示:浏览器加载插件的尝试指示恶意软件。然而,一些插件是良性的且应被允许操作。在示范性实施例中,同步规则异常可测试相应插件是否由特定权威机构以数字方式签署,且当“是”时,确定浏览器是良性的。在同步签名匹配的情形中,可允许浏览器加载且执行插件。接着,另一规则异常可异步地确定用于签署插件的证书当前是有效还是已被撤销。当相应证书已被撤销时,CSA 40可终止浏览器及/或显示警告。测试证书有效性通常需要向远程服务器发送请求,且因此在同步进行的情况下可基本上影响用户体验。In yet another example, a malware behavior signature may indicate that an attempt by a browser to load a plug-in is indicative of malware. However, some plug-ins are benign and should be allowed to operate. In an exemplary embodiment, a synchronous rule exception may test whether the corresponding plug-in is digitally signed by a particular authority, and when "yes", determine that the browser is benign. In the event that the synchronous signature matches, the browser may be allowed to load and execute the plug-in. Then, another rule exception may asynchronously determine whether the certificate used to sign the plug-in is currently valid or has been revoked. When the corresponding certificate has been revoked, the CSA 40 may terminate the browser and/or display a warning. Testing certificate validity typically requires sending a request to a remote server, and therefore can substantially impact the user experience if done synchronously.

所属领域的技术人员将清楚,可在不背离本发明的范围的情况下以许多方式更改以上实施例。因此,本发明的范围应由所附权利要求书及其法律等效内容来确定。It will be apparent to those skilled in the art that the above embodiments can be modified in many ways without departing from the scope of the invention. Therefore, the scope of the invention should be determined by the appended claims and their legal equivalents.

Claims (19)

1.一种主机系统,其包括硬件处理器及存储器,所述硬件处理器经配置以执行目标实体、同步异常分析程序及异步异常分析程序,其中所述硬件处理器进一步经配置以:1. A host system comprising a hardware processor and a memory, the hardware processor being configured to execute a target entity, a synchronous exception analyzer, and an asynchronous exception analyzer, wherein the hardware processor is further configured to: 响应于检测到发生由所述目标实体的执行所致的事件,暂停所述目标实体的所述执行,及In response to detecting an event caused by the execution of the target entity, the execution of the target entity is suspended, and 响应于暂停所述目标实体的执行,切换成执行所述同步异常分析程序;In response to pausing the execution of the target entity, the execution of the synchronization anomaly analysis program is switched to proceed. 其中所述同步异常分析程序经配置以:The synchronization anomaly analysis program is configured to: 根据所述事件而确定所述目标实体是否有恶意嫌疑,Based on the events described, determine whether the target entity is suspected of malicious intent. 作为响应,当所述目标实体有恶意嫌疑时,从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码,In response, when the target entity is suspected of malicious activity, a rule-specific abnormal signature is selectively retrieved from multiple rule-specific abnormal signatures. This rule-specific abnormal signature is retrieved based on the event, and it includes the encoding of a first condition and the encoding of a second condition. 响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足,In response to the retrieval of the rule-abnormal signature, it is determined, based on the event and the target entity, whether the first condition is met. 响应于确定所述第一条件是否被满足,当所述第一条件被满足时,致使所述硬件处理器重新开始所述目标实体的执行,及In response to determining whether the first condition is met, if the first condition is met, the hardware processor is caused to restart the execution of the target entity, and 响应于确定所述第一条件是否被满足,当所述第一条件未被满足时,确定所述目标实体是恶意的;且In response to determining whether the first condition is met, if the first condition is not met, it is determined that the target entity is malicious; and 其中所述异步异常分析程序经配置以:The asynchronous exception analyzer is configured to: 响应于所述硬件处理器重新开始所述目标实体的执行,根据所述事件且根据所述目标实体而确定所述第二条件是否被满足,In response to the hardware processor resuming execution of the target entity, it is determined, based on the event and the target entity, whether the second condition is satisfied. 响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的,及In response to determining whether the second condition is met, if the second condition is met, it is determined that the target entity is not malicious. 响应于确定所述第二条件是否被满足,当所述第二条件未被满足时,确定所述目标实体是恶意的。In response to determining whether the second condition is met, if the second condition is not met, it is determined that the target entity is malicious. 2.根据权利要求1所述的主机系统,其中:2. The host system according to claim 1, wherein: 所述同步异常分析程序进一步经配置以:响应于确定所述第一条件是否被满足,当所述第一条件被满足时,将分析请求插入到请求队列中,所述分析请求是根据所述第二条件、根据所述事件且进一步根据所述目标实体而制定;且The synchronous anomaly analysis procedure is further configured to: in response to determining whether the first condition is met, insert an analysis request into a request queue when the first condition is met, the analysis request being formulated based on the second condition, based on the event, and further based on the target entity; and 所述异步异常分析程序进一步经配置以:在准备确定所述第二条件是否被满足时,从所述请求队列移除所述分析请求。The asynchronous exception analysis program is further configured to remove the analysis request from the request queue when it is ready to determine whether the second condition is met. 3.根据权利要求1所述的主机系统,其中所述硬件处理器进一步经配置以:3. The host system according to claim 1, wherein the hardware processor is further configured to: 响应于检测到终止所述目标实体的尝试,暂停所述尝试;及In response to detecting an attempt to terminate the target entity, the attempt is suspended; and 响应于暂停所述尝试,切换成执行连接到所述异步异常分析程序的终止观察程序,所述终止观察程序经配置以:In response to pausing the attempt, switching to execution of a termination watch connected to the asynchronous exception analyzer, the termination watch being configured to: 搜索请求队列以得到根据所述目标实体制定的第二分析请求,所述第二分析请求指示第三条件,The search request queue is used to obtain a second analysis request based on the target entity, the second analysis request indicating a third condition. 调用所述异步异常分析程序来处理所述第二分析请求,及The asynchronous exception analyzer is invoked to process the second analysis request, and 响应于调用所述异步异常分析程序,当所述异步异常分析程序确定所述第三条件被满足时,致使所述硬件处理器重新开始终止所述目标实体的所述尝试。In response to the invocation of the asynchronous exception analyzer, when the asynchronous exception analyzer determines that the third condition is met, the hardware processor causes the hardware processor to restart the attempt to terminate the target entity. 4.根据权利要求1所述的主机系统,其中所述目标实体在由所述主机系统公开的访客虚拟机内执行,且其中所述异步异常分析程序在所述访客虚拟机外部执行。4. The host system of claim 1, wherein the target entity is executed within a guest virtual machine exposed by the host system, and wherein the asynchronous exception analyzer is executed outside the guest virtual machine. 5.根据权利要求1所述的主机系统,其中所述异步异常分析程序在由主机系统公开的安全虚拟机内执行,所述安全虚拟机与访客虚拟机同时执行。5. The host system according to claim 1, wherein the asynchronous exception analyzer is executed within a secure virtual machine exposed by the host system, and the secure virtual machine and the guest virtual machine are executed simultaneously. 6.根据权利要求1所述的主机系统,其中所述规则异常签名经配置使得确定所述第一条件是否被满足所负担的计算成本低于确定所述第二条件是否被满足所负担的计算成本。6. The host system of claim 1, wherein the rule exception signature is configured such that the computational cost of determining whether the first condition is met is lower than the computational cost of determining whether the second condition is met. 7.根据权利要求1所述的主机系统,其中所述事件包括以违反存储器存取权限的方式存取所述存储器的尝试。7. The host system of claim 1, wherein the event includes an attempt to access the memory in a manner that violates memory access permissions. 8.根据权利要求1所述的主机系统,其中:8. The host system according to claim 1, wherein: 确定所述第一条件是否被满足包括确定所述目标实体是否已将代码注入到第二实体中;且Determining whether the first condition is met includes determining whether the target entity has injected code into the second entity; and 确定所述第二条件是否被满足包括确定所述代码是否为恶意的。Determining whether the second condition is met includes determining whether the code is malicious. 9.一种存储处理器指令的非暂时性计算机可读媒体,所述处理器指令在由主机系统的硬件处理器执行时,致使所述主机系统形成同步异常分析程序及异步异常分析程序,其中所述硬件处理器经配置以:9. A non-transitory computer-readable medium storing processor instructions, said processor instructions, when executed by a hardware processor of a host system, causing the host system to form a synchronous exception analyzer and an asynchronous exception analyzer, said hardware processor being configured to: 响应于检测到发生由目标实体的执行所致的事件,暂停所述目标实体的所述执行,及In response to detecting an event caused by the execution of the target entity, the execution of the target entity is suspended, and 响应于暂停所述目标实体的执行,切换成执行所述同步异常分析程序;In response to pausing the execution of the target entity, the execution of the synchronization anomaly analysis program is switched to proceed. 其中所述同步异常分析程序经配置以:The synchronization anomaly analysis program is configured to: 根据所述事件而确定所述目标实体是否有恶意嫌疑,Based on the events described, determine whether the target entity is suspected of malicious intent. 作为响应,当所述目标实体有恶意嫌疑时,从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码,In response, when the target entity is suspected of malicious activity, a rule-specific abnormal signature is selectively retrieved from multiple rule-specific abnormal signatures. This rule-specific abnormal signature is retrieved based on the event, and it includes the encoding of a first condition and the encoding of a second condition. 响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足,In response to the retrieval of the rule-abnormal signature, it is determined, based on the event and the target entity, whether the first condition is met. 响应于确定所述第一条件是否被满足,当所述第一条件被满足时,致使所述硬件处理器重新开始所述目标实体的执行,及In response to determining whether the first condition is met, if the first condition is met, the hardware processor is caused to restart the execution of the target entity, and 响应于确定所述第一条件是否被满足,当所述第一条件未被满足时,确定所述目标实体是恶意的;且In response to determining whether the first condition is met, if the first condition is not met, it is determined that the target entity is malicious; and 其中所述异步异常分析程序经配置以:The asynchronous exception analyzer is configured to: 响应于所述硬件处理器重新开始所述目标实体的执行,根据所述事件且根据所述目标实体而确定所述第二条件是否被满足,In response to the hardware processor resuming execution of the target entity, it is determined, based on the event and the target entity, whether the second condition is satisfied. 响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的,及In response to determining whether the second condition is met, if the second condition is met, it is determined that the target entity is not malicious. 响应于确定所述第二条件是否被满足,当所述第二条件未被满足时,确定所述目标实体是恶意的。In response to determining whether the second condition is met, if the second condition is not met, it is determined that the target entity is malicious. 10.根据权利要求9所述的计算机可读媒体,其中:10. The computer-readable medium according to claim 9, wherein: 所述同步异常分析程序进一步经配置以:响应于确定所述第一条件是否被满足,当所述第一条件被满足时,将分析请求插入到请求队列中,所述分析请求是根据所述第二条件、根据所述事件且进一步根据所述目标实体而制定;且The synchronous anomaly analysis procedure is further configured to: in response to determining whether the first condition is met, insert an analysis request into a request queue when the first condition is met, the analysis request being formulated based on the second condition, based on the event, and further based on the target entity; and 所述异步异常分析程序进一步经配置以:在准备确定所述第二条件是否被满足时,从所述请求队列移除所述分析请求。The asynchronous exception analysis program is further configured to remove the analysis request from the request queue when it is ready to determine whether the second condition is met. 11.根据权利要求10所述的计算机可读媒体,其中所述硬件处理器进一步经配置以:11. The computer-readable medium of claim 10, wherein the hardware processor is further configured to: 响应于检测到终止所述目标实体的尝试,暂停所述尝试;及In response to detecting an attempt to terminate the target entity, the attempt is suspended; and 响应于暂停所述尝试,切换成执行连接到所述异步异常分析程序的终止观察程序,所述终止观察程序经配置以:In response to pausing the attempt, switching to execution of a termination watch connected to the asynchronous exception analyzer, the termination watch being configured to: 搜索所述请求队列以得到根据所述目标实体制定的第二分析请求,所述第二分析请求指示第三条件,The request queue is searched to obtain a second analysis request based on the target entity, the second analysis request indicating a third condition. 调用所述异步异常分析程序来处理所述第二分析请求,及The asynchronous exception analyzer is invoked to process the second analysis request, and 响应于调用所述异步异常分析程序,当所述异步异常分析程序确定所述第三条件被满足时,致使所述硬件处理器重新开始终止所述目标实体的所述尝试。In response to the invocation of the asynchronous exception analyzer, when the asynchronous exception analyzer determines that the third condition is met, the hardware processor causes the hardware processor to restart the attempt to terminate the target entity. 12.根据权利要求9所述的计算机可读媒体,其中所述目标实体在由所述主机系统公开的访客虚拟机内执行,且其中所述异步异常分析程序在所述访客虚拟机外部执行。12. The computer-readable medium of claim 9, wherein the target entity is executed within a guest virtual machine exposed by the host system, and wherein the asynchronous exception analyzer is executed outside the guest virtual machine. 13.根据权利要求12所述的计算机可读媒体,其中所述异步异常分析程序在由所述主机系统公开的安全虚拟机内执行,所述安全虚拟机与所述访客虚拟机同时执行。13. The computer-readable medium of claim 12, wherein the asynchronous exception analyzer is executed within a secure virtual machine exposed by the host system, the secure virtual machine being executed simultaneously with the guest virtual machine. 14.根据权利要求9所述的计算机可读媒体,其中所述规则异常签名经配置使得确定所述第一条件是否被满足所负担的计算成本低于确定所述第二条件是否被满足所负担的计算成本。14. The computer-readable medium of claim 9, wherein the rule-based exception signature is configured such that the computational cost of determining whether the first condition is satisfied is lower than the computational cost of determining whether the second condition is satisfied. 15.根据权利要求9所述的计算机可读媒体,其中所述事件包括以违反存储器存取权限的方式存取所述主机系统的存储器的尝试。15. The computer-readable medium of claim 9, wherein the event includes an attempt to access the memory of the host system in a manner that violates memory access rights. 16.根据权利要求9所述的计算机可读媒体,其中:16. The computer-readable medium according to claim 9, wherein: 确定所述第一条件是否被满足包括确定所述目标实体是否已将代码注入到第二实体中;且Determining whether the first condition is met includes determining whether the target entity has injected code into the second entity; and 确定所述第二条件是否被满足包括确定所述代码是否为恶意的。Determining whether the second condition is met includes determining whether the code is malicious. 17.一种保护主机系统免受计算机安全威胁的方法,所述主机系统包括硬件处理器及存储器,所述方法包括:17. A method for protecting a host system from computer security threats, the host system including a hardware processor and memory, the method comprising: 采用所述硬件处理器来检测由目标实体的执行所致的事件的发生;The hardware processor is used to detect the occurrence of events caused by the execution of the target entity; 响应于检测到所述事件的所述发生,采用所述硬件处理器来暂停所述目标实体的所述执行;In response to the detection of the event, the hardware processor is used to suspend the execution of the target entity; 响应于暂停所述目标实体的所述执行,采用所述硬件处理器来切换成执行同步异常分析程序,所述同步异常分析程序经配置以:In response to pausing the execution of the target entity, the hardware processor is switched to execute a synchronous exception analyzer configured to: 根据所述事件而确定所述目标实体是否有恶意嫌疑,Based on the events described, determine whether the target entity is suspected of malicious intent. 作为响应,当所述目标实体有恶意嫌疑时,从多个规则异常签名选择性地检索一个规则异常签名,所述规则异常签名是根据所述事件检索的,其中所述规则异常签名包括第一条件的编码及第二条件的编码,In response, when the target entity is suspected of malicious activity, a rule-specific abnormal signature is selectively retrieved from multiple rule-specific abnormal signatures. This rule-specific abnormal signature is retrieved based on the event, and it includes the encoding of a first condition and the encoding of a second condition. 响应于检索到所述规则异常签名,根据所述事件且根据所述目标实体而确定所述第一条件是否被满足,In response to the retrieval of the rule-abnormal signature, it is determined, based on the event and the target entity, whether the first condition is met. 响应于确定所述第一条件是否被满足,当所述第一条件被满足时,致使所述硬件处理器重新开始所述目标实体的执行,及In response to determining whether the first condition is met, if the first condition is met, the hardware processor is caused to restart the execution of the target entity, and 响应于确定所述第一条件是否被满足,当所述第一条件未被满足时,确定所述目标实体是恶意的;In response to determining whether the first condition is met, if the first condition is not met, it is determined that the target entity is malicious; 响应于所述硬件处理器重新开始所述目标实体的执行,采用所述硬件处理器来根据所述事件且根据所述目标实体而确定所述第二条件是否被满足;In response to the hardware processor restarting the execution of the target entity, the hardware processor is used to determine whether the second condition is satisfied based on the event and based on the target entity; 响应于确定所述第二条件是否被满足,当所述第二条件被满足时,确定所述目标实体并非是恶意的;及In response to determining whether the second condition is met, if the second condition is met, it is determined that the target entity is not malicious; and 响应于确定所述第二条件是否被满足,当所述第二条件未被满足时,确定所述目标实体是恶意的。In response to determining whether the second condition is met, if the second condition is not met, it is determined that the target entity is malicious. 18.根据权利要求17所述的方法,其进一步包括:18. The method of claim 17, further comprising: 响应于确定所述第一条件是否被满足,当所述第一条件被满足时,采用所述硬件处理器来将分析请求插入到请求队列中,所述分析请求是根据所述第二条件、根据所述事件且进一步根据所述目标实体而制定;且In response to determining whether the first condition is met, if the first condition is met, the hardware processor is used to insert an analysis request into a request queue, the analysis request being formulated based on the second condition, the event, and further, the target entity; and 在准备确定所述第二条件是否被满足时,采用所述硬件处理器来从所述队列移除所述分析请求。When preparing to determine whether the second condition is met, the hardware processor is used to remove the analysis request from the queue. 19.根据权利要求18所述的方法,其进一步包括:19. The method of claim 18, further comprising: 响应于检测到终止所述目标实体的尝试,采用所述硬件处理器来暂停所述尝试;In response to detecting an attempt to terminate the target entity, the hardware processor is used to suspend the attempt; 响应于暂停所述尝试,采用所述硬件处理器来搜索所述请求队列以得到根据所述目标实体制定的第二分析请求,所述第二分析请求指示第三条件;In response to pausing the attempt, the hardware processor is used to search the request queue to obtain a second analysis request based on the target entity, the second analysis request indicating a third condition; 响应于搜索到所述第二分析请求,根据所述目标实体而确定所述第三条件是否被满足;In response to the discovery of the second analysis request, it is determined whether the third condition is met based on the target entity; 作为响应,当所述第三条件被满足时,采用所述硬件处理器来终止所述目标实体。In response, when the third condition is met, the hardware processor is used to terminate the target entity.
HK18106407.4A 2015-07-14 2016-07-14 Computer security systems and methods using asynchronous introspection exceptions HK1247295B (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562192384P 2015-07-14 2015-07-14
US62/192,384 2015-07-14
US15/209,317 US9852295B2 (en) 2015-07-14 2016-07-13 Computer security systems and methods using asynchronous introspection exceptions
US15/209,317 2016-07-13
PCT/EP2016/066745 WO2017009415A1 (en) 2015-07-14 2016-07-14 Computer security systems and methods using asynchronous introspection exceptions

Publications (2)

Publication Number Publication Date
HK1247295A1 HK1247295A1 (en) 2018-09-21
HK1247295B true HK1247295B (en) 2021-08-27

Family

ID=

Similar Documents

Publication Publication Date Title
CN107851153B (en) Computer security system and method using asynchronous self-test exceptions
US11861005B2 (en) Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection/prevention, and/or other features
CN105393255B (en) Process assessment for the malware detection in virtual machine
CN109923546B (en) Event filtering for virtual machine security applications
JP6706273B2 (en) Behavioral Malware Detection Using Interpreted Virtual Machines
CN105593870A (en) Sophisticated Scoring for Malware Detection
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
HK1247295B (en) Computer security systems and methods using asynchronous introspection exceptions
Wang et al. Hacs: A hypervisor-based access control strategy to protect security-critical kernel data
HK40004204A (en) Event filtering for virtual machine security applications
HK40004204B (en) Event filtering for virtual machine security applications
HK1216930B (en) Process evaluation for malware detection in virtual machines