RU2778630C1 - Systems and methods for detecting behavioural threats - Google Patents

Systems and methods for detecting behavioural threats Download PDF

Info

Publication number
RU2778630C1
RU2778630C1 RU2021115725A RU2021115725A RU2778630C1 RU 2778630 C1 RU2778630 C1 RU 2778630C1 RU 2021115725 A RU2021115725 A RU 2021115725A RU 2021115725 A RU2021115725 A RU 2021115725A RU 2778630 C1 RU2778630 C1 RU 2778630C1
Authority
RU
Russia
Prior art keywords
event
target
client
client system
events
Prior art date
Application number
RU2021115725A
Other languages
Russian (ru)
Inventor
Даньел ДИКЬЮ
Стефан НИКУЛАЭ
Элена А. БОСИНЧАНУ
Сорина Н. ЗАМФИР
Андрея ДИНКУ
Андрей А. АПОСТОАЕ
Original Assignee
БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД filed Critical БИТДЕФЕНДЕР АйПиАр МЕНЕДЖМЕНТ ЛТД
Application granted granted Critical
Publication of RU2778630C1 publication Critical patent/RU2778630C1/en

Links

Images

Abstract

FIELD: computing technology.
SUBSTANCE: server computer system comprises at least one hardware processor configured to: in response to a target event occurring in the target client system, determine whether the target client system contains malware; and perform a protection operation in order to protect the target client system; wherein determining whether the target client system contains malware includes: determining the event context of the target event; selecting a client profile from a set of predetermined client profiles; using a behaviour model specific to the selected client profile in order to define a set of prediction estimates in accordance with the event context; selecting an estimate defined for the type of event of the target event; and comparing the selected estimate with the predetermined threshold, wherein the composition of the selected cluster of client systems is determined by analysing the multiple events that have occurred in the set of client systems in order to determine which of the set of client systems exhibits similar behaviour.
EFFECT: increase in the level of security of a computing system.
21 cl, 20 dwg, 1 tbl

Description

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

[0001] Изобретение относится к системам и способам компьютерной безопасности, в частности к системам и способам детектирования вредоносного программного обеспечения и/или проникновения в компьютерную систему и/или сеть связи. [0001] The invention relates to computer security systems and methods, in particular to systems and methods for detecting malicious software and/or intrusion into a computer system and/or communications network.

[0002] В последние годы компьютерная и сетевая безопасность становятся все более важными как для частных лиц, так и для компаний. Быстрое развитие технологий электронной связи, растущая зависимость от программного обеспечения в повседневной деятельности и появление Интернета вещей сделали компании и отдельных лиц уязвимыми для потери конфиденциальности и кражи данных.[0002] In recent years, computer and network security have become increasingly important for both individuals and companies. The rapid development of electronic communication technologies, the growing reliance on software for daily activities, and the advent of the Internet of Things have left companies and individuals vulnerable to privacy loss and data theft.

[0003] Опытный злоумышленник может попытаться проникнуть в корпоративную сеть, используя различные методы, например, используя бэкдор, установленный на корпоративном компьютере вредоносным программным обеспечением. Затем злоумышленник может получить доступ, изменить или уничтожить конфиденциальную информацию. Другие примерные атаки включают, среди прочего, отключение или иным образом вывод из строя систем физической безопасности (например, охранную сигнализацию), установку шпионского программного обеспечения и вмешательство в автоматизированные системы, которые контролируют производство или распространение товаров и услуг (например, энергосистему).[0003] An experienced attacker may attempt to infiltrate a corporate network using various methods, such as using a backdoor installed on a corporate computer with malicious software. The attacker can then access, modify, or destroy the sensitive information. Other exemplary attacks include, but are not limited to, disabling or otherwise disabling physical security systems (such as burglar alarms), installing spyware, and interfering with automated systems that control the production or distribution of goods and services (such as the power grid).

[0004] Программное обеспечение, исполняемое в компьютерной системе, может использоваться для автоматического детектирования и/или предотвращения несанкционированного вторжения и других злонамеренных действий. Такое программное обеспечение, обычно известное как система детектирования вторжений (IDS), может отслеживать активность сети и/или компьютера на предмет необычных событий или нарушений порядка. Типичная IDS записывает информацию, относящуюся к наблюдаемым событиям, уведомляет пользователя или сетевого администратора и создает отчеты. Некоторые IDS могут пойти дальше, чтобы предотвратить выполнение злоумышленником злонамеренных действий, например, путем изменения настроек безопасности (например, перенастройки брандмауэра) в ответ на детектирование вторжения.[0004] Software executable on a computer system may be used to automatically detect and/or prevent tampering and other malicious activities. Such software, commonly known as an intrusion detection system (IDS), can monitor network and/or computer activity for unusual events or out of order. A typical IDS records information related to observed events, notifies the user or network administrator, and generates reports. Some IDSs may go further to prevent an attacker from performing malicious actions, for example, by changing security settings (eg, reconfiguring the firewall) in response to intrusion detection.

[0005] Однако по мере того, как программные услуги постепенно становятся популярней, а объем данных, передаваемых по информационным сетям, увеличивается, для программного обеспечения безопасности становится все более непрактичным просеивать данный огромный объем информации на предмет индикаторов злонамеренной активности.[0005] However, as software services gradually become more popular and the amount of data transferred over information networks increases, it becomes increasingly impractical for security software to sift through this vast amount of information for indicators of malicious activity.

Следовательно, существует значительный интерес к разработке более надежных и масштабируемых систем и способов детектирования вторжений.Consequently, there is considerable interest in developing more reliable and scalable intrusion detection systems and methods.

РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION

[0006] Согласно одному аспекту серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на прием индикации, выбирать значение параметра из множества значений параметра в соответствии с целевой клиентской системой, и создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется согласно обучающему корпусу событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.[0006] According to one aspect, the server computer system comprises at least one hardware processor configured to: responsive to receiving a target event occurrence indication on the target client system, collect a sequence of events including the target event, wherein all events of the sequence of events have occurred on the target client system, with the members of the sequence of events arranged according to the time of occurrence of each event in the sequence of events. The at least one hardware processor is also configured to, in response to receiving the indication, select a parameter value from a plurality of parameter values in accordance with the target client system, and instantiate the behavior with the parameter value, the behavior being configured to input the selected event of the sequence of events, and , in response, create a prediction indicator indicating the probability that the sequence of events includes the target event. The at least one hardware processor is also configured to, in response to instantiating the behavior model, determine whether the target event indicates a computer security threat according to the predictive indicator. The set of parameter values is determined according to the training corpus of events that occurred on the set of client systems grouped into the set of client clusters. Each of the plurality of parameter values is defined in accordance with a distinct subset of the training corpus, with each distinct subset occurring on members of a distinct cluster from the plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.

[0007] Согласно другому аспекту реализуемый компьютером способ включает, в ответ на получение индикации происшествия целевого события на целевой клиентской системе, использование по меньшей мере одного аппаратного процессора компьютерной системы для сборки последовательности событий, включающей целевое событие, при этом все события последовательности событий произошли на целевой клиентской системе, причем члены последовательности событий расположены в соответствии с временем происшествия каждого события последовательности событий. Способ также включает, в ответ на прием индикации, использование по меньшей мере одного процессора компьютерной системы для выбора значения параметра из множества значений параметров в соответствии с целевой клиентской системой. Способ также включает, в ответ на выбор значений параметров набора, использование по меньшей мере одного аппаратного процессора компьютерной системы для создания экземпляра модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создания индикатора прогнозирования, указывающего вероятность того, что последовательность событий включает целевое событие. Способ также включает, в ответ на создание экземпляра модели поведения, использование по меньшей мере одного аппаратного процессора компьютерной системы для определения, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.[0007] According to another aspect, a computer-implemented method includes, in response to receiving an indication of the occurrence of a target event on a target client system, using at least one hardware processor of the computer system to assemble a sequence of events including the target event, wherein all events of the sequence of events have occurred on to the target client system, with the members of the sequence of events arranged according to the time of occurrence of each event in the sequence of events. The method also includes, in response to receiving the indication, using at least one computer system processor to select a parameter value from a plurality of parameter values in accordance with the target client system. The method also includes, in response to selecting set parameter values, using at least one hardware processor of the computer system to instantiate the behavior model with the parameter value, the behavior model being configured to input the selected event of the sequence of events and, in response, generating a prediction indicator indicating the probability that a sequence of events includes a target event. The method also includes, in response to instantiating the behavior model, using at least one hardware processor of the computer system to determine if the target event is indicative of a computer security threat, in accordance with the prediction indicator. The set of parameter values is determined in accordance with the training corpus of events that occurred on a set of client systems, grouped into a set of client clusters. Each of the plurality of parameter values is defined in accordance with a distinct subset of the training corpus, with each distinct subset occurring on members of a distinct cluster from the plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.

[0008] Согласно другому аспекту невременный машиночитаемый носитель хранит инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. Инструкции также побуждают компьютерную систему, в ответ на прием индикации, выбирать значение параметра из множества значений параметров в соответствии с целевой клиентской системой в ответ на выбор значения параметра, создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. Инструкции также побуждают компьютерную систему, в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, согласно индикатору прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор возникает на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметров в соответствии с целевым кластером. [0008] According to another aspect, the non-transitory computer-readable medium stores instructions that, when executed by at least one hardware processor of the computer system, causes the computer system to: in response to receiving a target event occurrence indication on the target client system, collect a sequence of events including the target event, all the event sequence events occurred on the target client system, with the members of the event sequence arranged according to the time of occurrence of each event in the event sequence. The instructions also cause the computer system, in response to receiving the indication, to select a parameter value from a plurality of parameter values in accordance with the target client system in response to the parameter value selection, to instantiate the behavior with the parameter value, the behavior configured to input the selected event sequence event and, in response, create a prediction indicator indicating the probability that the sequence of events includes the target event. The instructions also cause the computer system, in response to instantiating the behavior, to determine if the target event indicates a computer security threat, according to the predictive indicator. The set of parameter values is determined in accordance with the training corpus of events that occurred on a set of client systems, grouped into a set of client clusters. Each of the set of parameter values is determined in accordance with a separate subset of the training corpus, with each separate subset occurring on members of a separate cluster from a plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0009] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения следующего ниже подробного описания, данного со ссылками на чертежи, на которых изображено следующее:[0009] The above aspects and advantages of the present invention will become more clear after reading the following detailed description, given with reference to the drawings, which depict the following:

[0010] Фиг. 1 иллюстрирует несколько примерных взаимосвязанных клиентских систем, при этом сервер безопасности действует как система детектирования вторжений согласно некоторым вариантам осуществления настоящего изобретения.[0010] FIG. 1 illustrates several exemplary interconnected client systems, with a security server acting as an intrusion detection system, in accordance with some embodiments of the present invention.

[0011] Фиг.2 иллюстрирует примерный обмен данными, выполняемый для защиты клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0011] FIG. 2 illustrates an exemplary communication performed to secure a client system in accordance with some embodiments of the present invention.

[0012] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0012] FIG. 3-A illustrates an exemplary client system hardware configuration according to some embodiments of the present invention.

[0013] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения.[0013] FIG. 3-B illustrates an exemplary security server hardware configuration according to some embodiments of the present invention.

[0014] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в защищенной клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.[0014] Figure 4 illustrates a set of exemplary software components executing on a secure client system in accordance with some embodiments of the present invention.

[0015] Фиг.5 иллюстрирует примерную программную архитектуру сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения. [0015] FIG. 5 illustrates an exemplary security server software architecture according to some embodiments of the present invention.

[0016] Фиг.6 иллюстрирует примерную работу механизма профилирования согласно некоторым вариантам осуществления настоящего изобретения.[0016] FIG. 6 illustrates exemplary operation of a profiling engine according to some embodiments of the present invention.

[0017] Фиг.7 иллюстрирует примерную последовательность шагов, выполняемых механизмом профилирования согласно некоторым вариантам осуществления настоящего изобретения.[0017] Figure 7 illustrates an exemplary sequence of steps performed by a profiling engine according to some embodiments of the present invention.

[0018] Фиг.8-A иллюстрирует примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.[0018] FIG. 8-A illustrates exemplary event encoder training according to some embodiments of the present invention.

[0019] На Фиг.8-B показано альтернативное примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.[0019] FIG. 8-B shows an alternative exemplary event encoder training according to some embodiments of the present invention.

[0020] Фиг.9 иллюстрирует примерную последовательность шагов, выполняемых для обучения декодера событий в конфигурации с фиг.8-A.[0020] FIG. 9 illustrates an exemplary sequence of steps taken to train an event decoder in the configuration of FIG. 8-A.

[0021] Фиг.10 иллюстрирует примерное пространство внедрения событий и набор примерных кластеров событий согласно некоторым вариантам осуществления настоящего изобретения.[0021] FIG. 10 illustrates an exemplary event injection space and a set of exemplary event clusters according to some embodiments of the present invention.

[0022] Фиг.11 иллюстрирует примерное пространство клиентского профиля и набор клиентских кластеров согласно некоторым вариантам осуществления настоящего изобретения.[0022] FIG. 11 illustrates an exemplary client profile space and a set of client clusters according to some embodiments of the present invention.

[0023] Фиг.12 иллюстрирует примерный профиль события клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0023] FIG. 12 illustrates an exemplary client system event profile according to some embodiments of the present invention.

[0024] Фиг.13 иллюстрирует примерные компоненты и работу детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0024] FIG. 13 illustrates exemplary components and operation of an anomaly detector according to some embodiments of the present invention.

[0025] Фиг.14 иллюстрирует примерную последовательность шагов, выполняемых детектором аномалий во время обучения, согласно некоторым вариантам осуществления настоящего изобретения.[0025] FIG. 14 illustrates an exemplary sequence of steps performed by an anomaly detector during training, in accordance with some embodiments of the present invention.

[0026] Фиг.15 иллюстрирует примерные компоненты модели поведения, образующие часть детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0026] FIG. 15 illustrates exemplary behavioral model components forming part of an anomaly detector according to some embodiments of the present invention.

[0027] Фиг.16 иллюстрирует примерную последовательность шагов, выполняемых обученным детектором аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0027] FIG. 16 illustrates an exemplary sequence of steps performed by a trained anomaly detector in accordance with some embodiments of the present invention.

[0028] Фиг.17-A иллюстрирует результаты эксперимента, включающего использование некоторых вариантов осуществления настоящего изобретения для детектирования реальных угроз компьютерной безопасности.[0028] Figure 17-A illustrates the results of an experiment involving the use of some embodiments of the present invention to detect real computer security threats.

[0029] Фиг.17-B иллюстрирует другие экспериментальные результаты использования некоторых вариантов осуществления для детектирования реальных угроз компьютерной безопасности.[0029] Figure 17-B illustrates other experimental results using some embodiments to detect real computer security threats.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION

[0030] Следует понимать, что в нижеследующем описании все перечисленные соединения между структурами могут быть прямыми функциональными соединениями или непрямыми функциональными соединениями через промежуточные структуры. Набор элементов включает в себя один или более элементов. Считается, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает по меньшей мере два элемента. Если не указано иное, любое использование «ИЛИ» относится к неисключительному или. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном проиллюстрированном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, сгенерированный обработкой второго элемента и, опционально, других данных. Принятие определения или решения в соответствии с параметром включает в себя принятие определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа - это последовательность инструкций процессора, выполняющих задачу.[0030] It should be understood that in the following description, all listed connections between structures can be direct functional connections or indirect functional connections through intermediate structures. An element set includes one or more elements. Any reference to an element is considered to refer to at least one element. The set of elements includes at least two elements. Unless otherwise noted, any use of "OR" refers to a non-exclusive or. Unless otherwise required, any of the method steps described need not be performed in the specific illustrated order. The first element (eg, data) derived from the second element includes the first element equal to the second element, as well as the first element generated by processing the second element and optionally other data. Making a determination or decision in accordance with a parameter includes making a determination or decision in accordance with the parameter and, optionally, in accordance with other data. Unless otherwise indicated, an indicator of a quantity/data may be the quantity/data itself or an indicator other than the quantity/data itself. A computer program is a sequence of processor instructions that perform a task.

Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными объектами или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Если не указано иное, компьютерная безопасность включает защиту оборудования и данных от незаконного доступа, модификации и/или уничтожения. Машиночитаемые носители включают невременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также каналы коммуникации, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящее изобретение обеспечивает, среди прочего, компьютерные системы, содержащие аппаратные средства (например, один или более процессоров), запрограммированные для выполнения описанных здесь способов, а также машиночитаемые инструкции кодирования мультимедиа для выполнения способов, описанных в данном документе.The computer programs described in some embodiments of the present invention may be stand-alone program objects or sub-objects (eg, routines, libraries) of other computer programs. Unless otherwise noted, computer security includes the protection of equipment and data from unauthorized access, modification and/or destruction. Computer-readable media includes non-transitory media such as magnetic, optical, and semiconductor storage media (eg, hard disks, optical disks, flash memory, DRAM) as well as communication channels such as conductive cables and fiber optic lines. In some embodiments, the present invention provides, among other things, computer systems comprising hardware (e.g., one or more processors) programmed to perform the methods described herein, as well as computer-readable media encoding instructions for performing the methods described herein.

