HK1254985B - Dual memory introspection for securing multiple network endpoints - Google Patents
Dual memory introspection for securing multiple network endpointsInfo
- Publication number
- HK1254985B HK1254985B HK18114095.5A HK18114095A HK1254985B HK 1254985 B HK1254985 B HK 1254985B HK 18114095 A HK18114095 A HK 18114095A HK 1254985 B HK1254985 B HK 1254985B
- Authority
- HK
- Hong Kong
- Prior art keywords
- client
- tool
- security
- computer system
- event
- Prior art date
Links
Description
相关申请案Related applications
本申请案主张2015年12月19日申请的标题为“用于保护多个网络端点的双重存储器内省(Dual Memory Introspection for Securing Multiple Network Endpoints)”的第62/269,952号美国临时专利申请案的申请日期的权益,所述美国专利申请案的全部内容以引用方式并入本文中。This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 62/269,952, filed December 19, 2015, entitled “Dual Memory Introspection for Securing Multiple Network Endpoints,” which is incorporated herein by reference in its entirety.
背景技术Background Art
本发明涉及计算机安全系统及方法,且特定来说,本发明涉及用于使硬件虚拟化环境免受计算机安全威胁的系统及方法。The present invention relates to computer security systems and methods, and in particular, the present invention relates to systems and methods for protecting hardware virtualization environments from computer security threats.
恶意软件(malicious software),也称为恶意软件(malware),影响世界各地的众多计算机系统。呈许多形式(例如计算机病毒、蠕虫、木马及间谍软件)的恶意软件对成千上万的计算机用户带来严重威胁,从而使用户易于丢失数据及敏感信息、遭受身份盗窃且损失生产力等。Malicious software, also known as malware, affects numerous computer systems worldwide. Malware, in its many forms (such as computer viruses, worms, Trojans, and spyware), poses a serious threat to millions of computer users, exposing them to the loss of data and sensitive information, identity theft, and lost productivity.
计算机安全软件可用于使计算机系统免受恶意软件。然而,在分布式计算系统(例如企业网络及云计算系统)中,常规安全软件通常不能对攻击作出良好响应。即使在安全软件能够检测攻击时,分析及补救可能仍然需要向受影响客户端系统派遣人类操作者,例如,以应用补丁、恢复丢失的数据等。另外,一旦检测到且分析了新的威胁,就必须及时将更新版本的安全软件分发到所有受保护计算机系统。Computer security software can be used to protect computer systems from malware. However, in distributed computing systems (such as enterprise networks and cloud computing systems), conventional security software often fails to respond effectively to attacks. Even when security software is able to detect an attack, analysis and remediation may still require dispatching human operators to the affected client systems, for example, to apply patches, recover lost data, and so on. Furthermore, once new threats are detected and analyzed, updated versions of security software must be promptly distributed to all protected computer systems.
替代计算机安全系统可在中央服务器计算机上执行,从而通过通信网络从安全客户端接收相关数据。服务器可根据接收到的数据确定相应客户端是否感染了恶意软件,且可将结论传送到相应客户端。虽然此类配置被较好地装配以处理新出现的威胁,但其需要大量服务器侧计算能力。Alternative computer security systems can be executed on a central server computer, which receives relevant data from security clients via a communications network. Based on the received data, the server can determine whether the respective client is infected with malware and transmit the determination to the respective client. While this configuration is well-equipped to handle emerging threats, it requires significant server-side computing power.
计算机安全操作由于硬件虚拟化的到来而进一步复杂化。随着越来越多的商品及服务在线交易,且随着工作逐步去本地化,基础设施即服务(IAAS)变成了拥有计算机硬件的可行替代。相当大比例的计算活动当前是使用虚拟机进行。在典型的应用(例如服务器农场及云计算)中,数以百计的虚拟机可同时在单个硬件平台上执行。所有此类虚拟机可能需要恶意软件保护。Computer security operations have been further complicated by the advent of hardware virtualization. As more goods and services are traded online, and as work becomes increasingly decentralized, Infrastructure as a Service (IaaS) has become a viable alternative to owning computer hardware. A significant portion of computing activity is now performed using virtual machines. In typical applications, such as server farms and cloud computing, hundreds of virtual machines can execute simultaneously on a single hardware platform. All of these virtual machines may require malware protection.
适应恶意软件不断变化的性质及流动劳动力的挑战需要开发新颖计算机安全系统及协议,尤其是开发实现跨越多个分布式客户端有效地管理计算机安全操作的系统及方法。Adapting to the ever-changing nature of malware and the challenges of a mobile workforce requires the development of novel computer security systems and protocols, and in particular, the development of systems and methods that enable efficient management of computer security operations across multiple distributed clients.
发明内容Summary of the Invention
根据一个方面,一种客户端计算机系统包括经配置以执行管理程序、现场内省引擎及按需内省引擎的硬件处理器。所述管理程序经配置以暴露客户虚拟机(VM)及与所述客户VM不同的安全VM,其中所述按需内省引擎在所述安全VM内执行,且其中所述现场内省引擎在所述客户VM及安全VM外部执行。所述现场内省引擎经配置以:响应于检测到所述客户VM内事件的发生通过通信网络将所述事件的指示符发射到远程服务器计算机系统。所述按需内省引擎经配置以:响应于所述现场内省引擎将所述事件的所述指示符发射到所述远程服务器计算机系统,从所述远程服务器计算机系统接收分析请求,所述分析请求指示驻存于远程工具存储库中的安全工具,所述远程工具存储库经配置以将安全工具分布到包含所述客户端计算机系统的多个客户端,所述安全工具包括经配置以分析所述事件的发生的软件,所述安全工具由所述远程服务器计算机系统根据所述事件的事件类型进行选择。所述按需内省引擎进一步经配置以:响应于接收所述分析请求,根据所述分析请求识别所述安全工具,且作为响应,从所述工具存储库选择性地检索所述安全工具,其中检索所述安全工具包括通过所述通信网络连接到中央工具存储库。所述按需内省引擎进一步经配置以:响应于选择性地检索所述安全工具,执行所述安全工具,及将执行所述安全工具的结果发射到所述远程服务器计算机系统。According to one aspect, a client computer system includes a hardware processor configured to execute a hypervisor, an in-situ introspection engine, and an on-demand introspection engine. The hypervisor is configured to expose a client virtual machine (VM) and a secure VM distinct from the client VM, wherein the on-demand introspection engine executes within the secure VM, and wherein the in-situ introspection engine executes externally from the client VM and the secure VM. The in-situ introspection engine is configured to, in response to detecting an occurrence of an event within the client VM, transmit an indicator of the event to a remote server computer system via a communication network. The on-demand introspection engine is configured to, in response to the in-situ introspection engine transmitting the indicator of the event to the remote server computer system, receive an analysis request from the remote server computer system, the analysis request indicating a security tool residing in a remote tool repository, the remote tool repository configured to distribute security tools to a plurality of clients including the client computer system, the security tool including software configured to analyze the occurrence of the event, the security tool being selected by the remote server computer system based on an event type of the event. The on-demand introspection engine is further configured to: in response to receiving the analysis request, identify the security tool according to the analysis request, and in response, selectively retrieve the security tool from the tool repository, wherein retrieving the security tool includes connecting to a central tool repository via the communication network. The on-demand introspection engine is further configured to: in response to selectively retrieving the security tool, execute the security tool, and transmit a result of executing the security tool to the remote server computer system.
根据另一方面,一种服务器计算机经配置以执行与多个客户端系统的计算机安全事务。所述服务器计算机系统包括硬件处理器,所述硬件处理器经配置以:响应于从所述多个客户端系统的客户端系统接收事件指示符,所述事件指示符指示在所述客户端系统上执行的客户虚拟机VM内事件的发生,选择驻存于经配置以将安全工具分布到所述多个客户端系统的远程工具存储库中的安全工具,所述安全工具包括经配置以分析所述事件的发生的软件,其中选择所述安全工具是根据所述事件的事件类型执行。所述硬件处理器进一步经配置以:响应于选择所述安全工具,通过通信网络将分析请求发射到所述客户端系统,所述分析请求包括所述安全工具的标识符;及作为响应,从所述客户端系统接收在所述客户端系统上执行所述安全工具的结果。所述客户端系统经配置以执行管理程序、现场内省引擎及按需内省引擎。所述管理程序经配置以暴露所述客户VM及与所述客户VM不同的安全VM,其中所述按需内省引擎在所述安全VM内执行,且其中所述现场内省引擎在所述客户VM及安全VM外部执行。所述现场内省引擎经配置以:响应于检测到所述事件的发生将所述事件指示符发射到所述服务器计算机系统。所述按需内省引擎经配置以:响应于接收所述分析请求,根据所述分析请求识别所述安全工具。所述按需内省引擎进一步经配置以:响应于识别所述安全工具,从所述工具存储库选择性地检索所述安全工具,其中检索所述安全工具包括所述客户端系统通过所述通信网络连接到所述远程工具存储库。所述按需内省引擎进一步经配置以:响应于检索所述安全工具,执行所述安全工具以产生所述结果。According to another aspect, a server computer is configured to perform computer security transactions with multiple client systems. The server computer system includes a hardware processor configured to: in response to receiving an event indicator from a client system of the multiple client systems, the event indicator indicating the occurrence of an event within a guest virtual machine (VM) executing on the client system, select a security tool residing in a remote tool repository configured to distribute security tools to the multiple client systems, the security tool including software configured to analyze the occurrence of the event, wherein the selection of the security tool is performed based on an event type of the event. The hardware processor is further configured to: in response to selecting the security tool, transmit an analysis request to the client system via a communication network, the analysis request including an identifier of the security tool; and in response, receive from the client system a result of executing the security tool on the client system. The client system is configured to execute a hypervisor, an in-place introspection engine, and an on-demand introspection engine. The hypervisor is configured to expose the guest VM and a secure VM distinct from the guest VM, wherein the on-demand introspection engine executes within the secure VM, and wherein the in-place introspection engine executes externally from the guest VM and the secure VM. The on-site introspection engine is configured to, in response to detecting an occurrence of the event, transmit the event indicator to the server computer system. The on-demand introspection engine is configured to, in response to receiving the analysis request, identify the security tool according to the analysis request. The on-demand introspection engine is further configured to, in response to identifying the security tool, selectively retrieve the security tool from the tool repository, wherein retrieving the security tool includes the client system connecting to the remote tool repository via the communication network. The on-demand introspection engine is further configured to, in response to retrieving the security tool, execute the security tool to generate the result.
根据另一方面,一种非暂时性计算机可读媒体包括一组指令,当所述组指令执行于客户端计算机系统的硬件处理器上时致使所述客户端计算机系统形成管理程序、现场内省引擎及按需内省引擎。所述管理程序经配置以暴露客户虚拟机(VM)及与所述客户VM不同的安全VM,其中所述按需内省引擎在所述安全VM内执行,且其中所述现场内省引擎在所述客户VM及安全VM外部执行。所述现场内省引擎经配置响应于检测到所述客户VM内事件的发生通过通信网络将所述事件的指示符发射到远程服务器计算机系统。所述按需内省引擎经配置以:响应于所述现场内省引擎将所述事件的所述指示符发射到所述远程服务器计算机系统,从所述远程服务器计算机系统接收分析请求,所述分析请求指示驻存于远程工具存储库中的安全工具,所述远程工具存储库经配置以将安全工具分布到包含所述客户端计算机系统的多个客户端,所述安全工具包括经配置以分析所述事件的发生的软件,所述安全工具由所述远程服务器计算机系统根据所述事件的事件类型选择。所述按需内省引擎进一步经配置以:响应于接收所述分析请求,根据所述分析请求识别所述安全工具,且作为响应,从所述工具存储库选择性地检索所述安全工具,其中检索所述安全工具包括通过所述通信网络连接到中央工具存储库。所述按需内省引擎进一步经配置以:响应于选择性地检索所述安全工具,执行所述安全工具,及将执行所述安全工具的结果发射到所述远程服务器计算机系统。According to another aspect, a non-transitory computer-readable medium includes a set of instructions that, when executed on a hardware processor of a client computer system, cause the client computer system to form a hypervisor, a live introspection engine, and an on-demand introspection engine. The hypervisor is configured to expose a guest virtual machine (VM) and a secure VM distinct from the guest VM, wherein the on-demand introspection engine executes within the secure VM, and wherein the live introspection engine executes externally from the guest VM and the secure VM. The live introspection engine is configured to, in response to detecting the occurrence of an event within the guest VM, transmit an indicator of the event to a remote server computer system via a communication network. The on-demand introspection engine is configured to: in response to the live introspection engine transmitting the indicator of the event to the remote server computer system, receive an analysis request from the remote server computer system, the analysis request indicating a security tool residing in a remote tool repository, the remote tool repository configured to distribute the security tool to a plurality of clients including the client computer system, the security tool including software configured to analyze the occurrence of the event, the security tool selected by the remote server computer system based on the event type of the event. The on-demand introspection engine is further configured to: in response to receiving the analysis request, identify the security tool according to the analysis request, and in response, selectively retrieve the security tool from the tool repository, wherein retrieving the security tool includes connecting to a central tool repository via the communication network. The on-demand introspection engine is further configured to: in response to selectively retrieving the security tool, execute the security tool, and transmit a result of executing the security tool to the remote server computer system.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
在阅读以下详细描述及参考图之后,将更好地理解本发明的前述方面及优点,其中:The foregoing aspects and advantages of the present invention will be better understood after reading the following detailed description and referring to the drawings, in which:
图1说明根据本发明的一些实施例的其中使多个客户端系统免受计算机安全威胁的示范性配置。1 illustrates an exemplary configuration in which multiple client systems are protected from computer security threats, according to some embodiments of the present invention.
图2-A说明根据本发明的一些实施例的客户端系统的示范性硬件配置。FIG2-A illustrates an exemplary hardware configuration of a client system according to some embodiments of the present invention.
图2-B展示根据本发明的一些实施例的安全服务器计算机系统的示范性硬件配置。FIG2-B shows an exemplary hardware configuration of a secure server computer system according to some embodiments of the present invention.
图3-A展示根据本发明的一些实施例的由受保护客户端系统上执行的管理程序暴露的一组示范性虚拟机及一对示范性内省引擎。3-A shows an exemplary set of virtual machines and a pair of exemplary introspection engines exposed by a hypervisor executing on a protected client system, according to some embodiments of the invention.
图3-B展示根据本发明的一些实施例的安全组件的替代配置。FIG3-B illustrates an alternative configuration of a security component according to some embodiments of the present invention.
图4展示根据本发明的一些实施例的由安装程序应用实施以设置客户端系统上的计算机安全的示范性步骤序列。4 shows an exemplary sequence of steps performed by an installer application to set up computer security on a client system, according to some embodiments of the invention.
图5展示根据本发明的一些实施例的在客户端系统与安全服务器之间配置虚拟专用网络(VPN)安全连接。5 illustrates configuring a virtual private network (VPN) secure connection between a client system and a secure server, according to some embodiments of the present invention.
图6展示根据本发明的一些实施例的客户端系统与安全服务器之间的示范性数据交换,所述数据交换在恶意软件检测期间发生。6 shows an exemplary data exchange between a client system and a secure server that occurs during malware detection, according to some embodiments of the present invention.
图7展示根据本发明的一些实施例的由现场内省引擎执行的示范性步骤序列。FIG7 shows an exemplary sequence of steps performed by a scene introspection engine according to some embodiments of the invention.
图8展示根据本发明的一些实施例的由按需内省引擎执行的示范性步骤序列。FIG8 shows an exemplary sequence of steps performed by an on-demand introspection engine according to some embodiments of the invention.
图9说明根据本发明的一些实施例的由安全服务器执行的示范性步骤序列。FIG9 illustrates an exemplary sequence of steps performed by a security server according to some embodiments of the present invention.
具体实施方式DETAILED DESCRIPTION
应理解,在以下描述中,结构之间所述所有连接可为直接操作连接或通过中间结构的间接操作连接。一组元件包含一或多个元件。应理解,元件的任何陈述是指至少一个元件。多个元件包含至少两个元件。除非另外要求,否则描述的任何方法步骤不一定需要按说明的特定顺序执行。从第二元素导出的第一元素(例如,数据)涵盖等于第二元素的第一元素,还涵盖通过处理第二元素及任选地其它数据生成的第一元素。根据参数作出确定或决策涵盖根据参数及任选地根据其它数据作出确定或决策。除非另外指定,否则一些数量/数据的指示符可为数量/数据本身或不同于数量/数据本身的指示符。计算机安全涵盖使用户及设备免受对数据及/或硬件的意外或未授权存取、数据及/或硬件的意外或未授权修改及数据及/或硬件的破坏。计算机程序是实施任务的处理器指令序列。本发明的一些实施例中描述的计算机程序可为其它计算机程序的独立软件实体或子实体(例如,子例程、库)。除非另外指定,否则客户软件在虚拟机内执行。据说,当程序在相应虚拟机的虚拟处理器上执行时,程序在虚拟机内执行。除非另外指定,否则页表示可个别地映射到主机系统的物理存储器的虚拟存储器的最小单位。除非另外指定,否则客户端系统的快照包括由相应客户端系统使用的存储器区段的内容的副本。计算机可读媒体涵盖非暂时性媒体,例如磁性、光学及半导体存储器媒体(例如,硬盘驱动、光盘、快闪存储器、DRAM),还涵盖通信链路,例如导电电缆及光纤链路。根据一些实施例,本发明提供(除其它外)计算机系统,其包括经编程以执行本文描述的方法的硬件(例如,一或多个微处理器),还包括编码指令以执行本文描述的方法的计算机可读媒体。It should be understood that in the following description, all connections between structures may be direct operational connections or indirect operational connections through intermediate structures. A group of elements includes one or more elements. It should be understood that any statement of an element refers to at least one element. A plurality of elements includes at least two elements. Unless otherwise required, any method steps described do not necessarily need to be performed in the specific order described. A first element (e.g., data) derived from a second element encompasses a first element that is equal to the second element, and also encompasses a first element generated by processing the second element and, optionally, other data. 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 devices from accidental or unauthorized access to data and/or hardware, accidental 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 performs a task. The computer programs described in some embodiments of the present invention may be independent software entities or sub-entities (e.g., subroutines, libraries) of other computer programs. Unless otherwise specified, client software executes within a virtual machine. A program is said to execute within a virtual machine when it is executed on a virtual processor of the respective 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. Unless otherwise specified, a snapshot of a client system includes a copy of the contents of a memory segment used by the respective client system. Computer-readable media encompasses non-transitory media, such as magnetic, optical, and semiconductor memory media (e.g., hard drives, optical disks, flash memory, DRAM), and also encompasses 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 also comprising a computer-readable medium encoding instructions to perform the methods described herein.
以下描述通过实例且不一定通过限制说明本发明的实施例。The following description illustrates embodiments of the invention by way of example and not necessarily by way of limitation.
图1展示根据本发明的一些实施例的使多个客户端系统12a到d免受计算机安全威胁的示范性配置。示范性客户端系统12a到d包含个人计算机系统、移动计算平台(膝上型计算机、平板计算机、移动电话)、娱乐装置(TV、游戏机)、可穿戴装置(智能手表、健身手环)、家用电器及包括处理器及存储器且能够操作硬件虚拟化平台的任何其它电子装置。另一示范性种类的客户端系统包含数据中心服务器及运行基于云的应用程序的硬件虚拟化平台,例如网站服务器及/或虚拟桌面基础设施。FIG1 shows an exemplary configuration for protecting multiple client systems 12a-d from computer security threats according to some embodiments of the present invention. Exemplary client systems 12a-d include personal computer systems, mobile computing platforms (laptops, tablets, mobile phones), entertainment devices (TVs, game consoles), wearable devices (smart watches, fitness bands), home appliances, and any other electronic device that includes a processor and memory and is capable of operating a hardware virtualization platform. Another exemplary class of client systems includes data center servers and hardware virtualization platforms running cloud-based applications, such as website servers and/or virtual desktop infrastructures.
客户端系统12a到d经由通信网络11互连,例如家庭网络、企业网络、因特网等。网络11包含至少一个交换机及/或路由器。网络11的部件可包含局域网(LAN)及/或电信网络(例如,4G移动电话网、无线LAN)。Client systems 12a-d are interconnected via a communication network 11, such as a home network, an enterprise network, the Internet, etc. Network 11 includes at least one switch and/or router. Components of network 11 may include a local area network (LAN) and/or a telecommunications network (e.g., a 4G mobile phone network, a wireless LAN).
在一些实施例中,安全服务器14经由网络11通信地耦合到客户端系统12a到d且与客户端系统12a到d合作以避开计算机安全威胁,如下文详细描述。服务器14一般地描述一组互连计算系统,其可或可不与彼此物理接近。在一些实施例中,服务器14经配置以从客户端系统12a到d接收事件通知,且作为响应,根据事件类型选择待由相应客户端系统使用的取证分析类型、威胁消解协议及/或清理工具。示范性取证分析包含例如获得关于相应事件的原因及/或上下文的具体数据。威胁消解协议可根据由相应事件指示的恶意软件类型进行选择,且可包含在相应客户端上下载及/或执行具体清理及/或损坏控制代码。In some embodiments, security server 14 is communicatively coupled to client systems 12a-d via network 11 and collaborates with client systems 12a-d to circumvent computer security threats, as described in detail below. Server 14 generally describes a group of interconnected computing systems that may or may not be in physical proximity to one another. In some embodiments, server 14 is configured to receive event notifications from client systems 12a-d and, in response, select a type of forensic analysis, threat mitigation protocol, and/or cleanup tool to be used by the respective client system based on the type of event. Exemplary forensic analysis includes, for example, obtaining specific data regarding the cause and/or context of the respective event. Threat mitigation protocols may be selected based on the type of malware indicated by the respective event and may include downloading and/or executing specific cleanup and/or damage control code on the respective client.
在一些实施例中,安全服务器14进一步经配置以与客户端数据库17介接。在示范性客户端数据库17中,每一条目与受保护客户端系统12a到d相关联及/或与相应受保护客户端系统上执行的虚拟机相关联,且可包含触发事件及/或由相应客户端系统/虚拟机报告的取证报告(参见下文)的日志。数据库17的示范性条目可进一步包括用于相应客户端系统/虚拟机的系统配置文件数据(例如,包含OS版本、安装的应用程序、各种设置、所有者、联系信息等)。客户端数据库17的另一示范性条目可包括表示与相应客户端系统相关联的客户端专用安全策略的一组参数值。此类设置可由人类操作者指定,或可根据一组规则自动设置。在本发明的一些实施例中,客户专用策略及/或安全设置响应于相应客户端上或其它受保护客户端上发生的事件动态地改变。In some embodiments, the security server 14 is further configured to interface with a client database 17. In an exemplary client database 17, each entry is associated with a protected client system 12a to d and/or a virtual machine executing on the respective protected client system, and may include a log of triggering events and/or forensic reports (see below) reported by the respective client system/virtual machine. An exemplary entry of the database 17 may further include system profile data for the respective client system/virtual machine (e.g., including OS version, installed applications, various settings, owner, contact information, etc.). Another exemplary entry of the client database 17 may include a set of parameter values representing client-specific security policies associated with the respective client system. Such settings may be specified by a human operator or may be automatically set according to a set of rules. In some embodiments of the present invention, client-specific policies and/or security settings change dynamically in response to events occurring on the respective client or other protected clients.
在一些实施例中,客户端系统12a到d经由网络11进一步连接到中央工具存储库15。工具存储库15可包括计算机可读媒体或存储呈代码(计算机程序)及/或数据形式的安全工具及资源的物理机。客户端系统12a到d可连接到存储库15以根据从安全服务器14接收到的指令选择性地检索工具及数据,如下文详细展示。工具存储库15对多个客户端可用,所以在本发明的优选实施例中,存储库15不驻存于任何特定客户端系统上。连接到存储库15因此包括经由相应客户端系统的网络适配器将通信发射到存储库15及/或从存储库15接收通信。此类通信可在途中遍历网络交换机或路由器。In some embodiments, client systems 12a-d are further connected to a central tool repository 15 via network 11. Tool repository 15 may comprise computer-readable media or a physical machine storing security tools and resources in the form of code (computer programs) and/or data. Client systems 12a-d can connect to repository 15 to selectively retrieve tools and data based on instructions received from security server 14, as described in detail below. Tool repository 15 is available to multiple clients, so in a preferred embodiment of the present invention, repository 15 does not reside on any particular client system. Connecting to repository 15 thus includes transmitting and/or receiving communications to and from repository 15 via the respective client system's network adapter. Such communications may traverse network switches or routers along the way.
存储于存储库15中的安全工具可包含取证、反恶意软件及/或威胁消解工具。存储库数据可进一步包括用于根据调查中的事件类型或根据本地硬件/软件配置来配置或调谐相应工具的参数值。反恶意软件工具实现客户端系统12a到d上执行的恶意软件的检测,且可包含一组启发式规则的编码及/或恶意软件识别特征码数据库。威胁消解工具可包含经编程以移除客户端系统上执行的恶意软件代理或以其它方式使所述恶意软件代理无法使用的清理工具。其它示范性威胁消解工具经编程以(例如)通过控制被感染的客户端系统使用其网络适配器的方式防止被感染的客户端系统将恶意软件传输到另一客户端系统。The security tools stored in repository 15 may include forensics, anti-malware, and/or threat mitigation tools. The repository data may further include parameter values for configuring or tuning the respective tools based on the type of incident under investigation or based on the local hardware/software configuration. Anti-malware tools enable detection of malware executing on client systems 12a-d and may include an encoding of a set of heuristic rules and/or a database of malware identification signatures. Threat mitigation tools may include cleanup tools programmed to remove or otherwise disable malware agents executing on a client system. Other exemplary threat mitigation tools are programmed to prevent an infected client system from transmitting malware to another client system, for example, by controlling the infected client system's use of its network adapter.
取证工具实现客户端系统12a到d上发生的安全相关事件的分析。取证工具的一些实例包含快照生成工具,其经编程以获得客户端系统的存储器快照或相应客户端系统上执行的虚拟机的存储器快照。快照可包含与操作系统(OS)相关联或与相应客户端系统上当前执行的另一应用程序相关联的存储器数据。OS内核的快照可包含(除其它外)内核的代码及数据区段、各种存储器中内核驱动器(代码及/或数据区段)、存储器中内核线程及其对应堆栈、OS的内核数据结构-例如加载模块的列表、进程列表等的副本。应用程序的示范性快照包括应用程序的存储器图像(包含其代码及数据区段)、由应用程序的线程使用的存储器中堆栈、相应应用程序的堆存储器页等的副本。Forensic tools enable analysis of security-related events occurring on client systems 12a-d. Some examples of forensic tools include snapshot generation tools that are programmed to obtain a memory snapshot of a client system or a memory snapshot of a virtual machine executing on the respective client system. The snapshot may include memory data associated with an operating system (OS) or associated with another application currently executing on the respective client system. A snapshot of an OS kernel may include, among other things, a copy of the kernel's code and data segments, various in-memory kernel drivers (code and/or data segments), in-memory kernel threads and their corresponding stacks, and kernel data structures of the OS, such as a list of loaded modules, a process list, and the like. An exemplary snapshot of an application includes a memory image of the application (including its code and data segments), in-memory stacks used by the application's threads, a copy of the respective application's heap memory pages, and the like.
在一些实施例中,生成存储器快照包括中止客户VM 32的执行以允许复制相应存储器区段的内容。替代实施例执行“现场”存储器取证而无需生成快照。在此类实施例中,管理程序30可将由客户VM 32使用的一组物理存储器页映射到由安全VM 33使用的虚拟存储器页。接着,安全VM 33可例如响应于特定事件检查相应存储器页的内容而不必中止客户VM32的执行或复制及传送相应内容。“现场”存储器取证工具的一个实例是来自VolatilityFoundation的框架。In some embodiments, generating a memory snapshot includes suspending execution of guest VM 32 to allow the contents of the corresponding memory segments to be copied. Alternative embodiments perform "live" memory forensics without generating a snapshot. In such embodiments, hypervisor 30 may map a set of physical memory pages used by guest VM 32 to virtual memory pages used by secure VM 33. Secure VM 33 may then examine the contents of the corresponding memory pages, for example, in response to a specific event, without having to suspend execution of guest VM 32 or copy and transfer the corresponding contents. One example of a "live" memory forensics tool is the framework from the Volatility Foundation.
取证工具的另一实例是经配置以列举当前安装于客户端系统上及/或客户端系统上当前执行的软件实体的应用程序清单工具。取证工具的又另一实例是经编程以获得一组配置设置(例如,各种OS参数的当前值、硬件设置、安全设置、防火墙设置等)的配置抓取器。其它示范性取证工具经编程以收集系统及/或应用程序事件日志或系统崩溃数据(例如,崩溃小型转储)。Another example of a forensic tool is an application inventory tool configured to enumerate software entities currently installed on a client system and/or currently executing on a client system. Yet another example of a forensic tool is a configuration crawler programmed to obtain a set of configuration settings (e.g., current values of various OS parameters, hardware settings, security settings, firewall settings, etc.). Other exemplary forensic tools are programmed to collect system and/or application event logs or system crash data (e.g., crash minidumps).
图2-A展示客户端系统12(例如图1中的系统12a到d)的示范性硬件配置。为简单起见,所说明的客户端系统是计算机系统,其它客户端系统(例如移动电话、手表等)的硬件配置可稍微不同于说明的配置。客户端系统12包括一组物理装置,包含硬件处理器16及存储器单元18。在一些实施例中,处理器12包括经配置以使用一组信号及/或数据执行计算操作及/或逻辑运算的物理装置(例如,微处理器、形成于半导体衬底上的多核集成电路等)。在一些实施例中,此类操作以处理器指令序列(例如,机器代码或其它类型的编码)的形式被递送到处理器12。存储器单元18可包括存储由处理器16存取或生成的指令及/或数据的易失性计算机可读媒体(例如,DRAM、SRAM)。FIG2-A shows an exemplary hardware configuration of a client system 12 (e.g., systems 12a to d in FIG1 ). For simplicity, the client system illustrated is a computer system; the hardware configuration of other client systems (e.g., mobile phones, watches, etc.) may differ slightly from the illustrated configuration. Client system 12 includes a set of physical devices, including a hardware processor 16 and a memory unit 18. In some embodiments, processor 12 includes a physical device (e.g., a microprocessor, a multi-core integrated circuit formed on a semiconductor substrate, etc.) configured to perform computing operations and/or logical operations using a set of signals and/or data. In some embodiments, such 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 18 may include volatile computer-readable media (e.g., DRAM, SRAM) that stores instructions and/or data accessed or generated by processor 16.
取决于装置的类型及性能,客户端系统12可进一步包括一组输入装置20,例如键盘、鼠标、触摸屏等,其使用户能够将数据及/或指令输入到客户端系统12。一组输出装置22,例如监测器或液晶显示器,可例如经由图形用户接口将信息传达给用户。存储装置24包含实现处理器指令及/或数据的非易失性存储、读取及写入的计算机可读媒体。示范性存储装置24包含磁盘及光盘及快闪存储器装置,还包含可装卸媒体,例如CD及/或DVD光盘及驱动。一组网络适配器26使客户端系统12能够连接到通信网络11及/或连接到其它装置/计算机系统。控制器集线器28一般地表示多个系统、外围设备及/或芯片集总线及/或实现处理器16与装置18、20、22、24及26之间的通信的所有其它电路。例如,控制器集线器28可包含存储器管理单元(MMU)、输入/输出(I/O)控制器及中断控制器等。在另一实例中,控制器集线器28可包括将处理器16连接到存储器18的北桥及/或将处理器16连接到装置20、22、24及26的南桥。在一些实施例中,控制器集线器28可部分或全部与处理器16集成,例如,MMU可与处理器16共享共同半导体衬底。Depending on the type and capabilities of the devices, client system 12 may further include a set of input devices 20, such as a keyboard, mouse, touch screen, etc., which enable a user to enter data and/or instructions into client system 12. A set of output devices 22, such as a monitor or liquid crystal display, can convey information to the user, for example, via a graphical user interface. Storage devices 24 include computer-readable media that enable non-volatile storage, reading, and writing of processor instructions and/or data. Exemplary storage devices 24 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 26 enables client system 12 to connect to communication network 11 and/or to other devices/computer systems. Controller hub 28 generally represents multiple system, peripheral, and/or chipset buses and/or all other circuitry that enables communication between processor 16 and devices 18, 20, 22, 24, and 26. For example, controller hub 28 may include a memory management unit (MMU), an input/output (I/O) controller, an interrupt controller, and the like. In another example, controller hub 28 may include a north bridge that connects processor 16 to memory 18 and/or a south bridge that connects processor 16 to devices 20, 22, 24, and 26. In some embodiments, controller hub 28 may be partially or fully integrated with processor 16, e.g., an MMU may share a common semiconductor substrate with processor 16.
图2-B展示安全服务器14的示范性硬件配置。服务器14包括硬件处理器116、服务器存储器118、一组服务器存储装置124及一组网络适配器126,其全部都由服务器控制器集线器128连接。装置116、118、124及126的操作可为上文描述的装置16、18、24及26的操作镜像。例如,服务器处理器116可包括经配置以使用一组信号及/或数据执行计算操作及/或逻辑运算的集成电路。服务器存储器118可包括存储在由处理器116执行计算时存取或生成的数据/信号的非暂时性计算机可读媒体(例如,RAM)。网络适配器126使安全服务器14能够连接到通信网络11。FIG2-B shows an exemplary hardware configuration for secure server 14. Server 14 includes a hardware processor 116, server memory 118, a set of server storage devices 124, and a set of network adapters 126, all of which are connected by a server controller hub 128. The operations of devices 116, 118, 124, and 126 may mirror the operations of devices 16, 18, 24, and 26 described above. For example, server processor 116 may include an integrated circuit configured to perform computing operations and/or logical operations using a set of signals and/or data. Server memory 118 may include non-transitory computer-readable media (e.g., RAM) that stores data/signals accessed or generated when computing by processor 116. Network adapter 126 enables secure server 14 to connect to communication network 11.
在一些实施例中,客户端系统12经配置以暴露一组虚拟机,例如,如图3-A到B中说明。虚拟机(VM)使用硬件虚拟化领域中已知的多种技术中的任何者仿真实际物理机/计算机系统。在一些示范性配置中,管理程序30在客户端系统12上执行,管理程序30经配置以创建或启用多个虚拟化装置,例如虚拟处理器及虚拟存储器管理单元,及将此类虚拟化装置呈现到软件以模仿客户端系统12的实际物理装置。此类操作在所属领域中通常已知为暴露虚拟机。管理程序30可进一步使多个虚拟机能够共享主机系统12的硬件资源使得每一VM可单独操作且并未察觉到客户端系统12上当前执行的其它VM。流行的管理程序的实例包含来自VMware有限公司(VMware Inc.)的及开源管理程序等。In some embodiments, client system 12 is configured to expose a set of virtual machines, for example, as illustrated in Figures 3-A to B. Virtual machines (VMs) emulate actual physical machines/computer systems using any of a variety of techniques known in the art of hardware virtualization. In some exemplary configurations, a hypervisor 30 is executed on client system 12, which is configured to create or enable multiple virtualized devices, such as virtual processors and virtual memory management units, and present such virtualized devices to software to mimic the actual physical devices of client system 12. Such operations are generally known in the art as exposing virtual machines. Hypervisor 30 can further enable multiple virtual machines to share the hardware resources of host system 12 so that each VM can operate independently and is unaware of other VMs currently executing on client system 12. Examples of popular hypervisors include VMware and open source hypervisors from VMware Inc., among others.
在图3-A到B中说明的示范性配置中,客户VM 32执行客户操作系统34及应用程序36。尽管图3-A到B展示仅一个客户VM,但在例如虚拟桌面基础设施(VDI)及服务器农业的应用中,客户端系统12可同时执行多个此类VM(例如,数百个VM)。每一客户VM包含至少一个虚拟化处理器,且可进一步包含其它虚拟化装置,例如虚拟化输入、输出、存储装置及网络装置以及虚拟化控制器等。每一虚拟化处理器包括硬件处理器16的至少部分功能性的仿真,且经配置以接收处理器指令以供执行。据说,使用虚拟处理器以供执行的软件在相应虚拟机内执行。例如,在图3-A到B的实例中,据说,客户OS 34及应用程序36在客户VM 32内执行。相比之下,据说,管理程序30在客户VM32外部或下面执行。In the exemplary configuration illustrated in Figures 3-A to B, a guest VM 32 executes a guest operating system 34 and applications 36. Although Figures 3-A to B show only one guest VM, in applications such as virtual desktop infrastructure (VDI) and server farming, client system 12 may execute multiple such VMs (e.g., hundreds of VMs) simultaneously. Each guest VM includes at least one virtualized processor and may further include other virtualized devices, such as virtualized input, output, storage, and network devices, as well as a virtualized controller. Each virtualized processor includes an emulation of at least some functionality of a hardware processor 16 and is configured to receive processor instructions for execution. Software that uses a virtual processor for execution is said to execute within the corresponding virtual machine. For example, in the example of Figures 3-A to B, guest OS 34 and applications 36 are said to execute within guest VM 32. In contrast, hypervisor 30 is said to execute outside or below guest VM 32.
OS 34在应用程序36与客户VM 32的虚拟化硬件之间提供接口。操作系统34可包括任何广泛可用的操作系统,例如Microsoft或等。应用程序36一般地表示任何计算机程序,例如字处理、图像处理、媒体播放器、数据库、日历、个人联系人管理、浏览器、游戏、语音通信及数据通信应用程序等。OS 34 provides an interface between application programs 36 and the virtualized hardware of client VM 32. Operating system 34 may include any widely available operating system, such as Microsoft Windows or Windows XP. Application programs 36 generally represent any computer program, such as word processing, image processing, media players, databases, calendars, personal contact management, browsers, games, voice communications, and data communications applications.
在一些实施例中,管理程序30进一步暴露安全VM 33,其可与客户VM 32同时执行,从而使客户VM 32免受计算机安全威胁,例如恶意软件及入侵。单个安全VM可保护相应客户端系统上执行的多个客户VM。客户VM 32及安全VM 33的虚拟环境可与彼此隔离以保证客户VM 32内执行的恶意软件不会感染或以其它方式干扰安全VM 33内执行的软件。例如,安全VM 33的虚拟处理器与客户端系统12上执行的其它虚拟机的虚拟处理器不同;安全VM 33及客户VM 32的存储器转译使用不同组的页表。安全VM 33可经配置以与安全服务器14合作,如下文详细展示。安全VM 33的一些实施例包括轻型最小操作系统(例如,OS的定制版本)、按需内省引擎42及网络滤波器44。在替代实施例中,网络滤波器44在安全VM 33外部执行,例如在管理程序30的处理器特权级(例如,根级、环-1)下执行。In some embodiments, hypervisor 30 further exposes a secure VM 33, which can execute concurrently with guest VM 32, thereby protecting guest VM 32 from computer security threats, such as malware and intrusions. A single secure VM can protect multiple guest VMs executing on a corresponding client system. The virtual environments of guest VM 32 and secure VM 33 can be isolated from each other to ensure that malware executing within guest VM 32 does not infect or otherwise interfere with software executing within secure VM 33. For example, the virtual processor of secure VM 33 is different from the virtual processors of other virtual machines executing on client system 12; memory translation for secure VM 33 and guest VM 32 uses different sets of page tables. Secure VM 33 can be configured to cooperate with secure server 14, as described in detail below. Some embodiments of secure VM 33 include a lightweight minimal operating system (e.g., a customized version of the OS), an on-demand introspection engine 42, and a network filter 44. In an alternative embodiment, network filter 44 executes outside of secure VM 33 , such as at a processor privilege level (eg, root level, ring-1) of hypervisor 30 .
在一些实施例中,管理程序30可将仅虚拟化装置的子集暴露到客户VM 32,且可给予安全VM 33对客户端系统12的一些硬件装置的直接及排他使用。在一个此实例中,客户VM32可具有对输入装置20及输出装置22的排他使用,但缺少虚拟化网络适配器的排他使用。同时,安全VM 33可具有对网络适配器26的直接及排他使用。在一个此实施例中,到客户VM32的全部通信及/或来自客户VM 32的全部通信都经由安全VM 33发送/接收。例如,管理程序30可使用存储器共享机构主动地在客户VM 32与安全VM 33之间路由网络包。安全VM 33可进一步使用滤波器44选择性地允许或防止客户VM 32与远程方之间的通信。此类配置可例如使用来自的技术实施。In some embodiments, hypervisor 30 may expose only a subset of virtualized devices to guest VM 32 and may grant secure VM 33 direct and exclusive use of some hardware devices of client system 12. In one such example, guest VM 32 may have exclusive use of input devices 20 and output devices 22, but lack exclusive use of a virtualized network adapter. Meanwhile, secure VM 33 may have direct and exclusive use of network adapter 26. In one such embodiment, all communications to and/or from guest VM 32 are sent/received via secure VM 33. For example, hypervisor 30 may actively route network packets between guest VM 32 and secure VM 33 using a memory sharing mechanism. Secure VM 33 may further use filters 44 to selectively allow or prevent communications between guest VM 32 and remote parties. Such a configuration may be implemented, for example, using techniques from [ 15 ].
在一些实施例中,客户端系统12上执行的安全软件进一步包括在受保护客户VM32外部执行的现场内省引擎40。术语“内省”特此用于指示目的在于从相应VM外部的位置收集有关目标VM内执行的软件的信息的活动。内省的实例包含(除其它外)确定相应VM内执行的软件是否执行某些动作(例如,执行某些处理器指令、存取某些硬件资源、使用OS的某些服务、存取某些存储器位置等)。内省的其它实例包括确定由相应VM内执行的各种软件对象使用的存储器地址及/或控制对由此类地址指示的存储器位置的存取。In some embodiments, the security software executing on the client system 12 further includes an on-site introspection engine 40 executing externally to the protected guest VM 32. The term "introspection" is used herein to refer to activities aimed at collecting information about software executing within a target VM from a location external to the respective VM. Examples of introspection include, among other things, determining whether the software executing within the respective VM performs certain actions (e.g., executes certain processor instructions, accesses certain hardware resources, uses certain services of the OS, accesses certain memory locations, etc.). Other examples of introspection include determining memory addresses used by various software objects executing within the respective VM and/or controlling access to memory locations indicated by such addresses.
引擎40可并入到管理程序30中,例如,作为库,或可经递送作为与管理程序30不同且独立于管理程序30的但在管理程序30的处理器特权级(例如,根模式、环-1)下执行的计算机程序。在替代实施例中,现场内省引擎可在与客户VM 32不同的单独虚拟机中执行。引擎40可为具有单独调度执行线程的进程,或可操作作为当由某些事件触发时执行的未调度代码对象的集合,如下文展示。Engine 40 may be incorporated into hypervisor 30, e.g., as a library, or may be delivered as a computer program distinct and independent from hypervisor 30 but executing at the processor privilege level (e.g., root mode, ring-1) of hypervisor 30. In alternative embodiments, the field introspection engine may execute in a separate virtual machine distinct from guest VM 32. Engine 40 may be a process with a separately scheduled thread of execution, or may operate as a collection of unscheduled code objects that execute when triggered by certain events, as shown below.
引擎40经配置以监测多个可执行实体(例如,进程、线程、应用程序)的行为。此可包括检测相应软件的执行期间各种事件的发生及选择性地将此类事件报告到安全服务器14。各种类型的事件可以此方式检测,例如,调用某些OS功能、系统调用等。检测到的事件的其它实例包含尝试修改OS 34的功能(所属领域通常已知的代码操纵作为代码修补或挂钩)、一个软件实体尝试将代码注入到另一软件实体中、尝试启动没有数字签名的软件组件及尝试规避数字签名验证等。其它类型的检测到的事件可包含打开文件、创建文件、写入到文件、删除文件、复制文件、创建进程、终止进程、调度线程以供执行、由于同步事件(例如,互相排斥)挂起线程、创建堆、从堆分配存储器、扩展执行堆栈的大小、改变存储器存取权限、执行换入(例如,磁盘到存储器)操作、执行换出(例如,存储器到磁盘)操作、加载可执行模块(例如,共享库-DLL)、打开注册表项、重新命名注册表项、检测新硬件装置的附加、建立新的网络连接、接收网络包、提高线程的执行特权及改变与文件相关联的自主存取控制(DAC)权限。Engine 40 is configured to monitor the behavior of multiple executable entities (e.g., processes, threads, applications). This may include detecting the occurrence of various events during the execution of the corresponding software and selectively reporting such events to security server 14. Various types of events can be detected in this manner, such as invocations of certain OS functions, system calls, and the like. Other examples of detected events include attempts to modify the functionality of OS 34 (code manipulation commonly known in the art as code patching or hooking), attempts by one software entity to inject code into another software entity, attempts to launch software components without digital signatures, attempts to circumvent digital signature verification, and the like. 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, scheduling a thread for execution, suspending a thread due to a synchronization event (e.g., mutual exclusion), creating a heap, allocating memory from the heap, extending 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, increasing the execution privileges of a thread, and changing the discretionary access control (DAC) permissions associated with a file.
用于检测此类事件的若干方法是所属领域已知的。其包含挂钩某些OS功能、修改分派表等。在硬件虚拟化平台中,用于检测安全相关事件的特殊种类的方法依赖于检测违反存储器存取权限。多数现代计算机系统经配置以与虚拟存储器一起操作及使用专用数据结构(例如,页表)管理存储器地址转译。经配置以支持硬件虚拟化的系统通常使用从由每一暴露VM所见的客户物理存储器到客户端系统12的实际物理存储器18的第二层地址转译。第二地址转译通常使用硬件加速专用数据结构及由处理器16控制的机制实现,称为第二级地址转译(SLAT)。流行的SLAT实施方案包含平台上的扩展页表(EPT)及平台上的快速虚拟化索引(RVI)/嵌套页表(NPT)。SLAT通常允许设置每一存储器页的存储器存取权限,例如读取/写入/执行。Several methods for detecting such events are known in the art. These include hooking certain OS functions, modifying dispatch tables, and the like. In hardware virtualization platforms, a special class of methods for detecting security-related events relies on detecting violations of memory access permissions. Most modern computer systems are configured to operate with virtual memory and use dedicated data structures (e.g., page tables) to manage memory address translation. Systems configured to support hardware virtualization typically use a second level of address translation from the guest physical memory seen by each exposed VM to the actual physical memory 18 of the client system 12. This second address translation is typically implemented using a hardware-accelerated dedicated data structure and a mechanism controlled by the processor 16, referred to 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 for setting memory access permissions for each memory page, such as read/write/execute.
在一些实施例中,现场内省引擎40与管理程序30合作以使用如上文描述的SLAT机制设置某些存储器页的存取权限。在一个此实例中,特定存储器页管控属于特定OS功能的代码。将相应页标记为非可执行的将在尝试执行相应OS功能时触发权限违反。违反可由内省引擎40解译为已发生了执行相应OS功能的尝试的指示符。In some embodiments, the field introspection engine 40 cooperates with the hypervisor 30 to set access permissions for certain memory pages using the SLAT mechanism described above. In one such example, a particular memory page controls code belonging to a particular OS function. Marking the corresponding page as non-executable triggers a permissions violation when attempting to execute the corresponding OS function. The violation can be interpreted by the introspection engine 40 as an indicator that an attempt to execute the corresponding OS function has occurred.
处理器16可经配置以在软件尝试以违反当前存取权限的方式存取相应页时触发处理器事件(例如,异常、故障等)。一种类型的处理器事件包括VM退出事件(平台上的VMExit),其中处理器16响应于存储器存取权限的违反从在相应VM内执行代码切换到在相应VM外部执行处置器例程。另一种类的处理器事件包括虚拟化异常(平台上的#VE),其中处理器16切换到在相应VM内执行处置器例程。The processor 16 can be configured to trigger a processor event (e.g., an exception, a fault, etc.) when software attempts to access a corresponding page in a manner that violates current access permissions. One type of processor event includes a VM exit event (VMExit on a platform), in which the processor 16 switches from executing code within the corresponding VM to executing a handler routine outside the corresponding VM in response to a memory access permission violation. Another type of processor event includes a virtualization exception (#VE on a platform), in which the processor 16 switches to executing a handler routine within the corresponding VM.
在图3-A的示范性配置中,事件处置器46a在管理程序30的处理器特权级下在所监测的客户VM外部执行。此类实施例可依赖于VM退出事件来通知现场内省引擎40关于客户VM32内事件的发生。相比之下,在图3-B中,事件处置器46b例如在客户OS 34的处理器特权级(例如,环0、内核模式)下在所监测的VM内执行。此类配置可依赖于虚拟化异常来检测VM内事件。处置器46b可使用进程间通信机构(例如,使用共享存储器区段)将事件信息发送到内省引擎40。图3-B中所展示的配置在信息收集方面可能比图3-A中展示的配置更有效,这是因为处置器46b在所监测的VM内执行且因此可使用客户OS 34的功能及机构来确定检测到的每一事件的语义。然而,通过在客户VM 32内执行,处置器46b可比处置器46a更易受恶意软件的攻击。In the exemplary configuration of FIG3-A , event handler 46 a executes outside the monitored guest VM at the processor privilege level of hypervisor 30. Such embodiments may rely on VM exit events to notify the introspection engine 40 of the occurrence of events within guest VM 32. In contrast, in FIG3-B , event handler 46 b executes within the monitored VM, for example, at the processor privilege level of guest OS 34 (e.g., ring 0, kernel mode). Such a configuration may rely on virtualization exceptions to detect events within the VM. Handler 46 b may use an inter-process communication mechanism (e.g., using a shared memory segment) to send event information to introspection engine 40. The configuration shown in FIG3-B may be more efficient in information collection than the configuration shown in FIG3-A because handler 46 b executes within the monitored VM and can therefore use the functions and mechanisms of guest OS 34 to determine the semantics of each detected event. However, by executing within guest VM 32, handler 46 b may be more vulnerable to malware than handler 46 a.
代替仅仅依赖于现场内省引擎40或受保护VM内执行的软件来分析安全事件,本发明的一些实施例进一步部署第二按需内省引擎42。现场内省引擎40可检测所监测的客户VM内各种事件的发生,但无法实施此类事件的复杂取证分析,这是因为此分析的计算成本太高且将负面影响用户体验。代替地,按需内省引擎42可经调用以执行相应取证分析,但可仅针对由现场内省引擎40检测到的事件子集选择性地触发此取证分析。在一些实施例中,由安全服务器14作出执行事件的取证分析的决策,且所述决策被传送到相应客户端系统12。Instead of relying solely on the on-site introspection engine 40 or software executing within a protected VM to analyze security events, some embodiments of the present invention further deploy a second on-demand introspection engine 42. The on-site introspection engine 40 can detect the occurrence of various events within the monitored client VM, but cannot perform complex forensic analysis of such events because such analysis is computationally expensive and would negatively impact the user experience. Instead, the on-demand introspection engine 42 can be invoked to perform the corresponding forensic analysis, but can selectively trigger such forensic analysis only for a subset of events detected by the on-site introspection engine 40. In some embodiments, the decision to perform forensic analysis of an event is made by the security server 14 and communicated to the corresponding client system 12.
在一些实施例中,现场内省引擎40及按需内省引擎42可与彼此通信,例如,经由共享存储器区段及经由管理程序30实施的信令。例如,在执行取证活动时,按需内省引擎42可读取及使用现场内省引擎40的当前状态。现场内省引擎又可从按需内省引擎接收通知,例如发信号通知当前正在实施取证活动。In some embodiments, the field introspection engine 40 and the on-demand introspection engine 42 may communicate with each other, for example, via a shared memory segment and via signaling implemented by the hypervisor 30. For example, when performing forensic activities, the on-demand introspection engine 42 may read and use the current state of the field introspection engine 40. The field introspection engine may, in turn, receive notifications from the on-demand introspection engine, for example, signaling that a forensic activity is currently being performed.
图4展示根据本发明的一些实施例的经执行以在客户端系统12上设置计算机安全的示范性步骤序列。在使企业网络免受计算机安全威胁的典型场景中,网络管理员可将安全应用程序安装于需要保护的每一客户端系统12a到d上。安全应用程序可包括各种组件,例如管理程序30、内省引擎40到42、事件处置器46a到b等。所说明的步骤序列可例如由相应安全应用程序的安装程序工具实施。当在缺乏硬件虚拟化环境的情况下安装时,安全软件可首先在最强处理器特权级(例如,根模式,环-1)下接管处理器16及安装管理程序30。接着,管理程序30可暴露客户VM 32且移动先前在相应客户端系统上执行的所有软件以在客户VM 32内执行。管理程序30可进一步设置安全VM 33及配置在VM 32到33之间共享相应客户端系统的硬件的方法。接着,安装程序可安装并启动在安全VM 33内执行的软件以及现场内省引擎40。FIG4 illustrates an exemplary sequence of steps performed to set up computer security on a client system 12, according to some embodiments of the present invention. In a typical scenario for protecting an enterprise network from computer security threats, a network administrator may install a security application on each client system 12a-d requiring protection. The security application may include various components, such as a hypervisor 30, introspection engines 40-42, event handlers 46a-b, and the like. The illustrated sequence of steps may be implemented, for example, by an installer tool for the respective security application. When installed in the absence of a hardware virtualization environment, the security software may first take over the processor 16 and install the hypervisor 30 at the highest processor privilege level (e.g., root mode, ring-1). The hypervisor 30 may then expose a guest VM 32 and move all software previously executing on the respective client system to execute within the guest VM 32. The hypervisor 30 may further set up a secure VM 33 and configure methods for sharing the respective client system's hardware between VMs 32-33. The installer may then install and launch the software executing within the secure VM 33, as well as the live introspection engine 40.
在一些实施例中,管理程序30及/或安全VM 33可使用安全启动机构或所属领域已知的另一形式的认证启动以保证安全VM 33执行可信软件。设置安全VM 33(步骤204)及/或在安全VM 33内执行的其它软件可包括与安全服务器14或其它认证实体的认证交换(例如,哈希验证)。在一个示范性实施例中,安全启动可采用客户端系统12的安全存储硬件组件,例如平台上的可信平台模块(TPM),且进一步采用完整性认证机制,例如的可信执行技术(TXT)。In some embodiments, the hypervisor 30 and/or secure VM 33 may use a secure boot mechanism or another form of authenticated boot known in the art to ensure that the secure VM 33 executes trusted software. Setting up the secure VM 33 (step 204) and/or other software executing within the secure VM 33 may include an authentication exchange (e.g., hash verification) with the secure server 14 or other authentication entity. In one exemplary embodiment, the secure boot may utilize a secure storage hardware component of the client system 12, such as a Trusted Platform Module (TPM) on the platform, and further utilize an integrity authentication mechanism, such as Trusted Execution Technology (TXT).
在一些实施例中,步骤206设置从安全服务器14到安全VM 33的远程管理存取。此存取可使安全服务器14(自动或由人类操作者辅助)能够将指令及命令直接发送到受保护客户端系统,例如以指示按需内省引擎42执行特定种类的取证分析或实施具体清理步骤序列。设置远程管理存取可包含例如经由安全外壳(SSH)或虚拟专用网络(VPN)协议在服务器14与安全VM 33之间设置隧道(即,点到点安全通信通道)。图5展示此示范性交换。隧道请求48可由客户端系统12或服务器14发布。请求48可包括交换协议的指示符及一组加密密匙。作为响应,通信方设置包括加密网络包并在通信方之间路由网络包的特定方式的安全隧道49。在一些实施例中,管理程序30将从安全服务器14接收到的网络包直接路由到安全VM33。In some embodiments, step 206 sets up remote management access from secure server 14 to secure VM 33. This access enables secure server 14 (automatically or with the assistance of a human operator) to send instructions and commands directly to the protected client system, for example, to instruct on-demand introspection engine 42 to perform a specific type of forensic analysis or implement a specific sequence of cleanup steps. Setting up remote management access may include setting up a tunnel (i.e., a point-to-point secure communication channel) between server 14 and secure VM 33, for example, via a secure shell (SSH) or virtual private network (VPN) protocol. FIG5 shows this exemplary exchange. Tunnel request 48 may be issued by either client system 12 or server 14. Request 48 may include an indicator of the exchange protocol and a set of encryption keys. In response, the communicating parties set up secure tunnel 49, which includes a specific method of encrypting and routing network packets between the communicating parties. In some embodiments, hypervisor 30 routes network packets received from secure server 14 directly to secure VM 33.
图6展示根据本发明的一些实施例的安全服务器14与受保护客户端系统之间的示范性数据交换。客户端系统12可发送事件指示符50来通知服务器14在客户VM 32内执行软件期间已发生了事件。事件指示符50可包含相应事件的事件类型的指示符、事件的时戳及相应客户端系统12及/或客户VM 32的标识符(客户端ID)。6 shows an exemplary data exchange between a secure server 14 and a protected client system according to some embodiments of the present invention. A client system 12 may send an event indicator 50 to notify the server 14 that an event has occurred during execution of software within a client VM 32. The event indicator 50 may include an indicator of the event type of the corresponding event, a timestamp of the event, and an identifier (client ID) of the corresponding client system 12 and/or client VM 32.
作为响应,服务器14可将分析请求52发送到客户端系统12,请求52指示按需内省引擎42在客户端系统12上执行某些取证活动。分析请求52可包含待由引擎42使用以实施数据收集/事件分析的取证工具的指示符,及/或某种其它种类的安全资源的指示符。在一些实施例中,分析请求52可响应于从另一客户端系统接收到事件指示符被发送出到客户端系统。In response, server 14 may send an analysis request 52 to client system 12, instructing on-demand introspection engine 42 to perform certain forensic activities on client system 12. Analysis request 52 may include an indicator of a forensic tool to be used by engine 42 to perform data collection/event analysis, and/or an indicator of some other type of security resource. In some embodiments, analysis request 52 may be sent out to a client system in response to receiving an event indicator from another client system.
在一些实施例中,响应于执行所请求的取证活动,按需内省引擎42将取证报告54发射到服务器14,包括54包括实施相应取证活动的结果。报告54可包含例如软件对象列表、存储器地址列表、安全列表或硬件设置列表等。In some embodiments, in response to performing the requested forensic activity, the on-demand introspection engine 42 transmits a forensic report 54 to the server 14, including the results of performing the corresponding forensic activity. The report 54 may include, for example, a list of software objects, a list of memory addresses, a security list, or a list of hardware settings.
响应于接收取证报告54,服务器14可确定相应客户端系统/客户VM是否易受特定种类的计算机安全威胁攻击,例如,可确定相应客户端系统/客户VM是否感染了恶意软件。当受到计算机安全威胁攻击时,服务器14可将安全警示56发射到相应客户端系统12。服务器14的一些实施例进一步发射消解指示符58,其包括例如清理工具的指示符或用于配置网络滤波器44的一组参数值。In response to receiving the forensic report 54, the server 14 may determine whether the corresponding client system/customer VM is vulnerable to a particular type of computer security threat, for example, whether the corresponding client system/customer VM is infected with malware. When a computer security threat is detected, the server 14 may transmit a security alert 56 to the corresponding client system 12. Some embodiments of the server 14 further transmit a mitigation indicator 58, which may include, for example, an indicator of a cleanup tool or a set of parameter values for configuring the network filter 44.
图7展示根据本发明的一些实施例的由现场内省引擎40执行的示范性步骤序列。引擎40可经配置以监听至少两种消息/通知:来自事件处置器46a到b的关于客户VM 32内发生事件的通知;及来自安全VM 33的通知(例如,来自按需内省引擎42的发信号通知引擎40当前正发生取证活动的通知)。当接收到事件通知时,在步骤226中,引擎40可执行此类事件通知的初步分析。在一些实施例中,此类初步分析具有最小计算成本以将对用户体验的影响保持为尽可能的低。例如,步骤226可使用一组相对简单的规则对事件通知进行过滤。仅某些种类的事件可被报告到安全服务器14(步骤228到230)。在一个示范性实施例中,被传送到安全服务器14的事件包含(除其它外)尝试挂钩或修补OS内核、未知模块的注入及尝试执行来自特定存储器区域的代码。当检测到的事件不属于值得报告的事件类别时,引擎40的一些实施例仿真相应事件,且随后恢复客户VM32的执行。FIG7 shows an exemplary sequence of steps performed by the live introspection engine 40 according to some embodiments of the present invention. The engine 40 may be configured to listen for at least two types of messages/notifications: notifications from event handlers 46a-b regarding events occurring within the client VM 32; and notifications from the security VM 33 (e.g., notifications from the on-demand introspection engine 42 signaling to the engine 40 that forensic activity is currently occurring). Upon receiving an event notification, the engine 40 may perform a preliminary analysis of the event notification in step 226. In some embodiments, such preliminary analysis has minimal computational cost to keep the impact on the user experience as low as possible. For example, step 226 may filter the event notifications using a relatively simple set of rules. Only certain types of events may be reported to the security server 14 (steps 228-230). In one exemplary embodiment, the events transmitted to the security server 14 include, among other things, attempts to hook or patch the OS kernel, injection of unknown modules, and attempts to execute code from specific memory regions. When the detected event does not fall into a reportable event category, some embodiments of engine 40 simulate a corresponding event and then resume execution of guest VM 32 .
当检测到的事件包括来自安全VM 33的通知时(步骤232),一些实施例可在客户端系统12的输出装置上显示警告消息,例如,以通知用户客户端系统12可能由于正在进行的取证或威胁消解活动而经历临时减速。在另一步骤236中,现场内省引擎40的一些实施例可与辅助按需内省引擎42合作以实施取证/消解活动。此合作的实例包含按需内省引擎42询问现场内省引擎40的当前状态。When the detected event includes a notification from the security VM 33 (step 232), some embodiments may display a warning message on an output device of the client system 12, for example, to inform the user that the client system 12 may experience a temporary slowdown due to ongoing forensics or threat mitigation activities. In another step 236, some embodiments of the on-site introspection engine 40 may collaborate with the auxiliary on-demand introspection engine 42 to perform forensics/mitigation activities. An example of such collaboration includes the on-demand introspection engine 42 querying the on-site introspection engine 40 for its current status.
图8展示根据本发明的一些实施例的由按需内省引擎42执行的示范性步骤序列。在步骤序列250到252中,引擎42可例如经由服务器14与安全VM 33之间建立的安全隧道49监听来自服务器14的分析请求(参见图5)。在一些实施例中,管理程序30可响应于接收到分析请求52从执行客户VM 32自动切换到执行安全VM 33及按需内省引擎42。FIG8 shows an exemplary sequence of steps performed by on-demand introspection engine 42 according to some embodiments of the present invention. In step sequence 250-252, engine 42 may listen for analysis requests from server 14 (see FIG5 ), for example, via secure tunnel 49 established between server 14 and secure VM 33. In some embodiments, hypervisor 30 may automatically switch from executing guest VM 32 to executing secure VM 33 and on-demand introspection engine 42 in response to receiving analysis request 52.
请求52可指示待用于取证活动中的一组工具及/或安全资源。例如,分析请求52可包含允许从工具存储库15选择性地检索相应工具的位置指示符(例如,存储器地址、网络路径)。在步骤256中,引擎42可通过通信网络11存取此类工具/资源。存取工具/资源可包括将相应工具/资料从工具存储库15下载到客户端系统12的本地存储装置24上(图2-A)。在优选实施例中,存取工具/资源包括按需引擎42从其远程位置安装相应工具/资源。本文中的安装是指在(由工具存储库15管控的)远程资源与安全VM 33的本地文件系统之间创建连接使得安全VM 33可经由本地文件系统存取相应资源。例如,在文件系统中,安装是经由“安装”命令实现,且所述连接包括安装点。The request 52 may indicate a set of tools and/or security resources to be used in the forensic activity. For example, the analysis request 52 may include a location indicator (e.g., a memory address, a network path) that allows the selective retrieval of the corresponding tools from the tool repository 15. In step 256, the engine 42 accesses such tools/resources via the communication network 11. Accessing the tools/resources may include downloading the corresponding tools/resources from the tool repository 15 to the local storage device 24 of the client system 12 (Figure 2-A). In a preferred embodiment, accessing the tools/resources includes the on-demand engine 42 installing the corresponding tools/resources from its remote location. Installation in this article refers to creating a connection between the remote resource (controlled by the tool repository 15) and the local file system of the security VM 33 so that the security VM 33 can access the corresponding resource via the local file system. For example, in the file system, installation is achieved via the "install" command, and the connection includes the mount point.
在一些实施例中,服务器14可经由隧道49明确指示引擎42存取及/或安装相应工具/资源。响应于存取工具/资源,在步骤序列258到260到262中,引擎42可实施所请求的取证活动,将取证报告54发送到服务器14及卸载或以其它方式丢弃相应工具/资源。在取证分析的结束时丢弃工具/资源可为有益的,这是因为:其防止恶意软件在取证分析的不同会话之间传播,且其保证客户端系统12a到c总是使用工具存储库15中可用的相应资源的最新版本。In some embodiments, the server 14 may explicitly instruct the engine 42 to access and/or install the corresponding tool/resource via the tunnel 49. In response to accessing the tool/resource, the engine 42 may perform the requested forensic activities, send the forensic report 54 to the server 14, and uninstall or otherwise discard the corresponding tool/resource in a sequence of steps 258 to 260 to 262. Discarding the tool/resource at the end of the forensic analysis may be beneficial because it prevents malware from spreading between different sessions of forensic analysis and ensures that the client systems 12a-c always use the latest version of the corresponding resource available in the tool repository 15.
图9展示根据本发明的一些实施例的由安全服务器14执行的示范性步骤序列。服务器14可经配置以监听从客户端系统12a到d接收到的通信(步骤280到282)。当此通信包括事件指示符(即,在受保护客户端系统上已发生了事件的通知)时,一些实施例记录相应事件(步骤286)及根据事件指示符50确定是否请求取证分析及请求何种分析。在一个此实例中,当事件指示符50展示已发生了代码注入时,服务器14可使用“应用成像快照”及/或存储器取证工具请求分析。在一些实施例中,某些类型的事件生成对使用多个工具及资源的复杂分析的请求。FIG9 shows an exemplary sequence of steps performed by security server 14 according to some embodiments of the present invention. Server 14 may be configured to listen for communications received from client systems 12a-d (steps 280-282). When such communications include an event indicator (i.e., a notification that an event has occurred on a protected client system), some embodiments record the corresponding event (step 286) and determine, based on event indicator 50, whether to request forensic analysis and what type of analysis to request. In one such example, when event indicator 50 indicates that code injection has occurred, server 14 may request analysis using "application imaging snapshots" and/or memory forensics tools. In some embodiments, certain types of events generate requests for complex analysis using multiple tools and resources.
可根据由当前通知指示的事件类型及/或根据对相应客户端系统/客户VM当前有效的安全策略作出决策。决策进程可因此包含针对事件历史及/或客户端专用策略查询客户端数据库17的(步骤290)。其它决策准则可包含相应客户端系统的硬件配置(例如,客户端系统12是否具有专用硬件组件,如特定种类的处理器、网络适配器等)。其它准则可包括软件方面,例如客户VM 32内执行的一种类型的操作系统及一种类型的应用程序36(网站服务器、数据库处理等)。此类决策策略依赖于已知某种软件易受特定计算机安全威胁攻击。决策过程可采用一组启发式规则、决策树或所属领域已知的任何其它方法。一种示范性实施例可使用人工神经网络,其接收数据(例如事件类型及各种策略特征值)作为输入,及输出展示是否请求取证分析的决策指示符(例如,是/否)。The decision may be made based on the type of event indicated by the current notification and/or based on the security policy currently in effect for the corresponding client system/client VM. The decision process may therefore include querying the client database 17 for event history and/or client-specific policies (step 290). Other decision criteria may include the hardware configuration of the corresponding client system (e.g., whether the client system 12 has specialized hardware components, such as a specific type of processor, network adapter, etc.). Other criteria may include software aspects, such as a type of operating system and a type of application 36 (web server, database processing, etc.) executed within the client VM 32. Such decision strategies rely on the knowledge that certain software is vulnerable to specific computer security threats. The decision process may employ a set of heuristic rules, a decision tree, or any other method known in the art. One exemplary embodiment may use an artificial neural network that receives data (e.g., event type and various policy feature values) as input and outputs a decision indicator (e.g., yes/no) indicating whether to request forensic analysis.
在一些实施例中,是否请求取证分析及/或请求何种分析的决策可进一步考虑相同客户端系统上发生的事件的历史。此类实施例允许使不同时刻发生的事件相关,且因而,可允许检测复杂恶意软件,其将恶意有效负载分布于众多软件实体之上(例如,一些动作由第一实体执行且其它动作由第一实体的子实体或由含有由第一实体注入的代码的第二实体执行)。In some embodiments, the decision of whether to request forensic analysis and/or what type of analysis to request can further take into account a history of events that occurred on the same client system. Such embodiments allow for correlation of events that occurred at different times and, thus, can allow for detection of complex malware that distributes its malicious payload across numerous software entities (e.g., some actions are performed by a first entity and other actions are performed by children of the first entity or by a second entity containing code injected by the first entity).
在一些实施例中,决策过程可考虑在与事件通知50的发送器不同的客户端系统上发生的事件的历史。在一个此实例中,服务器14可查询事件记录关于具体类型的事件最近是否已发生在其它客户端系统上的信息。此活动的突发可发信号通知在客户端系统之中散布的一波恶意软件(零日威胁)或由多个客户端系统实施的协同攻击。In some embodiments, the decision-making process may consider a history of events that occurred on client systems other than the sender of the event notification 50. In one such example, the server 14 may query the event log for information about whether a particular type of event has recently occurred on other client systems. A burst of such activity may signal a wave of malware (zero-day threats) spreading among client systems or a coordinated attack being carried out by multiple client systems.
当通知的事件授权取证分析时(步骤292),步骤294选择待由相应客户端系统使用以实施所需要的取证分析的资源及/或取证工具。可根据一组规则、决策树等作出选择。在一个实例中,响应于接收已发生了代码注入的通知,服务器14可使用“应用快照”工具请求分析。在一些实施例中,某些类型的事件生成对使用多个工具及资源的复杂分析的请求。When the notified event authorizes forensic analysis (step 292), step 294 selects resources and/or forensic tools to be used by the corresponding client system to perform the required forensic analysis. The selection may be made based on a set of rules, a decision tree, etc. In one example, in response to receiving a notification that a code injection has occurred, server 14 may request analysis using an "application snapshot" tool. In some embodiments, certain types of events generate requests for complex analysis using multiple tools and resources.
当从客户端系统12接收到的通信包括取证报告54时(步骤298),服务器14可分析相应报告(步骤300)且可使用来自相同或其它客户端系统的其它报告证实报告54,并确定客户端系统12a到c中的任何者是否易受计算机安全威胁攻击(例如,可能处于恶意实体的攻击下)。当确定客户端系统12a到c中的任何者易受计算机安全威胁攻击时,服务器14可发送警告到管理员及/或发送安全警示56到受影响客户端系统。在另一步骤306中,服务器14可例如经由安全隧道49发送消解指示符58到相应客户端系统。消解指示符58可包含命令、指令及/或一组清理工具的指示符。When the communication received from the client system 12 includes a forensic report 54 (step 298), the server 14 may analyze the corresponding report (step 300) and may corroborate the report 54 with other reports from the same or other client systems and determine whether any of the client systems 12a-c are vulnerable to a computer security threat (e.g., may be under attack by a malicious entity). When it is determined that any of the client systems 12a-c are vulnerable to a computer security threat, the server 14 may send a warning to an administrator and/or send a security alert 56 to the affected client system. In another step 306, the server 14 may send a mitigation indicator 58 to the corresponding client system, for example, via the secure tunnel 49. The mitigation indicator 58 may include commands, instructions, and/or an indicator of a set of cleanup tools.
在上文(图7到8到9)描述的示范性实施例中,关于是否请求取证分析及/或请求何类型的分析的决策是由安全服务器14作出。在替代实施例中,按需内省引擎42例如经由由管理程序30管理的进程间通信机构直接从现场内省引擎40接收分析请求52及事件指示符50。接着,按需内省引擎42可根据事件指示符50及/或其它准则选择要使用的一组取证工具/资源,如上文描述。在此类实施例中,存取(例如,安装)相应资源的决策因此是在受保护客户端系统处作出。In the exemplary embodiment described above (Figures 7-8-9), the decision as to whether to request forensic analysis and/or what type of analysis to request is made by the security server 14. In an alternative embodiment, the on-demand introspection engine 42 receives the analysis request 52 and the event indicator 50 directly from the live introspection engine 40, for example, via an inter-process communication mechanism managed by the hypervisor 30. The on-demand introspection engine 42 can then select a set of forensic tools/resources to use based on the event indicator 50 and/or other criteria, as described above. In such an embodiment, the decision to access (e.g., install) the corresponding resources is therefore made at the protected client system.
本发明的一些实施例通过采用网络滤波器44调节客户端系统12与安全服务器14之间或客户端系统12与连接到通信网络11的其它实体之间的通信进一步加强计算机安全。在一个实例中,安全VM 33可经配置以具有对客户端系统12的网络适配器26的排他性使用。接着,管理程序30可经由安全VM 33的网络滤波器44将所有通信路由到客户VM 32/从客户VM 32路由所有通信。在一些实施例中,当服务器14确定客户端系统12易受恶意实体攻击或可能处于恶意实体攻击下时,服务器14可指示网络滤波器44阻断到客户VM 32/来自客户VM32的所有通信,以防止客户VM 32通过本地网络连接到其它客户端系统,或防止客户VM 32访问因特网。在替代实施例中,网络滤波器44可在按需内省引擎42执行取证活动时阻断或以其它方式调节客户VM 32与另一实体之间的通信。Some embodiments of the present invention further enhance computer security by employing network filters 44 to regulate communications between client system 12 and security server 14, or between client system 12 and other entities connected to communications network 11. In one example, security VM 33 can be configured to have exclusive use of client system 12's network adapter 26. Hypervisor 30 can then route all communications to/from guest VM 32 via security VM 33's network filters 44. In some embodiments, when server 14 determines that client system 12 is vulnerable to or may be under attack by a malicious entity, server 14 can instruct network filters 44 to block all communications to/from guest VM 32, thereby preventing guest VM 32 from connecting to other client systems over the local network or accessing the Internet. In alternative embodiments, network filters 44 can block or otherwise regulate communications between guest VM 32 and another entity while on-demand introspection engine 42 is performing forensic activities.
本发明的一些实施例允许使相对大数目的客户端系统(例如,企业网络)免受计算机安全威胁,例如恶意软件、间谍软件、广告软件及未授权入侵。一些实施例可进一步允许从中央点容易且可信地管理安全,例如,从与受保护客户端系统通信地耦合的安全服务器。此集中化可对云计算应用尤其有利,例如网站服务器农业及虚拟桌面基础设施管理,其中数百个虚拟机可同时在单个硬件平台上操作。Some embodiments of the present invention allow a relatively large number of client systems (e.g., an enterprise network) to be protected from computer security threats such as malware, spyware, adware, and unauthorized intrusions. Some embodiments may further allow security to be easily and reliably managed from a central point, such as from a secure server communicatively coupled to the protected client systems. This centralization may be particularly advantageous for cloud computing applications, such as web server farming and virtual desktop infrastructure management, where hundreds of virtual machines may be operating simultaneously on a single hardware platform.
在一些实施例中,每一受保护客户端操作现场内省引擎及按需内省引擎。现场内省引擎检测暴露于相应客户端系统上的受保护虚拟机内某些事件的发生且将所述发生传送到远程安全服务器。服务器又可根据所报告事件的事件类型及/或根据相应客户端的硬件及/或软件特殊性从工具存储库选择取证工具。按需内省引擎可检索取证工具且执行所述取证工具以执行事件的取证分析(例如,揭露相应事件的上下文)。接着,取证分析的结果可被传送到安全服务器,所述安全服务器可使用所述信息确定相应客户端是否处于恶意软件或入侵者的攻击下。In some embodiments, each protected client operates an on-site introspection engine and an on-demand introspection engine. The on-site introspection engine detects the occurrence of certain events within a protected virtual machine exposed on the corresponding client system and transmits the occurrence to a remote security server. The server can, in turn, select a forensic tool from a tool repository based on the event type of the reported event and/or based on the hardware and/or software specificities of the corresponding client. The on-demand introspection engine can retrieve the forensic tool and execute the forensic tool to perform a forensic analysis of the event (e.g., to reveal the context of the corresponding event). The results of the forensic analysis can then be transmitted to the security server, which can use the information to determine whether the corresponding client is under attack by malware or an intruder.
本发明的一些实施例依赖于以下洞察:用于保护大量客户端的典型的计算机安全解决方案对攻击的响应并不好。即使在现存解决方案能够检测攻击时,分析及补救也可能需要对受影响客户端系统派遣人类操作者,尤其是在复杂威胁的情况中,例如勒索软件及恶意入侵。相比之下,在本发明的一些实施例中,定制数据收集/事实查明(取证分析)及威胁消解(例如,恶意软件清理)在安全服务器的直接指导下在客户端机器上自动执行。本发明的一个示范性实施例在受保护客户端与安全服务器之间建立安全点到点通信通道,其允许人类操作者远程配置相应客户端,且甚至从远程终端对相应客户端进行取证/清理操作。Some embodiments of the present invention rely on the insight that typical computer security solutions used to protect large numbers of clients do not respond well to attacks. Even when existing solutions are able to detect an attack, analysis and remediation may require dispatching human operators to the affected client systems, especially in the case of complex threats such as ransomware and malicious intrusions. In contrast, in some embodiments of the present invention, customized data collection/fact-finding (forensic analysis) and threat mitigation (e.g., malware cleanup) are automatically performed on the client machine under the direct guidance of a security server. One exemplary embodiment of the present invention establishes a secure point-to-point communication channel between a protected client and a security server, which allows a human operator to remotely configure the respective client and even perform forensic/cleanup operations on the respective client from a remote terminal.
通过从多个客户端聚合事件检测及取证分析结果,一些实施例可允许快速检测先前未知恶意软件(在所属领域中称为零日攻击)。常规服务器侧威胁检测通常需要大量服务器侧计算能力。与典型的客户端服务器检测场景相比,在本发明的一些实施例中,一些昂贵的安全相关操作(例如事件过滤及取证分析)由客户端系统本身实施。一些实施例因此使用多个客户端机器的分布式计算能力执行一些昂贵的威胁检测及分析操作,代替将多数计算负担转移到安全服务器。By aggregating event detection and forensic analysis results from multiple clients, some embodiments can enable rapid detection of previously unknown malware (referred to in the art as zero-day attacks). Conventional server-side threat detection typically requires significant server-side computing power. In contrast to typical client-server detection scenarios, in some embodiments of the present invention, some expensive security-related operations (such as event filtering and forensic analysis) are performed by the client system itself. Some embodiments thus utilize the distributed computing power of multiple client machines to perform some expensive threat detection and analysis operations, instead of shifting most of the computational burden to a security server.
本发明的一些实施例进一步依赖于以下观察:计算机系统中发生的并非所有事件都内在地通知或指示计算机安全威胁。相同类型的事件(例如,存取URL、打开磁盘文件等)可在一些场景中指示恶意,而在其它场景中是完全良性的。在一个此实例中,事件在被隔离时可能不指示恶意,但当其作为具体事件序列的部分发生时可指示为恶意软件。例如,写入到磁盘文件在被隔离时可为良性操作(即,一批进程及应用程序合法地存取磁盘)。然而,写入事件在执行写入的实体是从另一实体注入的代码的接收方时可为可疑的。在本发明的一些实施例中,现场内省引擎根据各种准则预先过滤检测到的事件,且仅将此类事件的所选择的子集报告到安全服务器。此策略进一步减少强加于服务器的计算负担。Some embodiments of the present invention further rely on the observation that not all events occurring in a computer system inherently signal or indicate a computer security threat. The same type of event (e.g., accessing a URL, opening a disk file, etc.) may indicate malicious intent in some scenarios while being completely benign in other scenarios. In one such example, an event may not indicate malicious intent when isolated, but may indicate malware when it occurs as part of a specific sequence of events. For example, writing to a disk file may be a benign operation when isolated (i.e., a group of processes and applications legitimately access the disk). However, a write event may be suspicious when the entity performing the write is the recipient of code injected from another entity. In some embodiments of the present invention, a field introspection engine pre-filters detected events based on various criteria and reports only a selected subset of such events to the security server. This strategy further reduces the computational burden imposed on the server.
在常规计算机安全应用中,客户端侧安全工具(例如,反恶意软件例程、特征数据库等)驻存于客户端计算机系统上,且通过周期性软件更新保持最新。相比之下,在本发明的一些实施例中,安全工具保持在集中式存储库中(例如,企业网络上的专用服务器)。客户端系统在由安全服务器指示时可按需检索仅需要的工具,从而消除对大量软件更新及耗时网络管理的需要。在优选实施例中,客户端系统通过将远程集中式工具存储库安装到客户端的文件系统上远程地存取安全工具。In conventional computer security applications, client-side security tools (e.g., anti-malware routines, signature databases, etc.) reside on client computer systems and are kept up to date through periodic software updates. In contrast, in some embodiments of the present invention, security tools are maintained in a centralized repository (e.g., a dedicated server on an enterprise network). Client systems can retrieve only the required tools on demand when directed by the security server, eliminating the need for extensive software updates and time-consuming network management. In a preferred embodiment, client systems access security tools remotely by mounting a remote centralized tool repository on the client's file system.
将大多数安全工具保持在中央存储库中(与受保护客户端或安全服务器形成对照)保证客户端可以利用相应安全工具的最近版本。此类配置的另一显著优点是其允许客户端侧及服务器侧软件比在常规安全系统中显著更小。此类轻型组件(例如,管理程序30、现场及按需内省引擎40到42)易于开发、维护及部署到客户端。其还比包含取证及/或威胁消解工具的一体化安全解决方案需要更少的更新。另外,轻型组件将相对较小的受攻击面暴露到恶意软件及黑客。Keeping most security tools in a central repository (as opposed to protected clients or security servers) ensures that clients can utilize the latest versions of the corresponding security tools. Another significant advantage of this type of configuration is that it allows the client-side and server-side software to be significantly smaller than in conventional security systems. Such lightweight components (e.g., hypervisor 30, field and on-demand introspection engines 40-42) are easy to develop, maintain, and deploy to clients. They also require fewer updates than all-in-one security solutions that include forensics and/or threat mitigation tools. In addition, lightweight components expose a relatively small attack surface to malware and hackers.
所属领域的技术人员应清楚,可在不背离本发明的范围的情况下,更改上述实施例。因此,本发明的范围应由所附权利要求书及其合法等效物确定。It will be apparent to those skilled in the art that the above embodiments may be modified without departing from the scope of the present invention. Therefore, the scope of the present invention should be determined by the appended claims and their legal equivalents.
Claims (25)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| US201562269952P | 2015-12-19 | 2015-12-19 | |
| US62/269,952 | 2015-12-19 | ||
| PCT/EP2016/081697 WO2017103254A1 (en) | 2015-12-19 | 2016-12-19 | Dual memory introspection for securing multiple network endpoints | 
Publications (2)
| Publication Number | Publication Date | 
|---|---|
| HK1254985A1 HK1254985A1 (en) | 2019-08-02 | 
| HK1254985B true HK1254985B (en) | 2022-06-10 | 
Family
ID=
Similar Documents
| Publication | Publication Date | Title | 
|---|---|---|
| CA3006003C (en) | Dual memory introspection for securing multiple network endpoints | |
| US12192170B2 (en) | System and method for implementing content and network security inside a chip | |
| US11870811B2 (en) | Trusted execution security policy platform | |
| US20250175475A1 (en) | Detecting kernel exploits | |
| KR102419574B1 (en) | Systems and methods for correcting memory corruption in computer applications | |
| US8910238B2 (en) | Hypervisor-based enterprise endpoint protection | |
| AU2014330136B2 (en) | Complex scoring for malware detection | |
| US10826933B1 (en) | Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints | |
| RU2667598C1 (en) | Control of the presence of the agent for self-restoring | |
| CN109074450A (en) | Threat defense techniques | |
| US12292966B2 (en) | Systems and methods for folder and file sequestration | |
| HK1254985B (en) | Dual memory introspection for securing multiple network endpoints | |
| US20240086538A1 (en) | Computer investigation method and system for investigating authentication in remote host computers | |
| Friesen | PLOX: A Secure Serverless Framework for the Smart Home | |
| WO2025189909A1 (en) | Application processing method and apparatus, and attack defense system | |
| CN120781341A (en) | Running processing method and related device of application process | |
| RU2583709C2 (en) | System and method for elimination of consequences of infection of virtual machines | |
| HK1219790B (en) | Systems and methods for using a reputation indicator to facilitate malware scanning |