[go: up one dir, main page]

HK40049002B - Systems and methods for behavioral threat detection - Google Patents

Systems and methods for behavioral threat detection Download PDF

Info

Publication number
HK40049002B
HK40049002B HK62021038679.8A HK62021038679A HK40049002B HK 40049002 B HK40049002 B HK 40049002B HK 62021038679 A HK62021038679 A HK 62021038679A HK 40049002 B HK40049002 B HK 40049002B
Authority
HK
Hong Kong
Prior art keywords
event
client
events
cluster
sequence
Prior art date
Application number
HK62021038679.8A
Other languages
Chinese (zh)
Other versions
HK40049002A (en
Inventor
D‧迪基乌
S‧尼古拉
E‧A‧博辛恰努
S‧N‧扎姆菲尔
A‧丁库
A‧A‧阿波斯托阿耶
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
Application filed by 比特梵德知识产权管理有限公司 filed Critical 比特梵德知识产权管理有限公司
Publication of HK40049002A publication Critical patent/HK40049002A/en
Publication of HK40049002B publication Critical patent/HK40049002B/en

Links

Description

用于行为威胁检测的系统及方法Systems and methods for behavioral threat detection

背景技术Background Technology

本发明涉及计算机安全系统及方法,且特定来说,涉及用于检测恶意软件及/或对计算机系统及/或通信网络的入侵的系统及方法。This invention relates to computer security systems and methods, and more particularly, to systems and methods for detecting malware and/or intrusions into computer systems and/or communication networks.

近年来,计算机及网络安全对个人及公司两者来说都变得越来越重要。电子通信技术的快速发展,在日常活动中对软件日益增加的依赖性,及物联网的出现使公司及个人容易失去隐私及遭受数据盗窃。In recent years, computer and cybersecurity have become increasingly important for both individuals and companies. The rapid development of electronic communication technologies, the increasing reliance on software in daily activities, and the emergence of the Internet of Things have made companies and individuals vulnerable to privacy breaches and data theft.

熟练的攻击者可尝试使用各种技术(例如,通过恶意软件安装在公司计算机上的后门)渗透到公司网络中。接着,攻击者可获得、修改、或破坏敏感信息。其它示范性攻击尤其包含停用物理安全系统(例如防窃警报器)或以其它方式使所述物理安全系统失去能力、安装间谍软件、及干扰控制商品及服务的制造或分配的自动化系统(例如电力网)。Skilled attackers can use various techniques (such as installing backdoors on company computers with malware) to infiltrate a company network. They can then obtain, modify, or destroy sensitive information. Other exemplary attacks include disabling or otherwise incapacitating physical security systems (such as burglar alarms), installing spyware, and interfering with automated systems that control the manufacture or distribution of goods and services (such as power grids).

在计算机系统上执行的软件可用于自动检测及/或防止未授权入侵及其它恶意活动。通常称为入侵检测系统(IDS)的此软件可监测网络及/或计算机活动的异常事件或策略违规。典型的IDS记录与观测到的事件相关的信息、通知用户或网络管理员、且产生报告。一些IDS可例如通过响应于检测到入侵而改变安全设置(例如,重新配置防火墙)进一步防止入侵者执行恶意活动。Software running on a computer system can be used to automatically detect and/or prevent unauthorized intrusions and other malicious activities. This software, often called an Intrusion Detection System (IDS), monitors for anomalous events or policy violations in network and/or computer activity. A typical IDS logs information related to observed events, notifies users or network administrators, and generates reports. Some IDS can further prevent intruders from carrying out malicious activities, for example, by changing security settings in response to an intrusion detection (e.g., reconfiguring the firewall).

然而,随着软件服务的逐步非定域化及在信息网络上流动的数据量的增加,使安全软件筛选此大量信息以找到恶意活动的指示符变得越来越不切实际。因此,开发更稳健且可扩展的入侵检测系统及方法引起了人们的极大兴趣。However, with the increasing delocalization of software services and the growing volume of data flowing across information networks, it has become increasingly impractical for security software to sift through this vast amount of information to find indicators of malicious activity. Therefore, the development of more robust and scalable intrusion detection systems and methods has generated considerable interest.

发明内容Summary of the Invention

根据一个方面,一种计算机系统包括至少一个硬件处理器,其经配置以:响应于接收到指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,所述所选择的客户端集群包括多个客户端系统。所述至少一个硬件处理器进一步经配置以:响应于选择所述客户端集群,根据所选择的事件是否已经发生于所述所选择的客户端集群的成员上从事件集合选择事件的训练语料库。所述至少一个硬件处理器进一步经配置以:响应于选择事件的所述训练语料库,根据事件的所述训练语料库训练行为模型以编码所述所选择的客户端集群的成员的集体行为,所述行为模型具有一组可调整参数。所述至少一个硬件处理器进一步经配置以:响应于训练所述行为模型,将所述可调整参数的一组值发射到异常检测器,所述异常检测器经配置以确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。所述行为模型经配置以输入事件序列的所选择的事件且作为响应确定指示所述事件序列的另一事件具有所选择的事件类型的可能性的预测指示符。所述事件序列包括所述训练语料库的多个事件,所述多个事件根据所述多个事件中的每一事件的发生时间进行排序。训练所述行为模型包括根据所述预测指示符调整所述一组可配置参数。According to one aspect, a computer system includes at least one hardware processor configured to: in response to receiving a cluster membership indicator indicating a group of multiple client systems into multiple client clusters, select a client cluster from the multiple client clusters, the selected client cluster comprising the multiple client systems. The at least one hardware processor is further configured to: in response to selecting the client cluster, select a training corpus of events from an event set based on whether the selected event has occurred on a member of the selected client cluster. The at least one hardware processor is further configured to: in response to selecting the training corpus of events, train a behavioral model based on the training corpus of events to encode collective behavior of the members of the selected client cluster, the behavioral model having a set of adjustable parameters. The at least one hardware processor is further configured to: in response to training the behavioral model, emit a set of values of the adjustable parameters to an anomaly detector configured to determine whether a target event occurring on a target client system indicates a computer security threat. The behavioral model is configured to input the selected events of an event sequence and, in response, determine a prediction indicator indicating the probability that another event in the event sequence has the selected event type. The event sequence includes multiple events from the training corpus, which are ordered according to the occurrence time of each event. Training the behavior model includes adjusting the set of configurable parameters based on the prediction indicator.

根据另一方面,一种计算机实施方法包括:采用计算机系统的至少一个硬件处理器,响应于接收到指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,所述所选择的客户端集群包括多个客户端系统。所述方法进一步包括:响应于选择所述客户端集群,采用所述计算机系统的至少一个硬件处理器根据所选择的事件是否已经发生于所述所选择的客户端集群的成员上从事件集合选择事件的训练语料库。所述方法进一步包括:响应于选择事件的所述训练语料库,采用所述计算机系统的至少一个硬件处理器根据事件的所述训练语料库训练行为模型以编码所述所选择的客户端集群的成员的集体行为,所述行为模型具有一组可调整参数。所述方法进一步包括:响应于训练所述行为模型,采用所述计算机系统的至少一个硬件处理器将所述可调整参数的一组值发射到异常检测器,所述异常检测器经配置以确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。所述行为模型经配置以输入事件序列的所选择的事件且作为响应确定指示所述事件序列的另一事件具有所选择的事件类型的可能性的预测指示符。所述事件序列包括所述训练语料库的多个事件,所述多个事件根据所述多个事件中的每一事件的发生时间进行排序。训练所述行为模型包括根据所述预测指示符调整所述一组可配置参数。According to another aspect, a computer implementation method includes: employing at least one hardware processor of a computer system, in response to receiving a cluster membership indicator indicating a grouping of multiple client systems into multiple client clusters, selecting a client cluster from the multiple client clusters, the selected client cluster comprising multiple client systems. The method further includes: in response to selecting the client cluster, employing at least one hardware processor of the computer system to select a training corpus of events from an event set based on whether a selected event has occurred on a member of the selected client cluster. The method further includes: in response to selecting the training corpus of events, employing at least one hardware processor of the computer system to train a behavioral model based on the training corpus of events to encode collective behavior of members of the selected client cluster, the behavioral model having a set of adjustable parameters. The method further includes: in response to training the behavioral model, employing at least one hardware processor of the computer system to emit a set of values of the adjustable parameters to an anomaly detector, the anomaly detector being configured to determine whether a target event occurring on a target client system indicates a computer security threat. The behavioral model is configured to input the selected events of an event sequence and, in response, determine a predictive indicator indicating the probability that another event in the event sequence has the selected event type. The event sequence includes multiple events from the training corpus, which are ordered according to the occurrence time of each event. Training the behavior model includes adjusting the set of configurable parameters based on the prediction indicator.

根据另一方面,一种存储指令的非暂时性计算机可读媒体,所述指令在由计算机系统的至少一个硬件处理器执行时致使所述计算机系统进行以下操作:响应于接收到指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,所述所选择的客户端集群包括多个客户端系统。所述指令进一步致使所述计算机系统响应于选择所述客户端集群,根据所选择的事件是否已经发生于所述所选择的客户端集群的成员上从事件集合选择事件的训练语料库。所述指令进一步致使所述计算机系统响应于选择事件的所述训练语料库,根据事件的所述训练语料库训练行为模型以编码所述所选择的客户端集群的成员的集体行为,所述行为模型具有一组可调整参数。所述指令进一步致使所述计算机系统响应于训练所述行为模型,将所述可调整参数的一组值发射到异常检测器,所述异常检测器经配置以确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。所述行为模型经配置以输入事件序列的所选择的事件且作为响应确定指示所述事件序列的另一事件具有所选择的事件类型的可能性的预测指示符。所述事件序列包括所述训练语料库的多个事件,所述多个事件根据所述多个事件中的每一事件的发生时间进行排序。训练所述行为模型包括根据所述预测指示符调整所述一组可配置参数。According to another aspect, a non-transitory computer-readable medium storing instructions, which, when executed by at least one hardware processor of a computer system, cause the computer system to: in response to receiving a cluster membership indicator indicating a grouping of multiple client systems into multiple client clusters, select a client cluster from the multiple client clusters, the selected client cluster comprising multiple client systems. The instructions further cause the computer system, in response to selecting the client cluster, to select a training corpus of events from an event set based on whether an event has occurred on a member of the selected client cluster. The instructions further cause the computer system, in response to selecting the training corpus of events, to train a behavioral model based on the training corpus of events to encode the collective behavior of the members of the selected client cluster, the behavioral model having a set of adjustable parameters. The instructions further cause the computer system, in response to training the behavioral model, to emit a set of values of the adjustable parameters to an anomaly detector configured to determine whether a target event occurring on a target client system indicates a computer security threat. The behavioral model is configured to take the selected events of an event sequence as input and, in response, determine a prediction indicator indicating the probability that another event in the event sequence has the selected event type. The event sequence includes multiple events from the training corpus, which are ordered according to the occurrence time of each event. Training the behavior model includes adjusting the set of configurable parameters based on the prediction indicator.

附图说明Attached Figure Description

在阅读了以下详细描述且在参考了图式之后,将更好地理解本发明的前述方面及优点,其中:The foregoing aspects and advantages of the invention will be better understood after reading the following detailed description and referring to the drawings, wherein:

图1展示根据本发明的一些实施例的若干示范性互连客户端系统,其中安全服务器充当入侵检测系统。Figure 1 illustrates several exemplary interconnected client systems according to some embodiments of the present invention, wherein a security server acts as an intrusion detection system.

图2展示根据本发明的一些实施例的经实施以保护客户端系统的示范性数据交换。Figure 2 illustrates an exemplary data exchange implemented according to some embodiments of the present invention to protect a client system.

图3-A说明根据本发明的一些实施例的客户端系统的示范性硬件配置。Figure 3-A illustrates an exemplary hardware configuration of a client system according to some embodiments of the present invention.

图3-B说明根据本发明的一些实施例的安全服务器的示范性硬件配置。Figure 3-B illustrates an exemplary hardware configuration of a security server according to some embodiments of the present invention.

图4展示根据本发明的一些实施例的在受保护的客户端系统上执行的示范性软件组件。Figure 4 illustrates exemplary software components executed on a protected client system according to some embodiments of the present invention.

图5展示根据本发明的一些实施例的安全服务器的示范性软件架构。Figure 5 illustrates an exemplary software architecture of a security server according to some embodiments of the present invention.

图6说明根据本发明的一些实施例的分析引擎的示范性操作。Figure 6 illustrates exemplary operation of the analysis engine according to some embodiments of the present invention.

图7展示根据本发明的一些实施例的由分析引擎实施的示范性步骤序列。Figure 7 illustrates an exemplary sequence of steps implemented by an analysis engine according to some embodiments of the present invention.

图8-A展示根据本发明的一些实施例的事件编码器的示范性训练。Figure 8-A illustrates exemplary training of an event encoder according to some embodiments of the present invention.

图8-B展示根据本发明的一些实施例的事件编码器的替代示范性训练。Figure 8-B illustrates alternative exemplary training of an event encoder according to some embodiments of the present invention.

图9展示经执行以训练呈图8-A的配置的事件解码器的示范性步骤序列。Figure 9 shows an exemplary sequence of steps performed to train the event decoder configured as shown in Figure 8-A.

图10说明根据本发明的一些实施例的示范性事件嵌入空间及一组示范性事件集群。Figure 10 illustrates an exemplary event embedding space and a set of exemplary event clusters according to some embodiments of the present invention.

图11说明根据本发明的一些实施例的示范性客户端配置文件空间及一组客户端集群。Figure 11 illustrates an exemplary client configuration file space and a group of clients according to some embodiments of the present invention.

图12展示根据本发明的一些实施例的客户端系统的示范性事件配置文件。Figure 12 shows an exemplary event configuration file of a client system according to some embodiments of the present invention.

图13展示根据本发明的一些实施例的异常检测器的示范性组件及操作。Figure 13 illustrates exemplary components and operation of an anomaly detector according to some embodiments of the present invention.

图14说明根据本发明的一些实施例的在训练期间由异常检测器执行的示范性步骤序列。Figure 14 illustrates an exemplary sequence of steps performed by an anomaly detector during training, according to some embodiments of the present invention.

图15展示根据本发明的一些实施例的形成异常检测器的部分的行为模型的示范性组件。Figure 15 illustrates exemplary components of a behavioral model for forming an anomaly detector according to some embodiments of the present invention.

图16说明根据本发明的一些实施例的由经训练异常检测器执行的示范性步骤序列。Figure 16 illustrates an exemplary sequence of steps performed by a trained anomaly detector according to some embodiments of the present invention.

图17-A展示包括采用本发明的一些实施例检测实际计算机安全威胁的实验的结果。Figure 17-A shows the results of experiments that included detecting real-world computer security threats using some embodiments of the present invention.

图17-B展示使用一些实施例检测实际计算机安全威胁的其它实验结果。Figure 17-B shows other experimental results of detecting real-world computer security threats using some of the embodiments.

具体实施方式Detailed Implementation

在以下描述中,应理解,结构之间的所有所引述的连接可为直接有效连接或通过中间结构的间接有效连接。一组元件包含一或多个元件。应理解,对元件的任何引述涉及至少一个元件。多个元件包含至少两个元件。除非另外指定,否则“或”的任何使用是指非排他或。除非另外需要,否则所描述的任何方法步骤都无需必定以所说明的特定顺序执行。从第二元素导出的第一元素(例如数据)涵盖等于第二元素的第一元素,还涵盖通过处理第二元素产生的第一元素及任选的其它数据。根据参数作出确定或决策涵盖根据参数且任选地根据其它数据作出确定或决策。除非另外指定,否则一些数量/数据的指示符可为数量/数据本身、或不同于数量/数据本身的指示符。计算机程序是实施任务的处理器指令序列。本发明的一些实施例中描述的计算机程序可为其它计算机程序的独立软件实体或子实体(例如子例程、库)。除非另外指定,否则计算机安全涵盖使设备及数据免受非法存取、修改、及/或破坏。计算机可读媒体涵盖非暂时性媒体(例如磁性、光学、及半导体存储媒体(例如硬盘驱动器、光盘、快闪存储器、DRAM)),还涵盖通信链路(例如导电电缆及光纤链路)。根据一些实施例,本发明尤其提供包括经编程以执行本文中描述的方法的硬件(例如一或多个处理器)、以及编码用于执行本文中描述的方法的指令的计算机可读媒体的计算机系统。In the following description, it should be understood that all referenced connections between structures may be direct or indirect connections via intermediate structures. A group of elements comprises one or more elements. It should be understood that any reference to an element refers to at least one element. Multiple elements comprise at least two elements. Unless otherwise specified, any use of "or" means non-exclusive or. Unless otherwise required, any method steps described need not necessarily be performed in the specific order stated. A first element derived from a second element (e.g., data) encompasses the first element equal to the second element, and also encompasses the first element generated by processing the second element and optional other data. Making a determination or decision based on parameters encompasses making a determination or decision based on parameters and optionally other data. Unless otherwise specified, some quantity/data indicators may be the quantity/data itself, or indicators different from the quantity/data itself. A computer program is a sequence of processor instructions that performs a task. The computer program described in some embodiments of the invention may be a separate software entity or sub-entity (e.g., subroutine, library) of other computer programs. Unless otherwise specified, computer security encompasses protecting devices and data from unauthorized access, modification, and/or destruction. Computer-readable media encompasses non-transitory media (e.g., magnetic, optical, and semiconductor storage media (e.g., hard disk drives, optical discs, flash memory, DRAM)) and communication links (e.g., conductive cables and fiber optic links). According to some embodiments, the present invention particularly provides a computer system comprising hardware (e.g., one or more processors) programmed to perform the methods described herein, and computer-readable media encoded with 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展示根据本发明的一些实施例的被保护而免受计算机安全威胁的一组示范性客户端系统10a到h。客户端系统10a到h一般表示具有处理器、存储器、及通信接口的任何电子装置。示范性客户端系统10a到h包含个人计算机、膝上型计算机、平板计算机、移动电信装置(例如智能电话)、媒体播放器、TV、游戏机、家用电器(例如冰箱、智能加热及/或照明系统)、及穿戴式装置(例如智能手表、健身器材)等。客户端系统10a到h可执行各种软件,例如文档处理、游戏、电子信息收发、及社交媒体应用程序等。一些客户端可与远程内容服务器17交换信息,例如因特网浏览。Figure 1 illustrates a set of exemplary client systems 10a to h protected from computer security threats according to some embodiments of the present invention. Client systems 10a to h generally represent any electronic device having a processor, memory, and a communication interface. Exemplary client systems 10a to h include personal computers, laptop computers, tablet computers, mobile telecommunications devices (e.g., smartphones), media players, TVs, game consoles, home appliances (e.g., refrigerators, smart heating and/or lighting systems), and wearable devices (e.g., smartwatches, fitness equipment), etc. Client systems 10a to h can execute various software, such as document processing, games, electronic messaging, and social media applications. Some clients can exchange information with a remote content server 17, such as for internet browsing.

所说明的客户端系统通过本地网络12a到b连接,且进一步经连接到扩展网络14,例如广域网(WAN)或因特网。在一个实例中,客户端系统10a到d表示通过家用网络12a互连的家庭电子装置。同时,客户端系统10e到g可标示办公大楼内部的个人计算机及/或企业大型机。接着,本地网络12a到b可表示企业网络(例如局域网-LAN)的区段。The client systems described are connected via local networks 12a to 12b and further connected to an extended network 14, such as a wide area network (WAN) or the Internet. In one example, client systems 10a to 10d represent home electronic devices interconnected via home network 12a. Meanwhile, client systems 10e to 10g may identify personal computers and/or enterprise mainframes within an office building. Next, local networks 12a to 12b may represent segments of an enterprise network (e.g., a local area network - LAN).

路由器包括实现多个客户端系统之间的通信及/或相应客户端到扩展网络14的接入的电子设备。在图1的实例中,路由器15a到b互连本地网络12a到b上的客户端及/或使客户端10a到g能接入因特网。路由器15a到b可分别充当本地网络12a到b与扩展网络14之间的网关且可进一步将一组网络服务提供到客户端系统10a到g。此类服务包含例如将网络配置参数分配到客户端系统10a到g(例如经由动态主机配置协议-DHCP指派网络地址)、及通过一系列网络节点路由通信。一些客户端系统(例如示范性客户端系统10h)可例如经由电信中继器直接连接到扩展网络14。The router includes electronic devices that enable communication between multiple client systems and/or access to the extended network 14 for each client. In the example of Figure 1, routers 15a to 15b interconnect clients on local networks 12a to 12b and/or enable clients 10a to 10g to access the Internet. Routers 15a to 15b may act as gateways between local networks 12a to 12b and the extended network 14, and may further provide a set of network services to client systems 10a to 10g. Such services include, for example, assigning network configuration parameters to client systems 10a to 10g (e.g., assigning network addresses via Dynamic Host Configuration Protocol - DHCP) and routing communication through a series of network nodes. Some client systems (e.g., exemplary client system 10h) may be directly connected to the extended network 14, for example, via a telecommunications repeater.

图1进一步展示连接到扩展网络14的安全服务器16。服务器16一般表示可或可不彼此物理接近的一组通信耦合的计算机系统。服务器16保护客户端系统10a到h使其免受计算机安全威胁,例如恶意软件及入侵。在一些实施例中,此保护包括安全服务器16检测在客户端系统处发生的可疑活动,例如攻击者控制相应客户端系统的动作。Figure 1 further illustrates a security server 16 connected to the extended network 14. Server 16 generally represents a group of communicationally coupled computer systems that may or may not be physically close to each other. Server 16 protects client systems 10a to h from computer security threats, such as malware and intrusions. In some embodiments, this protection includes the security server 16 detecting suspicious activity occurring at the client systems, such as actions by an attacker controlling the respective client systems.

安全服务器16与客户端系统10之间的示范性数据交换在图2中说明。客户端系统10可表示图1中的任何客户端10a到h。在一些实施例中,服务器16经配置以从客户端系统10接收事件指示符20a,指示符20a指示在客户端10上执行软件期间发生特定类型的事件。此类事件的实例包含进程/线程的发起(例如,用户发起应用程序、父进程创建子进程等)、试图存取相应客户端系统的输入装置(例如相机、麦克风)、试图存取本地或远程网络资源(例如存取特定URL的超文本传输协议-HTTP请求、试图通过本地网络存取文档存储库)、以特定统一资源标识符方案制定的请求(例如mailto:或ftp:请求)、特定处理器指令(例如系统调用)的执行、试图加载库(例如动态链接库-DLL)、试图创建新的磁盘文件、试图从磁盘上的特定位置进行读取或写入到磁盘上的特定位置(例如试图盖写现存文件、试图打开特定文件夹或文档)、及试图发送电子消息(例如电子邮件、短消息服务-SMS等)等。在一些实施例中,非活动周期,即事件之间的时间间隙及/或当相应客户端系统空闲、不登记用户活动、或仅实施内部系统任务时的时间间隔也算作事件且可经由事件指示符向安全服务器报告。此类非活动周期可进一步被分化为短时间间隙(例如,大约几秒)及长时间间隙(例如,大约几分钟到几个小时)。检测到的事件可指示或可不指示恶意本身;一些事件可在与其它事件一起发生时及/或在以特定顺序发生时为指示为恶意的。其它事件可在其在一天当中的特定时间发生或以异常频率发生时为恶意的,例如在几秒间隔内从特定磁盘文件夹连续读取1000次。An exemplary data exchange between the security server 16 and the client system 10 is illustrated in Figure 2. The client system 10 may represent any of the clients 10a to h in Figure 1. In some embodiments, the server 16 is configured to receive an event indicator 20a from the client system 10, which indicates that a specific type of event occurred during the execution of software on the client 10. Instances of such events include process/thread initiation (e.g., user-initiated application, parent process creating child process, etc.), attempts to access the input device of the corresponding client system (e.g., camera, microphone), attempts to access local or remote network resources (e.g., Hypertext Transfer Protocol (HTTP) requests to access a specific URL, attempts to access a document repository via a local network), requests specified using a particular Uniform Resource Identifier (URI) scheme (e.g., mailto: or ftp: requests), execution of specific processor instructions (e.g., system calls), attempts to load libraries (e.g., dynamic link libraries - DLLs), attempts to create new disk files, attempts to read from or write to a specific location on the disk (e.g., attempts to overwrite existing files, attempts to open a specific folder or document), and attempts to send electronic messages (e.g., email, short message service - SMS, etc.). In some embodiments, inactive periods, i.e., time intervals between events and/or time intervals when the corresponding client system is idle, not registering user activity, or only performing internal system tasks, are also considered events and can be reported to the security server via event indicators. Such inactivity periods can be further differentiated into short intervals (e.g., approximately a few seconds) and long intervals (e.g., approximately a few minutes to several hours). Detected events may or may not indicate malicious intent; some events may be considered malicious when they occur alongside other events and/or when they occur in a specific sequence. Other events may be considered malicious when they occur at a specific time of day or at an unusual frequency, such as continuously reading a specific disk folder 1000 times within a few-second interval.

每一事件指示符20a可尤其包括相应事件的类型的指示符及指示相应事件发生的时刻的时间戳。事件指示符20a可进一步包含相应客户端系统的标识符(客户端ID)及/或同时操作相应客户端系统的用户的指示符(用户ID)。例如,当所传达的事件包括进程创建时,用户指示符可指示父进程的所有者。事件指示符20a可编码其它参数,例如进程名称、文件系统位置/发起进程的路径、网络地址(例如因特网协议-IP地址)、HTTP请求的统一资源定位符(URL)等。Each event indicator 20a may include, in particular, an indicator of the type of the corresponding event and a timestamp indicating when the corresponding event occurred. The event indicator 20a may further include an identifier of the corresponding client system (client ID) and/or an indicator of the user operating the corresponding client system (user ID). For example, when the event being communicated includes process creation, the user indicator may indicate the owner of the parent process. The event indicator 20a may encode other parameters such as the process name, file system location/path to the initiating process, network address (e.g., Internet Protocol-IP address), Uniform Resource Locator (URL) of the HTTP request, etc.

在一些实施例中,服务器16还可从路由器15a到b采集信息,如由图2中的事件指示符20b说明。此类事件指示符可包含例如网络事件的指示符,例如由连接到相应路由器/网关的客户端系统发出的网络接入请求。例如,事件指示符20b可包含始发IP地址、目的地IP地址、时间戳、及有效负载大小。在一些实施例中,事件指示符20b包括由相应路由器根据各种数据处理协议聚合的客户端事件数据(例如网络流量、网络日志等)。In some embodiments, server 16 may also collect information from routers 15a to 15b, as illustrated by event indicator 20b in FIG2. Such event indicators may include, for example, indicators of network events, such as network access requests issued by client systems connected to the respective routers/gateways. For example, event indicator 20b may include originating IP address, destination IP address, timestamp, and payload size. In some embodiments, event indicator 20b includes client event data (e.g., network traffic, network logs, etc.) aggregated by the respective router according to various data processing protocols.

安全服务器16维持表示操作客户端系统10a到h的子集的基线、正常、及/或合法方式的一组用户行为模型。此类行为模型在本文中认为是客户端配置文件。此类行为模型的参数一般被表示为图1中的配置文件数据库19且可包含事件及/或客户端聚类算法的输出,如在下文详细展示。在其中配置文件由客户端或事件集群表示的一个示范性实施例中,相应配置文件的参数可包含集群质心的坐标及指示相应集群沿着各个轴的范围的一组数字。其它配置文件参数可尤其包含相应集群的离心率量度、集群成员与集群的质心之间的平均距离等。客户端配置文件可使用监管式或非监管式学习方法及算法自动产生,如在下文展示。Security server 16 maintains a set of user behavior models representing the baseline, normal, and/or legal modes of operation of subsets of client systems 10a to h. Such behavior models are referred to herein as client profiles. The parameters of such behavior models are generally represented as the profile database 19 in Figure 1 and may include the output of event and/or client clustering algorithms, as shown in detail below. In an exemplary embodiment where the profile is represented by a cluster of clients or events, the parameters of the respective profile may include the coordinates of the cluster centroid and a set of numbers indicating the range of the respective cluster along each axis. Other profile parameters may include, in particular, a measure of the eccentricity of the respective cluster, the average distance between cluster members and the cluster centroid, etc. Client profiles can be automatically generated using supervised or unsupervised learning methods and algorithms, as shown below.

客户端配置文件可捕获单个用户的行为或可共同捕获多个用户的行为。为了给出一些实例,智能电话主要可由单个用户使用,因此附加到相应智能电话的客户端配置文件可基本上捕获其主要用户的基线行为。相比之下,属于大学计算机实验室的计算机可由许多不同学生使用;附加到这些机器中的一者的客户端配置文件可共同表示所有相应学生的基线行为。一个客户端配置文件可经附加到单个客户端系统/物理机(例如智能电话、膝上型计算机)。在一些实施例中,一个客户端配置文件可共同表示多个物理机。在一个此实例中,图1中的客户端系统10a到d可共同由捕获特定家族的成员的正常或基线行为的单个客户端配置文件表示。在另一实例中,一个客户端配置文件用于表示企业的会计部门中的所有计算机,而另一客户端配置文件表示由相应企业的研究及开发团队使用的所有计算机。在云计算环境中,例如其中物理机可为各个分布式用户执行多个虚拟机的虚拟桌面基础设施(VDI)环境,一个客户端配置文件可经附加到在相应物理机上执行的多个虚拟机。Client profiles can capture the behavior of a single user or collectively capture the behavior of multiple users. To illustrate, a smartphone is primarily used by a single user, so a client profile attached to that smartphone essentially captures the baseline behavior of its primary user. In contrast, computers belonging to a university computer lab can be used by many different students; a client profile attached to one of these machines collectively represents the baseline behavior of all the respective students. A client profile can be attached to a single client system/physical machine (e.g., a smartphone, a laptop computer). In some embodiments, a client profile can collectively represent multiple physical machines. In one such example, client systems 10a to d in Figure 1 can be collectively represented by a single client profile capturing the normal or baseline behavior of members of a particular family. In another example, one client profile represents all the computers in an enterprise's accounting department, while another client profile represents all the computers used by the corresponding enterprise's research and development team. In a cloud computing environment, such as a Virtual Desktop Infrastructure (VDI) environment where physical machines can run multiple virtual machines for various distributed users, a client profile can be attached to multiple virtual machines running on the respective physical machines.

在一些实施例中,单个用户可由多个相异客户端配置文件表示。例如,同一个人可在工作时具有一个客户端配置文件/基线行为且在家时具有相异客户端配置文件/基线行为。客户端配置文件的其它实例可与特定年龄群(例如青少年)、特定个人兴趣(例如游戏)、特定职业(例如工程师、艺术家、教育家)等的用户相关联。在又一示范性实施例中,相异客户端配置文件可对应于相异计算机活动,例如对应于使用相异计算机程序:浏览因特网、使用社交媒体、进行办公室工作等。又其它示范性客户端配置文件可经附加到相异装置类型(例如智能电话对PC)。可根据更复杂准则设想共同配置文件,例如指示工程师从公司X浏览因特网的典型/基线方式的客户端配置文件。另一此示范性配置文件可指示年轻人使用平板计算机的典型方式。In some embodiments, a single user may be represented by multiple distinct client profiles. For example, the same person may have one client profile/baseline behavior at work and distinct client profiles/baseline behaviors at home. Other instances of client profiles may be associated with users of a specific age group (e.g., teenagers), specific personal interests (e.g., gaming), specific professions (e.g., engineers, artists, educators), etc. In yet another exemplary embodiment, distinct client profiles may correspond to distinct computer activities, such as using different computer programs: browsing the Internet, using social media, performing office work, etc. Other exemplary client profiles may be attached to distinct device types (e.g., smartphones versus PCs). Common profiles may be envisioned based on more complex criteria, such as a client profile instructing an engineer on typical/baseline ways of browsing the Internet from company X. Yet another exemplary profile may instruct a young person on typical ways of using a tablet computer.

事件指示符20a到b的子集可经收集以形成进一步用于导出客户端配置文件的事件语料库,如在下文详细展示。事件指示符的另一子集可用于检测安全威胁。例如,响应于接收到事件指示符20a到b,安全服务器16可确定由相应事件指示符传达的事件与根据相应客户端指示符选择的客户端配置文件是否一致。换种方式来说,安全服务器16可确定相应事件是否匹配编码于相应客户端配置文件中的正常/基线行为的模式。当不匹配时,相应事件可指示可疑活动,在此情况中一些实施例可采取保护动作,例如将安全警告22a到b发送到相应客户端系统及/或相应客户端系统的管理员。在保护动作的另一实例中,一些实施例指示属于与可疑客户端系统相同的本地网络的路由器阻止到及/或来自相应可疑客户端系统的通信。客户端配置文件及由安全服务器16进行的事件指示符的处理在下文进一步描述。A subset of event indicators 20a to 20b can be collected to form an event corpus for further deriving client profiles, as shown in detail below. Another subset of event indicators can be used to detect security threats. For example, in response to receiving event indicators 20a to 20b, security server 16 can determine whether the event conveyed by the corresponding event indicator is consistent with the client profile selected according to the corresponding client indicator. In other words, security server 16 can determine whether the corresponding event matches a pattern of normal/baseline behavior encoded in the corresponding client profile. When there is a mismatch, the corresponding event can indicate suspicious activity, in which case some embodiments may take protective actions, such as sending security warnings 22a to 22b to the corresponding client system and/or the administrator of the corresponding client system. In another instance of protective action, some embodiments instruct routers belonging to the same local network as the suspicious client system to block communication to and/or from the corresponding suspicious client system. The processing of client profiles and event indicators by security server 16 is further described below.

图3-A展示根据本发明的一些实施例的客户端系统的示范性硬件配置。客户端系统10可表示图1中的客户端系统10a到h中的任一者。为了清楚起见,所说明的客户端系统是计算机系统。其它客户端系统(例如移动电话、平板计算机、及穿戴式装置)可具有略微不同的配置。处理器32包括经配置以使用一组信号及/或数据执行计算/或逻辑操作的物理装置(例如微处理器、形成于半导体衬底上的多核集成电路)。此类信号或数据可呈处理器指令(例如机器代码)的形式经编码且递送到处理器32。存储器单元34可包括在实施操作的过程时存储由处理器32存取或产生的数据/信号的易失性计算机可读媒体(例如动态随机存取存储器-DRAM)。Figure 3-A illustrates an exemplary hardware configuration of a client system according to some embodiments of the present invention. Client system 10 may represent any of the client systems 10a to h in Figure 1. For clarity, the illustrated client system is a computer system. Other client systems (e.g., mobile phones, tablet computers, and wearable devices) may have slightly different configurations. Processor 32 includes physical means (e.g., a microprocessor, a multi-core integrated circuit formed on a semiconductor substrate) configured to perform computational and/or logical operations using a set of signals and/or data. Such signals or data may be encoded in the form of processor instructions (e.g., machine code) and delivered to processor 32. Memory unit 34 may include volatile computer-readable media (e.g., dynamic random access memory - DRAM) that stores data/signals accessed or generated by processor 32 during the implementation of operations.

输入装置36可包含计算机键盘、鼠标、及麦克风等,包含允许用户将数据及/或指令引入到客户端系统10的相应硬件接口及/或适配器。输出装置38可包含显示器装置,例如监视器及扬声器等,还包含使相应客户端系统能将数据传达到用户的硬件接口/适配器,例如图形卡。在一些实施例中,输入及输出装置36到38共享共同硬件零件(例如触摸屏)。存储装置42包含实现软件指令及/或数据的非易失性存储、读取、及写入的计算机可读媒体。示范性存储装置包含磁盘及光盘及快闪存储器装置,还包含可装卸媒体,例如CD及/或DVD盘及驱动器。网络适配器44使客户端系统10能连接到电子通信网络(例如图1中的网络12、14)及/或其它装置/计算机系统。Input device 36 may include a computer keyboard, mouse, and microphone, and a corresponding hardware interface and/or adapter that allows the user to input data and/or instructions into client system 10. Output device 38 may include a display device, such as a monitor and speakers, and a hardware interface/adapter, such as a graphics card, that enables the corresponding client system to transmit data to the user. In some embodiments, input and output devices 36 to 38 share common hardware components (e.g., a touchscreen). Storage device 42 includes a computer-readable medium that implements non-volatile storage, retrieval, and writing of software instructions and/or data. Exemplary storage devices include disk and optical disk and flash memory devices, and also include removable media, such as CDs and/or DVDs and drives. Network adapter 44 enables client system 10 to connect to electronic communication networks (e.g., networks 12 and 14 in FIG. 1) and/or other devices/computer systems.

控制器集线器40一般表示多个系统、外围设备、及/或芯片组总线、及/或使能在处理器32与客户端系统10的剩余硬件组件之间通信的所有其它电路系统。例如,控制器集线器40可包括存储器控制器、输入/输出(I/O)控制器、及中断控制器。取决于硬件制造商,一些此类控制器可经并入到单个集成电路中,及/或可与处理器集成。在另一实例中,控制器集线器40可包括将处理器32连接到存储器34的北桥、及/或将处理器32连接到装置36、38、42及44的南桥。Controller hub 40 generally represents multiple systems, peripherals, and/or chipset buses, and/or all other circuitry enabling communication between processor 32 and the remaining hardware components of client system 10. For example, controller hub 40 may include memory controllers, input/output (I/O) controllers, and interrupt controllers. Depending on the hardware manufacturer, some of these controllers may be incorporated into a single integrated circuit and/or integrated with the processor. In another example, controller hub 40 may include a northbridge connecting processor 32 to memory 34 and/or a southbridge connecting processor 32 to devices 36, 38, 42, and 44.

图3-B展示根据本发明的一些实施例的安全服务器16的示范性硬件配置。服务器16包括至少一个硬件处理器132(例如微处理器、多核集成电路)、物理存储器134(例如DRAM)、服务器存储装置142、及一组服务器网络适配器144。服务器处理器132可包含中央处理单元(CPU)及/或图形处理单元(GPU)阵列。适配器144可包含使安全服务器16能连接到通信网络14的网络卡及其它通信接口。服务器存储装置142可存储数据,例如事件指示符及/或客户端配置文件参数。在一些实施例中,服务器16进一步包括输入及输出装置,其功能可分别类似于客户端系统10的输入/输出装置36及38。Figure 3-B illustrates an exemplary hardware configuration of a security server 16 according to some embodiments of the present invention. The server 16 includes at least one hardware processor 132 (e.g., a microprocessor, a multi-core integrated circuit), physical memory 134 (e.g., DRAM), server storage device 142, and a set of server network adapters 144. The server processor 132 may include a central processing unit (CPU) and/or a graphics processing unit (GPU) array. The adapters 144 may include a network card and other communication interfaces enabling the security server 16 to connect to a communication network 14. The server storage device 142 may store data, such as event indicators and/or client configuration file parameters. In some embodiments, the server 16 further includes input and output devices, whose functions may be similar to the input/output devices 36 and 38 of the client system 10, respectively.

图4展示根据本发明的一些实施例的在客户端系统10上执行的示范性软件组件。此软件可包含提供客户端系统10的硬件与其它计算机程序(例如在相应客户端系统上执行的用户应用程序48)之间的接口的操作系统(OS)46。示范性操作系统尤其包含及用户应用程序48一般表示任何应用程序,例如文字处理、图像处理、电子表格、日历、线上游戏、社交媒体、网页浏览器、及电子通信应用程序等。在一些实施例中,安全应用程序50经配置以保护客户端系统10使其免受计算机安全威胁,例如恶意软件及入侵。除了其它功能之外,安全应用程序50尤其经配置以将事件指示符发射到安全服务器16及/或接收安全警告。在一些实施例中,应用程序50进一步包括事件采集器52及网络滤波器53。网络滤波器53的一些功能性可直接实施于硬件中。当客户端系统10操作硬件虚拟化平台时,其中OS 46及应用程序48在虚拟机内执行(例如,在云计算环境中),事件采集器52及/或网络滤波器53可在相应虚拟机外部例如在暴露相应虚拟机的虚拟机管理程序的等级下使用所属领域称为自省的技术的操作。Figure 4 illustrates exemplary software components executed on a client system 10 according to some embodiments of the present invention. This software may include an operating system (OS) 46 that provides an interface between the hardware of the client system 10 and other computer programs (e.g., user applications 48 executed on the respective client system). The exemplary operating system particularly includes, and the user application 48 generally represents any application, such as word processing, image processing, spreadsheets, calendars, online games, social media, web browsers, and electronic communication applications. In some embodiments, a security application 50 is configured to protect the client system 10 from computer security threats, such as malware and intrusions. Among other functions, the security application 50 is particularly configured to send event indicators to a security server 16 and/or receive security alerts. In some embodiments, the application 50 further includes an event collector 52 and a network filter 53. Some functionality of the network filter 53 may be implemented directly in the hardware. When the client system 10 operates the hardware virtualization platform, where the OS 46 and application 48 are executed within a virtual machine (e.g., in a cloud computing environment), the event collector 52 and/or network filter 53 can operate outside the respective virtual machine, for example at the level of the hypervisor exposing the respective virtual machine, using a technique known in the field as introspection.

事件采集器52经配置以检测在由客户端系统10执行软件期间发生的各种事件。一些实施例可给每一检测到的事件加时间戳以记录相应事件的发生时间。监测到的事件可为机器及/或操作系统特定的。示范性事件尤其包含进程发起、进程终止、子进程的产生、对外围设备(例如硬盘、网络适配器)的存取请求、由用户键入到命令行接口中的命令等。此类硬件及/或软件事件可使用计算机安全领域中已知的任何方法例如通过拦截操作系统的特定功能、检测系统调用、采用文件系统微过滤器、改变存储器存取权限以检测执行来自特定存储器地址的代码的意图等来检测。Event collector 52 is configured to detect various events occurring during software execution by client system 10. Some embodiments may timestamp each detected event to record the time of its occurrence. Detected events may be machine- and/or operating system-specific. Exemplary events include, in particular, process initiation, process termination, child process creation, access requests to peripheral devices (e.g., hard drives, network adapters), and commands typed by the user into a command-line interface. Such hardware and/or software events can be detected using any method known in the field of computer security, such as intercepting specific operating system functions, detecting system calls, employing file system microfilters, or altering memory access permissions to detect intent to execute code from a specific memory address.

一些实施例使用内置于OS 46内的系统日志记录工具(例如中的Syslog)来监测硬件及/或软件事件。此类工具可产生事件描述符列表,其包含每一事件的时间戳、识别事件类型的数值码、产生相应事件的进程或应用程序的类型的指示符、及其它事件参数。安全应用程序50可从相应系统日志提取此类信息以制定事件指示符。Some embodiments use system logging tools built into OS 46 (such as Syslog) to monitor hardware and/or software events. Such tools generate a list of event descriptors containing a timestamp for each event, a numeric code identifying the event type, an indicator of the type of process or application that generated the event, and other event parameters. Security application 50 can extract this information from the relevant system log to formulate event indicators.

下面给出示范性syslog条目:The following is a sample syslog entry:

<30>Feb 8 21:36:51 dtm charon:12[IKE]establishing CHILD_SA dtmhq5{5}<30>Feb 8 21:36:51 dtm charon: 12[IKE]establishing CHILD_SA dtmhq5{5}

<30>Feb 8 21:36:51 dtm charon:12[IKE]establishing CHILD_SA dtmhq5{5}<30>Feb 8 21:36:51 dtm charon: 12[IKE]establishing CHILD_SA dtmhq5{5}

<187>Feb B 21:37:56 example.domain.biz dhcpd:DHCPDISCOVER from Oc:14:7b:11:14:64 via ethl:network ethl:no free leases<187>Feb B 21:37:56 example.domain.biz dhcpd:DHCPDISCOVER from Oc:14:7b:11:14:64 via ethl:network ethl:no free leases

网络滤波器53检测在客户端系统10与其它方之间经由网络12到14的电子通信期间发生的一组网络事件。由网络滤波器53检测的示范性事件包含形成在客户端系统10与另一网络实体之间建立连接的部分的事件(例如请求网络地址、发射网络地址、握手事件等)、配置经加密连接的事件(安全套接字层-SSL、虚拟私有网络-VPN)、发射数据、及接收数据等。在一些实施例中,网络滤波器53从经拦截网络业务收集元数据。此类元数据可包含例如始发网络地址(例如因特网协议-IP地址)、目的地地址、数据分组的时间戳、通信协议类型的指示符、及数据分组的大小。其它示范性元数据可包含传输相应通信/数据分组的超文本传输协议(HTTP)用户代理的类型。一些实施例将通信元数据组织成专门的数据结构,在所属领域中称为网络流量(例如来自思科系统有限公司(Cisco Systems,Inc.)的)。表1展示根据本发明的一些实施例表示为流量的通信元数据的实例。Network filter 53 detects a set of network events occurring during electronic communications between client system 10 and other parties via networks 12 to 14. Exemplary events detected by network filter 53 include events that form part of establishing a connection between client system 10 and another network entity (e.g., requesting a network address, transmitting a network address, handshake events, etc.), events that configure encrypted connections (Secure Sockets Layer - SSL, Virtual Private Network - VPN), transmitting data, and receiving data. In some embodiments, network filter 53 collects metadata from intercepted network traffic. Such metadata may include, for example, the originating network address (e.g., Internet Protocol - IP address), the destination address, the timestamp of the data packet, an indicator of the communication protocol type, and the size of the data packet. Other exemplary metadata may include the type of Hypertext Transfer Protocol (HTTP) user agent transmitting the corresponding communication/data packet. Some embodiments organize the communication metadata into a specialized data structure, referred to in the art as network traffic (e.g., from Cisco Systems, Inc.). Table 1 shows examples of communication metadata represented as traffic according to some embodiments of the present invention.

表1Table 1

在一些实施例中,安全应用程序50根据由采集器52及网络滤波器53检测的硬件、软件、及/或网络事件制定事件指示符。应用程序50可进一步管理与安全服务器16的通信,以发射事件指示符及/或接收安全通知等。In some embodiments, the security application 50 generates event indicators based on hardware, software, and/or network events detected by the collector 52 and the network filter 53. The application 50 may further manage communication with the security server 16 to transmit event indicators and/or receive security notifications, etc.

在替代实施例中,代替如上文所展示那样在客户端处处理网络通信,网络滤波器53及/或路由器15可经配置以将传入及/或传出客户端系统10的电子通信的至少一部分重新路由到安全服务器16。例如,客户端系统10的网络配置参数可经设置以将服务器16指示为默认网络网关。接着,一些实施例采用安全服务器16来从相应经重新路由的业务提取事件指示符。In alternative embodiments, instead of processing network communications at the client end as shown above, network filter 53 and/or router 15 may be configured to reroute at least a portion of incoming and/or outgoing electronic communications from client system 10 to security server 16. For example, network configuration parameters of client system 10 may be set to designate server 16 as the default network gateway. Subsequently, some embodiments employ security server 16 to extract event indicators from the corresponding rerouted traffic.

图5展示根据本发明的一些实施例的在安全服务器16上执行的示范性软件。所说明的软件包含分析引擎60及进一步连接到警告管理器64的异常检测器62。技术人员将了解,并非所说明的所有组件都需要在同一机器/处理器上执行;例如,分析引擎60可在专用处理器集群上执行,而异常检测器62的例子可在其它机器/处理器上运行。Figure 5 illustrates exemplary software running on a security server 16 according to some embodiments of the present invention. The illustrated software includes an analysis engine 60 and an anomaly detector 62 further connected to an alert manager 64. Those skilled in the art will appreciate that not all illustrated components need to run on the same machine/processor; for example, the analysis engine 60 may run on a dedicated processor cluster, while the example of the anomaly detector 62 may run on other machines/processors.

在一些实施例中,分析引擎60经配置以分析在一组客户端系统(例如图1中的客户端10a到h的子集)上发生的事件及构建表示操作相应客户端系统的基线、正常、及/或合法方式的多个客户端配置文件。从客户端接收的事件指示符20a到b的子集可用于组装训练事件语料库,在图1、5、及6中标示为语料库18。接着,根据事件语料库18确定配置文件。确定客户端配置文件可尤其包含在抽象多维事件空间中表示事件及实施数据聚类过程,如在下文更详细展示。接着,所构建的配置文件可经存储为配置文件数据库19中的条目。示范性配置文件数据库条目包括一组配置文件参数,例如集群质心的一组坐标、集群的直径及/或离心率的量度等。In some embodiments, the analysis engine 60 is configured to analyze events occurring on a set of client systems (e.g., a subset of clients 10a to h in Figure 1) and construct multiple client profiles representing baseline, normal, and/or legitimate modes of operation for the respective client systems. A subset of event indicators 20a to b received from the clients can be used to assemble a training event corpus, labeled as corpus 18 in Figures 1, 5, and 6. Profiles are then determined based on the event corpus 18. Determining client profiles may involve, in particular, representing events in an abstract multidimensional event space and implementing data clustering processes, as shown in more detail below. The constructed profiles can then be stored as entries in a profile database 19. Exemplary profile database entries include a set of profile parameters, such as a set of coordinates of the cluster centroid, a measure of the cluster diameter and/or eccentricity, etc.

图6说明分析引擎60的示范性组件及操作。在一些实施例中,引擎60包括事件编码器70、事件聚类引擎72、及连接到事件编码器70及事件聚类引擎72的客户端聚类引擎74。由分析引擎执行的示范性步骤序列在图7中说明。Figure 6 illustrates exemplary components and operation of the analysis engine 60. In some embodiments, engine 60 includes an event encoder 70, an event clustering engine 72, and a client clustering engine 74 connected to the event encoder 70 and the event clustering engine 72. An exemplary sequence of steps performed by the analysis engine is illustrated in Figure 7.

在步骤202到204到206的序列中,分析引擎60可根据从所选择的客户端系统及/或路由器接收的事件指示符组装训练事件语料库18。一些实施例积累事件指示符直到一些积累条件被满足为止。积累条件可根据事件的计数(收集1百万个事件的语料库)、根据时间条件(例如,记录在1h间隔内接收的所有事件等)、根据客户端系统及/或用户的身份(例如,记录从企业X、IP范围Y、订阅账户Z等接收的所有事件)、或根据所属领域中已知的任何其它方法来确定。个别事件可根据其起源进行标记且可包括表征相应事件已经发生、或已经被检测到、或已经在安全服务器16处接收到等的时刻的时间戳。在一些实施例中,事件语料库18通过并入最新接收的事件指示符周期性地及/或按需进行刷新。In the sequence of steps 202 to 204 to 206, the analysis engine 60 may assemble a training event corpus 18 based on event indicators received from selected client systems and/or routers. In some embodiments, event indicators are accumulated until certain accumulation conditions are met. Accumulation conditions may be determined based on the count of events (collecting a corpus of 1 million events), based on time conditions (e.g., recording all events received within a 1-hour interval), based on the identity of the client system and/or user (e.g., recording all events received from enterprise X, IP range Y, subscription account Z, etc.), or based on any other method known in the field. Individual events may be tagged according to their origin and may include a timestamp indicating the moment the corresponding event has occurred, been detected, or been received at the security server 16. In some embodiments, the event corpus 18 is periodically and/or refreshed on demand by incorporating the most recently received event indicators.

在一些实施例中,事件编码器70(图6)经配置以输入包括表征在客户端系统上已经发生的事件(例如,在客户端机器上发起进程)的数据的事件记录26,且作为响应,输出包括相应事件的表示的事件向量28a作为在所属领域中通常被认为是嵌入空间的抽象多维空间中的向量。示范性嵌入空间通过一组轴展开,其中每一轴表示相异事件特征。在网络事件的情况中,示范性特征可包含源IP地址、源端口、目的地IP地址、目的地端口、及传输协议的指示符等。在另一实例中,嵌入空间的每一轴对应于事件特征的线性组合(例如,在主成分/奇异值分解实施例中)。在优选实施例中,在相应事件前面及/或后面的其它事件的上下文中分析事件。在此类情况中,编码器70经配置以将事件表示为上下文的嵌入空间中的向量,其中主要发生于类似上下文中的两个事件相对紧密地定位在一起。一些实施例根据事件词汇N的大小(即,相应安全系统正监测的相异事件类型的计数)选取嵌入空间的维度(有关事件词汇的更多信息,请参见下文)。例如,事件空间的维度可约为N的平方根、或约为N的对数。本发明的典型实施例使用具有数百到数千个维度的嵌入上下文空间。In some embodiments, the event encoder 70 (FIG. 6) is configured to take on an event record 26 including data characterizing events that have occurred on the client system (e.g., initiating a process on the client machine), and in response, output an event vector 28a including representations of the corresponding events as a vector in an abstract multidimensional space, typically considered in the field as an embedding space. An exemplary embedding space is expanded by a set of axes, each representing a distinct event feature. In the case of network events, exemplary features may include source IP address, source port, destination IP address, destination port, and indicators of transport protocols, etc. In another instance, each axis of the embedding space corresponds to a linear combination of event features (e.g., in a principal component/singular value decomposition embodiment). In a preferred embodiment, events are analyzed within the context of other events preceding and/or following the corresponding event. In such cases, the encoder 70 is configured to represent events as vectors in the embedding space of a context, where two events primarily occurring in similar contexts are relatively closely positioned together. Some embodiments select the dimension of the embedding space based on the size of the event vocabulary N (i.e., the count of dissimilar event types being monitored by the corresponding security system) (see below for more information on the event vocabulary). For example, the dimension of the event space may be approximately the square root of N, or approximately the logarithm of N. Typical embodiments of the invention use an embedding context space with hundreds to thousands of dimensions.

事件编码器70可使用自动化数据处理领域中已知的任何方法构建。在优选实施例中,编码器70包括人工智能系统,例如多层人工神经网络(例如递归及/或前馈神经网络)。为了实现事件向量的所期望表示,编码器70的参数可经调谐直到一些性能条件被满足为止。此调谐在本文中称为训练且由图7中的步骤208表示。在神经网络实施例中,事件编码器70的示范性可调谐参数包含一组突触权重等。在一些实施例中,训练编码器70相当于构建嵌入空间本身。换种方式来说,嵌入空间并非是预定的,而是取决于事件语料库18的组成及所选择的训练过程。The event encoder 70 can be constructed using any method known in the field of automated data processing. In a preferred embodiment, the encoder 70 includes an artificial intelligence system, such as a multilayer artificial neural network (e.g., a recursive and/or feedforward neural network). To achieve the desired representation of the event vectors, the parameters of the encoder 70 can be tuned until certain performance conditions are met. This tuning is referred to herein as training and is represented by step 208 in FIG. 7. In a neural network embodiment, exemplary tunable parameters of the event encoder 70 include a set of synaptic weights, etc. In some embodiments, training the encoder 70 is equivalent to constructing the embedding space itself. In other words, the embedding space is not predetermined but depends on the composition of the event corpus 18 and the selected training process.

示范性训练过程在图8-A到B中展示且包括word2vec算法版本,例如连续跳跃元语法算法及连续词袋算法。在此类实施例中,事件并非是孤立地进行分析,而是作为由根据发生或检测时间排序的多个事件组成的事件序列25的成分进行分析。在一些实施例中,相应序列的所有事件都经选择使得其在同一客户端系统上发生。事件序列25包括中心事件E0及由中心事件前面的事件E-k…E-1(k≥0)的子集及/或中心事件后面的事件E1…Ep(p≥0)的子集组成的事件上下文。典型实施例使用对称事件上下文(p=k),其中p在2到5的范围内。每一个别事件Ei(-k≤i≤p)可被表示为N乘1数字向量,其中每一行表示相异事件类型(例如打开浏览器、启动文件下载、将数据写入到磁盘等),N表示事件类型的“词汇”的大小,且非零元素指示相应事件具有相应事件类型。此表示在所属领域中通常称为独热编码。事件词汇的示范性大小N的范围从数百到数千个相异事件类型,但针对特定应用可增加到高达数百万。技术人员将了解,独热编码在本文中仅用作实例,且决不限制本发明的范围。The exemplary training process is illustrated in Figures 8-A to 8-B and includes versions of the word2vec algorithm, such as the Continuous Skip Metagram and the Continuous Bag-of-Words algorithm. In such embodiments, events are not analyzed in isolation, but rather as components of an event sequence 25 consisting of multiple events ordered according to their occurrence or detection time. In some embodiments, all events in the corresponding sequence are selected such that they occur on the same client system. The event sequence 25 includes a central event E <sub>0 </sub> and an event context consisting of a subset of events E <sub>-k </sub>…E <sub>-1 </sub> (k≥0) preceding the central event and/or a subset of events E<sub>1</sub>…E<sub> p </sub> (p≥0) following the central event. A typical embodiment uses a symmetric event context (p = k), where p is in the range of 2 to 5. Each individual event E <sub>i </sub> (-k≤i≤p) can be represented as an N-by- 1 numeric vector, where each row represents a distinct event type (e.g., opening a browser, initiating a file download, writing data to disk, etc.), N represents the size of the "vocabulary" of the event type, and non-zero elements indicate that the corresponding event has the corresponding event type. This representation is commonly referred to in the field as one-hot encoding. The exemplary size N of the event vocabulary ranges from hundreds to thousands of dissimilar event types, but can increase to millions for a specific application. Those skilled in the art will understand that one-hot encoding is used herein only as an example and is in no way intended to limit the scope of the invention.

在示范性训练过程中,事件编码器与事件解码器成对且与事件解码器一起训练,其中两者都可包括前馈及/或递归神经网络的部分。一般来说,编码器-解码器对可经配置以输入训练序列的第一子集(例如,中心事件E0)及输出相应序列的第二子集(例如,某上下文事件Ei,i≠0)的“预测”。在图8-A到B的实例中,预测被说明为独热向量;替代实施例可使用不同表示。例如,预测可经表示为N维数字向量,每一数字指示对应事件类型存在于第二子集中的可能性。In the exemplary training process, the event encoder and event decoder are paired and trained together, both of which may include portions of a feedforward and/or recurrent neural network. Generally, the encoder-decoder is configured to "predict" a first subset of the training sequence (e.g., the central event E <sub>0</sub> ) and output a second subset of the corresponding sequence (e.g., a context event E <sub>i </sub>, i≠0). In the examples of Figures 8-A to B, the predictions are illustrated as one-hot vectors; alternative embodiments may use different representations. For example, the predictions may be represented as N-dimensional numeric vectors, each numeric indicating the probability that the corresponding event type exists in the second subset.

在图8-A中说明的连续跳跃元语法训练过程中,编码器-解码器对经训练以在给定中心事件E0的情况下产生正确的事件上下文。针对从事件语料库18取得的每一事件序列,编码器70a经配置以输入中心事件E0的独热编码及产生包括嵌入上下文空间中中心事件E0的表示的事件向量28c。解码器76a又经配置以输入事件向量28c及输出多个猜测向量,每一者表示相应事件序列的“经预测”上下文事件Ei(i≠0)。接着,编码器-解码器对可通过调整编码器70a及/或解码器76a的参数来进行训练以便减小预测误差,即校正相应训练序列的“经预测”上下文与实际上下文之间的失配。In the continuous skip metagram training process illustrated in Figure 8-A, the encoder-decoder pair is trained to generate the correct event context given a central event E <sub>0 </sub>. For each event sequence obtained from the event corpus 18, encoder 70a is configured to take the one-hot encoding of the central event E <sub>0 </sub> as input and generate an event vector 28c that includes a representation of the central event E <sub>0 </sub> in the embedded context space. Decoder 76a is then configured to take the event vector 28c as input and output multiple guess vectors, each representing the “predicted” context event E <sub>i </sub> (i≠0) for the corresponding event sequence. The encoder-decoder pair can then be trained by adjusting the parameters of encoder 70a and/or decoder 76a to reduce prediction error, i.e., to correct the mismatch between the “predicted” context and the actual context of the corresponding training sequence.

替代训练过程使用连续词袋训练算法且目的是在给定相应事件上下文的情况下产生训练序列的正确中心事件E0。在图8-B中说明的一个此实例中,事件编码器70b经配置以输入表示序列25的上下文事件Ei(i≠0)的一组独热向量,及输出针对每一相应上下文事件确定的嵌入事件向量28d到f。与图8-A中说明的连续跳跃元语法实施例相反,编码器70b现在与经配置以输入多个事件向量28d到f及产生对序列25的中心事件E0的预测或“猜测”的事件解码器76b成对。接着,编码器-解码器对可通过调整编码器70b及/或解码器76b的参数来进行训练以便减小预测误差,即相应训练序列的“经预测”中心事件与实际中心事件之间的失配。The alternative training process uses a continuous bag-of-words training algorithm and aims to generate the correct center event E0 of the training sequence given the corresponding event context. In one example illustrated in Figure 8-B, the event encoder 70b is configured to take as input a set of one-hot vectors representing the context events Ei (i≠0) of sequence 25, and output embedded event vectors 28d to f determined for each corresponding context event. In contrast to the continuous skip metagrammation embodiment illustrated in Figure 8-A, the encoder 70b is now paired with an event decoder 76b configured to take as input multiple event vectors 28d to f and generate a prediction or “guess” of the center event E0 of sequence 25. The encoder-decoder pair can then be trained by adjusting the parameters of encoder 70b and/or decoder 76b to reduce prediction error, i.e., the mismatch between the “predicted” center event and the actual center event of the corresponding training sequence.

实施事件编码器的训练的示范性步骤序列在图9中说明。步骤222从事件语料库18检索一组事件记录且根据事件时间戳且根据相应事件的源(即,已经发生相应事件的客户端系统)识别事件序列25。在连续跳跃元语法实施例中,接着,步骤224执行事件编码器70a以产生事件E0的嵌入空间表示(图8-A中的事件向量28c)。在步骤226中,分析引擎60执行事件解码器76a以产生针对在序列25内的中心事件E0前面及/或后面的事件的一组预测或“猜测”。步骤228比较序列25的每一经预测上下文事件与相应实际上下文事件Ei(i≠0),从而确定数值预测误差。可被解译为成本函数或目标函数的预测误差可根据人工智能领域中已知的任何方法进行计算。此类计算可包括确定经预测事件与实际事件之间的距离,例如编辑距离、欧几里得距离、或余弦距离。一些实施例根据交叉熵量度确定目标函数。在步骤230中,分析引擎可在最小化计算得到的预测误差的方向上调整编码器70a的参数。用于训练的一些示范性算法包含使用梯度下降的反向传播、模拟退火及遗传算法等。接着,一些实施例重复步骤222到230直到终止条件被满足为止,例如直到事件语料库18的平均预测误差下降到低于预定阈值为止。在另一实施例中,训练进行达预定时间量或预定迭代计数。技术人员将了解图9中说明的步骤序列在稍作改动的情况下同样也适用于词袋实施例(图8-B)。An exemplary sequence of steps for training the event encoder is illustrated in Figure 9. Step 222 retrieves a set of event records from the event corpus 18 and identifies the event sequence 25 based on the event timestamps and the source of the corresponding event (i.e., the client system where the corresponding event has occurred). In a continuous jump metagrammation embodiment, step 224 then executes the event encoder 70a to produce an embedding space representation of event E0 (event vector 28c in Figure 8-A). In step 226, the analysis engine 60 executes the event decoder 76a to produce a set of predictions or "guesses" for events preceding and/or following the central event E0 within sequence 25. Step 228 compares each predicted context event of sequence 25 with the corresponding actual context event Ei (i≠0) to determine the numerical prediction error. The prediction error, which can be interpreted as a cost function or objective function, can be calculated according to any method known in the field of artificial intelligence. Such calculations may include determining the distance between the predicted and actual events, such as edit distance, Euclidean distance, or cosine distance. Some embodiments determine the objective function based on a cross-entropy metric. In step 230, the analysis engine adjusts the parameters of encoder 70a in the direction that minimizes the calculated prediction error. Some exemplary algorithms used for training include backpropagation using gradient descent, simulated annealing, and genetic algorithms. Then, in some embodiments, steps 222 to 230 are repeated until a termination condition is met, for example, until the average prediction error of the event corpus 18 drops below a predetermined threshold. In another embodiment, training is performed for a predetermined amount of time or a predetermined number of iterations. Those skilled in the art will understand that the sequence of steps illustrated in Figure 9 is also applicable to the bag-of-words embodiment (Figure 8-B) with slight modifications.

响应于如上文展示那样训练事件编码器,一些实施例进一步变换所生成的嵌入空间以降低其维度。此操作可包括任何数据降维算法,例如主成分分析(PCA)或奇异值分解(SVD)。In response to training the event encoder as shown above, some embodiments further transform the generated embedding space to reduce its dimensionality. This operation can include any data dimensionality reduction algorithm, such as principal component analysis (PCA) or singular value decomposition (SVD).

在训练及任选的降维(图7中的步骤208)之后,事件编码器70能够将每一事件表示为事件上下文的多维嵌入空间中的向量,其中频繁发生于同一事件上下文内的两个事件占据类似位置。换种方式来说,两个此类事件在嵌入空间中分开小于主要发生于不同上下文中的两个事件之间的距离的距离。After training and optional dimensionality reduction (step 208 in Figure 7), the event encoder 70 is able to represent each event as a vector in a multidimensional embedding space of the event context, where two events that frequently occur within the same event context occupy similar positions. In other words, two such events are separated in the embedding space by a distance smaller than the distance between two events that primarily occur in different contexts.

返回到分析引擎60(图6)的组件,事件聚类引擎74经配置以根据每一事件向量在嵌入空间内的位置将由经训练事件编码器70产生且表示训练语料库18的成员的事件向量组织成集群(也参见图7中的步骤207)。在一些实施例中,集群包括在嵌入空间中相对靠近地在一起的多个事件,或换种方式来说,包括由嵌入空间中相对较小的事件间距离表征的多个事件。在替代实施例中,集群由占据嵌入空间的集群特定区的事件组成。此类区可为互斥的或部分重叠的。图10说明根据本发明的一些实施例的示范性嵌入空间及一组事件集群80a到b。所说明的轴可包括例如所说明的事件向量(向量28g到h到k)的第一及第二主成分。在使用事件上下文的嵌入空间的实施例中,集群可选择性地含有主要发生于类似事件上下文内的事件。此外,同一集群可包含发生于各个客户端系统上及/或表示各种用户的活动的事件。Returning to the components of the analysis engine 60 (Figure 6), the event clustering engine 74 is configured to organize event vectors generated by the trained event encoder 70 and representing members of the training corpus 18 into clusters based on the position of each event vector within the embedding space (see also step 207 in Figure 7). In some embodiments, a cluster includes multiple events that are relatively close together in the embedding space, or in other words, multiple events characterized by relatively small inter-event distances in the embedding space. In alternative embodiments, a cluster consists of events occupying cluster-specific regions of the embedding space. Such regions may be mutually exclusive or partially overlapping. Figure 10 illustrates an exemplary embedding space and a set of event clusters 80a to b according to some embodiments of the invention. The illustrated axes may include, for example, the first and second principal components of the illustrated event vectors (vectors 28g to h to k). In embodiments using an embedding space with event contexts, clusters may selectively contain events that primarily occur within similar event contexts. Furthermore, the same cluster may contain events occurring on various client systems and/or representing the activities of various users.

为了构建事件集群,分析引擎60可采用所属领域中已知的任何数据聚类算法,例如k均值算法的变体。另一示范性实施例可训练一组感知机以将嵌入空间划分为相异区且将定位于每一区内的事件向量指派到相异事件集群。集群及/或区的数目可为预定的(例如根据受保护的客户端系统及/或被监测的事件类型的计数)或可通过聚类算法本身动态地确定。事件聚类的结果包括一组事件集群参数54(图6),其可针对每一集群包含集群的质心的坐标及集群的范围的量度,例如直径及/或离心率。其它示范性集群参数54可尤其包含相应集群的成员列表,且相应集群的所选择的成员被视作相应集群的代表/原型。集群参数可被传递到客户端聚类引擎74上。To construct event clusters, the analysis engine 60 can employ any data clustering algorithm known in the field, such as a variant of the k-means algorithm. Another exemplary embodiment can train a set of perceptrons to divide the embedding space into dissimilar regions and assign event vectors located within each region to dissimilar event clusters. The number of clusters and/or regions can be predetermined (e.g., based on a count of protected client systems and/or monitored event types) or can be dynamically determined by the clustering algorithm itself. The result of event clustering includes a set of event cluster parameters 54 (Figure 6), which may include the coordinates of the cluster's centroid and measures of the cluster's extent, such as diameter and/or eccentricity, for each cluster. Other exemplary cluster parameters 54 may include, in particular, a list of members for the corresponding cluster, with selected members of the corresponding cluster considered as representatives/prototypes of the corresponding cluster. The cluster parameters can be passed to the client clustering engine 74.

客户端聚类引擎74(图6)经配置以根据由事件聚类引擎72计算的事件集群确定一组客户端配置文件。此类客户端配置文件在图11中说明。在一些实施例中,每一客户端配置文件包括受保护的客户端系统10a到h的所选择的子集(集群)。一些客户端配置文件可包含多个客户端集群。在一些实施例中,客户端配置文件可包括配置文件原型,其可为相应客户端集群的实际成员、或由配置文件空间中的特定位置表征的虚构客户端系统。例如,配置文件原型可包括由客户端聚类引擎74确定的客户端集群的质心。Client clustering engine 74 (Figure 6) is configured to determine a set of client profiles based on event clusters computed by event clustering engine 72. Such client profiles are illustrated in Figure 11. In some embodiments, each client profile includes a selected subset (cluster) of protected client systems 10a to h. Some client profiles may contain multiple client clusters. In some embodiments, client profiles may include profile prototypes, which may be actual members of the corresponding client clusters or fictitious client systems characterized by specific locations in the profile space. For example, a profile prototype may include the centroids of client clusters determined by client clustering engine 74.

为了比较客户端配置文件,客户端聚类引擎74的一些实施例根据指示在相应客户端系统上发生的事件的典型分布的事件配置文件将客户端系统10a到h指派到集群。在一个示范性实施例中,客户端系统的事件配置文件包括数字向量,每一者根据在相应客户端系统上发生且属于先前由事件聚类引擎72确定的相异事件集群的事件计数进行确定。在图12中说明的实例中,事件配置文件的每一成分是根据指示属于相应事件集群Ci的事件的比例的集群忠诚量度确定,所述比例被确定为可从相应客户端系统得到的总事件计数的分数。例如,当事件聚类引擎72已经识别了三个事件集群C1、C2、及C3时,事件配置文件向量[0.1,0.75,0.15]可表示一种客户端系统,其中在相应客户端系统上发生的事件的10%属于事件集群C1,而事件的75%属于事件集群C2且事件的15%属于事件集群C3To compare client profiles, some embodiments of the client clustering engine 74 assign client systems 10a to h to clusters based on event profiles indicating a typical distribution of events occurring on the respective client systems. In one exemplary embodiment, the event profiles of the client systems include numeric vectors, each determined based on the event counts occurring on the respective client system and belonging to dissimilar event clusters previously determined by the event clustering engine 72. In the example illustrated in FIG12, each component of the event profile is determined based on a cluster loyalty metric indicating the proportion of events belonging to the respective event cluster Ci , which is determined as a fraction of the total event counts available from the respective client system. For example, when the event clustering engine 72 has identified three event clusters C1 , C2 , and C3 , the event profile vector [0.1, 0.75, 0.15] could represent a client system where 10% of the events occurring on the respective client system belong to event cluster C1 , 75% belong to event cluster C2 , and 15% belong to event cluster C3 .

在图11中说明的示范性实施例中,每一客户端系统根据相应事件配置文件表示于多维配置文件空间中。换种方式来说,客户端系统的每一坐标表示相应客户端的事件配置文件的成分。图11展示三个示范性客户端集群/配置文件82a到c。技术人员可使用机器学习或数据挖掘领域中已知的任何方法来构建此类配置文件;示范性方法包含k均值聚类算法及神经网络的变体等。替代实施例可使用将客户端系统指派到集群的其它准则,或除了相应客户端的事件配置文件之外还使用此准则。示范性额外客户端聚类准则尤其包含相应客户端系统的拥有者及/或用户、相应客户端系统的网络地址、相应客户端系统的装置类型等。例如,属于相同家庭、相同企业、或相同网络域的客户端可被一起分组在同一集群中。In the exemplary embodiment illustrated in Figure 11, each client system is represented in a multidimensional profile space according to a corresponding event profile. In other words, each coordinate of a client system represents a component of the corresponding client's event profile. Figure 11 shows three exemplary client clusters/profiles 82a to c. Those skilled in the art can construct such profiles using any methods known in the fields of machine learning or data mining; exemplary methods include k-means clustering algorithms and variations of neural networks, etc. Alternative embodiments may use other criteria for assigning client systems to clusters, or use this criterion in addition to the corresponding client's event profile. Exemplary additional client clustering criteria include, in particular, the owner and/or user of the corresponding client system, the network address of the corresponding client system, the device type of the corresponding client system, etc. For example, clients belonging to the same household, the same business, or the same network domain may be grouped together in the same cluster.

在客户端聚类之后,分析引擎60可将集群参数保存到配置文件数据库19,所述集群参数例如指派到每一集群/配置文件的客户端系统列表、集群原型的坐标(例如质心)、集群直径等。After client-side clustering, the analysis engine 60 can save cluster parameters to the configuration file database 19, such as the list of client systems assigned to each cluster/configuration file, the coordinates of the cluster prototype (e.g., centroid), the cluster diameter, etc.

图13说明根据本发明的一些实施例的异常检测器62的示范性组件及操作(还参见图5)。异常检测器62经配置以接收包括指示在各个客户端系统上发生的事件的事件指示符的事件流24及作为响应输出指示相应事件是否指示安全威胁(例如恶意软件的入侵或执行)的安全标记88。在一些实施例中,异常检测器62包括配置文件管理器84,其经配置以响应于接收指示在受保护的客户端系统上发生的事件的事件通知根据相应事件选择客户端配置文件。配置文件管理器84进一步经连接到经配置以确定相应事件是否拟合由相应配置文件表示的正常/基线行为的模式的行为模型86。当不拟合时,相应事件可被视为异常,从而指示对相应客户端系统的可能攻击。Figure 13 illustrates exemplary components and operation of an anomaly detector 62 according to some embodiments of the present invention (see also Figure 5). The anomaly detector 62 is configured to receive an event stream 24 including event indicators indicating events occurring on various client systems and a security flag 88 as a response output indicating whether the corresponding event indicates a security threat (e.g., intrusion or execution of malware). In some embodiments, the anomaly detector 62 includes a profile manager 84 configured to select a client profile based on the corresponding event in response to receiving an event notification indicating an event occurring on a protected client system. The profile manager 84 is further connected to a behavior model 86 configured to determine whether the corresponding event fits a pattern of normal/baseline behavior represented by the corresponding profile. When it does not fit, the corresponding event may be considered an anomaly, thereby indicating a possible attack on the corresponding client system.

在准备如下文展示那样执行异常检测时,异常检测器62的一些实施例首先使用分析引擎60的输出在事件语料库上进行训练。训练异常检测器62的一个用途是确定由分析引擎60识别的每一客户端配置文件的正常/基线用户行为。训练包括调整行为模型86的一组参数直到终止准则被满足为止。用于训练异常检测器62的事件语料库可不同于用于训练分析引擎60的组件的训练语料库18。In preparing to perform anomaly detection as shown below, some embodiments of the anomaly detector 62 are first trained on an event corpus using the output of the analytics engine 60. One purpose of training the anomaly detector 62 is to determine normal/baseline user behavior for each client profile identified by the analytics engine 60. Training involves adjusting a set of parameters of the behavior model 86 until a termination criterion is met. The event corpus used to train the anomaly detector 62 may differ from the training corpus 18 used to train the components of the analytics engine 60.

图14展示根据本发明的一些实施例的在训练过程期间由异常检测器62执行的示范性步骤序列。响应于异常引擎60构建一组客户端配置文件,步骤242从配置文件数据库19选择一个此客户端配置文件。在一些实施例中,每一此客户端配置文件包括一组客户端集群,例如图11中的集群82a。每一客户端集群进一步包含受保护的客户端系统的所选择的子集。步骤244可选择登记为在与相应配置文件/集群相关联的任何客户端系统上发生的一组训练事件。在一些实施例中,步骤244可包括从已用于如上文展示那样构建客户端配置文件的训练语料库18选择一组训练事件。另一步骤246可使用相应的事件训练集作为训练语料库来训练行为模型86。Figure 14 illustrates an exemplary sequence of steps performed by the anomaly detector 62 during the training process according to some embodiments of the present invention. In response to the anomaly engine 60 constructing a set of client profiles, step 242 selects one such client profile from the profile database 19. In some embodiments, each such client profile includes a set of client clusters, such as cluster 82a in Figure 11. Each client cluster further includes a selected subset of protected client systems. Step 244 may select a set of training events registered as occurring on any client system associated with the corresponding profile/cluster. In some embodiments, step 244 may include selecting a set of training events from a training corpus 18 already used to construct client profiles as shown above. Another step 246 may use the corresponding event training set as a training corpus to train the behavior model 86.

在一些实施例中,行为模型86包括结构及功能类似于分析引擎60的一些组件的组件。例如,模型86的一些实施例包含如图15中所说明的编码器-解码器对,其可使用神经网络技术构建且根据word2vec系列算法的成员进行训练(参见上文关于图8-A到B的描述)。接着,训练行为模型86可相当于调整编码器70c及/或解码器76c的参数(例如一组突触权重),目的是将来自相应客户端集群/配置文件的每一事件都表示为事件嵌入空间中的向量。在优选实施例中,编码器70c在事件序列的上下文中分析每一事件且产生嵌入空间,其中主要发生于类似上下文中的事件分开相较于发生于其它上下文中的事件更小的距离。然而,由训练编码器70c产生的事件嵌入空间(即轴的含义、事件间距离的大小等)可与由训练事件编码器70产生的事件嵌入空间显著不同,这是因为用于所述两个编码器的训练语料库是相异的。In some embodiments, behavioral model 86 includes components that are structurally and functionally similar to some components of analytics engine 60. For example, some embodiments of model 86 include an encoder-decoder pair as illustrated in FIG. 15, which can be constructed using neural network techniques and trained according to members of the word2vec family of algorithms (see the description above regarding FIG. 8-A to B). Training behavioral model 86 can then be equivalent to adjusting the parameters (e.g., a set of synaptic weights) of encoder 70c and/or decoder 76c to represent each event from the respective client cluster/profile as a vector in the event embedding space. In a preferred embodiment, encoder 70c analyzes each event in the context of the event sequence and generates an embedding space where events occurring primarily in similar contexts are separated by smaller distances than events occurring in other contexts. However, the event embedding space generated by training encoder 70c (i.e., the meaning of axes, the magnitude of distances between events, etc.) can be significantly different from the event embedding space generated by training event encoder 70, because the training corpora used for the two encoders are different.

在优选实施例中,步骤246包括使用某一版本的词袋算法训练编码器-解码器对(参见图8-B)。在一个此实例中,编码器-解码器对(图15)经配置以接收表示当前分析的事件序列的事件上下文的多个事件E-k…E-1、E1…Ep及产生N维预测分数向量90,其中每一元素与相异事件类型相关联,每一元素表示相应事件序列的中心事件具有相应事件类型的可能性。例如,较高分数值可指示相应事件类型比具有较低分数的事件类型更有可能作为相应事件序列的中心事件发生。在此类实施例中,模型86的示范性训练可包括从在步骤244中识别的事件的子集选择事件序列(图14),将相应序列的事件上下文输入到编码器70c,执行解码器76c以产生相应事件序列的中心事件E0的预测、及通过反向传播预测误差通过形成编码器70c及/或解码器76c的神经网络来惩罚不正确的预测。响应于成功训练,步骤248可保存经训练行为模型的参数值。可针对由分析引擎60识别的每一客户端配置文件重复所述训练过程。In a preferred embodiment, step 246 includes training the encoder-decoder pair using a version of the bag-of-words algorithm (see Figure 8-B). In one such example, the encoder-decoder pair (Figure 15) is configured to receive multiple events E <sub>-k </sub>…E <sub>-1</sub> , E<sub>1</sub>…E<sub> p </sub> representing the event context of the currently analyzed event sequence, and generating an N-dimensional prediction score vector 90, where each element is associated with a dissimilar event type, and each element represents the probability that the central event of the corresponding event sequence has the corresponding event type. For example, a higher score value may indicate that the corresponding event type is more likely to occur as the central event of the corresponding event sequence than an event type with a lower score. In such embodiments, exemplary training of model 86 may include selecting an event sequence from a subset of the events identified in step 244 (Figure 14), inputting the event context of the corresponding sequence into encoder 70c, executing decoder 76c to generate a prediction of the central event E <sub>0</sub> of the corresponding event sequence, and penalizing incorrect predictions by backpropagating prediction errors through the neural network forming encoder 70c and/or decoder 76c. In response to successful training, step 248 may save the parameter values of the trained behavioral model. The training process can be repeated for each client profile identified by the analytics engine 60.

图16说明根据本发明的一些实施例的由异常检测器62执行以保护目标客户端系统(例如图1中的客户端10a到h)是其免受计算机安全威胁的示范性步骤序列。目标客户端系统可为或可不为提供如上文展示那样产生行为模型及/或客户端配置文件的事件的训练语料库的客户端的子集的成员。为了保护目标客户端系统,事件可在目标客户端系统及/或其它装置(例如路由器15a到b(参见图1))处进行检测,且可以事件指示符的形式传达到安全服务器16。接着,此类事件指示符可根据其源、事件类型、时序、服务账户设置等进行预处理,且被组织为事件流24。事件可个别地或分批进行处理。响应于从目标客户端系统接收到事件指示符,在步骤254中,异常检测器62可根据相应事件指示符组装事件序列以进行分析。步骤254可包含识别事件源(即,已经发生相应事件的客户端系统),从事件流24选择多个其它事件以形成事件序列。在一些实施例中,序列的成员经选取使得其全都源于同一目标客户端系统。在另一实例中,序列的所有成员必须发生于客户端系统的预定子集上,例如(举例来说)网络子域、或共同IP地址。所选取的事件还可根据其发生及/或检测时间进行排序,例如使用与传入事件指示符一起提供的时间戳。事件序列可进一步分成若干部分,例如从而识别中心事件及事件上下文(参见例如图8-A)。Figure 16 illustrates an exemplary sequence of steps performed by an anomaly detector 62 according to some embodiments of the present invention to protect a target client system (e.g., clients 10a to h in Figure 1) from computer security threats. The target client system may or may not be a member of a subset of clients that provide a training corpus of events that generate behavioral models and/or client profiles as shown above. To protect the target client system, events may be detected at the target client system and/or other devices (e.g., routers 15a to b (see Figure 1)) and may be communicated to the security server 16 in the form of event indicators. These event indicators may then be preprocessed according to their source, event type, timing, service account settings, etc., and organized into an event stream 24. Events may be processed individually or in batches. In response to receiving an event indicator from the target client system, in step 254, the anomaly detector 62 may assemble an event sequence for analysis based on the corresponding event indicator. Step 254 may include identifying the event source (i.e., the client system where the corresponding event has occurred) and selecting multiple other events from the event stream 24 to form an event sequence. In some embodiments, the members of the sequence are selected such that they all originate from the same target client system. In another instance, all members of the sequence must occur on a predetermined subset of client systems, such as (for example) a network subdomain or a common IP address. The selected events may also be ordered according to their occurrence and/or detection time, for example, using a timestamp provided along with the incoming event indicator. The event sequence may be further divided into several parts, for example, to identify the central event and the event context (see, for example, Figure 8-A).

在步骤256中,配置文件管理器84可根据相应事件指示符,例如根据已经发生相应事件的目标客户端系统的身份,选择客户端配置文件。当相应目标客户端系统已经提供用于开发客户端配置文件及/或用于训练行为模型的训练事件时,步骤256可包括选择具有相应目标客户端系统的客户端配置文件/集群作为成员。还可使用其它配置文件选择准则。例如,步骤256可包括根据目标客户端系统在客户端配置文件空间内的位置选择客户端配置文件(参见图11),例如通过比较目标客户端系统的位置与一组集群原型或质心及选择其质心离目标客户端系统最近的集群/配置文件。在一个此实例中,客户端配置文件可根据针对目标客户端系统确定的事件配置文件进行选择(例如根据从目标客户端系统接收的拟合到特定事件类别/集群中的事件的计数)。其它客户端配置文件选择准则可包含根据目标客户端系统的网络地址选择客户端配置文件(例如选择含有具有与目标客户端系统相同的IP地址的客户端的客户端配置文件)、根据目标客户端系统的拥有者/用户选择客户端配置文件(例如选择含有与目标客户端系统相同的家庭的成员的配置文件)等。In step 256, the profile manager 84 may select a client profile based on a corresponding event indicator, such as the identity of the target client system where the corresponding event has occurred. When the corresponding target client system has provided training events for developing client profiles and/or for training behavioral models, step 256 may include selecting a client profile/cluster with the corresponding target client system as a member. Other profile selection criteria may also be used. For example, step 256 may include selecting a client profile based on the location of the target client system within the client profile space (see Figure 11), such as by comparing the location of the target client system with a set of cluster prototypes or centroids and selecting the cluster/profile whose centroid is closest to the target client system. In one example, the client profile may be selected based on an event profile determined for the target client system (e.g., based on the count of events received from the target client system that fit into a specific event category/cluster). Other client profile selection criteria may include selecting a client profile based on the network address of the target client system (e.g., selecting a client profile containing clients with the same IP address as the target client system), selecting a client profile based on the owner/user of the target client system (e.g., selecting a profile containing members of the same household as the target client system), etc.

在另一步骤258中,异常检测器可使用特定于相应所选择的客户端配置文件的参数值实例化行为模型86。在一些实施例中,在配置文件特定的实例化之后,执行模型86(步骤260)包括在与相应客户端配置文件相关联的事件嵌入空间中投射相应事件序列的事件。In another step 258, the anomaly detector may instantiate behavior model 86 using parameter values specific to the corresponding selected client profile. In some embodiments, after profile-specific instantiation, executing model 86 (step 260) includes projecting events of the corresponding event sequence into the event embedding space associated with the corresponding client profile.

步骤262现在可确定相应事件序列的事件是否表示与相应客户端配置文件相关联的正常/基线用户行为。在一个实施例中,步骤260包括将相应序列的事件上下文(Ei,i≠0)馈送到行为模型86及计算相应序列的预测分数向量90。接着,步骤262可包括识别对应于序列的实际中心事件E0的事件类型的向量90的元素,及比较相应分数与预定阈值(例如0.95)。在一些实施例中,低于阈值的分数值指示相应事件E0基本上不可能在相应事件上下文中发生,且因此指示与潜在计算机安全威胁一致的异常。在一些实施例中,安全服务器16的用户或管理员可通过调整阈值的值来调谐方法的灵敏度。在一个此实例中,不同阈值与不同群组的客户端系统相关联。Step 262 can now determine whether the events in the corresponding event sequence represent normal/baseline user behavior associated with the corresponding client profile. In one embodiment, step 260 includes feeding the event context (E <sub>i </sub>, i≠0) of the corresponding sequence to the behavior model 86 and calculating a predicted score vector 90 for the corresponding sequence. Step 262 then includes identifying elements of the vector 90 that identify the event type corresponding to the actual central event E <sub>0</sub> of the sequence, and comparing the corresponding score to a predetermined threshold (e.g., 0.95). In some embodiments, a score below the threshold indicates that the corresponding event E <sub>0</sub> is substantially unlikely to occur in the corresponding event context, and therefore indicates an anomaly consistent with a potential computer security threat. In some embodiments, the user or administrator of the security server 16 can tune the sensitivity of the method by adjusting the value of the threshold. In one example, different thresholds are associated with different groups of client systems.

在替代实施例中,步骤260可包括使用模型86确定序列的事件Ei在特定于相应客户端配置文件的事件嵌入空间中的表示。接着,步骤262可包括根据相应事件在嵌入空间内的位置确定事件Ei是否拟合相应客户端配置文件的正常行为的模式。例如,当事件定位于训练事件的集群内(例如,比预定阈值更靠近集群质心)时其可被认为是正常的。在另一实例中,当定位于嵌入空间的特定区中时事件可被认为是正常/良性的,且当定位于其它区中时被认为是异常的。In an alternative embodiment, step 260 may include using model 86 to determine the representation of the event E<sub> i </sub> of the sequence in an event embedding space specific to the corresponding client profile. Next, step 262 may include determining whether the event E<sub> i </sub> fits a pattern of normal behavior of the corresponding client profile based on the location of the corresponding event within the embedding space. For example, an event may be considered normal when it is located within a cluster of training events (e.g., closer to the cluster centroid than a predetermined threshold). In another instance, an event may be considered normal/benign when located in a specific region of the embedding space, and abnormal when located in other regions.

当序列的事件(例如E0)被认为是异常的时,或换句话来说,不拟合通过相应客户端配置文件的训练建立的常态模式,步骤264可标记相应事件以进行进一步分析。在一些实施例中,异常可触发安全服务器16的警告管理器64发射安全警告(参见图5)。安全警告可去向已经发生异常事件的客户端系统及/或去向相应客户端系统的管理员。异常事件的事发也可被收集及报告给计算机安全实验室以进行进一步分析。When a sequence of events (e.g., E0 ) is considered anomalous, or in other words, does not fit the normal pattern established through training on the corresponding client profile, step 264 may flag the event for further analysis. In some embodiments, the anomaly may trigger a security warning issued by the warning manager 64 of the security server 16 (see Figure 5). The security warning may be sent to the client system where the anomalous event occurred and/or to the administrator of the corresponding client system. The occurrence of the anomalous event may also be collected and reported to a computer security laboratory for further analysis.

上文描述的示范性系统及方法允许高效地检测计算机安全威胁,例如恶意软件及入侵。所揭示的系统及方法实施用于计算机安全的行为方法,其中正常/基线用户行为由系统根据事件的训练语料库自动推断,且其中违背基线行为模式可指示威胁。The exemplary systems and methods described above allow for the efficient detection of computer security threats, such as malware and intrusions. The disclosed systems and methods implement behavioral approaches for computer security, wherein normal/baseline user behavior is automatically inferred by the system from a training corpus of events, and violations of baseline behavioral patterns can indicate threats.

一些实施例检测在多个客户端系统(例如计算机、移动电话、网络设备、及虚拟机)处发生的各种事件。示范性事件包含特定进程发起、试图存取特定文件或网络位置、及如存取特定端口及地址的网络业务事件等。技术人员应理解,本文中描述的系统及方法可适于其它种类的事件,例如与用户在社交媒体上的活动、用户的浏览历史、及用户的游戏活动等相关的事件。事件通知在安全服务器处聚合。此类事件的集合可用作用于构建一组客户端配置文件的训练语料库,其中每一客户端配置文件可表示单个用户、单个机器、或多个用户/机器。在一些实施例中,每一客户端配置文件包括客户端系统的子集及/或已经发生于客户端系统的相应子集上的事件的子集。每一客户端配置文件可表示相应客户端系统的正常及/或良性使用模式。接着,此类客户端配置文件可用于检测异常行为的事发,其可指示计算机安全威胁。Some embodiments detect various events occurring on multiple client systems (e.g., computers, mobile phones, network devices, and virtual machines). Exemplary events include specific process initiation, attempts to access specific files or network locations, and network traffic events such as access to specific ports and addresses. Those skilled in the art will understand that the systems and methods described herein can be adapted to other types of events, such as those related to a user's activity on social media, a user's browsing history, and a user's gaming activity. Event notifications are aggregated at a security server. This collection of events can be used as a training corpus for constructing a set of client profiles, where each client profile may represent a single user, a single machine, or multiple users/machines. In some embodiments, each client profile includes a subset of client systems and/or a subset of events that have occurred on a corresponding subset of client systems. Each client profile may represent a normal and/or benign usage pattern of the corresponding client system. Such client profiles can then be used to detect incidents of anomalous behavior, which may indicate computer security threats.

一些常规计算机安全根据一组量化指示恶意行为的行为的规则进行操作。由于开发人员通常对向各种各样的客户端提供此类解决方案感兴趣,因此行为规则通常是通用的,而不是针对特定用户定制的。然而,实际上,用户是非常多样化的。即使在同一公司或家族中,每一成员使用计算机的方式也可能有很大的不同。对软件开发人员或工程师来说可能被认为是正常的一组动作当在会计部门中的计算机上被检测到时可能会非常不寻常。此外,同一用户在工作中与在家中可能具有显著不同的行为。因此,通用的行为规则可能无法捕获真实用户的多样性及特异性。与此类常规系统相对照,在本发明的一些实施例中,对照捕获每一客户端系统本身及/或类似客户端的正常/基线行为的模型选择性地检视及分析在相应客户端系统上发生的事件。换种方式来说,行为“正常性”的边界可使用实质特异性进行定义:特定客户端机器、特定的用户群组(例如,公司的特定部门、家族成员、特定年龄段)等。Some conventional computer security systems operate based on a set of rules that quantify malicious behavior. Because developers are typically interested in providing such solutions to a wide variety of clients, these behavioral rules are often generic rather than user-specific. However, in reality, users are highly diverse. Even within the same company or family, each member can use a computer in vastly different ways. What might be considered normal for a software developer or engineer could be highly unusual when detected on a computer in an accounting department. Furthermore, the same user may exhibit significantly different behaviors at work compared to at home. Therefore, generic behavioral rules may fail to capture the diversity and specificity of real users. In contrast to such conventional systems, in some embodiments of the present invention, events occurring on the respective client systems are selectively examined and analyzed against models that capture the normal/baseline behavior of each client system itself and/or similar clients. In other words, the boundaries of behavioral "normality" can be defined using substantial specificity: a specific client machine, a specific user group (e.g., a specific department within a company, family members, a specific age group), etc.

由于软件及因特网使用的激增,开发高度特定的行为配置文件(例如,附加到每一个别用户的配置文件)的尝试可能需要不合理的计算资源,且因此可能是不切实际的。此外,从个别用户/机器收集事件可能无法提供足够的数据来开发统计上稳健的行为模型。与此方法相对照,本发明的一些实施例将多个用户及/或机器分组到单个客户端配置文件中,从而确保了特异性、稳健性与计算成本之间的有用折衷。此外,将用户及机器分组为配置文件的方式本身就是基于行为准则的,以确保此类分组保留特异性。在一些实施例中,每一客户端配置文件群组将具有基本上类似的事件配置文件的用户/机器分组在一起。换种方式来说,就在成员机器上发生的事件的统计而言,客户端配置文件的所有成员都显示类似的基线行为。Due to the surge in software and internet usage, attempts to develop highly specific behavioral profiles (e.g., profiles attached to each individual user) could require unrealistic computational resources and are therefore impractical. Furthermore, collecting events from individual users/machines may not provide sufficient data to develop statistically robust behavioral models. In contrast, some embodiments of the present invention group multiple users and/or machines into a single client profile, thereby ensuring a useful trade-off between specificity, robustness, and computational cost. Moreover, the manner in which users and machines are grouped into profiles is itself based on behavioral criteria to ensure that such grouping retains specificity. In some embodiments, each client profile group groups users/machines with substantially similar event profiles together. In other words, all members of the client profiles exhibit similar baseline behavior in terms of the statistics of events occurring on member machines.

一些常规的计算机安全系统及方法主要分析个体事件。在计算机系统的操作期间发生的许多事件(例如,打开文件、访问网页)在孤立进行时可能并不指示恶意。然而,当其在其它事件的上下文中发生时(例如,作为特定的动作序列),其可能是恶意的。与更常规的解决方案相对照,本发明的一些实施例在上下文中显式地分析事件,且因此更适合于此类事件相关情况。优选实施例将个别事件表示为多维嵌入空间中的向量,其具有独特的性质,使得在相同事件上下文中以相对较高的频率发生的一对事件比在同一事件上下文中发生频率较低的另一对事件分开的距离更小。Some conventional computer security systems and methods primarily analyze individual events. Many events that occur during the operation of a computer system (e.g., opening a file, accessing a webpage) may not indicate malicious intent when performed in isolation. However, when they occur in the context of other events (e.g., as a specific sequence of actions), they may be malicious. In contrast to more conventional solutions, some embodiments of the present invention explicitly analyze events in context and are therefore more suitable for such event-related situations. Preferred embodiments represent individual events as vectors in a multidimensional embedding space, which have unique properties such that a pair of events occurring with a relatively high frequency in the same event context is less separated than another pair of events occurring with a lower frequency in the same event context.

成功的行为建模可能需要检测大量(例如,数百或数千)相异事件类型,但并非所有事件类型在行为建模中都可为同等重要的。收集及分析从大量来源接收到的关于此类众多事件类型的统计数据可能是不切实际的。为了解决此问题,一些实施例根据事件之间的相似度将事件分组为事件类别或集群,从而创建更稳健及/或相关的统计。此有意义的降维可显著促进客户端配置文件的构建。可根据若干准则来确定事件相似性,例如,根据在事件嵌入空间中将两个事件分开的距离。在优选实施例中,如果两个事件主要发生在相同的上下文中,那么可认为它们是相似的(例如,当事件A及B两者经常在事件X后面及/或在事件Y前面时,即,如在示范性序列XAY及XBY中,事件A与B被认为是相似的)。Successful behavioral modeling may require detecting a large number (e.g., hundreds or thousands) of dissimilar event types, but not all event types are equally important in behavioral modeling. Collecting and analyzing statistics on such numerous event types received from a large number of sources can be impractical. To address this issue, some embodiments group events into event categories or clusters based on their similarity, thereby creating more robust and/or relevant statistics. This meaningful dimensionality reduction can significantly facilitate the construction of client profiles. Event similarity can be determined according to several criteria, such as the distance that separates two events in the event embedding space. In a preferred embodiment, two events are considered similar if they primarily occur in the same context (e.g., events A and B are considered similar when both frequently follow event X and/or precede event Y, i.e., events A and B are considered similar, as in the exemplary sequences XAY and XBY).

图17-A到B说明将上文描述的一些系统及方法应用于计算机安全威胁的检测的实验。从多个被监测的客户端收集的事件的事件语料库用于如上文展示那样训练分析引擎的组件,从而导致将被监测的客户端分为11个客户端集群/配置文件。根据每一事件在15维嵌入空间中的表示,将事件分为几个事件类别。针对每一相应客户端集群开发了配置文件特定的行为模型。接着,在测试机上发起特定类型的攻击。从测试机收集的事件序列被馈送到异常检测器,所述异常检测器又使用特定于行为模型中的每一者的参数实例化。一些此类事件序列被检测为异常。Figures 17-A through 17-B illustrate an experiment applying some of the systems and methods described above to the detection of computer security threats. An event corpus collected from multiple monitored clients is used to train components of the analysis engine as shown above, resulting in the monitored clients being divided into 11 client clusters/profiles. Events are categorized into several event classes based on their representation in a 15-dimensional embedding space. Profile-specific behavioral models are developed for each corresponding client cluster. Then, specific types of attacks are launched on a test machine. Event sequences collected from the test machine are fed into an anomaly detector, which is instantiated using parameters specific to each of the behavioral models. Some of these event sequences are detected as anomalies.

图17-A展示集群特定的异常分数,以等级表示,其中分数1表示异常的100%确定性(例如,从测试机接收到的事件序列中的至少一个事件在训练中尚未被看到)。曲线图表示在异常事件序列上求平均的分数值及相关联的标准差。所述图展示,可将相同序列视为具有集群特定的确定性级别的异常。换种方式来说,与在其它客户端上相比,在某些客户端上,同一事件序列被认为“异常程度更低”。例如,与集群1、2及7相关联的行为模型不仅比其它模型检测到攻击的效率要高,而且与攻击相关联的所有事件序列都被认为“同样异常”。相比之下,与集群0及9相关联的模型指示同一攻击的一些事件序列比其它事件序列“异常程度更低”。Figure 17-A illustrates cluster-specific anomaly scores, expressed as levels, where a score of 1 indicates 100% certainty of the anomaly (e.g., at least one event in the sequence of events received from the test machine has not been seen during training). The graph represents the average score across the sequence of anomalous events and the associated standard deviation. The figure illustrates that the same sequence can be considered anomaly with a cluster-specific level of certainty. In other words, the same sequence of events is considered "less anomalous" on some clients compared to others. For example, the behavioral models associated with clusters 1, 2, and 7 not only detect attacks more efficiently than other models, but all event sequences associated with the attacks are considered "equally anomalous." In contrast, the models associated with clusters 0 and 9 indicate that some event sequences of the same attack are "less anomalous" than others.

图17-B展示针对三种相异类型的攻击实现的配置文件特定的平均检测率。使用11种配置文件特定的经训练行为模型中的每一者分析在每一类型的攻击期间从测试机收集的事件序列。检测率在模型及攻击类型之间不同,此进一步证实了本文中描述的一些系统及方法的特异性。Figure 17-B illustrates profile-specific average detection rates achieved against three distinct attack types. Event sequences collected from the test machine during each attack type were analyzed using each of 11 profile-specific trained behavioral models. The detection rates differed between models and attack types, further confirming the specificity of some of the systems and methods described in this paper.

此类实验结果指示本发明一些实施例的另一潜在应用。集中式计算机安全解决方案可为由客户端配置文件识别的每一组客户端及/或与每一客户端集群的原型具有相似性的其它客户端选择性地开发保护策略。一些实施例可识别本文中描述的方法为其提供令人满意的安全程度的客户端集群,以及需要额外安全措施的其它客户端集群。为每一客户端集群定制保护可改善用户体验并减少不必要的计算费用。Such experimental results indicate another potential application of some embodiments of the invention. Centralized computer security solutions can selectively develop protection strategies for each group of clients identified by client profiles and/or other clients that are similar to the prototype of each client cluster. Some embodiments can identify client clusters for which the methods described herein provide a satisfactory level of security, as well as other client clusters that require additional security measures. Customizing protection for each client cluster can improve the user experience and reduce unnecessary computational costs.

对于所属领域的技术人员将显而易见的是,在不脱离本发明的范围的情况下,可以许多方式改变上述实施例。因此,本发明的范围应由所附权利要求书及其合法等效物确定。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 (15)

1.一种包括至少一个硬件处理器的计算机系统,所述至少一个硬件处理器经配置以:1. A computer system including at least one hardware processor, said at least one hardware processor being configured to: 响应于接收到指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,In response to receiving a cluster membership indicator that directs multiple client systems to multiple client clusters, a client cluster is selected from the multiple client clusters. 其中所述分组是通过分析已经发生于所述多个客户端系统的成员上的事件集合以识别具有相似行为的客户端系统来确定的;The grouping is determined by analyzing a set of events that have occurred on members of the multiple client systems to identify client systems with similar behaviors; 响应于选择所述客户端集群,训练行为模型以编码共同表征所述所选择的客户端集群的成员的基线行为,其中:In response to selecting the client cluster, a behavioral model is trained to encode baseline behaviors that collectively represent the members of the selected client cluster, wherein: 所述行为模型包括事件编码器,所述事件编码器经配置以根据所选择的事件在事件序列内的位置且进一步根据所述事件序列中的至少另一个事件来确定所述事件序列中的所述所选择的事件的嵌入向量,The behavioral model includes an event encoder configured to determine the embedding vector of the selected event in the event sequence based on the position of the selected event within the event sequence and further based on at least one other event in the event sequence. 所述事件序列仅由已经发生于所述所选择的客户端集群的成员上的事件组成且根据每个事件的发生时间排序,和The event sequence consists only of events that have occurred on members of the selected client cluster and is ordered according to the occurrence time of each event. 其中训练所述行为模型包括根据所述嵌入向量预测所述事件序列中的另一个事件且根据所述预测调整所述事件编码器的参数;以及Training the behavior model includes predicting another event in the event sequence based on the embedding vector and adjusting the parameters of the event encoder based on the prediction; and 响应于训练所述行为模型,将所述参数的经调整值发射到异常检测器,所述异常检测器经配置以采用经训练的行为模型来确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。In response to training the behavioral model, adjusted values of the parameters are emitted to an anomaly detector configured to use the trained behavioral model to determine whether a target event occurring on a target client system indicates a computer security threat. 2.根据权利要求1所述的计算机系统,其中:2. The computer system according to claim 1, wherein: 所述事件序列包括中心事件及事件上下文,所述事件上下文包括在所述中心事件之前发生的所述事件的第一子集及比所述中心事件更晚发生的事件的第二子集;The event sequence includes a central event and an event context, wherein the event context includes a first subset of the events that occurred before the central event and a second subset of the events that occurred after the central event; 所述所选择的事件是所述中心事件;且The selected event is the central event; and 所述另一事件是所述事件上下文的成员。The other event is a member of the event context. 3.根据权利要求1所述的计算机系统,其中:3. The computer system according to claim 1, wherein: 所述事件序列包括中心事件及事件上下文,所述事件上下文包括在所述中心事件之前发生的所述事件的第一子集及比所述中心事件更晚发生的事件的第二子集;The event sequence includes a central event and an event context, wherein the event context includes a first subset of the events that occurred before the central event and a second subset of the events that occurred after the central event; 所述所选择的事件是所述事件上下文的成员;且The selected event is a member of the event context; and 所述另一事件是所述中心事件。The other event is the central event. 4.根据权利要求1所述的计算机系统,其中:4. The computer system according to claim 1, wherein: 所述事件集合根据所述事件集合中的每个事件的事件上下文被分成多个事件类别;且The event set is divided into multiple event categories based on the event context of each event in the event set; and 将所述多个客户端系统分组到集群中包括根据已经发生于所选择的客户端系统且属于所述多个事件类别的所选择的类别的事件计数来确定所述所选择的客户端系统是否属于所述所选择的客户端集群。Grouping the multiple client systems into a cluster includes determining whether a selected client system belongs to the selected client cluster based on the event count of events that have occurred on the selected client system and belong to the selected category of the multiple event categories. 5.根据权利要求4所述的计算机系统,其中将所述多个客户端系统分组到集群中包括进一步根据已经发生于所选择的客户端系统且属于所述多个事件类别的另一类别的另一事件计数来确定所述所选择的客户端系统是否属于所述所选择的客户端集群。5. The computer system of claim 4, wherein grouping the plurality of client systems into a cluster includes further determining whether the selected client system belongs to the selected client cluster based on a count of another event that has occurred on the selected client system and belongs to another category of the plurality of event categories. 6.根据权利要求1所述的计算机系统,其中所述所选择的事件包括所选择的进程在所述多个客户端系统中的客户端系统上的发起。6. The computer system of claim 1, wherein the selected event includes the initiation of the selected process on a client system among the plurality of client systems. 7.根据权利要求1所述的计算机系统,其中预测所述另一事件包括确定指示所述另一事件属于所述事件序列的可能性的预测指示符。7. The computer system of claim 1, wherein predicting the other event includes determining a prediction indicator indicating the likelihood that the other event belongs to the event sequence. 8.一种计算机实施方法,其包括:8. A computer-implemented method, comprising: 采用计算机系统的至少一个硬件处理器,响应于接收指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,Employing at least one hardware processor of a computer system, in response to receiving a cluster membership indicator indicating packets from multiple client systems to multiple client clusters, a client cluster is selected from the multiple client clusters. 其中所述分组是通过分析已经发生于所述多个客户端系统的成员上的事件集合以识别具有相似行为的客户端系统来确定的;The grouping is determined by analyzing a set of events that have occurred on members of the multiple client systems to identify client systems with similar behaviors; 响应于选择所述客户端集群,采用所述计算机系统的至少一个硬件处理器以训练行为模型以编码共同表征所述所选择的客户端集群的成员的基线行为,其中:In response to selecting the client cluster, at least one hardware processor of the computer system is used to train a behavioral model to encode baseline behavior that collectively represents the members of the selected client cluster, wherein: 所述行为模型包括事件编码器,所述事件编码器经配置以根据所选择的事件在事件序列内的位置且进一步根据所述事件序列中的至少另一个事件来确定所述事件序列中的所述所选择的事件的嵌入向量,The behavioral model includes an event encoder configured to determine the embedding vector of the selected event in the event sequence based on the position of the selected event within the event sequence and further based on at least one other event in the event sequence. 所述事件序列仅由已经发生于所述所选择的客户端集群的成员上的事件组成且根据每个事件发生的时间排序,和The event sequence consists only of events that have occurred on members of the selected client cluster and is ordered according to the time of occurrence of each event. 其中训练所述行为模型包括根据所述嵌入向量预测所述事件序列中的另一个事件且根据所述预测调整所述事件编码器的参数;Training the behavior model includes predicting another event in the event sequence based on the embedding vector and adjusting the parameters of the event encoder based on the prediction; 响应于训练所述行为模型,采用所述计算机系统的至少一个硬件处理器将所述参数的经调整值发射到异常检测器,所述异常检测器经配置以采用经训练的行为模型来确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。In response to training the behavioral model, at least one hardware processor of the computer system transmits adjusted values of the parameters to an anomaly detector configured to use the trained behavioral model to determine whether a target event occurring on the target client system indicates a computer security threat. 9.根据权利要求8所述的方法,其中:9. The method according to claim 8, wherein: 所述事件序列包括中心事件及事件上下文,所述事件上下文包括在所述中心事件之前发生的所述事件的第一子集及比所述中心事件更晚发生的事件的第二子集;The event sequence includes a central event and an event context, wherein the event context includes a first subset of the events that occurred before the central event and a second subset of the events that occurred after the central event; 所述所选择的事件是所述中心事件;且The selected event is the central event; and 所述另一事件是所述事件上下文的成员。The other event is a member of the event context. 10.根据权利要求8所述的方法,其中:10. The method according to claim 8, wherein: 所述事件序列包括中心事件及事件上下文,所述事件上下文包括在所述中心事件之前发生的所述事件的第一子集及比所述中心事件更晚发生的事件的第二子集;The event sequence includes a central event and an event context, wherein the event context includes a first subset of the events that occurred before the central event and a second subset of the events that occurred after the central event; 所述所选择的事件是所述事件上下文的成员;且The selected event is a member of the event context; and 所述另一事件是所述中心事件。The other event is the central event. 11.根据权利要求8所述的方法,其中:11. The method according to claim 8, wherein: 所述事件集合根据所述事件集合中的每个事件的事件上下文被分成多个事件类别;且The event set is divided into multiple event categories based on the event context of each event in the event set; and 将所述多个客户端系统分组到集群中包括根据已经发生于所选择的客户端系统且属于所述多个事件类别的所选择的类别的事件计数来确定所述所选择的客户端系统是否属于所述所选择的客户端集群。Grouping the multiple client systems into a cluster includes determining whether a selected client system belongs to the selected client cluster based on the event count of events that have occurred on the selected client system and belong to the selected category of the multiple event categories. 12.根据权利要求11所述的方法,其中将所述多个客户端系统分组到集群中包括进一步根据已经发生于所选择的客户端系统且属于所述多个事件类别的另一类别的另一事件计数来确定所述所选择的客户端系统是否属于所述所选择的客户端集群。12. The method of claim 11, wherein grouping the plurality of client systems into a cluster includes further determining whether the selected client system belongs to the selected client cluster based on a count of another event that has occurred on the selected client system and belongs to another category of the plurality of event categories. 13.根据权利要求8所述的方法,其中所述所选择的事件包括所选择的进程在所述多个客户端系统中的客户端系统上的发起。13. The method of claim 8, wherein the selected event includes the initiation of the selected process on a client system among the plurality of client systems. 14.根据权利要求8所述的方法,其中预测所述另一事件包括确定指示所述另一事件属于所述事件序列的可能性的预测指示符。14. The method of claim 8, wherein predicting the other event includes determining a prediction indicator indicating the likelihood that the other event belongs to the event sequence. 15.一种存储指令的非暂时性计算机可读媒体,所述指令在由计算机系统的至少一个硬件处理器执行时致使所述计算机系统进行以下操作:15. A non-transitory computer-readable medium storing instructions that, when executed by at least one hardware processor of a computer system, cause the computer system to perform the following operations: 响应于接收到指示多个客户端系统到多个客户端集群中的分组的集群成员资格指示符,从所述多个客户端集群选择客户端集群,In response to receiving a cluster membership indicator that directs multiple client systems to multiple client clusters, a client cluster is selected from the multiple client clusters. 其中所述分组是通过分析已经发生于所述多个客户端系统的成员上的事件集合以识别具有相似行为的客户端系统来确定的;The grouping is determined by analyzing a set of events that have occurred on members of the multiple client systems to identify client systems with similar behaviors; 响应于选择所述客户端集群,训练行为模型以编码共同表征所述所选择的客户端集群的成员的基线行为,其中:In response to selecting the client cluster, a behavioral model is trained to encode baseline behaviors that collectively represent the members of the selected client cluster, wherein: 所述行为模型包括事件编码器,所述事件编码器经配置以根据所选择的事件在事件序列内的位置且进一步根据所述事件序列中的至少另一个事件来确定所述事件序列中的所述所选择的事件的嵌入向量,The behavioral model includes an event encoder configured to determine the embedding vector of the selected event in the event sequence based on the position of the selected event within the event sequence and further based on at least one other event in the event sequence. 所述事件序列仅由已经发生于所述所选择的客户端集群的成员上的事件组成且根据每个事件发生的时间排序,和The event sequence consists only of events that have occurred on members of the selected client cluster and is ordered according to the time of occurrence of each event. 其中训练所述行为模型包括根据所述嵌入向量预测所述事件序列中的另一个事件且根据所述预测调整所述事件编码器的参数;以及Training the behavior model includes predicting another event in the event sequence based on the embedding vector and adjusting the parameters of the event encoder based on the prediction; and 响应于训练所述行为模型,将所述参数的经调整值发射到异常检测器,所述异常检测器经配置以采用经训练的行为模型来确定在目标客户端系统上发生的目标事件是否指示计算机安全威胁。In response to training the behavioral model, adjusted values of the parameters are emitted to an anomaly detector configured to use the trained behavioral model to determine whether a target event occurring on a target client system indicates a computer security threat.
HK62021038679.8A 2018-12-10 2019-12-10 Systems and methods for behavioral threat detection HK40049002B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/215,214 2018-12-10

Publications (2)

Publication Number Publication Date
HK40049002A HK40049002A (en) 2021-12-10
HK40049002B true HK40049002B (en) 2024-08-16

Family

ID=

Similar Documents

Publication Publication Date Title
CN113168470B (en) System and method for behavioral threat detection
EP3895048B1 (en) Systems and methods for behavioral threat detection
EP3895047B1 (en) Systems and methods for behavioral threat detection
CA3120156C (en) Systems and methods for behavioral threat detection
RU2772549C1 (en) Systems and methods for detecting behavioural threats
RU2803399C2 (en) Systems and methods for detecting behavioural threats
HK40049002B (en) Systems and methods for behavioral threat detection
RU2778630C1 (en) Systems and methods for detecting behavioural threats
HK40048545B (en) Systems and methods for behavioral threat detection
HK40048546B (en) Systems and methods for behavioral threat detection
HK40048546A (en) Systems and methods for behavioral threat detection
HK40049002A (en) Systems and methods for behavioral threat detection
HK40048545A (en) Systems and methods for behavioral threat detection