[0031] Нижеследующее описание иллюстрирует варианты осуществления изобретения в качестве примера, а не обязательно в качестве ограничения.[0031] The following description illustrates embodiments of the invention by way of example, and not necessarily as a limitation.

[0032] Фиг.1 иллюстрирует примерный набор клиентских систем 10a-h, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Клиентские системы 10a-h могут представлять любое электронное устройство, имеющее процессор, память и коммуникационный интерфейс. Примеры клиентских систем 10a-h включают персональные компьютеры, ноутбуки, планшетные компьютеры, мобильные телекоммуникационные устройства (например, смартфоны), медиаплееры, телевизоры, игровые консоли, бытовую технику (например, холодильники, термореле, интеллектуальное отопление и/или системы освещения), а также носимые устройства (например, умные часы, фитнес-оборудование), среди прочего. Клиентские системы 10a-h могут исполнять различное программное обеспечение, например, обработку документов, игры, электронные сообщения и приложения социальных сетей, среди прочего. Некоторые клиенты могут обмениваться информацией с удаленным сервером 17 контента, например, просматривать Интернет.[0032] Figure 1 illustrates an exemplary set of client systems 10a-h protected from computer security threats, according to some embodiments of the present invention. Client systems 10a-h may represent any electronic device having a processor, memory, and communication interface. Examples of client systems 10a-h include personal computers, laptops, tablet computers, mobile telecommunications devices (such as smartphones), media players, televisions, game consoles, home appliances (such as refrigerators, thermostats, smart heating and/or lighting systems), and also wearable devices (e.g. smartwatches, fitness equipment), among others. Client systems 10a-h may run various software such as document processing, games, email, and social networking applications, among others. Some clients may communicate with the remote content server 17, such as browsing the Internet.

[0033] Проиллюстрированные клиентские системы соединены локальными сетями 12a-b и, кроме того, с расширенной сетью 14, такой как глобальная сеть (WAN) или Интернет. В одном примере клиентские системы 10a-d представляют семейные электронные устройства, соединенные между собой домашней сетью 12a. Между тем, клиентские системы 10e-g могут обозначать отдельные компьютеры и/или корпоративный мэйнфрейм внутри офисного здания. Локальная сеть 12-b может тогда представлять часть корпоративной сети (например, локальную сеть - LAN).[0033] The client systems illustrated are connected by local area networks 12a-b and further to an extended network 14 such as a wide area network (WAN) or the Internet. In one example, client systems 10a-d represent family electronic devices interconnected by home network 12a. Meanwhile, client systems 10e-g may refer to individual computers and/or a corporate mainframe within an office building. Local area network 12-b may then represent part of a corporate network (eg, a local area network - LAN).

[0034] Маршрутизатор содержит электронное устройство, обеспечивающее связь между множеством клиентских систем и/или доступ соответствующих клиентов к расширенной сети 14. В примере с фиг.1 маршрутизаторы 15a-b соединяют клиентов в локальных сетях 12a-b и/или предоставляют клиентам 10a-g доступ в Интернет. Маршрутизаторы 15a-b могут действовать как шлюзы между локальными сетями 12a-b соответственно и расширенной сетью 14 и могут дополнительно предоставлять набор сетевых услуг для клиентских систем 10a-g. Такие услуги включают в себя, например, распространение параметров конфигурации сети на клиентские системы 10a-g (например, назначение сетевых адресов через протокол динамической конфигурации хоста - DHCP) и маршрутизацию связи через последовательность сетевых узлов. Некоторые клиентские системы, такие как примерная клиентская система 10h, могут напрямую подключаться к расширенной сети 14, например, через телекоммуникационный ретранслятор.[0034] The router includes an electronic device that allows communication between a plurality of client systems and/or access of respective clients to the extended network 14. In the example of figure 1, routers 15a-b connect clients in local networks 12a-b and/or provide clients 10a- g Internet access. Routers 15a-b may act as gateways between local networks 12a-b, respectively, and extended network 14, and may further provide a set of network services to client systems 10a-g. Such services include, for example, propagating network configuration parameters to client systems 10a-g (eg, assigning network addresses via Dynamic Host Configuration Protocol - DHCP) and routing communications through a series of network nodes. Some client systems, such as exemplary client system 10h, may directly connect to extended network 14, such as through a telecommunications relay.

[0035] Фиг.1 также иллюстрирует сервер 16 безопасности, подключенный к расширенной сети 14. Сервер 16 в общем представляет собой набор связанных с возможностью обмена информацией компьютерных систем, которые могут находиться или не находиться в физической близости друг от друга. Сервер 16 защищает клиентские системы 10a-h от угроз компьютерной безопасности, таких как вредоносное ПО и вторжение. В некоторых вариантах осуществления такая защита включает сервер 16 безопасности, детектирующий подозрительную активность, происходящую в клиентской системе, например действия злоумышленника, контролирующего соответствующую клиентскую систему.[0035] Figure 1 also illustrates a security server 16 connected to an extended network 14. Server 16 is generally a collection of interoperable computer systems that may or may not be in physical proximity to one another. Server 16 protects client systems 10a-h from computer security threats such as malware and intrusion. In some embodiments, such protection includes the security server 16 detecting suspicious activity occurring on the client system, such as the actions of an attacker who controls the respective client system.

[0036] Примерный обмен данными между сервером 16 безопасности и клиентской системой 10 проиллюстрирован на фиг.2. Клиентская система 10 может представлять любого клиента 10a-h с фиг.1. В некоторых вариантах осуществления сервер 16 конфигурирован для приема индикатора 20a события от клиентской системы 10, индикатора 20a, указывающего на возникновение конкретного типа события во время исполнения программного обеспечения на клиенте 10. Примеры таких событий включают запуск процесса/потока (например, пользователь запускает приложение, родительский процесс создает дочерний процесс и т. д.), попытку доступа к устройству ввода соответствующей клиентской системы (например, камере, микрофону), попытку доступа к локальному или удаленному сетевому ресурсу (например, протокол передачи гипертекста - HTTP-запрос для доступа к определенному URL-адресу, попытка доступа к репозиторию документов по локальной сети), запрос, сформулированный в конкретной схеме универсального идентификатора ресурса (например, mailto: или ftp: запрос), выполнение конкретной инструкции процессора (например, системный вызов), попытку загрузить библиотеку (например, динамически подключаемую библиотеку - DLL), попытку создать новый файл на диске, попытку чтения или записи в определенное место на диске (например, попытка перезаписать существующий файл, попытка открыть определенную папку или документ) и попытку отправить электронное сообщение (например, электронная почта, служба коротких сообщений - SMS и т. д.), среди прочего. В некоторых вариантах осуществления периоды неактивности, то есть промежутки времени между событиями и/или временные интервалы, когда соответствующая клиентская система бездействует, не регистрирует активность пользователя или выполняет только внутренние системные задачи, также квалифицируются как события, и о них можно сообщать через индикаторы события серверу безопасности. Такие периоды неактивности можно дополнительно разделить на короткие промежутки времени (например, порядка секунд) и длительные промежутки времени (например, порядка минут или часов). Детектированные события могут указывать, а могут и не указывать на злой умысел как таковой; некоторые события могут указывать на злой умысел, когда происходят вместе с другими событиями, и/или когда происходят в определенной последовательности. Другие события могут быть злонамеренными, если они происходят в определенное время дня или с необычной частотой, например, последовательность из 1000 операций чтения из определенной папки на диске с интервалом в несколько секунд.[0036] An exemplary communication between the security server 16 and the client system 10 is illustrated in FIG. Client system 10 may represent any client 10a-h of FIG. In some embodiments, the server 16 is configured to receive an event indicator 20a from the client system 10, an indicator 20a indicating the occurrence of a particular type of event during software execution on the client 10. parent process creates a child process, etc.), an attempt to access an input device of the corresponding client system (e.g. camera, microphone), an attempt to access a local or remote network resource (e.g. Hypertext Transfer Protocol - an HTTP request to access a specific a URL, an attempt to access a document repository over a local network), a request formulated in a particular Uniform Resource Identifier scheme (for example, mailto: or ftp: request), execution of a particular processor instruction (for example, a system call), an attempt to load a library (for example, , dynamic link library - DLL) , an attempt to create a new file on the disk, an attempt to read or write to a specific location on the disk (for example, an attempt to overwrite an existing file, an attempt to open a specific folder or document), and an attempt to send an electronic message (for example, email, short message service - SMS, etc. d.), among other things. In some embodiments, periods of inactivity, i.e. time intervals between events and/or time intervals when the corresponding client system is idle, does not register user activity, or is only performing internal system tasks, also qualify as events and can be reported via event indicators to the server security. Such periods of inactivity can be further divided into short periods of time (eg, on the order of seconds) and long periods of time (eg, on the order of minutes or hours). Detected events may or may not indicate malicious intent per se; some events may indicate malicious intent when they occur together with other events and/or when they occur in a specific sequence. Other events can be malicious if they occur at specific times of the day or with an unusual frequency, such as a sequence of 1000 reads from a specific folder on disk at intervals of a few seconds.

[0037] Каждый индикатор 20a события может содержать, среди прочего, индикатор типа соответствующего события и метку времени, указывающую момент времени, когда произошло соответствующее событие. Индикатор 20a события может дополнительно включать в себя идентификатор (идентификатор клиента) соответствующей клиентской системы и/или индикатор пользователя (идентификатор пользователя), который в настоящее время работает с соответствующей клиентской системой. Например, когда переданное событие включает создание процесса, индикатор пользователя может указывать на владельца родительского процесса. Индикатор 20a события может кодировать другие параметры, такие как имя процесса, местоположение/путь в файловой системе запускаемого процесса, сетевой адрес (например, Интернет-протокол - IP-адрес), универсальный указатель ресурса (URL) HTTP-запроса, и т.п.[0037] Each event indicator 20a may include, among other things, a corresponding event type indicator and a timestamp indicating the point in time when the corresponding event occurred. The event indicator 20a may further include an ID (client ID) of the respective client system and/or a user indicator (user ID) that is currently working with the respective client system. For example, when the event passed includes the creation of a process, the user indicator may point to the owner of the parent process. The event indicator 20a may encode other parameters such as the process name, the file system location/path of the process being started, the network address (e.g., Internet Protocol - IP address), the Uniform Resource Locator (URL) of the HTTP request, and the like. .

[0038] В некоторых вариантах осуществления сервер 16 может также собирать информацию от маршрутизаторов 15a-b, как показано индикатором 20b события на фиг. 2. Такие индикаторы событий могут включать, например, индикаторы сетевых событий, таких как запросы доступа к сети, выданные клиентскими системами, подключенными к соответствующему маршрутизатору/шлюзу. Например, индикатор 20b события может включать в себя исходный IP-адрес, IP-адрес назначения, временную метку и размер полезной нагрузки. В некоторых вариантах осуществления индикатор 20b события содержит данные о событиях клиента, агрегированные соответствующим маршрутизатором в соответствии с различными протоколами обработки данных (например, сетевые потоки, сетевые журналы и т. д.).[0038] In some embodiments, server 16 may also collect information from routers 15a-b, as shown by event indicator 20b in FIG. 2. Such event indicators may include, for example, indicators of network events such as network access requests issued by client systems connected to the associated router/gateway. For example, event indicator 20b may include a source IP address, a destination IP address, a timestamp, and a payload size. In some embodiments, the event indicator 20b contains client event data aggregated by the respective router according to various data processing protocols (eg, network flows, network logs, etc.).

[0039] Сервер 16 безопасности поддерживает набор моделей поведения пользователя, представляющих базовый, нормальный и/или законный способ работы поднабора клиентских систем 10a-h. Такие модели поведения здесь считаются профилями клиентов. Параметры таких моделей поведения в общем представлены как база 19 данных профилей на фиг. 1 и могут включать выходные данные алгоритма кластеризации событий и/или клиентов, как подробно показано ниже. В одном примерном варианте осуществления, в котором профиль представлен клиентом или кластером событий, параметры соответствующего профиля могут включать координаты центроида кластера и набор чисел, указывающих диапазон соответствующего кластера вдоль различных осей. Другие параметры профиля могут включать, среди прочего, показатель эксцентриситета соответствующего кластера и среднее расстояние между элементами кластера и центроидом кластера, среди прочего. Профили клиентов могут быть созданы автоматически с использованием контролируемых или неконтролируемых методов и алгоритмов обучения, как показано ниже.[0039] The security server 16 maintains a set of user behaviors representing the basic, normal, and/or legal way a subset of client systems 10a-h operate. These behaviors are considered here as customer profiles. The parameters of such behaviors are generally represented as a profile database 19 in FIG. 1 and may include the output of an event and/or client clustering algorithm, as detailed below. In one exemplary embodiment, in which the profile is represented by a client or an event cluster, the parameters of the corresponding profile may include cluster centroid coordinates and a set of numbers indicating the range of the corresponding cluster along various axes. Other profile parameters may include, among other things, the eccentricity index of the respective cluster and the average distance between cluster elements and the cluster centroid, among other things. Customer profiles can be generated automatically using supervised or unsupervised learning methods and algorithms as shown below.

[0040] Клиентский профиль может фиксировать поведение одного пользователя или может вместе фиксировать поведение множества пользователей. В качестве примеров: смартфон может использоваться в основном одним пользователем, поэтому клиентский профиль, прикрепленный к соответствующему смартфону, может по существу фиксировать базовое поведение его основного пользователя. Напротив, компьютеры, принадлежащие университетской компьютерной лаборатории, могут использоваться многими разными студентами; клиентский профиль, прикрепленный к одной из этих машин, может в совокупности представлять базовое поведение всех соответствующих студентов. Один клиентский профиль может быть прикреплен к одной клиентской системе/физической машине (например, смартфону, ноутбуку). В некоторых вариантах осуществления один клиентский профиль может вместе представлять множество физических машин. В одном таком примере клиентские системы 10a-d с фиг. 1 могут быть вместе представлены одним клиентским профилем, который фиксирует нормальное или базовое поведение членов конкретной семьи. В другом примере один клиентский профиль используется для представления всех компьютеров в бухгалтерском отделе корпорации, а другой клиентский профиль представляет все компьютеры, используемые группой исследований и разработок соответствующей корпорации. В варианте облачных вычислений, таком как среда инфраструктуры виртуального рабочего стола (VDI), в которой физическая машина может исполнять множество виртуальных машин для различных распределенных пользователей, один клиентский профиль может быть присоединен к множеству виртуальных машин, исполняющихся на соответствующей физической машине.[0040] A client profile may capture the behavior of a single user, or may capture the behavior of multiple users together. As examples, a smartphone may be used primarily by a single user, so a client profile attached to a respective smartphone can essentially capture the underlying behavior of its primary user. In contrast, computers owned by a university computer lab may be used by many different students; a client profile attached to one of these machines can collectively represent the basic behavior of all relevant students. One client profile can be attached to one client system/physical machine (eg smartphone, laptop). In some embodiments, one client profile may collectively represent multiple physical machines. In one such example, client systems 10a-d of FIG. 1 can be collectively represented by one client profile that captures the normal or basic behavior of members of a particular family. In another example, one client profile is used to represent all computers in the accounting department of a corporation, and another client profile is used to represent all computers used by the research and development group of the corresponding corporation. In a cloud computing variant such as a Virtual Desktop Infrastructure (VDI) environment in which a physical machine can run multiple virtual machines for different distributed users, one client profile can be attached to multiple virtual machines running on the corresponding physical machine.

[0041] В некоторых вариантах осуществления один пользователь может быть представлен множеством отдельных клиентских профилей. Например, один и тот же человек может иметь один клиентский профиль/базовое поведение на работе и отдельный клиентский профиль/базовое поведение дома. Другие примеры клиентских профилей могут быть связаны с пользователями определенной возрастной группы (например, подростки), конкретными личными интересами (например, игры), определенной профессией (например, инженер, художник, педагог) и т. д. В еще одном примерном варианте осуществления отдельные клиентские профили могут соответствовать различным компьютерным действиям, например, использованию разных компьютерных программ: просмотру Интернета, использованию социальных сетей, выполнению офисной работы и т. д. Еще другие примерные клиентские профили могут быть прикреплены к различным типам устройств (например, смартфон или ПК). Коллективные профили могут быть разработаны в соответствии с более сложными критериями, например, клиентский профиль, указывающий типичный/базовый способ, которым инженер из компании X просматривает Интернет. Другой примерный профиль может указывать на типичный способ, которым молодые люди используют планшетные компьютеры.[0041] In some embodiments, a single user may be represented by multiple distinct client profiles. For example, the same person may have one client profile/basic behavior at work and a separate client profile/basic behavior at home. Other examples of client profiles may be associated with users of a specific age group (eg, teenagers), specific personal interests (eg, games), a specific profession (eg, engineer, artist, educator), etc. In yet another exemplary embodiment, individual client profiles may correspond to different computer activities, such as using different computer programs: browsing the Internet, using social networks, doing office work, etc. Still other exemplary client profiles can be attached to various types of devices (for example, smartphone or PC). Collective profiles can be designed according to more complex criteria, such as a client profile indicating the typical/basic way an engineer from Company X browses the Internet. Another example profile may indicate the typical way young people use tablet computers.

[0042] Поднабор индикаторов 20a-b событий может быть собран для формирования корпуса событий, дополнительно используемого для получения клиентских профилей, как подробно показано ниже. Другой поднабор индикаторов событий может использоваться для детектирования угрозы безопасности. Например, в ответ на прием индикаторов 20a-b событий сервер 16 безопасности может определить, согласуется ли событие, переданное соответствующим индикатором события, с клиентским профилем, выбранным согласно соответствующему индикатору клиента. Иначе говоря, сервер 16 безопасности может определять, соответствует ли соответствующее событие шаблону нормального/базового поведения, закодированному в соответствующем клиентском профиле. Если нет, соответствующее событие может указывать на подозрительную активность, и в этом случае некоторые варианты осуществления могут предпринимать защитные действия, например, отправлять предупреждения 22a-b безопасности в соответствующую клиентскую систему и/или администратору соответствующей клиентской системы. В другом примере защитного действия некоторые варианты осуществления инструктируют маршрутизатор, который принадлежит той же локальной сети, что и подозрительная клиентская система, блокировать обмен данными с соответствующей подозрительной клиентской системой и/или от нее. Клиентские профили и обработка индикаторов событий сервером 16 безопасности дополнительно описаны ниже.[0042] A subset of event indicators 20a-b can be assembled to form an event corpus, further used to derive client profiles, as detailed below. Another subset of event indicators may be used to detect a security threat. For example, in response to receiving the event indicators 20a-b, the security server 16 may determine whether the event transmitted by the respective event indicator matches the client profile selected according to the respective client indicator. In other words, the security server 16 can determine if the corresponding event matches the normal/basic behavior pattern encoded in the corresponding client profile. If not, the corresponding event may indicate suspicious activity, in which case some embodiments may take protective actions, such as sending security alerts 22a-b to the respective client system and/or the administrator of the respective client system. In another example of a defensive action, some embodiments instruct a router that belongs to the same local network as the suspect client system to block communications to and/or from the corresponding suspicious client system. The client profiles and the processing of event indicators by the security server 16 are further described below.

[0043] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 10 может представлять любую из клиентских систем 10a-h с фиг.1. Для ясности проиллюстрированная клиентская система представляет собой компьютерную систему. Конфигурация других клиентских систем, таких как мобильные телефоны, планшетные компьютеры и носимые устройства, может немного отличаться. Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для исполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие сигналы или данные могут быть закодированы и доставлены в процессор 32 в форме инструкций процессора, например машинного кода. Блок 34 памяти может содержать энергозависимый машиночитаемый носитель (например, динамическое запоминающее устройство с произвольным доступом - DRAM), хранящий данные/сигналы, к которым осуществляется доступ, или которые генерируются процессором 32 в ходе выполнения операций.[0043] FIG. 3-A illustrates an exemplary client system hardware configuration according to some embodiments of the present invention. Client system 10 may represent any of the client systems 10a-h of FIG. For clarity, the illustrated client system is a computer system. The configuration of other client systems such as mobile phones, tablets and wearables may vary slightly. The processor 32 includes a physical device (eg, a microprocessor, a multi-core integrated circuit formed on a semiconductor substrate) configured to perform computational and/or logic operations on a set of signals and/or data. Such signals or data may be encoded and delivered to processor 32 in the form of processor instructions, such as machine code. Memory unit 34 may include a volatile computer-readable medium (eg, DRAM) that stores data/signals that are accessed or generated by processor 32 during operations.

[0044] Устройства 36 ввода могут включать в себя компьютерные клавиатуры, мыши и микрофоны, среди прочего, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в клиентскую систему 10. Устройства 38 вывода могут включать в себя устройства отображения, такие как мониторы и динамики, среди прочего, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие соответствующей клиентской системе передавать данные пользователю. В некоторых вариантах осуществления устройства 36-38 ввода и вывода совместно используют общее аппаратное оборудование (например, сенсорный экран). Устройства 42 хранения включают в себя машиночитаемые носители, обеспечивающие невременное хранение, чтение и запись программных инструкций и/или данных. Примерные устройства хранения включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как CD и/или DVD диски и приводы. Сетевой адаптер (ы) 44 позволяет клиентской системе 10 подключаться к сети электронной связи (например, к сетям 12, 14 с фиг. 1) и/или к другим устройствам/компьютерным системам.[0044] Input devices 36 may include computer keyboards, mice, and microphones, including, among other things, appropriate hardware interfaces and/or adapters that allow a user to enter data and/or instructions into client system 10. Output devices 38 may include devices displays such as monitors and speakers, among others, as well as hardware interfaces/adapters, such as graphics cards, allowing the respective client system to communicate data to the user. In some embodiments, input and output devices 36-38 share common hardware (eg, a touch screen). Storage devices 42 include computer-readable media for non-transitory storage, reading, and writing of program instructions and/or data. Exemplary storage devices include magnetic and optical disks and flash memory devices, as well as removable media such as CDs and/or DVDs and drives. Network adapter(s) 44 allows client system 10 to connect to an electronic communications network (eg, networks 12, 14 of FIG. 1) and/or other devices/computer systems.

[0045] Контроллер-концентратор 40 в общем представляет множество системных, периферийных шин и/или шин набора микросхем и/или всех других схем, обеспечивающих связь между процессором 32 и остальными аппаратными компонентами клиентской системы 10. Например, контроллер-концентратор 40 может включать контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерываний. В зависимости от производителя оборудования некоторые такие контроллеры могут быть включены в единую интегральную схему и/или могут быть интегрированы с процессором. В другом примере контроллер-концентратор 40 может содержать процессор 32 подключения северного моста к памяти 34 и/или процессор 32 подключения южного моста к устройствам 36, 38, 42 и 44.[0045] Controller hub 40 generally represents a plurality of system, peripheral, and/or chipset buses and/or all other circuitry that provides communication between processor 32 and the rest of the hardware components of client system 10. For example, controller hub 40 may include a controller memory, input / output (I / O) controller and interrupt controller. Depending on the equipment manufacturer, some of these controllers may be included on a single integrated circuit and/or may be integrated with the processor. In another example, controller hub 40 may include a northbridge connection processor 32 to memory 34 and/or a southbridge connection processor 32 to devices 36, 38, 42, and 44.

[0046] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера 16 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Сервер 16 содержит по меньшей мере один аппаратный процессор 132 (например, микропроцессор, многоядерную интегральную схему), физическую память 134 (например, DRAM), серверные устройства 142 хранения и набор серверных сетевых адаптеров 144. Серверные процессоры 132 могут включать в себя центральный процессор (CPU) и/или массив графических процессоров (GPU). Адаптеры 144 могут включать в себя сетевые карты и другие интерфейсы связи, позволяющие серверу 16 безопасности подключаться к сети 14 связи. Серверные устройства 142 хранения могут хранить данные, такие как индикаторы событий и/или параметры клиентского профиля. В некоторых вариантах осуществления сервер 16 дополнительно содержит устройства ввода и вывода, которые могут быть аналогичны по функциям устройствам 36 и 38 ввода/вывода клиентской системы 10 соответственно.[0046] FIG. 3-B illustrates an exemplary hardware configuration of a security server 16 according to some embodiments of the present invention. Server 16 includes at least one hardware processor 132 (eg, microprocessor, multi-core integrated circuit), physical memory 134 (eg, DRAM), server storage devices 142, and a set of server network adapters 144. Server processors 132 may include a central processing unit ( CPU) and/or an array of graphics processing units (GPUs). Adapters 144 may include network cards and other communication interfaces that allow the security server 16 to connect to the communication network 14 . Server storage devices 142 may store data such as event indicators and/or client profile settings. In some embodiments, server 16 further includes input and output devices that may be similar in function to input/output devices 36 and 38 of client system 10, respectively.

[0047] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в клиентской системе 10 согласно некоторым вариантам осуществления настоящего изобретения. Такое программное обеспечение может включать в себя операционную систему 46 (ОС), обеспечивающую интерфейс между аппаратным обеспечением клиентской системы 10 и другими компьютерными программами, такими как пользовательское приложение 48, исполняющееся в соответствующей клиентской системе. Примеры операционных систем включают, среди прочего, Windows®, MacOS®, iOS® и Android®. Пользовательское приложение 48 в общем представляет любое приложение, такое как текстовый редактор, обработка изображений, электронная таблица, календарь, онлайн-игры, социальные сети, веб-браузер и приложения электронной связи, среди прочего. В некоторых вариантах осуществления приложение 50 безопасности конфигурировано для защиты клиентской системы 10 от угроз компьютерной безопасности, таких как вредоносное программное обеспечение и вторжение. Помимо других функций, приложение 50 безопасности конфигурировано для передачи индикаторов событий на сервер 16 безопасности и/или для приема предупреждений безопасности. В некоторых вариантах осуществления приложение 50 дополнительно содержит сборщик 52 событий и сетевой фильтр 53. Некоторая функциональность сетевого фильтра 53 может быть реализована непосредственно в аппаратном обеспечении. Когда клиентская система 10 управляет платформой аппаратной виртуализации, в которой ОС 46 и приложение 48 выполняются на виртуальной машине (например, в среде облачных вычислений), сборщик 52 событий и/или сетевой фильтр 53 могут исполняться вне соответствующей виртуальной машины, например, на уровне гипервизора, раскрывающего соответствующую виртуальную машину, с использованием методов, известных в данной области как интроспекция.[0047] FIG. 4 illustrates a set of exemplary software components executing on a client system 10 according to some embodiments of the present invention. Such software may include an operating system (OS) 46 that provides an interface between the client system 10 hardware and other computer programs, such as a user application 48, running on the respective client system. Examples of operating systems include, among others, Windows®, MacOS®, iOS®, and Android®. The user application 48 generally represents any application such as a word processor, image processing, spreadsheet, calendar, online games, social networking, web browser, and electronic communications applications, among others. In some embodiments, the security application 50 is configured to protect the client system 10 from computer security threats such as malware and intrusion. Among other functions, the security application 50 is configured to send event indicators to the security server 16 and/or to receive security alerts. In some embodiments, the application 50 further comprises an event collector 52 and a network filter 53. Some of the functionality of the network filter 53 may be implemented directly in hardware. When the client system 10 manages a hardware virtualization platform in which the OS 46 and application 48 are running in a virtual machine (e.g., in a cloud computing environment), the event collector 52 and/or the network filter 53 may be executed outside the respective virtual machine, e.g., at the hypervisor level. , revealing the corresponding virtual machine, using techniques known in the art as introspection.

[0048] Сборщик 52 событий конфигурирован для детектирования различных событий, происходящих во время исполнения программного обеспечения клиентской системой 10. Некоторые варианты осуществления могут ставить метку времени для каждого детектированного события, чтобы записывать время наступления соответствующего события. Отслеживаемые события могут зависеть от компьютера и/или операционной системы. Примеры событий включают, среди прочего, запуск процесса, завершение процесса, порождение дочерних процессов, запросы доступа к периферийным устройствам (например, жесткому диску, сетевому адаптеру), команду, введенную пользователем в интерфейс командной строки и т. д. Такие аппаратные и/или программные события могут быть детектированы с использованием любого метода, известного в области компьютерной безопасности, например, путем подключения определенных функций операционной системы, детектирования системных вызовов, использования минифильтра файловой системы, изменения разрешения доступа к памяти для детектирования попытки выполнить код из определенных адресов памяти и т. д.[0048] The event collector 52 is configured to detect various events occurring during the execution of the software by the client system 10. Some embodiments may timestamp each detected event to record the time the corresponding event occurred. Events monitored may vary by computer and/or operating system. Example events include, but are not limited to, starting a process, terminating a process, spawning child processes, requests for access to peripheral devices (e.g., hard drive, network adapter), a command entered by a user into a command line interface, etc. Such hardware and/or program events can be detected using any method known in the field of computer security, for example, by connecting certain functions of the operating system, detecting system calls, using a file system minifilter, changing memory access permissions to detect an attempt to execute code from certain memory addresses, etc. d.

[0049] Некоторые варианты осуществления отслеживают аппаратные и/или программные события с использованием инструментов системного журнала, встроенных в OS 46 (например, Syslog в UNIX®). Такие инструменты могут генерировать список дескрипторов событий, включая временную метку для каждого события, числовой код, идентифицирующий тип события, индикатор типа процесса или приложения, которые сгенерировали соответствующее событие, и другие параметры события. Приложение 50 безопасности может извлекать такую информацию из соответствующего системного журнала для формулирования индикаторов событий. Примерные записи системного журнала приведены ниже: [0049] Some embodiments monitor hardware and/or software events using syslog tools built into OS 46 (eg, Syslog on UNIX®). Such tools can generate a list of event descriptors, including a timestamp for each event, a numeric code identifying the type of event, an indicator of the type of process or application that generated the corresponding event, and other event parameters. The security application 50 can extract such information from the corresponding system log to formulate event indicators. Sample syslog entries are shown below:

<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 8 21:37:56 example . domain . biz dhcpd: DHCPDISCOVER from 0c:14:7b:ll:<187>Feb 8 21:37:56 example . domain. biz dhcpd: DHCPDISCOVER from 0c:14:7b:ll:

14:64 via ethl : network ethl: no free leases14:64 via ethl : network ethl: no free leases

[0050] Сетевой фильтр 53 детектирует набор сетевых событий, происходящих во время электронной связи по сетям 12-14 между клиентской системой 10 и другими сторонами. Примерные события, детектированные сетевым фильтром 53, включают события, образующие часть установления соединения между клиентской системой 10 и другим сетевым объектом (например, запрос сетевого адреса, передача сетевого адреса, события установления связи и т. д.), события, которые конфигурируют зашифрованное соединение (уровень защищенных сокетов - SSL, виртуальная частная сеть - VPN), передачу данных и получение данных, среди прочего. В некоторых вариантах осуществления сетевой фильтр 53 собирает метаданные из перехваченного сетевого трафика. Такие метаданные могут включать в себя, например, исходный сетевой адрес (например, Интернет-протокол - IP-адрес), адрес назначения, временную метку пакета данных, индикатор типа протокола связи и размер пакета данных. Другие примерные метаданные могут включать в себя индикатор типа пользовательского агента протокола передачи гипертекста (HTTP), передающего соответствующий пакет связи/данных. Некоторые варианты осуществления организуют обменные метаданные в специализированные структуры данных, известные в данной области как сетевые потоки (например, NetFlow® от Cisco Systems, Inc.). Таблица 1 иллюстрирует примеры метаданных связи, представленных в виде потоков, согласно некоторым вариантам осуществления настоящего изобретения.[0050] The network filter 53 detects a set of network events occurring during electronic communication over networks 12-14 between client system 10 and other parties. Exemplary events detected by the network filter 53 include events that form part of establishing a connection between the client system 10 and another network entity (eg, network address request, network address transmission, handshake events, etc.), events that configure an encrypted connection (secure sockets layer - SSL, virtual private network - VPN), transmitting data and receiving data, among other things. In some embodiments, the implementation of the network filter 53 collects metadata from the intercepted network traffic. Such metadata may include, for example, a source network address (eg, Internet Protocol - IP address), a destination address, a data packet timestamp, a communication protocol type indicator, and a data packet size. Other exemplary metadata may include an indicator of the Hypertext Transfer Protocol (HTTP) user agent type that is transmitting the corresponding communication/data packet. Some embodiments organize exchanged metadata into specialized data structures known in the art as network flows (eg, NetFlow® from Cisco Systems, Inc.). Table 1 illustrates examples of communication metadata represented as streams according to some embodiments of the present invention.

Таблица 1Table 1

Figure 00000001
Figure 00000001

[0051] В некоторых вариантах реализации приложение 50 безопасности формулирует индикаторы событий в соответствии с аппаратными, программными и/или сетевыми событиями, обнаруженными сборщиком 52 и сетевым фильтром 53. Приложение 50 может дополнительно управлять обменом данными с сервером 16 безопасности, среди прочего, для передачи индикаторов событий и/или приема уведомлений безопасности.[0051] In some implementations, the security application 50 formulates event indicators in accordance with hardware, software, and/or network events detected by the collector 52 and the network filter 53. The application 50 may additionally manage communication with the security server 16, among other things, for transmission event indicators and/or receiving security notifications.

[0052] В альтернативном варианте осуществления вместо обработки сетевой связи на клиенте, как показано выше, сетевой фильтр 53 и/или маршрутизатор 15 могут быть конфигурированы для перенаправления на сервер 16 безопасности по меньшей мере части входящих электронных сообщений и/или из клиентской системы 10.[0052] In an alternative embodiment, instead of processing the network communication on the client as shown above, the firewall 53 and/or router 15 may be configured to redirect at least a portion of incoming email messages to and/or from the client system 10 to the security server 16.

Например, параметры конфигурации сети клиентской системы 10 могут быть установлены для указания сервера 16 в качестве сетевого шлюза по умолчанию. Некоторые варианты осуществления затем используют сервер 16 безопасности для извлечения индикаторов событий из соответствующего перенаправленного трафика.For example, the network configuration settings of the client system 10 may be set to specify the server 16 as the default network gateway. Some embodiments then use the security server 16 to extract event indicators from the corresponding redirected traffic.

[0053] Фиг.5 иллюстрирует примерное программное обеспечение, исполняющееся на сервере 16 безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированное программное обеспечение включает механизм 60 профилирования и детектор 62 аномалий, дополнительно связанный с диспетчером 64 предупреждений. Квалифицированный специалист поймет, что не все проиллюстрированные компоненты должны исполняться на одной машине/процессоре; например, механизм 60 профилирования может исполняться на выделенном кластере процессоров, в то время как экземпляры детектора 62 аномалий могут исполняться на других машинах/процессорах.[0053] Figure 5 illustrates exemplary software running on a security server 16, according to some embodiments of the present invention. The illustrated software includes a profiling engine 60 and an anomaly detector 62 further associated with an alert manager 64 . The skilled artisan will appreciate that not all illustrated components need to run on a single machine/processor; for example, profiling engine 60 may run on a dedicated processor cluster, while anomaly detector 62 instances may run on other machines/processors.

[0054] В некоторых вариантах осуществления механизм 60 профилирования конфигурирован для анализа событий, происходящих в наборе клиентских систем (например, на поднаборе клиентов 10a-h на фиг.1), и для создания множества клиентских профилей, представляющих базовый, нормальный и/или законный способ работы с соответствующими клиентскими системами. Поднабор индикаторов 20a-b событий, полученных от клиентов, можно использовать для сборки корпуса обучающих событий, обозначенного корпусом 18 на фиг.1, 5 и 6. Затем профили определяются в соответствии с корпусом 18 событий. Определение клиентского профиля может включать, среди прочего, представление событий в абстрактном многомерном пространстве событий и выполнение процедур кластеризации данных, как более подробно показано ниже. Сконструированные профили затем могут быть сохранены как записи в базе 19 данных профилей. Примерная запись в базе данных профиля содержит набор параметров профиля, таких как набор координат центроида кластера, измерение диаметра и/или эксцентриситета кластера и т. д.[0054] In some embodiments, the profiling engine 60 is configured to analyze events occurring on a set of client systems (e.g., on a subset of clients 10a-h in FIG. 1) and to create a set of client profiles representing basic, normal, and/or legal how to work with the respective client systems. A subset of indicators 20a-b of events received from clients can be used to assemble a corpus of learning events, denoted by corpus 18 in FIGS. 1, 5 and 6. Profiles are then determined in accordance with corpus 18 of events. Defining a client profile may include, among other things, representing events in an abstract multi-dimensional event space and performing data clustering procedures, as described in more detail below. The constructed profiles can then be stored as records in the profile database 19 . An exemplary entry in the profile database contains a set of profile parameters, such as a set of cluster centroid coordinates, a measurement of the cluster diameter and/or eccentricity, and so on.

[0055] Фиг.6 иллюстрирует примерные компоненты и работу механизма 60 профилирования. В некоторых вариантах осуществления механизм 60 содержит кодер 70 событий, механизм 72 кластеризации событий и механизм 74 кластеризации клиентов, подключенный к кодеру 70 событий и механизму 72 кластеризации событий. Примерная последовательность шагов, выполняемых механизмом профилирования, проиллюстрирована на фиг.7.[0055] FIG. 6 illustrates exemplary components and operation of the profiling engine 60. In some embodiments, engine 60 includes an event encoder 70, event clustering engine 72, and client clustering engine 74 connected to event encoder 70 and event clustering engine 72. An exemplary sequence of steps performed by the profiling engine is illustrated in Fig.7.

[0056] В последовательности шагов 202-204-206 механизм 60 профилирования может собрать обучающий корпус 18 событий в соответствии с индикаторами событий, полученными от выбранных клиентских систем и/или маршрутизатора (ов). Некоторые варианты осуществления накапливают индикаторы событий до тех пор, пока не будет удовлетворено какое-либо условие накопления.[0056] In the sequence of steps 202-204-206, the profiling engine 60 may assemble the event training corpus 18 in accordance with event indicators received from selected client systems and/or router(s). Some embodiments accumulate event indicators until any accumulation condition is satisfied.

Условия накопления могут быть определены в соответствии с подсчетом событий (собрать корпус из 1 миллиона событий) в соответствии с условием времени (например, записать все события, полученные в течение 1-часового интервала и т. д.), в соответствии с идентификатором клиентской системы и/или пользователя (например, записывать все события, полученные от корпорации X, диапазона IP-адресов Y, учетной записи Z подписки и т. д.), или любым другим способом, известным в данной области техники. Отдельные события могут быть помечены в соответствии с их происхождением и могут содержать метку времени, характеризующую момент времени, когда соответствующее событие даже произошло, или было обнаружено, или было получено на сервере безопасности 16 и т. д. В некоторых вариантах осуществления корпус 18 событий обновляется периодически и/или по запросу путем включения вновь полученных индикаторов событий.Accumulation conditions can be defined according to the event count (collect a corpus of 1 million events) according to the time condition (such as record all events received within a 1-hour interval, etc.), according to the client system ID and/or user (eg, record all events received from corporation X, IP address range Y, subscription account Z, etc.), or any other method known in the art. Individual events may be tagged according to their origin and may contain a timestamp indicating the point in time at which the corresponding event even occurred or was detected or received at the security server 16, etc. In some embodiments, the event corpus 18 is updated periodically and/or upon request by including newly received event indicators.

[0057] В некоторых вариантах осуществления кодер 70 событий (фиг. 6) конфигурирован для ввода записи 26 события, содержащей данные, характеризующие событие, которое произошло в клиентской системе (например, запуск процесса на клиентской машине), и, в ответ, выведения вектора 28a событий, содержащего представление соответствующего события как вектора в абстрактном многомерном пространстве, обычно считающемся пространством внедрения в данной области техники. Примерное пространство внедрения охвачено набором осей, где каждая ось представляет отдельный признак события. Примеры функций могут включать, в случае сетевого события, IP-адрес источника, порт источника, IP-адрес пункта назначения, порт назначения и индикатор транспортного протокола, среди прочего. В другом примере каждая ось пространства внедрения соответствует линейной комбинации признаков события (например, в варианте осуществления декомпозиции главного компонента/единственного значения). В предпочтительных вариантах осуществления события анализируются в контексте других событий, которые предшествуют и/или следуют за соответствующим событием. В таких случаях кодер 70 конфигурирован для представления событий как векторов в пространстве внедрения контекстов, при этом два события, которые происходят преимущественно в аналогичных контекстах, расположены относительно близко друг к другу. Некоторые варианты осуществления выбирают размерность пространства внедрения в соответствии с размером словаря событий N, то есть подсчетом различных типов событий, которые отслеживает соответствующая система безопасности (подробнее о словаре событий см. ниже). Например, размерность пространства событий может быть порядка квадратного корня из N или логарифма из N. Типичный вариант осуществления настоящего изобретения использует пространство контекста внедрения, имеющее от нескольких сотен до нескольких тысяч измерений.[0057] In some embodiments, the event encoder 70 (FIG. 6) is configured to input an event record 26 containing data indicative of an event that occurred on the client system (e.g., starting a process on the client machine) and, in response, outputting a vector 28a of an event containing a representation of the corresponding event as a vector in an abstract high-dimensional space, commonly considered an embedding space in the art. The exemplary embedding space is spanned by a set of axes, where each axis represents a different feature of an event. Example functions may include, in the event of a network event, source IP address, source port, destination IP address, destination port, and transport protocol indicator, among others. In another example, each axis of the embedding space corresponds to a linear combination of event features (eg, in a principal component/single value decomposition embodiment). In preferred embodiments, events are analyzed in the context of other events that precede and/or follow the respective event. In such cases, encoder 70 is configured to represent events as vectors in the embedding space of contexts, with two events that occur predominantly in similar contexts relatively close to each other. Some embodiments choose the dimension of the embedding space according to the size of the event dictionary N, that is, a count of the different types of events that the corresponding security system monitors (see below for more on the event dictionary). For example, the dimension of the event space may be on the order of the square root of N, or the logarithm of N. A typical embodiment of the present invention uses an embedding context space having several hundred to several thousand dimensions.

[0058] Кодер 70 событий может быть сконструирован с использованием любого метода, известного в области автоматизированной обработки данных. В предпочтительном варианте осуществления кодер 70 содержит систему искусственного интеллекта, например многослойную искусственную нейронную сеть (например, рекуррентную нейронную сеть и/или нейронную сеть с прямой связью). Для достижения желаемого представления векторов событий, параметры кодера 70 могут быть настроены до тех пор, пока не будут удовлетворены некоторые условия производительности. Такая настройка здесь называется обучением и представлена этапом 208 на фиг.7. В варианте осуществления нейронной сети примерные настраиваемые параметры кодера 70 событий включают в себя, среди прочего, набор весов синапсов. В некоторых вариантах осуществления обучающий кодер 70 сводится к построению самого пространства внедрения. Иначе говоря, пространство внедрения не определяется заранее, а зависит от состава корпуса 18 событий и от выбранной процедуры обучения.[0058] The event encoder 70 may be constructed using any technique known in the field of automated data processing. In a preferred embodiment, encoder 70 comprises an artificial intelligence system, such as a multilayer artificial neural network (eg, a recurrent neural network and/or a feedforward neural network). To achieve the desired representation of the event vectors, the parameters of the encoder 70 may be tuned until certain performance conditions are satisfied. This setting is referred to here as learning and is represented by step 208 in FIG. In a neural network embodiment, exemplary configurable parameters for event encoder 70 include, among other things, a set of synapse weights. In some embodiments, training encoder 70 is reduced to building the embedding space itself. In other words, the implementation space is not determined in advance, but depends on the composition of the corpus 18 of events and on the chosen training procedure.

[0059] Примерные обучающие процедуры показаны на фиг. 8A-B и содержат версии алгоритма word2vec, такие как алгоритм skip-gram и алгоритм непрерывного набора слов. В таких вариантах осуществления события анализируются не изолированно, а как составляющие последовательности 25 событий, состоящей из множества событий, упорядоченных в соответствии со временем возникновения или детектирования. В некоторых вариантах осуществления все события соответствующей последовательности выбираются так, чтобы они происходили в одной и той же клиентской системе. Последовательность 25 событий включает центральное событие Eo и контекст события, состоящий из подмножества событий E_k...E_1 (k≥0), предшествующее центральному событию и/или поднабору событий E1...Ep (p≥0) после центрального события. Типичные варианты осуществления используют симметричный контекст события (p = k), где p находится в диапазоне от 2 до 5. Каждое отдельное событие Ei (- k≤i≤p) может быть представлено как вектор чисел N-на-1, где каждая строка представляет отдельный тип события (например, запуск браузера, инициирование загрузки файла, запись данных на диск и т. д.), N представляет размер «словаря» типов событий, а ненулевой элемент указывает, что соответствующее событие относится к соответствующему типу события. Такое представление широко известно в данной области техники как унитарное кодирование. Примерный размер N словаря событий варьируется от нескольких сотен до нескольких тысяч различных типов событий, но может доходить до нескольких миллионов для конкретных применений. Квалифицированному специалисту поймет, что унитарное кодирование используется здесь только в качестве примера и никоим образом не ограничивает объем настоящего изобретения.[0059] Exemplary training procedures are shown in FIG. 8A-B and contain versions of the word2vec algorithm such as the skip-gram algorithm and the word continuum algorithm. In such embodiments, the events are not analyzed in isolation, but as part of an event sequence 25 consisting of a plurality of events ordered according to the time of occurrence or detection. In some embodiments, all events in the corresponding sequence are selected to occur on the same client system. The sequence of events 25 includes a central event Eo and an event context consisting of a subset of events E_k...E_1 (k≥0) preceding the central event and/or a subset of events E1...Ep (p≥0) after the central event. Exemplary embodiments use a symmetrical event context (p = k), where p is in the range 2 to 5. Each individual event Ei (- k≤i≤p) can be represented as an N-by-1 vector of numbers, where each row represents a single event type (e.g. launching a browser, initiating a file download, writing data to disk, etc.), N represents the size of the "dictionary" of event types, and a non-zero element indicates that the corresponding event is of the corresponding event type. Such a representation is commonly known in the art as a unitary coding. The approximate size N of an event dictionary varies from a few hundred to a few thousand different types of events, but can be up to several million for specific applications. The skilled artisan will appreciate that unitary coding is used here by way of example only and does not limit the scope of the present invention in any way.

[0060] В примерных процедурах обучения кодер событий объединяется и обучается совместно с декодером событий, оба из них могут содержать части нейронной сети с прямой связью и/или рекуррентной нейронной сети. В общем, пара кодер-декодер может быть конфигурирована для ввода первого поднабора обучающей последовательности (например, центрального события Eo) и вывода «прогноза» для второго поднабора соответствующей последовательности (например, некоторого контекстного события Ei, i≠0). В примерах на фиг. 8-AB, прогнозы показаны как унитарные векторы; альтернативные варианты осуществления могут использовать другое представление. Например, прогноз может быть представлен как N-мерный вектор чисел, каждое число указывает вероятность того, что соответствующий тип события присутствует во втором поднаборе.[0060] In exemplary training procedures, an event encoder is combined and trained in conjunction with an event decoder, both of which may comprise feed-forward and/or recurrent neural network portions. In general, an encoder-decoder pair may be configured to input a first subset of the training sequence (eg, central event Eo) and output a "prediction" for a second subset of the corresponding sequence (eg, some context event Ei, i≠0). In the examples in FIG. 8-AB, predictions are shown as unitary vectors; alternative embodiments may use a different representation. For example, a prediction can be represented as an N-dimensional vector of numbers, each number indicating the probability that the corresponding event type is present in the second subset.

[0061] В унитарной процедуре обучения, показанной на фиг. 8-A, пара кодер- декодер обучается для создания правильного контекста события с учетом центрального уравнения события. Для каждой последовательности событий, взятой из корпуса 18 событий, кодер 70a конфигурирован для ввода унитарного кодирования центрального события Eo и создания вектора 28c событий, содержащего представление центрального события E0 в пространстве контекста внедрения. В свою очередь, декодер 76a конфигурирован для ввода вектора 28c событий и вывода множества предполагаемых векторов, каждый из которых представляет «прогнозируемое» контекстное событие Ei (i≠0) соответствующей последовательности событий. Затем пара кодер-декодер может быть обучена путем настройки параметров кодера 70a и/или декодера 76a, чтобы уменьшить ошибку прогнозирования, то есть исправить несоответствие между «спрогнозированным» контекстом и фактическим контекстом соответствующих обучающих последовательностей.[0061] In the unitary learning procedure shown in FIG. 8-A, the encoder-decoder pair is trained to generate the correct event context given the event's central equation. For each sequence of events taken from the event corpus 18, the encoder 70a is configured to input a unitary encoding of the central event Eo and create an event vector 28c containing a representation of the central event E0 in embedding context space. In turn, the decoder 76a is configured to input an event vector 28c and output a plurality of candidate vectors, each representing a "predicted" context event Ei (i≠0) of the corresponding sequence of events. The encoder-decoder pair can then be trained by adjusting the parameters of the encoder 70a and/or decoder 76a to reduce the prediction error, ie correct the mismatch between the "predicted" context and the actual context of the respective training sequences.

[0062] Альтернативная процедура обучения использует алгоритм непрерывного набора слов и направлена на создание правильного центрального события Eo обучающей последовательности с учетом соответствующего контекста события. В одном таком примере, показанном на фиг. 8-B, кодер 70b событий конфигурирован для ввода набора однозначных векторов, представляющих контекстные события Ei (i≠0) последовательности 25, и для вывода внедренных векторов 28d-f событий, определяемых для каждого соответствующего контекстного события. В отличие от варианта осуществления skip-gram, показанной на фиг. 8-A, кодер 70b здесь соединен с декодером 76b событий, конфигурированным для ввода множества векторов 28d-f событий и создания прогноза или «предположения» для центрального событие Eo последовательности 25. Пара кодер-декодер может быть затем обучена путем настройки параметров кодера 70b и/или декодера 76b, чтобы уменьшить ошибку прогнозирования, то есть несоответствие между «спрогнозированным» центральным событием и фактическим центральным событием соответствующих обучающих последовательностей.[0062] An alternative learning procedure uses a continuous word set algorithm and aims to generate the correct central event Eo of the training sequence given the appropriate event context. In one such example, shown in FIG. 8-B, event encoder 70b is configured to input a set of one-to-one vectors representing context events Ei (i≠0) of sequence 25 and to output embedded event vectors 28d-f defined for each corresponding context event. Unlike the skip-gram embodiment shown in FIG. 8-A, encoder 70b is here coupled to an event decoder 76b configured to input a plurality of event vectors 28d-f and generate a prediction or "guess" for the central event Eo of sequence 25. The encoder-decoder pair can then be trained by tuning parameters of encoder 70b and /or decoder 76b to reduce the prediction error, ie the discrepancy between the "predicted" central event and the actual central event of the respective training sequences.

[0063] Примерная последовательность шагов, реализующих обучение кодера событий, проиллюстрирована на фиг.9. На этапе 222 извлекается набор записей событий из корпуса 18 событий, и идентифицируется последовательность 25 событий в соответствии с отметками времени события и в соответствии с источником соответствующих событий (то есть клиентскими системами, в которых произошли соответствующие события). В варианте осуществления skip-gram на этапе 224 затем исполняется кодер 70a событий для создания представления Eo в пространстве внедрения (вектор 28c событий на фиг. 8-A). На этапе 226 механизм 60 профилирования исполняет декодер 76a событий для создания набора предсказаний или «предположений» для событий, предшествующих и/или последующих центральному событию Eo в последовательности 25. На этапе 228 каждое предсказанное контекстное событие сравнивается с соответствующим фактическим контекстным событием Ei (i≠0) последовательности 25, таким образом определяя ошибку численного предсказания. Ошибка прогнозирования, которую можно интерпретировать как функцию стоимости или целевую функцию, может быть вычислена любым способом, известным в области искусственного интеллекта. Такие вычисления могут включать определение расстояния, например расстояния Левенштейна, Евклида или косинусоидального расстояния между прогнозируемыми и фактическими событиями. Некоторые варианты осуществления определяют целевую функцию в соответствии с мерой перекрестной энтропии. На этапе 230 механизм профилирования может настроить параметры кодера 70a в направлении минимизации вычисленной ошибки прогнозирования. Некоторые примерные алгоритмы, используемые для обучения, включают, среди прочего, обратное распространение с использованием градиентного спуска, имитированного отжига и генетических алгоритмов. Некоторые варианты осуществления затем повторяют этапы 222-230 до тех пор, пока не будет удовлетворено условие завершения, например, пока средняя ошибка прогнозирования по корпусу 18 событий не упадет ниже заранее определенного порога. В другом варианте осуществления обучение продолжается в течение заранее определенного количества времени или заранее определенного количества итераций. Специалисту понятно, что последовательность этапов, показанная на фиг.9, в равной степени подходит для варианта осуществления мультимножества слов (фиг.8-B) с небольшими изменениями.[0063] An exemplary sequence of steps implementing event encoder training is illustrated in FIG. At step 222, the set of event records is retrieved from the event corpus 18 and the sequence of events 25 is identified according to the timestamps of the event and according to the source of the corresponding events (ie, the client systems where the corresponding events occurred). In the skip-gram embodiment, at step 224, the event encoder 70a is then executed to create an embedding space representation of Eo (event vector 28c in FIG. 8-A). In step 226, the profiling engine 60 executes the event decoder 76a to generate a set of predictions or "guesses" for events preceding and/or following the central event Eo in sequence 25. In step 228, each predicted context event is compared with the corresponding actual context event Ei (i≠ 0) sequence 25, thus defining the numerical prediction error. The prediction error, which can be interpreted as a cost function or an objective function, can be calculated by any method known in the field of artificial intelligence. Such calculations may include determining the distance, such as the Levenshtein distance, Euclid or cosine distance between predicted and actual events. Some embodiments define an objective function according to a measure of cross entropy. At step 230, the profiling engine may adjust the parameters of the encoder 70a in the direction of minimizing the calculated prediction error. Some exemplary algorithms used for training include backpropagation using gradient descent, simulated annealing, and genetic algorithms, among others. Some embodiments then repeat steps 222-230 until the termination condition is satisfied, for example, until the average prediction error over event corpus 18 falls below a predetermined threshold. In another embodiment, training continues for a predetermined amount of time or a predetermined number of iterations. The person skilled in the art will appreciate that the sequence of steps shown in FIG. 9 is equally applicable to the multi-word embodiment (FIG. 8-B) with minor modifications.

[0064] В ответ на обучение кодера событий, как указано выше, некоторые варианты осуществления дополнительно преобразуют сгенерированное пространство внедрения, чтобы уменьшить его размерность. Данная операция может содержать любой алгоритм уменьшения размерности данных, например анализ главных компонентов (PCA) или разложение по сингулярным значениям (SVD).[0064] In response to training the event encoder as above, some embodiments further transform the generated embedding space to reduce its dimension. This operation can contain any data dimensionality reduction algorithm such as Principal Component Analysis (PCA) or Singular Value Decomposition (SVD).

[0065] После обучения и опционального уменьшения размерности (этап 208 на фиг. 7) кодер 70 событий может представлять каждое событие как вектор в многомерном пространстве внедрения контекстов событий, при этом два события, которые часто происходят в одном и том же контексте события, занимают аналогичные положения. Иначе говоря, два таких события разделены в пространстве внедрения на расстояние, меньшее, чем расстояние между двумя событиями, которые происходят преимущественно в разных контекстах.[0065] After training and optional dimensionality reduction (step 208 in FIG. 7), event encoder 70 may represent each event as a vector in a multidimensional event context embedding space, with two events that often occur in the same event context occupying similar provisions. In other words, two such events are separated in the embedding space by a distance less than the distance between two events that occur predominantly in different contexts.

[0066] Возвращаясь к компонентам механизма 60 профилирования (фиг.6), механизм 74 кластеризации событий конфигурирован для организации векторов событий, созданных обученным кодером 70 событий и представляющих элементы обучающего корпуса 18, в кластеры в соответствии с положением каждого вектора событий, внутри пространства для встраивания (см. также этап 207 на фиг. 7). В некоторых вариантах осуществления кластер содержит множество событий, которые относительно близко расположены друг к другу в пространстве внедрения или, иначе говоря, множество событий, характеризующихся относительно небольшим расстоянием между событиями в пространстве внедрения. В альтернативном варианте осуществления кластер состоит из событий, которые занимают специфичную для кластера область пространства внедрения. Такие области могут быть взаимоисключающими или частично перекрываться. Фиг.10 иллюстрирует примерное пространство внедрения и набор кластеров 80a-b событий согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированные оси могут содержать, например, первый и второй главные компоненты проиллюстрированных векторов событий (векторы 28g-h-k). В варианте осуществления, использующем пространство внедрения контекстов событий, кластер может выборочно содержать события, которые происходят в основном в аналогичном контексте событий. Кроме того, один и тот же кластер может включать в себя события, происходящие в различных клиентских системах и/или представляющие активность различных пользователей.[0066] Returning to the components of the profiling engine 60 (FIG. 6), the event clustering engine 74 is configured to organize the event vectors generated by the trained event encoder 70 and representing the elements of the training corpus 18 into clusters according to the position of each event vector, within the space for embedding (see also step 207 in FIG. 7). In some embodiments, the implementation of the cluster contains many events that are relatively close to each other in the embedding space, or, in other words, a set of events characterized by a relatively small distance between events in the embedding space. In an alternative embodiment, a cluster consists of events that occupy a cluster-specific region of the deployment space. Such areas may be mutually exclusive or partially overlap. 10 illustrates an exemplary embedding space and set of event clusters 80a-b according to some embodiments of the present invention. The illustrated axes may comprise, for example, the first and second principal components of the illustrated event vectors (vectors 28g-h-k). In an embodiment using the event context embedding space, the cluster may selectively contain events that occur in a substantially similar event context. In addition, the same cluster may include events occurring on different client systems and/or representing the activity of different users.

[0067] Для построения кластеров событий механизм 60 профилирования может использовать любой алгоритм кластеризации данных, известный в данной области техники, например вариант алгоритма k-средних. В другом примерном варианте осуществления можно обучить набор перцептронов разделять пространство внедрения на отдельные области и назначить векторы событий, расположенные в каждой области, отдельному кластеру событий. Количество кластеров и/или областей может быть определено заранее (например, согласно подсчету защищенных клиентских систем и/или отслеживаемых типов событий) или может быть определено динамически самим алгоритмом кластеризации. Результат кластеризации событий содержит набор параметров 54 кластера событий (фиг. 6), которые могут включать в себя для каждого кластера координаты центроида кластера и меру протяженности кластера, например диаметр и/или эксцентриситет. Другие примерные параметры 54 кластера могут включать, среди прочего, список членов соответствующего кластера и выбранного члена соответствующего кластера, рассматриваемого как репрезентативный/архетипический для соответствующего кластера. Параметры кластера могут быть переданы клиентскому механизму 74 кластеризации.[0067] The profiling engine 60 may use any data clustering algorithm known in the art to construct event clusters, such as a variant of the k-means algorithm. In another exemplary embodiment, a set of perceptrons can be trained to partition the embedding space into distinct regions and assign the event vectors located in each region to a distinct event cluster. The number of clusters and/or areas may be predetermined (eg, according to a count of protected client systems and/or monitored event types) or may be determined dynamically by the clustering algorithm itself. The event clustering result contains a set of event cluster parameters 54 (FIG. 6), which may include, for each cluster, cluster centroid coordinates and a measure of cluster extent, such as diameter and/or eccentricity. Other exemplary cluster parameters 54 may include, among other things, a list of members of the respective cluster and a selected member of the respective cluster considered representative/archetypal of the respective cluster. The cluster parameters may be passed to the client clustering engine 74 .

[0068] Клиентский механизм 74 кластеризации (фиг. 6) конфигурирован для определения набора клиентских профилей в соответствии с кластерами событий, вычисленными механизмом 72 кластеризации событий. Такие клиентские профили показаны на фиг.11. В некоторых вариантах осуществления каждый клиентский профиль содержит выбранный поднабор (кластер) защищенных клиентских систем 10a-h. Некоторые клиентские профили могут включать несколько клиентских кластеров. В некоторых вариантах осуществления клиентский профиль может содержать архетип профиля, который может быть фактическим членом соответствующего кластера клиентов, или вымышленной клиентской системой, характеризующейся определенным положением в пространстве профиля. Например, архетип профиля может содержать центроид клиентского кластера, определяемого клиентским механизмом 74 кластеризации.[0068] The client clustering engine 74 (FIG. 6) is configured to define a set of client profiles in accordance with the event clusters computed by the event clustering engine 72. Such client profiles are shown in FIG. In some embodiments, each client profile contains a selected subset (cluster) of secure client systems 10a-h. Some client profiles may include multiple client clusters. In some embodiments, a client profile may contain a profile archetype, which may be an actual member of an associated client cluster, or a fictional client system characterized by a particular position in the profile space. For example, the profile archetype may contain a client cluster centroid defined by the client clustering engine 74 .

[0069] Для вычисления клиентских профилей некоторые варианты осуществления клиентского механизма 74 кластеризации назначают клиентские системы 10a-h кластерам в соответствии с профилем событий, указывающим типичное распределение событий, происходящих в соответствующих клиентских системах. В одном примерном варианте осуществления профиль события клиентской системы содержит вектор чисел, каждое из которых определяется в соответствии с подсчетом событий, происходящих в соответствующей клиентской системе и принадлежащих отдельному кластеру событий, ранее определенному механизмом 72 кластеризации событий. В примере, проиллюстрированном на фиг.12, каждый компонент профиля события определяется в соответствии с мерой принадлежности кластеру, показывающей долю событий, принадлежащих соответствующему кластеру Q событий, определяемому как долю от общего количества событий, доступных от соответствующей клиентской системы. Например, когда механизм 72 кластеризации событий идентифицировал три кластера событий C1, C2 и C3, вектор профиля события [0,1, 0,75, 0,15] может представлять клиентскую систему, в которой 10% событий, происходящих в соответствующей клиентской системе, принадлежат кластеру C1 события, при этом 75% событий принадлежат кластеру C2 события, а 15% событий принадлежат кластеру C3 события.[0069] To calculate client profiles, some embodiments of the client clustering engine 74 assign client systems 10a-h to clusters according to an event profile indicating a typical distribution of events occurring on the respective client systems. In one exemplary embodiment, the client system event profile contains a vector of numbers, each of which is determined in accordance with the count of events occurring in the corresponding client system and belonging to a separate event cluster, previously determined by the event clustering engine 72 . In the example illustrated in FIG. 12, each event profile component is defined according to a cluster membership measure indicating the proportion of events belonging to the corresponding event cluster Q, defined as a fraction of the total number of events available from the corresponding 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] may represent a client system in which 10% of the events occurring on the corresponding client system belong to event cluster C1, with 75% of events belonging to event cluster C2 and 15% of events belonging to event cluster C3.

[0070] В примерном варианте осуществления с фиг. 11 каждая клиентская система представлена в многомерном пространстве профиля согласно соответствующему профилю события. Иначе говоря, каждая координата клиентской системы представляет собой компонент профиля события соответствующего клиента. Фиг.11 иллюстрирует три примерных клиентских кластера/профиля 82a-c. Квалифицированный специалист может использовать любой метод, известный в области машинного обучения или интеллектуального анализа данных, для построения таких профилей; примерные методы включают в себя, среди прочего, варианты алгоритма кластеризации k-средних и нейронные сети. Альтернативные варианты осуществления могут использовать другие критерии назначения клиентской системы кластеру или использовать такие критерии в дополнение к профилю события соответствующего клиента. Примерные дополнительные критерии кластеризации клиентов включают, среди прочего, владельца и/или пользователя соответствующей клиентской системы, сетевой адрес соответствующей клиентской системы, тип устройства соответствующей клиентской системы и т. д. Например, клиенты, принадлежащие к одному семейству, одной корпорации или одному сетевому домену, могут быть сгруппированы в один кластер.[0070] In the exemplary embodiment of FIG. 11, each client system is represented in a multi-dimensional profile space according to a respective event profile. In other words, each client system coordinate is a component of the event profile of the corresponding client. 11 illustrates three exemplary client clusters/profiles 82a-c. The skilled person may use any technique known in the field of machine learning or data mining to construct such profiles; exemplary methods include, among others, variants of the k-means clustering algorithm and neural networks. Alternative embodiments may use other criteria for assigning a client system to a cluster, or use such criteria in addition to the corresponding client's event profile. Exemplary additional client clustering criteria include, but are not limited to, the owner and/or user of the respective client system, the network address of the respective client system, the device type of the respective client system, etc. For example, clients belonging to the same family, the same corporation, or the same network domain , can be grouped into one cluster.

[0071] После кластеризации клиентов механизм 60 профилирования может сохранять параметры кластера, такие как список клиентских систем, назначенных каждому кластеру/профилю, координаты архетипов кластера (например, центроидов), диаметры кластера и т.д., в базу данных 19 профилей.[0071] After client clustering, the profiling engine 60 may store cluster parameters, such as a list of client systems assigned to each cluster/profile, coordinates of cluster archetypes (e.g., centroids), cluster diameters, etc., to a profile database 19 .

[0072] Фиг.13 иллюстрирует примерные компоненты и работу детектора 62 аномалий согласно некоторым вариантам осуществления настоящего изобретения (см. также Фиг.5). Детектор 62 аномалий конфигурирован для приема потока 24 событий, содержащего индикаторы событий, указывающих на события, происходящие в различных клиентских системах, и в ответ на вывод метки 88 безопасности, указывающей, указывают ли соответствующие события на угрозу безопасности, такую как вторжение или выполнение вредоносное ПО. В некоторых вариантах осуществления детектор 62 аномалий содержит диспетчер 84 профилей, конфигурированный, в ответ на получение уведомления о событии, указывающего на событие, происходящее в защищенной клиентской системе, для выбора клиентского профиля согласно соответствующему событию. Диспетчер 84 профилей дополнительно связан с моделью 86 поведения, конфигурированной для определения, соответствует ли соответствующее событие шаблону нормального/базового поведения, представленному соответствующим профилем. Если нет, соответствующее событие может рассматриваться как аномалия, что указывает на возможную атаку на соответствующую клиентскую систему.[0072] FIG. 13 illustrates exemplary components and operation of an anomaly detector 62 according to some embodiments of the present invention (see also FIG. 5). The anomaly detector 62 is configured to receive an event stream 24 containing event indicators indicating events occurring on various client systems and in response to outputting a security label 88 indicating whether the corresponding events indicate a security risk such as intrusion or execution of malware. . In some embodiments, the anomaly detector 62 comprises a profile manager 84 configured, in response to receiving an event notification indicating an event occurring on the secure client system, to select a client profile according to the corresponding event. The profile manager 84 is further associated with a behavior model 86 configured to determine if the corresponding event matches the normal/basic behavior pattern represented by the corresponding profile. If not, the corresponding event can be considered as an anomaly, indicating a possible attack on the corresponding client system.

[0073] При подготовке к выполнению детектирования аномалий, как указано ниже, некоторые варианты осуществления детектора 62 аномалий сначала обучаются на корпусе событий с использованием выходных данных механизма 60 профилирования. Одной из целей обучения детектора 62 аномалий является определение нормального/базового поведения пользователя для каждого клиентского профиля, идентифицированного механизмом 60 профилирования. Обучение включает настройку набора параметров модели 86 поведения до тех пор, пока не будет удовлетворен критерий завершения. Корпус событий, используемый для обучения детектора 62 аномалий, может отличаться от обучающего корпуса 18, используемого для обучения компонентов механизма 60 профилирования.[0073] In preparation for performing anomaly detection as indicated below, some embodiments of the anomaly detector 62 are first trained on a corpus of events using the output of the profiling engine 60 . One of the purposes of training the anomaly detector 62 is to determine the normal/basic user behavior for each client profile identified by the profiling engine 60 . Training includes tuning a set of behavior model 86 parameters until a termination criterion is satisfied. The case of events used to train the anomaly detector 62 may be different from the training case 18 used to train the components of the profiling engine 60 .

[0074] Фиг. 14 иллюстрирует примерную последовательность этапов, выполняемых детектором 62 аномалий во время процедуры обучения согласно некоторым вариантам осуществления настоящего изобретения. В ответ на механизм 60 аномалий, создающий набор клиентских профилей, на этапе 242 выбирается один такой клиентский профиль из базы данных 19 профилей. В некоторых вариантах осуществления каждый такой клиентский профиль содержит набор клиентских кластеров, например кластер 82a на фиг. 11. Каждый клиентский кластер дополнительно включает в себя выбранный поднабор защищенных клиентских систем. На этапе 244 можно выбрать обучающий набор событий, зарегистрированных как происходящие в любой клиентской системе, связанной с соответствующим профилем/кластером. В некоторых вариантах осуществления этап 244 может содержать выбор обучающего набора событий из обучающего корпуса 18, уже использованного для построения клиентских профилей, как показано выше. Дальнейший этап 246 может использовать соответствующий обучающий набор событий в качестве обучающего корпуса для обучения модели 86 поведения.[0074] FIG. 14 illustrates an exemplary sequence of steps performed by an anomaly detector 62 during a training procedure in accordance with some embodiments of the present invention. In response to the anomaly engine 60 generating a set of client profiles, at step 242 one such client profile is selected from the profile database 19 . In some embodiments, each such client profile contains a set of client clusters, such as cluster 82a in FIG. 11. Each client cluster further includes a selected subset of secure client systems. At 244, a training set of events registered as occurring on any client system associated with the respective profile/cluster may be selected. In some embodiments, step 244 may comprise selecting a training set of events from a training corpus 18 already used to build client profiles, as shown above. A further step 246 may use the appropriate training event set as the training corpus for training the behavior model 86 .

[0075] В некоторых вариантах осуществления модель 86 поведения содержит компоненты, которые аналогичны по структуре и функциям некоторым компонентам механизма 60 профилирования. Например, некоторые варианты осуществления модели 86 включают в себя пару кодер-декодер, как показано на фиг.15, которая может быть построена с использованием технологии нейронных сетей и обучена в соответствии с членом семейства алгоритмов word2vec (см. описание выше в отношении фиг. 8-AB). Модель 86 поведения при обучении может затем сводиться к настройке параметров кодера 70c и/или декодера 76c (например, набора весов синапсов) с целью представления каждого события из соответствующего клиентского кластера/профиля как вектор в пространстве внедрения событий. В предпочтительном варианте осуществления кодер 70c анализирует каждое событие в контексте последовательности событий и генерирует пространство внедрения, в котором события, которые происходят преимущественно в аналогичных контекстах, разделены меньшим расстоянием по сравнению с событиями, которые происходят в других контекстах. Однако пространство внедрения событий (т. е. значение осей, размер расстояний между событиями и т. д.), полученное в результате обучающего кодера 70c, может существенно отличаться от пространства внедрения события, полученного из обучающего кодера 70 событий, поскольку обучающие корпуса, используемые для двух кодеров, различны.[0075] In some embodiments, the implementation of the model 86 behavior contains components that are similar in structure and function to some of the components of the mechanism 60 profiling. For example, some embodiments of model 86 include an encoder-decoder pair as shown in FIG. 15, which can be built using neural network technology and trained in accordance with a member of the word2vec algorithm family (see description above with respect to FIG. 8 -AB). The learning behavior model 86 can then be reduced to tuning encoder 70c and/or decoder 76c parameters (eg, a set of synapse weights) to represent each event from the respective client cluster/profile as a vector in the event embedding space. In the preferred embodiment, encoder 70c analyzes each event in the context of a sequence of events and generates an embedding space in which events that occur predominantly in similar contexts are separated by a smaller distance compared to events that occur in other contexts. However, the event embedding space (i.e., the value of the axes, the size of the distances between events, etc.) obtained from the training encoder 70c may differ significantly from the event embedding space obtained from the training event encoder 70, because the training corpora used for the two encoders are different.

[0076] В предпочтительном варианте осуществления этап 246 включает обучение пары кодер-декодер с использованием версии алгоритма мультимножества слов (см. фиг. 8-B). В одном таком примере пара кодер-декодер (фиг. 15) конфигурирована для приема множества событий E-k,…E-1, E1... Ep, представляющих контекст события текущей анализируемой последовательности событий, и для создания N-мерного вектора 90 оценок прогнозирования, в котором каждый элемент связан с отдельным типом события, причем каждый элемент представляет вероятность того, что центральное событие соответствующей последовательности событий относится к соответствующему типу события. Например, более высокое значение оценки может указывать на то, что соответствующий тип события с большей вероятностью произойдет как центральное событие соответствующей последовательности событий, чем другие типы событий, имеющие более низкие оценки. В таких вариантах осуществления примерное обучение модели 86 может включать выбор последовательностей событий из поднабора событий, идентифицированных на этапе 244 (фиг.14), ввод контекста события соответствующей последовательности в кодер 70c, исполнение декодера 76c для создания прогноза для центрального события Eo соответствующей последовательности событий и наказание за неправильные прогнозирования путем обратного распространения ошибки прогнозирования через нейронные сети, которые образуют кодер 70c и/или декодер 76c. В ответ на успешное обучение на этапе 248 можно сохранить значения параметров обученной модели поведения. Процедура обучения может повторяться для каждого клиентского профиля, идентифицированного механизмом 60 профилирования.[0076] In the preferred embodiment, step 246 includes training the encoder-decoder pair using a version of the multiword algorithm (see FIG. 8-B). In one such example, the encoder-decoder pair (FIG. 15) is configured to receive a plurality of events E-k, ... E-1, E1 ... Ep representing the event context of the current analyzed sequence of events, and to create an N-dimensional prediction score vector 90, in which each element is associated with a particular event type, with each element representing the probability that the central event of the corresponding sequence of events is of 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 sequence of events than other event types having lower scores. In such embodiments, exemplary training of model 86 may include selecting sequences of events from a subset of events identified in step 244 (FIG. 14), inputting the event context of the corresponding sequence to encoder 70c, executing decoder 76c to generate a prediction for the central event Eo of the corresponding sequence of events, and punishing mispredictions by backpropagating the prediction error through the neural networks that form encoder 70c and/or decoder 76c. In response to successful training, at step 248, parameter values of the trained behavior model may be stored. The training procedure may be repeated for each client profile identified by the profiling engine 60 .

[0077] Фиг. 16 иллюстрирует примерную последовательность шагов, выполняемых детектором 62 аномалий для защиты целевой клиентской системы (например, клиентов 10a-h на фиг. 1) от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Целевая клиентская система может быть или не быть членом поднабора клиентов, обеспечивающих обучающий корпус событий, которые производят модели поведения и/или клиентские профили, как указано выше. Для защиты целевой клиентской системы события могут детектироваться в целевой клиентской системе и/или других устройствах, таких как маршрутизаторы 15a-b (см. фиг. 1), и могут передаваться на сервер 16 безопасности в виде индикаторов событий. Такие индикаторы событий могут быть затем предварительно обработаны в соответствии с их источником, типом события, временем, настройками учетной записи службы и т. д. и организованы в виде потока 24 событий. События могут обрабатываться индивидуально или группами. В ответ на прием индикатора события от целевой клиентской системы на этапе 254 детектор 62 аномалии может собрать последовательность событий для анализа согласно соответствующему индикатору события. Этап 254 может включать в себя идентификацию источника события (т.е. клиентской системы, в которой произошло соответствующее событие), выбор из потока 24 событий множества других событий для формирования последовательности событий. В некоторых вариантах осуществления члены последовательности выбираются таким образом, чтобы все они происходили из одной и той же целевой клиентской системы. В другом примере все члены последовательности должны находиться в заранее определенном поднаборе клиентских систем, например, в сетевом субдомене или общем IP-адресе. Выбранные события также могут быть упорядочены в соответствии с их временем возникновения и/или обнаружения, например, с использованием метки времени, предоставленной с индикатором входящего события. Последовательность событий может быть дополнительно разделена на части, например, идентифицирующие центральное событие и контекст события (см., например, фиг. 8-A).[0077] FIG. 16 illustrates an exemplary sequence of steps taken by an anomaly detector 62 to protect a target client system (eg, clients 10a-h in FIG. 1) from computer security threats in accordance with some embodiments of the present invention. The target client system may or may not be a member of a subset of clients that provide a learning corpus of events that produce behaviors and/or client profiles, as discussed above. To secure the target client system, events may be detected at the target client system and/or other devices such as routers 15a-b (see FIG. 1) and transmitted to the security server 16 as event indicators. Such event indicators can then be pre-processed according to their source, event type, time, service account settings, etc., and organized into an event stream 24 . Events can be processed individually or in groups. In response to receiving an event indicator from the target client system, at step 254, the anomaly detector 62 may collect a sequence of events for analysis according to the corresponding event indicator. Step 254 may include identifying the source of the event (ie, the client system on which the corresponding event occurred), selecting a plurality of other events from the event stream 24 to form a sequence of events. In some embodiments, the members of the sequence are chosen such that they all come from the same target client system. In another example, all members of the sequence must be in a predetermined subset of client systems, such as a network subdomain or public IP address. The selected events may also be ordered according to their time of occurrence and/or detection, for example using a timestamp provided with the incoming event indicator. The sequence of events can be further divided into parts, for example, identifying the central event and the context of the event (see, for example, Fig. 8-A).

[0078] На этапе 256 диспетчер 84 профилей может выбрать клиентский профиль согласно соответствующему индикатору события, например, согласно идентификатору целевой клиентской системы, в которой произошло соответствующее событие. Когда соответствующая целевая клиентская система предоставила обучающие мероприятия для разработки клиентских профилей и/или для обучения моделей поведения, этап 256 может включать выбор клиентского профиля/кластера, имеющего соответствующую целевую клиентскую систему в качестве члена. Также могут использоваться другие критерии выбора профиля. Например, этап 256 может содержать выбор клиентского профиля в соответствии с положением целевой клиентской системы в пространстве клиентского профиля (см. фиг.11), например, путем сравнения положения целевой клиентской системы с набором архетипов кластера или центроида и выбора кластера/профиля, центроид которого ближе всего к целевой клиентской системе. В одном таком примере клиентский профиль может быть выбран в соответствии с профилем события, определенным для целевой клиентской системы (например, в соответствии с подсчетом событий, полученных от целевой клиентской системы, которые вписываются в конкретную категорию/кластер событий). Другие критерии выбора клиентского профиля могут включать в себя выбор клиентского профиля в соответствии с сетевым адресом целевой клиентской системы (например, выбор клиентского профиля, содержащего клиентов, имеющих тот же IP-адрес, что и у целевой клиентской системы), для владельца/пользователя целевой клиентской системы (например, выбор профиля, содержащего члены той же семьи, что и целевая клиентская система) и т. д. [0078] At step 256, the profile manager 84 may select a client profile according to a corresponding event indicator, for example, according to the ID of the target client system in which the corresponding event occurred. When the respective target client system has provided training events for developing client profiles and/or for learning behaviors, step 256 may include selecting a client profile/cluster having the respective target client system as a member. Other profile selection criteria may also be used. For example, step 256 may comprise selecting a client profile according to the position of the target client system in client profile space (see FIG. 11), for example, by comparing the position of the target client system with a set of cluster or centroid archetypes and selecting a cluster/profile whose centroid closest to the target client system. In one such example, a client profile may be selected according to an event profile defined for the target client system (eg, according to a count of events received from the target client system that fit into a particular category/cluster of events). Other criteria for selecting a client profile may include selecting a client profile according to the network address of the target client system (e.g., selecting a client profile containing clients that have the same IP address as the target client system), for the owner/user of the target client system (for example, selecting a profile containing members of the same family as the target client system), etc.

[0079] На дополнительном этапе 258 детектор аномалий может создать экземпляр модели 86 поведения со значениями параметров, специфичными для соответствующего выбранного клиентского профиля. В некоторых вариантах осуществления после создания экземпляра, зависящего от профиля, выполнение модели 86 (этап 260) содержит проецирование событий соответствующей последовательности событий в пространство внедрения событий, связанное с соответствующим клиентским профилем.[0079] In an additional step 258, the anomaly detector may instantiate the behavior model 86 with parameter values specific to the respective selected client profile. In some embodiments, after a profile-specific instance has been created, executing model 86 (block 260) comprises projecting the events of the corresponding sequence of events into the event injection space associated with the corresponding client profile.

[0080] На этапе 262 теперь можно определить, являются ли событие(я) соответствующей последовательности событий представлением нормального/базового поведения пользователя, связанного с соответствующим клиентским профилем, или нет. В одном варианте осуществления этап 260 включает подачу контекста события (£), i) 0) соответствующей последовательности в модель 86 поведения и вычисление вектора 90 оценок прогнозирования соответствующей последовательности. Затем этап 262 может включать идентификацию элемента вектора 90, соответствующего типу события фактического центрального события Eo последовательности, и сравнение соответствующей оценки с заранее определенным порогом (например, 0,95). В некоторых вариантах осуществления значение оценки ниже порогового значения указывает, что соответствующее событие Eo, по существу, маловероятно, что произойдет в соответствующем контексте события, и, следовательно, указывает на аномалию, совместимую с потенциальной угрозой компьютерной безопасности. В некоторых вариантах осуществления пользователь или администратор сервера 16 безопасности может настраивать чувствительность метода, регулируя значение порога. В одном из таких примеров разные пороговые значения связаны с разными группами клиентских систем.[0080] At step 262, it can now be determined whether the event(s) of the respective sequence of events are a representation of the normal/basic user behavior associated with the respective client profile or not. In one embodiment, step 260 includes feeding the context of the event (E), i) 0) of the corresponding sequence to the behavior model 86 and calculating a prediction score vector 90 of the corresponding sequence. Step 262 may then include identifying an element of vector 90 corresponding to the event type of the actual central event Eo of the sequence and comparing the corresponding score against a predetermined threshold (eg, 0.95). In some embodiments, a score value below a threshold indicates that the corresponding event Eo is substantially unlikely to occur in the corresponding event context, and therefore indicates an anomaly compatible with a potential computer security threat. In some embodiments, the user or administrator of the security server 16 can adjust the sensitivity of the method by adjusting the threshold value. In one such example, different thresholds are associated with different groups of client systems.

[0081] В альтернативном варианте осуществления этап 260 может включать использование модели 86 для определения представления события £) последовательности в пространстве внедрения событий, специфичном для соответствующего клиентского профиля. Этап 262 может включать определение того, соответствует ли событие Ei шаблону нормального поведения для соответствующего клиентского профиля в соответствии с положением соответствующего события в пространстве внедрения. Например, событие может считаться нормальным, когда оно расположено в обучающем кластере событий (например, ближе к центроиду кластера, чем заранее определенный порог). В другом примере событие может считаться нормальным/благоприятным, если оно находится в определенных областях пространства внедрения, и аномальным, если оно находится в других регионах.[0081] In an alternative embodiment, step 260 may include using the model 86 to determine the representation of the event (e) of the sequence in an event embedding space specific to the respective client profile. Step 262 may include determining if the event Ei matches the normal behavior pattern for the respective client profile according to the location of the respective event in the embedding space. For example, an event may be considered normal when it is located in the training event cluster (eg, closer to the cluster centroid than a predetermined threshold). In another example, an event may be considered normal/favorable if it is in certain regions of the implementation space, and abnormal if it is in other regions.

[0082] Когда событие последовательности (например, Eo) считается аномалией или, другими словами, не соответствует шаблону нормальности, установленному посредством обучения для соответствующего клиентского профиля, этап 264 может пометить соответствующее событие для дальнейшего анализа. В некоторых вариантах осуществления аномалия может инициировать передачу предупреждения о безопасности диспетчером 64 предупреждений сервера 16 безопасности (см. фиг. 5). Предупреждения системы безопасности могут поступать в клиентскую систему, где произошло аномальное событие, и/или администратору соответствующей клиентской системы. Случаи аномальных событий также могут быть собраны и сообщены для дальнейшего анализа в лабораторию компьютерной безопасности.[0082] When a sequence event (eg, Eo) is considered an anomaly, or, in other words, does not match the pattern of normality established through training for the respective client profile, step 264 may flag the respective event for further analysis. In some embodiments, the anomaly may trigger the transmission of a security alert by the alert manager 64 of the security server 16 (see FIG. 5). Security alerts may be sent to the client system where the anomalous event occurred and/or to the administrator of the corresponding client system. Cases of anomalous events can also be collected and reported for further analysis to the computer security laboratory.

[0083] Примерные системы и способы, описанные выше, позволяют эффективно обнаруживать угрозы компьютерной безопасности, такие как вредоносное программное обеспечение и вторжение. Раскрытые системы и способы реализуют поведенческий подход к компьютерной безопасности, в котором нормальное/базовое поведение пользователя автоматически выводится системой в соответствии с обучающим корпусом событий, и при этом отклонение от базовой модели поведения может указывать на угрозу.[0083] The exemplary systems and methods described above can effectively detect computer security threats such as malware and intrusion. The disclosed systems and methods implement a behavioral approach to computer security in which normal/basic user behavior is automatically inferred by the system according to a learning corpus of events, and where a deviation from the base behavior may indicate a threat.

[0084] Некоторые варианты осуществления детектируют различные события, происходящие во множестве клиентских систем, например компьютерах, мобильных телефонах, сетевых устройствах и виртуальных машинах. Примеры событий включают запуск определенных процессов, попытки доступа к определенным файлам или сетевым местоположениям, а также события сетевого трафика, такие как доступ к определенным портам и адресам, среди прочего. Квалифицированному специалисту понятно, что описанные здесь системы и способы могут быть адаптированы к другим видам событий, таким как события, связанные, среди прочего, с активностью пользователя в социальных сетях, историей просмотра пользователем и игровой активностью пользователя. Уведомления о событиях собираются на сервере безопасности. Набор таких событий может использоваться в качестве обучающего корпуса для создания набора клиентских профилей, при этом каждый клиентский профиль может представлять одного пользователя, одну машину или множество пользователей/машин. В некоторых вариантах осуществления каждый клиентский профиль содержит поднабор клиентских систем и/или поднабор событий, которые произошли в соответствующих поднаборах клиентских систем. Каждый клиентский профиль может представлять нормальный и/или благоприятный образец использования соответствующих клиентских систем. Такие клиентские профили затем могут использоваться для детектирования случаев аномального поведения, которые могут указывать на угрозу компьютерной безопасности.[0084] Some embodiments detect various events occurring on multiple client systems, such as computers, mobile phones, network devices, and virtual machines. Examples of events include starting certain processes, attempts to access certain files or network locations, and network traffic events such as accessing certain ports and addresses, among others. The skilled artisan will appreciate that the systems and methods described herein may be adapted to other types of events, such as events related to a user's social media activity, a user's browsing history, and a user's gaming activity, among other things. Event notifications are collected on the security server. A set of such events can be used as a training corpus to create a set of client profiles, where each client profile can represent one user, one machine, or multiple users/machines. In some embodiments, each client profile contains a subset of client systems and/or a subset of events that have occurred on respective subsets of client systems. Each client profile may represent a normal and/or favorable usage pattern for the respective client systems. Such client profiles can then be used to detect instances of anomalous behavior that may indicate a computer security threat.

[0085] Некоторые традиционные системы компьютерной безопасности работают соответствии с набором правил, которые количественно определяют поведение, указывающее на злой умысел. Поскольку разработчики обычно заинтересованы в предоставлении таких решений широкому кругу клиентов, правила поведения обычно носят общий характер и не предназначены для конкретных пользователей. Однако на практике пользователи очень разнородны. Даже в пределах одной компании или одной семьи способы использования компьютера каждым участником могут существенно различаться. Набор действий, который может считаться нормальным для разработчика программного обеспечения или инженера, может быть очень необычным при детектировании на компьютере в бухгалтерии. Более того, один и тот же пользователь может существенно отличаться в поведении дома на работе. Следовательно, общие правила поведения могут не отражать разнообразие и специфику реальных пользователей. В отличие от таких традиционных систем, в некоторых вариантах осуществления настоящего изобретения события, происходящие в каждой клиентской системе, просматриваются и анализируются выборочно по модели, фиксирующей нормальное/базовое поведение самой соответствующей клиентской системы и/или похожих клиентов. Иначе говоря, границы поведенческой «нормальности» могут быть определены с существенной специфичностью: конкретный клиентский компьютер, определенная группа пользователей (например, конкретный отдел компании, члены семьи, определенная возрастная группа) и т. д.[0085] Some conventional computer security systems operate according to a set of rules that quantify behavior indicative of malicious intent. Since developers are usually interested in providing such solutions to a wide range of customers, the rules of conduct are usually general and not intended for specific users. In practice, however, users are very heterogeneous. Even within the same company or family, the way each member uses a computer can vary greatly. A set of activities that may be considered normal for a software developer or engineer may be very unusual when detected on a computer in an accounting department. Moreover, the same user can significantly differ in the behavior at home at work. Therefore, general rules of conduct may not reflect the diversity and specificity of real users. Unlike such conventional systems, in some embodiments of the present invention, the events occurring in each client system are viewed and analyzed selectively against a model that captures the normal/basic behavior of the respective client system itself and/or similar clients. In other words, the boundaries of behavioral "normality" can be defined with significant specificity: a specific client computer, a specific group of users (for example, a specific department of a company, family members, a specific age group), etc.

[0086] Из-за распространения программного обеспечения и использования Интернета попытка разработать высокоспецифические профили поведения, например профили, прикрепленные к каждому отдельному пользователю, может потребовать необоснованных вычислительных ресурсов и, следовательно, может быть непрактичной. Кроме того, сбор событий от отдельных пользователей/машин может не предоставить достаточно данных для разработки статистически надежных моделей поведения. В отличие от этого подхода, некоторые варианты осуществления настоящего изобретения группируют множество пользователей и/или машин в один клиентский профиль, таким образом обеспечивая полезный компромисс между специфичностью, надежностью и вычислительными затратами. Кроме того, способ, которым пользователи и машины группируются в профили, сам по себе основан на поведенческих критериях, чтобы гарантировать, что такое группирование сохраняет специфичность. В некоторых вариантах осуществления каждый клиентский профиль группирует вместе пользователей/машины, которые имеют по существу аналогичные профили событий. Иначе говоря, все члены клиентского профиля демонстрируют аналогичное базовое поведение с точки зрения статистики событий, происходящих на машинах-членах.[0086] Due to the proliferation of software and the use of the Internet, attempting to develop highly specific behavior profiles, such as profiles attached to each individual user, may require unreasonable computing resources and, therefore, may not be practical. Also, collecting events from individual users/machines may not provide enough data to develop statistically robust behaviors. In contrast to this approach, some embodiments of the present invention group multiple users and/or machines into a single client profile, thus providing a useful trade-off between specificity, reliability, and computational cost. Also, the way 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 groups together users/machines that have substantially similar event profiles. In other words, all members of a client profile exhibit similar basic behavior in terms of statistics of events occurring on member machines.

[0087] Некоторые традиционные системы и способы компьютерной безопасности в основном анализируют отдельные события. Многие события, происходящие во время работы компьютерной системы (например, открытие файла, доступ к веб-странице), могут не указывать на злой умысел, если их рассматривать изолированно. Однако они могут быть злонамеренными, когда происходят в контексте других событий, например, как конкретная последовательность действий. В отличие от более традиционных решений, некоторые варианты осуществления настоящего изобретения явно анализируют события в контексте и поэтому лучше подходят для таких ситуаций корреляции событий. В предпочтительном варианте осуществления отдельные события представлены в виде векторов в многомерном пространстве внедрения, имеющем отличительное свойство, заключающееся в том, что пара событий, которые происходят с относительно высокой частотой в одном и том же контексте событий, разделены меньшим расстоянием, чем другая пара событий, которые происходят реже в том же контексте события.[0087] Some conventional computer security systems and methods primarily analyze individual events. Many events that occur during the operation of a computer system (eg, opening a file, accessing a web page) may not indicate malicious intent when viewed in isolation. However, they can be malicious when they occur in the context of other events, such as a specific sequence of actions. Unlike more traditional solutions, some embodiments of the present invention explicitly parse events in context and are therefore better suited to such event correlation situations. In a preferred embodiment, the individual events are represented as vectors in a multidimensional embedding space having the distinctive property that a pair of events that occur at a relatively high frequency in the same event context are separated by less distance than another pair of events, that occur less frequently in the same event context.

[0088] Успешное моделирование поведения может потребовать детектирования большого количества (например, сотен или тысяч) различных типов событий, но не все типы событий могут быть одинаково важны при моделировании поведения. Сбор и анализ статистических данных о стольких типах событий, полученных из большого количества источников, может оказаться непрактичным. Для решения этой проблемы некоторые варианты осуществления группируют события в категории или кластеры событий в соответствии со степенью сходства между событиями, таким образом создавая более надежную и/или релевантную статистику. Такое существенное уменьшение размерности может существенно облегчить построение клиентских профилей. Сходство событий может быть определено согласно нескольким критериям, например, согласно расстоянию, разделяющему два события в пространстве внедрения событий. В предпочтительном варианте осуществления два события могут считаться подобными, если они происходят преимущественно в одном и том же контексте (например, события A и B считаются подобными, если как A, так и B часто предшествует событие X, и/или за ним следует событие Y, т. е. как в примерных последовательностях XAY и XBY).[0088] Successful behavior modeling may require the detection of a large number (eg, hundreds or thousands) of different event types, but not all event types may be equally important in behavior modeling. Collecting and analyzing statistics on so many types of events from a large number of sources may not be practical. To solve this problem, some embodiments group events into categories or clusters of events according to the degree of similarity between events, thus generating more reliable and/or relevant statistics. Such a significant reduction in dimension can greatly facilitate the construction of client profiles. Event similarity can be determined according to several criteria, such as the distance separating two events in the event embedding space. In a preferred embodiment, two events may be considered similar if they occur predominantly in the same context (e.g., events A and B are considered similar if both A and B are frequently preceded by event X and/or followed by event Y , i.e., as in the exemplary XAY and XBY sequences).

[0089] Фиг. 17-A-B иллюстрируют эксперимент по применению некоторых систем и способов, описанных выше, для обнаружения угроз компьютерной безопасности. Корпус событий, собранных от множества отслеживаемых клиентов, использовался для обучения компонентов механизма профилирования, как указано выше, в результате чего отслеживаемые клиенты были разделены на 11 клиентских кластеров/профилей. События были разделены на категории событий в соответствии с представлением каждого события в 15-мерном пространстве внедрения. Модели поведения, специфичные для профиля, были разработаны для каждого из соответствующих клиентских кластеров. Затем на тестовой машине была проведена атака определенного типа. Последовательности событий, собранные с испытательной машины, подавались на детектор аномалий, экземпляр которого, в свою очередь, имел параметры, специфичные для каждой из моделей поведения. Некоторые такие последовательности событий были обнаружены как аномалии.[0089] FIG. 17-A-B illustrate an experiment using some of the systems and methods described above to detect computer security threats. A corpus of events collected from multiple monitored clients was used to train profiling engine components as above, resulting in the monitored clients being divided into 11 client clusters/profiles. Events were divided into event categories according to the representation of each event in a 15-dimensional embedding space. Profile-specific behaviors have been developed for each of the respective client clusters. Then a certain type of attack was carried out on the test machine. The sequences of events collected from the testing machine were fed to the anomaly detector, which in turn had parameters specific to each of the behaviors. Some such sequences of events have been found to be anomalies.

[0090] Фиг. 17-A иллюстрирует оценки аномалий, специфичных для кластера, представленные по шкале, где оценка 1 указывает на 100% достоверность аномалии (например, по меньшей мере одно событие последовательности событий, полученное от тестовой машины, не было видно на тренировках). На графике представлены значения баллов, усредненные по последовательностям аномальных событий, и соответствующие стандартные отклонения. На чертеже показано, что одна и та же последовательность(и) может считаться аномалией с уровнем достоверности, зависящим от кластера. Другими словами, одни и те же последовательности событий считаются «менее аномальными» для одних клиентов, чем для других. Например, модели поведения, связанные с кластерами 1, 2 и 7, не только детектируют атаку относительно более эффективно, чем другие модели, но и все последовательности событий, связанные с атаками, считаются «одинаково аномальными». Напротив, модели, связанные с кластерами 0 и 9, указывают некоторые последовательности событий одной и той же атаки как «менее аномальные», чем другие.[0090] FIG. 17-A illustrates cluster-specific anomaly scores presented on a scale, where a score of 1 indicates 100% certainty of the anomaly (eg, at least one sequence of events received from the test machine was not seen in training). The graph shows the scores averaged over the sequences of anomalous events and the corresponding standard deviations. The drawing shows that the same sequence(s) can be considered an anomaly with a level of confidence depending on the cluster. In other words, the same sequences of events are considered "less anomalous" for some clients than for others. For example, the behaviors associated with clusters 1, 2, and 7 not only detect an attack relatively more effectively than other models, but all attack sequences are considered "equally anomalous." In contrast, models associated with clusters 0 and 9 indicate some sequences of events in the same attack as "less anomalous" than others.

[0091] Фиг. 17-B иллюстрирует специфичные для профиля средние уровни детектирования, достигнутые для трех различных типов атак. Последовательности событий, собранные с тестовой машины во время каждого типа атаки, были проанализированы с использованием каждой из 11 обученных моделей поведения, специфичных для профиля. Скорость детектирования различается в зависимости от моделей и типов атак, что дополнительно свидетельствует об особенностях некоторых систем и способов, описанных в данном документе.[0091] FIG. 17-B illustrates profile-specific average detection levels achieved for three different attack types. Event sequences collected from the test machine during each type of attack were analyzed using each of 11 trained profile-specific behaviors. The detection rate varies depending on the models and types of attacks, which additionally indicates the features of some of the systems and methods described in this document.

[0092] Такие экспериментальные результаты указывают на другое потенциальное применение некоторых вариантов осуществления настоящего изобретения. Централизованное решение компьютерной безопасности может выборочно разрабатывать стратегии защиты для каждого набора клиентов, идентифицированных клиентским профилем, и/или для других клиентов, которые имеют сходство с архетипом каждого клиентского кластера. Некоторые варианты осуществления могут идентифицировать клиентские кластеры, для которых описанные здесь способы предлагают удовлетворительную степень безопасности, и другие клиентские кластеры, которые требуют дополнительных мер безопасности. Настройка защиты для каждого клиентского кластера может улучшить взаимодействие с пользователем и сократить ненужные вычислительные затраты.[0092] Such experimental results point to other potential applications of some embodiments of the present invention. The centralized computer security solution may selectively develop security strategies for each set of clients identified by the client profile and/or for other clients that are similar to the archetype of each client cluster. Some embodiments may identify client clusters for which the methods described herein offer a satisfactory degree of security and other client clusters that require additional security measures. Setting up security for each client cluster can improve the user experience and reduce unnecessary computational overhead.

[0093] Специалисту в данной области техники понятно, что вышеупомянутые варианты осуществления могут быть различным образом изменены, без выхода при этом за рамки объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.[0093] Those skilled in the art will appreciate that the above embodiments may be varied in various ways without departing from the scope of the present invention. Accordingly, the scope of legal protection of the present invention is defined by the following claims and their legal equivalents.

Claims (72)

1. Серверная компьютерная система, содержащая по меньшей мере один аппаратный процессор, конфигурированный, чтобы:1. A server computer system comprising at least one hardware processor configured to: в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, определять в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; иin response to the occurrence of the target event on the target client system, and the target event is selected from the group containing the start of the process and the attempt to access the file, to determine in accordance with the target event, whether the target client system contains malware; and в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнять операцию защиты для защиты целевой клиентской системы;in response to determining that the target client system contains malicious software, perform a protection operation to protect the target client system; причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:wherein determining whether a target client system contains malware includes: определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,defining the event context of the target event, wherein the event context contains a set of events that occurred on the target client system before the target event and another set of events that occurred on the target client system after the target event, выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,selecting a client profile from a plurality of predefined client profiles in accordance with the target event, wherein the selected client profile characterizes the basic behavior of the selected cluster of client systems, в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,in response to the selection of the client profile, using a behavior model specific to the selected client profile to determine a plurality of prediction scores according to the context of the event, each score of the plurality of prediction scores being determined for a particular event type and indicating the probability that the event of the particular event type could occur in the context of an event for the selected client profile, выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, иselecting, from a plurality of prediction scores, a score defined for the event type of the target event, and сравнение выбранной оценки с предварительно определенным порогом;comparing the selected score with a predetermined threshold; причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает аналогичное поведение.wherein the composition of the selected cluster of client systems is determined by analyzing a set of events that have occurred on a plurality of client systems to determine which of the plurality of client systems exhibits similar behavior. 2. Компьютерная система по п. 1, в которой определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:2. The computer system of claim 1, wherein determining whether the target client system contains malware includes: когда выбранная оценка указывает, что целевое событие вероятно произойдет в контексте события, определение, что целевая клиентская система не содержит вредоносного программного обеспечения; и,when the selected score indicates that the target event is likely to occur in the context of the event, determining that the target client system does not contain malware; and, когда выбранная оценка указывает, что целевое событие вряд ли произойдет в контексте события, определение, что целевая клиентская система содержит вредоносное программное обеспечение.when the selected score indicates that the target event is unlikely to occur in the context of the event, determining that the target client system contains malware. 3. Компьютерная система по п. 1, в которой определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:3. The computer system of claim 1, wherein determining whether the target client system contains malware includes: определение спрогнозированного события в соответствии с множеством оценок прогнозирования;determining a predicted event according to the plurality of prediction estimates; сравнение спрогнозированного события с целевым событием; иcomparing the predicted event with the target event; and в ответ, определение, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с результатом сравнения.in response, determining whether the target client system contains malware according to the result of the comparison. 4. Компьютерная система по п. 1, в которой:4. The computer system according to claim 1, in which: модель поведения содержит кодер событий, конфигурированный для определения набора координат, указывающих положение целевого события в пространстве внедрения события; иthe behavior model comprises an event encoder configured to define a set of coordinates indicating the position of the target event in the event embedding space; and аппаратный процессор дополнительно конфигурирован для определения, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с положением.the hardware processor is further configured to determine whether the target client system contains malware, in accordance with the provision. 5. Компьютерная система по п. 1, в которой определение состава выбранного кластера клиентских систем включает:5. The computer system according to claim 1, in which the determination of the composition of the selected cluster of client systems includes: построение множества категорий событий в соответствии с тем, происходит ли выбранное событие набора событий в выбранном контексте других событий набора событий;constructing a plurality of event categories according to whether the selected event of the event set occurs in the selected context of other events of the event set; в ответ на построение множества категорий событий, решение, принадлежит ли каждая клиентская система выбранному кластеру клиентских систем в соответствии с профилем события каждой клиентской системы, причем профиль события определяется в соответствии с подсчетом событий, происходящих на каждой клиентской системе и принадлежащих выбранной категории событий из множества категорий событий.in response to building a plurality of event categories, deciding whether each client system belongs to the selected cluster of client systems according to the event profile of each client system, wherein the event profile is determined according to the count of events occurring on each client system and belonging to the selected event category from the set event categories. 6. Компьютерная система по п. 1, дополнительно конфигурированная для выбора клиентского профиля в соответствии с тем, является ли целевая клиентская система членом выбранного кластера.6. The computer system of claim 1, further configured to select a client profile according to whether the target client system is a member of the selected cluster. 7. Компьютерная система по п. 1, в которой выбор клиентского профиля включает:7. The computer system of claim. 1, in which the choice of client profile includes: определение набора координат, указывающих положение целевой клиентской системы в многомерном пространстве внедрения;determining a set of coordinates indicating the position of the target client system in the multidimensional implementation space; в ответ, выбор целевого кластера из множества кластеров в соответствии с набором координат; иin response, selecting a target cluster from the plurality of clusters according to the set of coordinates; and выбор клиентского профиля в соответствии с целевым кластером.selecting a client profile according to the target cluster. 8. Компьютерная система по п. 7, конфигурированная для выбора целевого кластера дополнительно в соответствии с другим набором координат, указывающих положение члена целевого кластера в пространстве внедрения.8. The computer system of claim 7, configured to select a target cluster further according to another set of coordinates indicating the position of a member of the target cluster in the embedding space. 9. Компьютерная система по п. 1, в которой по меньшей мере один аппаратный процессор конфигурирован для выбора клиентского профиля дополнительно в соответствии с текущим пользователем целевой клиентской системы.9. The computer system of claim. 1, wherein at least one hardware processor is configured to select a client profile further in accordance with the current user of the target client system. 10. Компьютерная система по п. 1, в которой контекст события целевого события содержит попытку доступа целевой клиентской системой к выбранному сетевому местоположению.10. The computer system of claim 1, wherein the event context of the target event comprises an attempt by the target client system to access a selected network location. 11. Реализуемый компьютером способ детектирования поведенческих угроз, включающий:11. A computer-implemented method for detecting behavioral threats, including: в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, использование по меньшей мере одного аппаратного процессора компьютерной системы при определении, в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; иin response to the occurrence of the target event on the target client system, the target event being selected from the group consisting of starting a process and attempting to access a file, using at least one hardware processor of the computer system in determining, in accordance with the target event, whether the target client system contains malicious software; and в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнение операции защиты для защиты целевой клиентской системы;in response to determining that the target client system contains malware, performing a protection operation to protect the target client system; причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:wherein determining whether a target client system contains malware includes: определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,defining the event context of the target event, wherein the event context contains a set of events that occurred on the target client system before the target event and another set of events that occurred on the target client system after the target event, выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,selecting a client profile from a plurality of predefined client profiles in accordance with the target event, wherein the selected client profile characterizes the basic behavior of the selected cluster of client systems, в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля, для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,in response to the selection of the client profile, using a behavior model specific to the selected client profile to determine a plurality of prediction scores according to the context of the event, each score of the plurality of prediction scores being determined for a particular event type and indicating the probability that the event of the particular event type could have happened in the context of an event for the selected client profile, выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, иselecting, from a plurality of prediction scores, a score defined for the event type of the target event, and сравнение выбранной оценки с предварительно определенным порогом;comparing the selected score with a predetermined threshold; причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает схожее поведение.wherein the composition of the selected cluster of client systems is determined by analyzing a set of events that have occurred on a plurality of client systems to determine which of the plurality of client systems exhibits similar behavior. 12. Способ по п. 11, в котором определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:12. The method of claim 11, wherein determining whether the target client system contains malware includes: когда выбранная оценка указывает, что целевое событие вероятно произойдет в контексте события, определение, что целевая клиентская система не содержит вредоносного программного обеспечения; и,when the selected score indicates that the target event is likely to occur in the context of the event, determining that the target client system does not contain malware; and, когда выбранная оценка указывает, что целевое событие вряд ли произойдет в контексте события, определение, что целевая клиентская система содержит вредоносное программное обеспечение.when the selected score indicates that the target event is unlikely to occur in the context of the event, determining that the target client system contains malware. 13. Способ по п. 11, в котором определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:13. The method of claim 11, wherein determining whether the target client system contains malware includes: определение спрогнозированного события в соответствии с множеством оценок прогнозирования;determining a predicted event according to the plurality of prediction estimates; сравнение спрогнозированного события с целевым событием; иcomparing the predicted event with the target event; and в ответ, определение, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с результатом сравнения.in response, determining whether the target client system contains malware according to the result of the comparison. 14. Способ по п. 11, в котором:14. The method according to claim 11, in which: модель поведения содержит кодер событий, конфигурированный для определения набора координат, указывающих положение целевого события в пространстве внедрения события; иthe behavior model comprises an event encoder configured to define a set of coordinates indicating the position of the target event in the event embedding space; and по меньшей мере один аппаратный процессор дополнительно конфигурирован для определения, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с положением.at least one hardware processor is further configured to determine if the target client system contains malware, in accordance with the provision. 15. Способ по п. 11, в котором определение состава выбранного кластера клиентских систем включает:15. The method of claim 11, wherein determining the composition of the selected cluster of client systems includes: построение множества категорий событий в соответствии с тем, происходит ли выбранное событие набора событий в выбранном контексте других событий набора событий;constructing a plurality of event categories according to whether the selected event of the event set occurs in the selected context of other events of the event set; в ответ на построение множества категорий событий, решение, принадлежит ли каждая клиентская система выбранному кластеру клиентских систем в соответствии с профилем события каждой клиентской системы, причем профиль события определяется в соответствии с подсчетом событий, происходящих в каждой клиентской системе и принадлежащих выбранной категории событий из множества категорий событий.in response to building a plurality of event categories, deciding whether each client system belongs to the selected cluster of client systems according to the event profile of each client system, wherein the event profile is determined according to the count of events occurring in each client system and belonging to the selected event category from the set event categories. 16. Способ по п. 11, дополнительно включающий выбор клиентского профиля в соответствии с тем, является ли целевая клиентская система членом выбранного кластера.16. The method of claim 11, further comprising selecting a client profile according to whether the target client system is a member of the selected cluster. 17. Способ по п. 11, в котором выбор клиентского профиля включает:17. The method according to claim 11, in which the choice of a client profile includes: определение набора координат, указывающих положение целевой клиентской системы в многомерном пространстве внедрения;determining a set of coordinates indicating the position of the target client system in the multidimensional implementation space; в ответ, выбор целевого кластера множества кластеров в соответствии с набором координат; иin response, selecting a target cluster of the plurality of clusters according to the set of coordinates; and выбор клиентского профиля в соответствии с целевым кластером.selecting a client profile according to the target cluster. 18. Способ по п. 17, включающий выбор целевого кластера дополнительно в соответствии с другим набором координат, указывающим положение члена целевого кластера в пространстве внедрения.18. The method of claim 17, further comprising selecting the target cluster in accordance with another set of coordinates indicating the position of the target cluster member in the embedding space. 19. Способ по п. 11, в котором по меньшей мере один аппаратный процессор конфигурирован для выбора клиентского профиля дополнительно в соответствии с текущим пользователем целевой клиентской системы.19. The method of claim 11, wherein at least one hardware processor is configured to select a client profile further in accordance with the current user of the target client system. 20. Способ по п. 11, в котором контекст события целевого события содержит попытку доступа целевой клиентской системой к выбранному сетевому местоположению.20. The method of claim 11, wherein the event context of the target event comprises an attempt by the target client system to access the selected network location. 21. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему:21. A non-transitory computer-readable medium that stores instructions that, when executed by at least one hardware processor of a computer system, causes the computer system to: в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, определять в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; иin response to the occurrence of the target event on the target client system, and the target event is selected from the group containing the start of the process and the attempt to access the file, to determine in accordance with the target event, whether the target client system contains malware; and в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнять операцию защиты для защиты целевой клиентской системы;in response to determining that the target client system contains malicious software, perform a protection operation to protect the target client system; причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:wherein determining whether a target client system contains malware includes: определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,defining the event context of the target event, wherein the event context contains a set of events that occurred on the target client system before the target event and another set of events that occurred on the target client system after the target event, выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,selecting a client profile from a plurality of predefined client profiles in accordance with the target event, wherein the selected client profile characterizes the basic behavior of the selected cluster of client systems, в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля, для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,in response to the selection of the client profile, using a behavior model specific to the selected client profile to determine a plurality of prediction scores according to the context of the event, each score of the plurality of prediction scores being determined for a particular event type and indicating the probability that the event of the particular event type could have happened in the context of an event for the selected client profile, выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, иselecting, from a plurality of prediction scores, a score defined for the event type of the target event, and сравнение выбранной оценки с предварительно определенным порогом;comparing the selected score with a predetermined threshold; причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает схожее поведение.wherein the composition of the selected cluster of client systems is determined by analyzing a set of events that have occurred on a plurality of client systems to determine which of the plurality of client systems exhibits similar behavior.
RU2021115725A 2018-12-10 2019-12-10 Systems and methods for detecting behavioural threats RU2778630C1 (en)

Applications Claiming Priority (1)

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

Publications (1)

Publication Number Publication Date
RU2778630C1 true RU2778630C1 (en) 2022-08-22

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2316821C2 (en) * 2005-07-05 2008-02-10 Нортроп Граман Корпорейшн Method for automatic asymmetric detection of threat with usage of reverse direction tracking and behavioral analysis
US20130097706A1 (en) * 2011-09-16 2013-04-18 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
RU2522019C1 (en) * 2012-12-25 2014-07-10 Закрытое акционерное общество "Лаборатория Касперского" System and method of detecting threat in code executed by virtual machine
US20140215618A1 (en) * 2013-01-25 2014-07-31 Cybereason Inc Method and apparatus for computer intrusion detection
US20180004961A1 (en) * 2014-10-06 2018-01-04 Exabeam, Inc. System, method, and computer program product for detecting and assessing security risks in a network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2316821C2 (en) * 2005-07-05 2008-02-10 Нортроп Граман Корпорейшн Method for automatic asymmetric detection of threat with usage of reverse direction tracking and behavioral analysis
US20130097706A1 (en) * 2011-09-16 2013-04-18 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
RU2522019C1 (en) * 2012-12-25 2014-07-10 Закрытое акционерное общество "Лаборатория Касперского" System and method of detecting threat in code executed by virtual machine
US20140215618A1 (en) * 2013-01-25 2014-07-31 Cybereason Inc Method and apparatus for computer intrusion detection
US20180004961A1 (en) * 2014-10-06 2018-01-04 Exabeam, Inc. System, method, and computer program product for detecting and assessing security risks in a network

Similar Documents

Publication Publication Date Title
EP3895046B1 (en) Systems and methods for behavioral threat detectiion
AU2019400060B2 (en) Systems and methods for behavioral threat detection
RU2778630C1 (en) Systems and methods for detecting behavioural threats
RU2772549C1 (en) Systems and methods for detecting behavioural threats
RU2803399C2 (en) Systems and methods for detecting behavioural threats
AU2019398651B2 (en) Systems and methods for behavioral threat detection
US11973774B2 (en) Multi-stage anomaly detection for process chains in multi-host environments
US20210273958A1 (en) Multi-stage anomaly detection for process chains in multi-host environments
Tao et al. A Behavior Sequence Clustering-Based Enterprise Network Anomaly Host Recognition Method