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

Systems and methods for detecting behavioural threats Download PDF

Info

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

Links

Abstract

FIELD: computer engineering.
SUBSTANCE: behavioural computer security system protects clients and networks from threats such as malware and intrusion. A set of client profiles is created according to a learning corpus of events occurring on clients, with each client profile representing a subset of protected machines, and each client profile pointing to the normal or base usage pattern of the machines assigned to the corresponding client profile. A client profile can group together machines that have similar event statistics. After training, the events detected on the client are selectively analysed against the client profile associated with the respective client to detect anomalous behaviour. In some implementation variants, individual events are analysed in the context of other events using a multi-dimensional event embedding space.
EFFECT: increased degree of detection of computer security threats, such as malware and intrusion.
21 cl, 1 tbl, 17 dwg

Description

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

[0001] Изобретение относится к системам и способам компьютерной безопасности, в частности к системам и способам детектирования угрозы компьютерной безопасности, такой как вредоносное программное обеспечение и/или проникновение в компьютерную систему и/или сеть связи. [0001] The invention relates to computer security systems and methods, in particular to systems and methods for detecting a threat to computer security, such as 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 to both individuals and companies. The rapid development of electronic communication technologies, the increasing dependence on software in daily activities and the emergence of the Internet of Things have made companies and individuals vulnerable to loss of privacy and data theft.

[0003] Опытный злоумышленник может попытаться проникнуть в корпоративную сеть, используя различные методы, например, используя бэкдор, установленный на корпоративном компьютере вредоносным программным обеспечением. Затем злоумышленник может получить доступ, изменить или уничтожить конфиденциальную информацию. Другие примерные атаки включают, среди прочего, отключение или иным образом вывод из строя систем физической безопасности (например, охранную сигнализацию), установку шпионского программного обеспечения и вмешательство в автоматизированные системы, которые контролируют производство или распространение товаров и услуг (например, энергосистему).[0003] A sophisticated attacker may attempt to infiltrate a corporate network using a variety of methods, such as using a backdoor installed on a corporate computer by malware. The attacker can then access, modify, or destroy sensitive information. Other exemplary attacks include, but are not limited to, disabling or otherwise disabling physical security systems (such as a burglar alarm), 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 running on a computer system may be used to automatically detect and/or prevent unauthorized intrusion 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 disturbances. 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 (such as reconfiguring the firewall) in response to an intrusion detection.

[0005] Однако по мере того, как программные услуги постепенно становятся популярней, а объем данных, передаваемых по информационным сетям, увеличивается, для программного обеспечения безопасности становится все более непрактичным просеивать данный огромный объем информации на предмет индикаторов злонамеренной активности.[0005] However, as software services become increasingly popular and the volume of data transmitted 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 significant interest in developing more robust and scalable intrusion detection systems and techniques.

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

[0006] Согласно одному аспекту серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы в ответ на прием индикатора членства в кластере, указывающего группировку множества клиентских систем во множество клиентских кластеров, выбрать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы в ответ на выбор клиентского кластера, выбирать обучающий корпус событий из коллекции событий в соответствии с тем, произошли ли выбранные события на элементах выбранного клиентского кластера. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы в ответ на выбор обучающего корпуса событий, обучать модель поведения кодировать коллективное поведение членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, причем модель поведения имеет набор регулируемых параметров. По меньшей мере один аппаратный процессор дополнительно конфигурирован, чтобы в ответ на обучение модели поведения, передавать набор значений регулируемых параметров детектору аномалий, конфигурированному для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности. Модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события. Последовательность событий содержит множество событий обучающего корпуса, причем множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий. Обучение модели поведения включает регулировку набора конфигурируемых параметров в соответствии с индикатором прогнозирования.[0006] In one aspect, a server computer system comprises at least one hardware processor configured to, in response to receiving a cluster membership indicator indicating a grouping of multiple client systems into multiple client clusters, select a client cluster from the plurality of client clusters, wherein the selected client the cluster contains many client systems. The at least one hardware processor is further configured to, in response to the selection of the client cluster, select a training corpus of events from the collection of events in accordance with whether the selected events occurred on members of the selected client cluster. The at least one hardware processor is further configured to, in response to the selection of a training corpus of events, train the behavior model to encode the collective behavior of members of the selected client cluster in accordance with the training corpus of events, wherein the behavior model has a set of adjustable parameters. The at least one hardware processor is further configured to, in response to learning the behavior model, communicate a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on a target client system indicates a computer security threat. The behavior model is configured to input a selected event from the sequence of events and, in response, determine a prediction indicator indicating the probability that another event in the sequence of events is of the selected event type. The sequence of events contains a plurality of events of the training corpus, the plurality of events being ordered according to the time of occurrence of each event of the plurality of events. Behavior model training involves adjusting a set of configurable parameters according to a prediction indicator.

[0007] Согласно другому аспекту, реализуемый на компьютере способ включает применение по меньшей мере одного аппаратного процессора компьютерной системы, чтобы в ответ на прием индикатора членства в кластере, указывающего группировку множества клиентских систем во множество клиентских кластеров, выбирать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем. Способ дополнительно включает, в ответ на выбор клиентского кластера, применение по меньшей мере одного аппаратного процессора компьютерной системы для выбора обучающего корпуса событий из коллекции событий в соответствии с тем, произошли ли выбранные события на членах выбранного клиентского кластера. Способ дополнительно включает, в ответ на выбор обучающего корпуса событий, применение по меньшей мере одного аппаратного процессора компьютерной системы для обучения модели поведения кодированию коллективного поведения членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, при этом модель поведения имеет набор регулируемых параметров. Способ дополнительно включает, в ответ на обучение модели поведения, применение по меньшей мере одного аппаратного процессора компьютерной системы для передачи набора значений регулируемых параметров на детектор аномалий, конфигурированный для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности. Модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события. Последовательность событий содержит множество событий обучающего корпуса, причем множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий. Обучение модели поведения включает регулировку набора конфигурируемых параметров в соответствии с индикатором прогнозирования.[0007] According to another aspect, a computer-implemented method includes using at least one hardware processor of a computer system to, in response to receiving a cluster membership indicator indicating grouping of multiple client systems into multiple client clusters, select a client cluster from the plurality of client clusters, wherein the selected client cluster contains a plurality of client systems. The method further includes, in response to selecting a client cluster, using at least one hardware processor of the computer system to select a training corpus of events from the collection of events in accordance with whether the selected events occurred on members of the selected client cluster. The method further includes, in response to selecting a training corpus of events, using at least one hardware processor of the computer system to train a behavior model to encode the collective behavior of members of a selected client cluster in accordance with the training corpus of events, wherein the behavior model has a set of adjustable parameters. The method further includes, in response to learning the behavior model, using at least one hardware processor of the computer system to transmit a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on the target client system indicates a computer security threat. The behavior model is configured to input a selected event from the sequence of events and, in response, determine a prediction indicator indicating the probability that another event in the sequence of events is of the selected event type. The sequence of events contains a plurality of events of the training corpus, the plurality of events being ordered according to the time of occurrence of each event of the plurality of events. Behavior model training involves adjusting a set of configurable parameters according to a prediction indicator.

[0008] Согласно другому аспекту невременный машиночитаемый носитель хранит инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему, в ответ на прием индикатора членства в кластере, указывающего на группировку множества клиентских систем во множество клиентских кластеров, выбрать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем. Инструкции также побуждают компьютерную систему, в ответ на выбор клиентского кластера, выбрать обучающий корпус событий из коллекции событий в соответствии с тем, произошли ли выбранные события на членах выбранного клиентского кластера. Инструкции также побуждают компьютерную систему, в ответ на выбор обучающего корпуса событий, обучить модель поведения кодировать коллективное поведение членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, причем модель поведения имеет набор регулируемых параметров. Инструкции также побуждают компьютерную систему, в ответ на обучение модели поведения, передавать набор значений регулируемых параметров детектору аномалий, конфигурированному для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности. Модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события. Последовательность событий содержит множество событий обучающего корпуса, множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий. Обучение модели поведения включает регулировку набора конфигурируемых параметров в соответствии с индикатором прогнозирования.[0008] In another aspect, a non-transitory computer-readable medium stores instructions that, when executed by at least one hardware processor of a computer system, cause the computer system, in response to receiving a cluster membership indicator indicating a grouping of a plurality of client systems into a plurality of client clusters, to select a client cluster from a plurality of client clusters, wherein the selected client cluster contains a plurality of client systems. The instructions also cause the computer system, in response to the selection of the client cluster, to select a training corpus of events from the collection of events according to whether the selected events occurred on members of the selected client cluster. The instructions also cause the computer system, in response to the selection of the training corpus of events, to train the behavior model to encode the collective behavior of the members of the selected client cluster in accordance with the training corpus of events, the behavior model having a set of adjustable parameters. The instructions also cause the computer system, in response to learning the behavior, to transmit a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on a target client system indicates a computer security threat. The behavior model is configured to input a selected event from the sequence of events and, in response, determine a prediction indicator indicating the probability that another event in the sequence of events is of the selected event type. The sequence of events contains a plurality of events of the training corpus, the plurality of events are ordered according to the time of occurrence of each event from the plurality of events. Behavior model training involves adjusting a set of configurable parameters according to a prediction indicator.

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

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

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

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

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

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

[0014] Фиг. 4 иллюстрирует набор примерных программных компонентов, исполняемых в защищенной клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.[0014] FIG. 4 illustrates a set of example 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 in accordance with some embodiments of the present invention.

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

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

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

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

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

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

[0022] Фиг. 11 иллюстрирует примерное пространство клиентского профиля и набор клиентских кластеров согласно некоторым вариантам осуществления настоящего изобретения.[0022] FIG. 11 illustrates an example 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 in accordance with 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, according to some embodiments of the present invention.

[0026] Фиг. 15 иллюстрирует примерные компоненты модели поведения, образующие часть детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0026] FIG. 15 illustrates exemplary behavior 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 according to some embodiments of the present invention.

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

[0029] Фиг. 17-В иллюстрирует другие экспериментальные результаты использования некоторых вариантов осуществления для детектирования реальных угроз компьютерной безопасности.[0029] FIG. 17-B illustrates other experimental results using some embodiments to detect real-world 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 plurality of elements includes at least two elements. Unless otherwise noted, any use of “OR” refers to the non-exclusive or. Unless otherwise required, any described method steps need not be performed in the specific order illustrated. The first element (eg, data) derived from the second element includes a first element equal to the second element, as well as a 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 specified, 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 standalone program objects or subobjects (eg, routines, libraries) of other computer programs. Unless otherwise specified, computer security includes protecting equipment and data from unauthorized access, modification and/or destruction. Machine-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 (eg, one or more processors) programmed to perform the methods described herein, as well as machine-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 by way of limitation.

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

[0033] Проиллюстрированные клиентские системы соединены локальными сетями 12а-b и, кроме того, с расширенной сетью 14, такой как глобальная сеть (WAN) или Интернет. В одном примере клиентские системы 10а-d представляют семейные электронные устройства, соединенные между собой домашней сетью 12а. Между тем, клиентские системы 10e-g могут обозначать отдельные компьютеры и/или корпоративный мэйнфрейм внутри офисного здания. Локальная сеть 12-b может тогда представлять часть корпоративной сети (например, локальную сеть - LAN).[0033] The illustrated client systems are connected by local area networks 12a-b and, in addition, 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, 10e-g client systems can 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 маршрутизаторы 15а-b соединяют клиентов в локальных сетях 12а-b и/или предоставляют клиентам 10а-g доступ в Интернет. Маршрутизаторы 15а-b могут действовать как шлюзы между локальными сетями 12а-b соответственно и расширенной сетью 14 и могут дополнительно предоставлять набор сетевых услуг для клиентских систем 10а-g. Такие услуги включают в себя, например, распространение параметров конфигурации сети на клиентские системы 10а-g (например, назначение сетевых адресов через протокол динамической конфигурации хоста - DHCP) и маршрутизацию связи через последовательность сетевых узлов. Некоторые клиентские системы, такие как примерная клиентская система 10h, могут напрямую подключаться к расширенной сети 14, например, через телекоммуникационный ретранслятор.[0034] The router includes an electronic device that provides communication between multiple client systems and/or access of the respective clients to the extended network 14. In the example of FIG. 1, routers 15a-b connect clients in local networks 12a-b and/or provide clients 10a-g with Internet access. Routers 15a-b may act as gateways between local networks 12a-b, respectively, and the extended network 14, and may further provide a set of network services to client systems 10a-g. Such services include, for example, distributing network configuration parameters to client systems 10a-g (eg, assigning network addresses via Dynamic Host Configuration Protocol - DHCP) and routing communications through a sequence of network nodes. Some client systems, such as exemplary client system 10h, may connect directly to the extended network 14, for example, through a telecommunications relay.

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

[0036] Примерный обмен данными между сервером 16 безопасности и клиентской системой 10 проиллюстрирован на фиг. 2. Клиентская система 10 может представлять любого клиента 10а-h с фиг. 1. В некоторых вариантах осуществления сервер 16 конфигурирован для приема индикатора 20а события от клиентской системы 10, индикатора 20а, указывающего на возникновение конкретного типа события во время исполнения программного обеспечения на клиенте 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. 2. Client system 10 may represent any client 10a-h of FIG. 1. 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 the execution of software on the client 10. Examples of such events include the startup of a process/thread (for example, the user starts application, a parent process creates a child process, etc.), an attempt to access the corresponding client system's input device (e.g., camera, microphone), an attempt to access a local or remote network resource (e.g., Hypertext Transfer Protocol - HTTP request for access to a specific URL, attempting to access a document repository over a local network), a request formulated in a specific URI scheme (such as mailto: or ftp: request), executing a specific processor instruction (such as a system call), attempting to load a library (for example, a 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 email message (for example, an email mail, short message service - SMS, etc.), among others. In some embodiments, periods of inactivity, that is, periods of time between events and/or time intervals when the corresponding client system is idle, does not log user activity, or performs only 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 in conjunction with other events, and/or when they occur in a particular sequence. Other events may be malicious if they occur at certain times of the day or with unusual frequency, such as a sequence of 1000 reads from a specific folder on a disk within a few seconds of each other.

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

[0038] В некоторых вариантах осуществления сервер 16 может также собирать информацию от маршрутизаторов 15а-b, как показано индикатором 20b события на фиг. 2. Такие индикаторы событий могут включать, например, индикаторы сетевых событий, таких как запросы доступа к сети, выданные клиентскими системами, подключенными к соответствующему маршрутизатору/шлюзу. Например, индикатор 20b события может включать в себя исходный IP-адрес, IP-адрес назначения, временную метку и размер полезной нагрузки. В некоторых вариантах осуществления индикатор 20b события содержит данные о событиях клиента, агрегированные соответствующим маршрутизатором в соответствии с различными протоколами обработки данных (например, сетевые потоки, сетевые журналы и т.д.).[0038] In some embodiments, server 16 may also collect information from routers 15a-b, as indicated 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 corresponding router in accordance with various data processing protocols (eg, network streams, network logs, etc.).

[0039] Сервер 16 безопасности поддерживает набор моделей поведения пользователя, представляющих базовый, нормальный и/или законный способ работы поднабора клиентских систем 10а-h. Такие модели поведения здесь считаются профилями клиентов. Параметры таких моделей поведения в общем представлены как база 19 данных профилей на фиг. 1 и могут включать выходные данные алгоритма кластеризации событий и/или клиентов, как подробно показано ниже. В одном примерном варианте осуществления, в котором профиль представлен клиентом или кластером событий, параметры соответствующего профиля могут включать координаты центроида кластера и набор чисел, указывающих диапазон соответствующего кластера вдоль различных осей. Другие параметры профиля могут включать, среди прочего, показатель эксцентриситета соответствующего кластера и среднее расстояние между элементами кластера и центроидом кластера, среди прочего. Профили клиентов могут быть созданы автоматически с использованием контролируемых или неконтролируемых методов и алгоритмов обучения, как показано ниже.[0039] Security server 16 maintains a set of user behavior patterns representing the basic, normal, and/or legal way of operating a subset of client systems 10a-h. These behaviors are considered customer profiles here. The parameters of such behavior patterns are generally represented as the 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 a profile is represented by a client or an event cluster, the parameters of the corresponding profile may include the coordinates of the centroid of the cluster and a set of numbers indicating the range of the corresponding cluster along various axes. Other profile parameters may include, but are not limited to, the eccentricity score of the corresponding cluster and the average distance between cluster elements and the cluster centroid, among other things. Customer profiles can be created automatically using supervised or unsupervised learning methods and algorithms as shown below.

[0040] Клиентский профиль может фиксировать поведение одного пользователя или может вместе фиксировать поведение множества пользователей. В качестве примеров: смартфон может использоваться в основном одним пользователем, поэтому клиентский профиль, прикрепленный к соответствующему смартфону, может по существу фиксировать базовое поведение его основного пользователя. Напротив, компьютеры, принадлежащие университетской компьютерной лаборатории, могут использоваться многими разными студентами; клиентский профиль, прикрепленный к одной из этих машин, может в совокупности представлять базовое поведение всех соответствующих студентов. Один клиентский профиль может быть прикреплен к одной клиентской системе/физической машине (например, смартфону, ноутбуку). В некоторых вариантах осуществления один клиентский профиль может вместе представлять множество физических машин. В одном таком примере клиентские системы 10а-d с фиг. 1 могут быть вместе представлены одним клиентским профилем, который фиксирует нормальное или базовое поведение членов конкретной семьи. В другом примере один клиентский профиль используется для представления всех компьютеров в бухгалтерском отделе корпорации, а другой клиентский профиль представляет все компьютеры, используемые группой исследований и разработок соответствующей корпорации. В варианте облачных вычислений, таком как среда инфраструктуры виртуального рабочего стола (VDI), в которой физическая машина может исполнять множество виртуальных машин для различных распределенных пользователей, один клиентский профиль может быть присоединен к множеству виртуальных машин, исполняющихся на соответствующей физической машине.[0040] A client profile may capture the behavior of a single user or may collectively capture the behavior of multiple users. As examples, a smartphone may be used primarily by one user, so a client profile attached to the respective smartphone may essentially capture the underlying behavior of its primary user. In contrast, computers owned by a university computer laboratory may be used by many different students; a client profile attached to one of these machines can collectively represent the baseline behavior of all relevant students. One client profile can be attached to one client system/physical machine (eg smartphone, laptop). In some embodiments, a single 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, which 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 represents all computers used by the research and development group of the corresponding corporation. In a cloud computing embodiment, such as a virtual desktop infrastructure (VDI) environment, in which a physical machine can run multiple virtual machines for different distributed users, a single client profile can be attached to multiple virtual machines running on a corresponding physical machine.

[0041] В некоторых вариантах осуществления один пользователь может быть представлен множеством отдельных клиентских профилей. Например, один и тот же человек может иметь один клиентский профиль/базовое поведение на работе и отдельный клиентский профиль/базовое поведение дома. Другие примеры клиентских профилей могут быть связаны с пользователями определенной возрастной группы (например, подростки), конкретными личными интересами (например, игры), определенной профессией (например, инженер, художник, педагог) и т.д. В еще одном примерном варианте осуществления отдельные клиентские профили могут соответствовать различным компьютерным действиям, например, использованию разных компьютерных программ: просмотру Интернета, использованию социальных сетей, выполнению офисной работы и т.д. Еще другие примерные клиентские профили могут быть прикреплены к различным типам устройств (например, смартфон или ПК). Коллективные профили могут быть разработаны в соответствии с более сложными критериями, например, клиентский профиль, указывающий типичный/базовый способ, которым инженер из компании X просматривает Интернет. Другой примерный профиль может указывать на типичный способ, которым молодые люди используют планшетные компьютеры.[0041] In some embodiments, a single user may be represented by multiple separate client profiles. For example, the same person may have one client profile/baseline behavior at work and a separate client profile/baseline behavior at home. Other examples of customer profiles might be related to users of a specific age group (eg, teenagers), specific personal interests (eg, gaming), a specific profession (eg, engineer, artist, teacher), 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, performing office work, etc. Still other exemplary client profiles may be attached to different types of devices (eg, smartphone or PC). Team profiles can be developed according to more complex criteria, for example a customer profile indicating the typical/basic way that an engineer at Company X browses the Internet. Another sample profile might indicate the typical way in which young people use tablet computers.

[0042] Поднабор индикаторов 20а-b событий может быть собран для формирования корпуса событий, дополнительно используемого для получения клиентских профилей, как подробно показано ниже. Другой поднабор индикаторов событий может использоваться для детектирования угрозы безопасности. Например, в ответ на прием индикаторов 20а-b событий сервер 16 безопасности может определить, согласуется ли событие, переданное соответствующим индикатором события, с клиентским профилем, выбранным согласно соответствующему индикатору клиента. Иначе говоря, сервер 16 безопасности может определять, соответствует ли соответствующее событие шаблону нормального/базового поведения, закодированному в соответствующем клиентском профиле. Если нет, соответствующее событие может указывать на подозрительную активность, и в этом случае некоторые варианты осуществления могут предпринимать защитные действия, например, отправлять предупреждения 22а-b безопасности в соответствующую клиентскую систему и/или администратору соответствующей клиентской системы. В другом примере защитного действия некоторые варианты осуществления инструктируют маршрутизатор, который принадлежит той же локальной сети, что и подозрительная клиентская система, блокировать обмен данными с соответствующей подозрительной клиентской системой и/или от нее. Клиентские профили и обработка индикаторов событий сервером 16 безопасности дополнительно описаны ниже.[0042] A subset of event indicators 20a-b may be collected to form a corpus of events, 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 corresponding event indicator matches the client profile selected according to the corresponding client indicator. In other words, the security server 16 can determine whether 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 action, such as sending security alerts 22a-b to the appropriate client system and/or the administrator of the appropriate client system. In another example of a defensive operation, some embodiments instruct a router that belongs to the same local network as a suspicious client system to block communications to and/or from the corresponding suspicious client system. Client profiles and processing of event indicators by security server 16 are further described below.

[0043] Фиг. 3-А иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 10 может представлять любую из клиентских систем 10а-h с фиг. 1. Для ясности проиллюстрированная клиентская система представляет собой компьютерную систему. Конфигурация других клиентских систем, таких как мобильные телефоны, планшетные компьютеры и носимые устройства, может немного отличаться. Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для исполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие сигналы или данные могут быть закодированы и доставлены в процессор 32 в форме инструкций процессора, например машинного кода. Блок 34 памяти может содержать энергозависимый машиночитаемый носитель (например, динамическое запоминающее устройство с произвольным доступом - DRAM), хранящий данные/сигналы, к которым осуществляется доступ, или которые генерируются процессором 32 в ходе выполнения операций.[0043] FIG. 3-A illustrates an exemplary client system hardware configuration in accordance with some embodiments of the present invention. Client system 10 may be any of the client systems 10a-h of FIG. 1. For clarity, the client system illustrated is a computer system. Other client systems such as mobile phones, tablets and wearable devices may have slightly different configurations. 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 logical 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. The memory unit 34 may include a volatile computer-readable medium (eg, dynamic random access memory - DRAM) storing data/signals that are accessed or generated by the 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, among others, including associated hardware interfaces and/or adapters that allow a user to enter data and/or instructions into the client system 10. Output devices 38 may include displays, such as monitors and speakers, among others, and hardware interfaces/adapters, such as graphics cards, allowing the corresponding client system to transmit 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 that provide 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 allow 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 remaining 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 hardware manufacturer, some such controllers may be included in a single integrated circuit and/or may be integrated with the processor. In another example, controller hub 40 may include a processor 32 for connecting a north bridge to memory 34 and/or a processor 32 for connecting a south bridge to devices 36, 38, 42, and 44.

[0046] Фиг. 3-В иллюстрирует примерную конфигурацию аппаратного обеспечения сервера 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 (e.g., a microprocessor, a multi-core integrated circuit), physical memory 134 (e.g., DRAM), server storage devices 142, and a set of server network adapters 144. Server processors 132 may include a central processing unit (CPU). 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 communications network 14 . Server storage devices 142 may store data such as event indicators and/or client profile parameters. In some embodiments, the server 16 further includes input and output devices that may be similar in function to the input/output devices 36 and 38 of the 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 example software components executing on client system 10 in accordance with some embodiments of the present invention. Such software may include an operating system (OS) 46 that provides an interface between the hardware of the client system 10 and other computer programs, such as a user application 48 running on the corresponding client system. Examples of operating systems include, but are not limited to, Windows®, MacOS®, iOS® and Android®. The user application 48 generally represents any application such as a word processor, image processing, spreadsheet, calendar, online gaming, 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 transmit event indicators to the security server 16 and/or to receive security alerts. In some embodiments, application 50 further includes an event collector 52 and a network filter 53. Some functionality of the network filter 53 may be implemented directly in hardware. When the client system 10 manages a hardware virtualization platform in which the OS 46 and application 48 are running on a virtual machine (e.g., in a cloud computing environment), the event collector 52 and/or network filter 53 may be executed outside the corresponding virtual machine, for example, at the hypervisor level. , revealing the corresponding virtual machine, using techniques known in the art as introspection.

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

[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 may retrieve such information from the corresponding system log to formulate event indicators. Sample system log 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:11:<187>Feb 8 21:37:56 example. domain. biz dhcpd: DHCPDISCOVER from 0c:14:7b:11:

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] Network filter 53 detects a set of network events that occur during electronic communications over networks 12-14 between client system 10 and other parties. Exemplary events detected by network filter 53 include events that form part of establishing a connection between client system 10 and another network entity (eg, network address request, network address transfer, handshake events, etc.), events that configure an encrypted connection (secure socket layer - SSL, virtual private network - VPN), data transmission and data reception, among others. In some embodiments, network filter 53 collects metadata from 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 type of hypertext transfer protocol (HTTP) user agent 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.

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

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

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

[0053] Фиг. 5 иллюстрирует примерное программное обеспечение, исполняющееся на сервере 16 безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированное программное обеспечение включает механизм 60 профилирования и детектор 62 аномалий, дополнительно связанный с диспетчером 64 предупреждений. Квалифицированный специалист поймет, что не все проиллюстрированные компоненты должны исполняться на одной машине/процессоре; например, механизм 60 профилирования может исполняться на выделенном кластере процессоров, в то время как экземпляры детектора 62 аномалий могут исполняться на других машинах/процессорах.[0053] FIG. 5 illustrates exemplary software running on 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 coupled to an alert manager 64 . One skilled in the art will understand that not all components illustrated need to run on the same machine/processor; for example, the profiling engine 60 may run on a dedicated cluster of processors, while instances of the anomaly detector 62 may run on other machines/processors.

[0054] В некоторых вариантах осуществления механизм 60 профилирования конфигурирован для анализа событий, происходящих в наборе клиентских систем (например, на поднаборе клиентов 10а-h на фиг. 1), и для создания множества клиентских профилей, представляющих базовый, нормальный и/или законный способ работы с соответствующими клиентскими системами. Поднабор индикаторов 20а-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 plurality of client profiles representing basic, normal, and/or legitimate way of working with the corresponding client systems. A subset of event indicators 20a-b received from clients can be used to assemble a corpus of training events, indicated by corpus 18 in FIG. 1, 5 and 6. The profiles are then defined according to the corpus of 18 events. Defining a client profile may include, but is not limited to, representing events in an abstract multidimensional event space and performing data clustering procedures, as discussed in more detail below. The constructed profiles can then be stored as entries in the profile database 19. An example profile database entry contains a set of profile parameters, such as a set of cluster centroid coordinates, a cluster diameter and/or eccentricity measurement, etc.

[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, an event clustering engine 72, and a client clustering engine 74 connected to the event encoder 70 and the event clustering engine 72. An exemplary sequence of steps performed by the profiling mechanism 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 a training corpus 18 of events according to event indicators received from selected client systems and/or router(s). Some embodiments accumulate event indicators until some 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 (for example, 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 include a timestamp representing the point in time at which the corresponding event even occurred, or was detected, or was received by the security server 16, etc. In some embodiments, the event corpus 18 is updated periodically and/or on demand by including newly received event indicators.

[0057] В некоторых вариантах осуществления кодер 70 событий (фиг. 6) конфигурирован для ввода записи 26 события, содержащей данные, характеризующие событие, которое произошло в клиентской системе (например, запуск процесса на клиентской машине), и, в ответ, выведения вектора 28а событий, содержащего представление соответствующего события как вектора в абстрактном многомерном пространстве, обычно считающемся пространством внедрения в данной области техники. Примерное пространство внедрения охвачено набором осей, где каждая ось представляет отдельный признак события. Примеры функций могут включать, в случае сетевого события, IP-адрес источника, порт источника, IP-адрес пункта назначения, порт назначения и индикатор транспортного протокола, среди прочего. В другом примере каждая ось пространства внедрения соответствует линейной комбинации признаков события (например, в варианте осуществления декомпозиции главного компонента/единственного значения). В предпочтительных вариантах осуществления события анализируются в контексте других событий, которые предшествуют и/или следуют за соответствующим событием. В таких случаях кодер 70 конфигурирован для представления событий как векторов в пространстве внедрения контекстов, при этом два события, которые происходят преимущественно в аналогичных контекстах, расположены относительно близко друг к другу. Некоторые варианты осуществления выбирают размерность пространства внедрения в соответствии с размером словаря событий N, то есть подсчетом различных типов событий, которые отслеживает соответствующая система безопасности (подробнее о словаре событий см. ниже). Например, размерность пространства событий может быть порядка квадратного корня из N или логарифма из N. Типичный вариант осуществления настоящего изобретения использует пространство контекста внедрения, имеющее от нескольких сотен до нескольких тысяч измерений.[0057] In some embodiments, event encoder 70 (FIG. 6) is configured to input an event record 26 containing data representative of an event that occurred on the client system (eg, the startup of a process on the client machine) and, in response, output a vector 28a of events, containing a representation of the corresponding event as a vector in an abstract multi-dimensional space, usually considered an embedding space in the art. The approximate embedding space is spanned by a set of axes, with each axis representing a different event feature. Examples of functions may include, in the case 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 an embodiment of principal component/single value decomposition). In preferred embodiments, events are analyzed in the context of other events that precede and/or follow the corresponding event. In such cases, encoder 70 is configured to represent events as vectors in context embedding space, with two events that occur predominantly in similar contexts located 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, the count of the different types of events that the associated security system monitors (more on the event dictionary below). 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 method known in the art of automated data processing. In a preferred embodiment, encoder 70 includes an artificial intelligence system, such as a multilayer artificial neural network (eg, a recurrent neural network and/or a feedforward neural network). To achieve a desired representation of the event vectors, parameters of the encoder 70 may be adjusted until certain performance conditions are satisfied. This setting is referred to herein as training and is represented by step 208 in FIG. 7. In a neural network embodiment, exemplary tunable parameters of event encoder 70 include, but are not limited to, a set of synapse weights. In some embodiments, the training encoder 70 is reduced to constructing the embedding space itself. In other words, the implementation space is not determined in advance, but depends on the composition of the corpus of 18 events and on the chosen training procedure.

[0059] Примерные обучающие процедуры показаны на фиг. 8А-В и содержат версии алгоритма word2vec, такие как алгоритм skip-gram и алгоритм непрерывного набора слов. В таких вариантах осуществления события анализируются не изолированно, а как составляющие последовательности 25 событий, состоящей из множества событий, упорядоченных в соответствии со временем возникновения или детектирования. В некоторых вариантах осуществления все события соответствующей последовательности выбираются так, чтобы они происходили в одной и той же клиентской системе. Последовательность 25 событий включает центральное событие Ео и контекст события, состоящий из подмножества событий E_k…E_1 (k≥0), предшествующее центральному событию и/или поднабору событий E1…Ep (р≥0) после центрального события. Типичные варианты осуществления используют симметричный контекст события (p=k), где p находится в диапазоне от 2 до 5. Каждое отдельное событие Ei (- k≤i≤p) может быть представлено как вектор чисел N-Ha-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 continuous bag of words algorithm. In such embodiments, events are not analyzed in isolation, but as components of an event sequence 25 consisting of multiple events ordered according to time of occurrence or detection. In some embodiments, all events in a corresponding sequence are selected to occur on the same client system. The sequence of 25 events includes a central event E o 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 E 1 ...E p (p≥0) after the central event. Typical embodiments use a symmetric event context (p=k), where p is in the range from 2 to 5. Each individual event E i (- k≤i≤p) can be represented as a vector of N-Ha-1 numbers, where each the string represents a particular event type (eg, 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 unitary encoding. The approximate size N of the event dictionary ranges from several hundred to several thousand different event types, but can reach several million for specific applications. One skilled in the art will appreciate that unitary encoding is used herein by way of example only and is not intended to limit the scope of the present invention in any way.

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

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

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

[0063] Примерная последовательность шагов, реализующих обучение кодера событий, проиллюстрирована на фиг. 9. На этапе 222 извлекается набор записей событий из корпуса 18 событий, и идентифицируется последовательность 25 событий в соответствии с отметками времени события и в соответствии с источником соответствующих событий (то есть клиентскими системами, в которых произошли соответствующие события). В варианте осуществления skip-gram на этапе 224 затем исполняется кодер 70а событий для создания представления Eo в пространстве внедрения (вектор 28 с событий на фиг. 8-А). На этапе 226 механизм 60 профилирования исполняет декодер 76а событий для создания набора предсказаний или «предположений» для событий, предшествующих и/или последующих центральному событию Eo в последовательности 25. На этапе 228 каждое предсказанное контекстное событие сравнивается с соответствующим фактическим контекстным событием Ei (i≠0) последовательности 25, таким образом определяя ошибку численного предсказания. Ошибка прогнозирования, которую можно интерпретировать как функцию стоимости или целевую функцию, может быть вычислена любым способом, известным в области искусственного интеллекта. Такие вычисления могут включать определение расстояния, например расстояния Левенштейна, Евклида или косинусоидального расстояния между прогнозируемыми и фактическими событиями. Некоторые варианты осуществления определяют целевую функцию в соответствии с мерой перекрестной энтропии. На этапе 230 механизм профилирования может настроить параметры кодера 70а в направлении минимизации вычисленной ошибки прогнозирования. Некоторые примерные алгоритмы, используемые для обучения, включают, среди прочего, обратное распространение с использованием градиентного спуска, имитированного отжига и генетических алгоритмов. Некоторые варианты осуществления затем повторяют этапы 222-230 до тех пор, пока не будет удовлетворено условие завершения, например, пока средняя ошибка прогнозирования по корпусу 18 событий не упадет ниже заранее определенного порога. В другом варианте осуществления обучение продолжается в течение заранее определенного количества времени или заранее определенного количества итераций. Специалисту понятно, что последовательность этапов, показанная на фиг. 9, в равной степени подходит для варианта осуществления мультимножества слов (фиг. 8-В) с небольшими изменениями.[0063] An exemplary sequence of steps that implements event encoder training is illustrated in FIG. 9. At step 222, a set of event records is retrieved from the event corpus 18, and a sequence of events 25 is identified according to the event timestamps and according to the source of the corresponding events (ie, the client systems on which the corresponding events occurred). In the skip-gram embodiment, at step 224, event encoder 70a is then executed to create an embedding space representation of E o (event vector 28 c in FIG. 8-A). At step 226, profiling engine 60 executes event decoder 76a to create a set of predictions or “guesses” for events preceding and/or subsequent to the central event E o in sequence 25. At step 228, each predicted context event is compared with the corresponding actual context event E i ( i≠0) of 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 involve determining the distance, such as Levenshtein, Euclidean, or cosine distance, between predicted and actual events. Some embodiments define an objective function in accordance with a measure of cross entropy. At step 230, the profiling engine may adjust parameters of encoder 70a to minimize the calculated prediction error. Some example algorithms used for training include backpropagation using gradient descent, simulated annealing, and genetic algorithms, among others. Some embodiments then repeat steps 222-230 until a termination condition is satisfied, for example, until the average prediction error over the corpus of 18 events falls below a predetermined threshold. In another embodiment, training continues for a predetermined amount of time or a predetermined number of iterations. One skilled in the art will appreciate that the sequence of steps shown in FIG. 9 is equally suitable for the multiword embodiment (FIG. 8-B) with minor modifications.

[0064] В ответ на обучение кодера событий, как указано выше, некоторые варианты осуществления дополнительно преобразуют сгенерированное пространство внедрения, чтобы уменьшить его размерность. Данная операция может содержать любой алгоритм уменьшения размерности данных, например анализ главных компонентов (РСА) или разложение по сингулярным значениям (SVD).[0064] In response to training the event encoder as described above, some embodiments further transform the generated embedding space to reduce its dimensionality. 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 can represent each event as a vector in a multidimensional embedding space of event contexts, with two events that frequently occur in the same event context occupying similar provisions. In other words, two such events are separated in embedding space by a distance less than the distance between two events that occur primarily in different contexts.

[0066] Возвращаясь к компонентам механизма 60 профилирования (фиг. 6), механизм 74 кластеризации событий конфигурирован для организации векторов событий, созданных обученным кодером 70 событий и представляющих элементы обучающего корпуса 18, в кластеры в соответствии с положением каждого вектора событий, внутри пространства для встраивания (см. также этап 207 на фиг. 7). В некоторых вариантах осуществления кластер содержит множество событий, которые относительно близко расположены друг к другу в пространстве внедрения или, иначе говоря, множество событий, характеризующихся относительно небольшим расстоянием между событиями в пространстве внедрения. В альтернативном варианте осуществления кластер состоит из событий, которые занимают специфичную для кластера область пространства внедрения. Такие области могут быть взаимоисключающими или частично перекрываться. Фиг. 10 иллюстрирует примерное пространство внедрения и набор кластеров 80а-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 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, a cluster contains a plurality of events that are relatively close to each other in embedding space, or, in other words, a plurality of events that are characterized by a relatively small distance between events in embedding space. In an alternative embodiment, a cluster consists of events that occupy a cluster-specific region of the embedding space. Such areas may be mutually exclusive or partially overlap. Fig. 10 illustrates an example embedding space and a 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. Additionally, the same cluster may include events that occur on different client systems and/or represent activity from different users.

[0067] Для построения кластеров событий механизм 60 профилирования может использовать любой алгоритм кластеризации данных, известный в данной области техники, например вариант алгоритма k-средних. В другом примерном варианте осуществления можно обучить набор перцептронов разделять пространство внедрения на отдельные области и назначить векторы событий, расположенные в каждой области, отдельному кластеру событий. Количество кластеров и/или областей может быть определено заранее (например, согласно подсчету защищенных клиентских систем и/или отслеживаемых типов событий) или может быть определено динамически самим алгоритмом кластеризации. Результат кластеризации событий содержит набор параметров 54 кластера событий (фиг. 6), которые могут включать в себя для каждого кластера координаты центроида кластера и меру протяженности кластера, например диаметр и/или эксцентриситет. Другие примерные параметры 54 кластера могут включать, среди прочего, список членов соответствующего кластера и выбранного члена соответствующего кластера, рассматриваемого как репрезентативный/архетипический для соответствующего кластера. Параметры кластера могут быть переданы клиентскому механизму 74 кластеризации.[0067] To construct event clusters, the profiling engine 60 may use any data clustering algorithm known in the art, 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 separate event cluster. The number of clusters and/or areas may be predetermined (eg, according to counts of protected client systems and/or event types monitored) 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, the coordinates of the cluster centroid and a measure of the cluster's extent, such as diameter and/or eccentricity. Other exemplary cluster parameters 54 may include, but are not limited to, a list of members of the corresponding cluster and a selected member of the corresponding cluster considered to be representative/archetypal of the corresponding 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 determine 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. 11. 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 comprise a profile archetype, which may be an actual member of a corresponding client cluster, or a fictitious client system characterized by a specific position in the profile space. For example, the profile archetype may contain the centroid of a client cluster determined by the client clustering engine 74.

[0069] Для вычисления клиентских профилей некоторые варианты осуществления клиентского механизма 74 кластеризации назначают клиентские системы 10а-h кластерам в соответствии с профилем событий, указывающим типичное распределение событий, происходящих в соответствующих клиентских системах. В одном примерном варианте осуществления профиль события клиентской системы содержит вектор чисел, каждое из которых определяется в соответствии с подсчетом событий, происходящих в соответствующей клиентской системе и принадлежащих отдельному кластеру событий, ранее определенному механизмом 72 кластеризации событий. В примере, проиллюстрированном на фиг.12, каждый компонент профиля события определяется в соответствии с мерой принадлежности кластеру, показывающей долю событий, принадлежащих соответствующему кластеру Q событий, определяемому как долю от общего количества событий, доступных от соответствующей клиентской системы. Например, когда механизм 72 кластеризации событий идентифицировал три кластера событий C1, С2 и С3, вектор профиля события [0,1, 0,75, 0,15] может представлять клиентскую систему, в которой 10% событий, происходящих в соответствующей клиентской системе, принадлежат кластеру C1 события, при этом 75% событий принадлежат кластеру С2 события, а 15% событий принадлежат кластеру С3 события.[0069] To compute client profiles, some embodiments of the client clustering engine 74 assign client systems 10a-h to clusters according to an event profile indicating the typical distribution of events occurring on the respective client systems. In one exemplary embodiment, a client system event profile contains a vector of numbers, each of which is determined in accordance with a count of events occurring on the corresponding client system that belong to a distinct event cluster previously defined 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 the proportion 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 C 1 , C 2 , and C 3 , the event profile vector [0.1, 0.75, 0.15] may represent a client system in which 10% of the events occurring in the corresponding client system, belong to cluster C 1 events, while 75% of events belong to cluster C 2 events, and 15% of events belong to cluster C 3 events.

[0070] В примерном варианте осуществления с фиг. 11 каждая клиентская система представлена в многомерном пространстве профиля согласно соответствующему профилю события. Иначе говоря, каждая координата клиентской системы представляет собой компонент профиля события соответствующего клиента. Фиг. 11 иллюстрирует три примерных клиентских кластера/профиля 82а-с. Квалифицированный специалист может использовать любой метод, известный в области машинного обучения или интеллектуального анализа данных, для построения таких профилей; примерные методы включают в себя, среди прочего, варианты алгоритма кластеризации k-средних и нейронные сети. Альтернативные варианты осуществления могут использовать другие критерии назначения клиентской системы кластеру или использовать такие критерии в дополнение к профилю события соответствующего клиента. Примерные дополнительные критерии кластеризации клиентов включают, среди прочего, владельца и/или пользователя соответствующей клиентской системы, сетевой адрес соответствующей клиентской системы, тип устройства соответствующей клиентской системы и т.д. Например, клиенты, принадлежащие к одному семейству, одной корпорации или одному сетевому домену, могут быть сгруппированы в один кластер.[0070] In the exemplary embodiment of FIG. 11, each client system is represented in a multidimensional profile space according to the corresponding event profile. In other words, each client system coordinate represents a component of the corresponding client's event profile. Fig. 11 illustrates three exemplary client clusters/profiles 82a-c. A skilled person may use any method known in the art of machine learning or data mining to construct such profiles; exemplary methods include, but are not limited to, 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 event profile of the corresponding client. Exemplary additional client clustering criteria include, but are not limited to, the owner and/or user of the corresponding client system, the network address of the corresponding client system, the device type of the corresponding client system, etc. For example, clients belonging to the same family, the same corporation, or the same network domain can be grouped into one cluster.

[0071] После кластеризации клиентов механизм 60 профилирования может сохранять параметры кластера, такие как список клиентских систем, назначенных каждому кластеру/профилю, координаты архетипов кластера (например, центроидов), диаметры кластера и т.д., в базу данных 19 профилей.[0071] Once clients are clustered, the profiling engine 60 may store cluster parameters, such as a list of client systems assigned to each cluster/profile, coordinates of cluster archetypes (eg, centroids), cluster diameters, etc., into 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). 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 threat, such as an intrusion or execution of malware. . In some embodiments, anomaly detector 62 includes a profile manager 84 configured, in response to receiving an event notification indicating an event occurring on a secure client system, to select a client profile according to the corresponding event. The profile manager 84 is further coupled to a behavior model 86 configured to determine whether a corresponding event matches the normal/baseline behavior pattern represented by the corresponding profile. If not, the corresponding event may be considered an anomaly, indicating a possible attack on the affected client system.

[0073] При подготовке к выполнению детектирования аномалий, как указано ниже, некоторые варианты осуществления детектора 62 аномалий сначала обучаются на корпусе событий с использованием выходных данных механизма 60 профилирования. Одной из целей обучения детектора 62 аномалий является определение нормального/базового поведения пользователя для каждого клиентского профиля, идентифицированного механизмом 60 профилирования. Обучение включает настройку набора параметров модели 86 поведения до тех пор, пока не будет удовлетворен критерий завершения. Корпус событий, используемый для обучения детектора 62 аномалий, может отличаться от обучающего корпуса 18, используемого для обучения компонентов механизма 60 профилирования.[0073] In preparation for performing anomaly detection, as discussed below, some embodiments of 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 normal/baseline user behavior for each client profile identified by the profiling engine 60 . Training involves tuning a set of parameters for a behavior model 86 until a termination criterion is satisfied. The event corpus used to train the anomaly detector 62 may be different from the training corpus 18 used to train the components of the profiling engine 60 .

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

[0075] В некоторых вариантах осуществления модель 86 поведения содержит компоненты, которые аналогичны по структуре и функциям некоторым компонентам механизма 60 профилирования. Например, некоторые варианты осуществления модели 86 включают в себя пару кодер-декодер, как показано на фиг. 15, которая может быть построена с использованием технологии нейронных сетей и обучена в соответствии с членом семейства алгоритмов word2vec (см. описание выше в отношении фиг. 8-АВ). Модель 86 поведения при обучении может затем сводиться к настройке параметров кодера 70с и/или декодера 76с (например, набора весов синапсов) с целью представления каждого события из соответствующего клиентского кластера/профиля как вектор в пространстве внедрения событий. В предпочтительном варианте осуществления кодер 70с анализирует каждое событие в контексте последовательности событий и генерирует пространство внедрения, в котором события, которые происходят преимущественно в аналогичных контекстах, разделены меньшим расстоянием по сравнению с событиями, которые происходят в других контекстах. Однако пространство внедрения событий (т.е. значение осей, размер расстояний между событиями и т.д.), полученное в результате обучающего кодера 70с, может существенно отличаться от пространства внедрения события, полученного из обучающего кодера 70 событий, поскольку обучающие корпуса, используемые для двух кодеров, различны.[0075] In some embodiments, the behavior model 86 includes components that are similar in structure and function to some components of the profiling engine 60. For example, some embodiments of model 86 include an encoder-decoder pair, as shown in FIG. 15, which can be constructed using neural network technology and trained according to a member of the word2vec family of algorithms (see description above in relation to FIG. 8-AB). The learning behavior model 86 may then be reduced to tuning parameters of encoder 70c and/or decoder 76c (eg, a set of synapse weights) to represent each event from the corresponding client cluster/profile as a vector in event embedding space. In a preferred embodiment, encoder 70c analyzes each event in the context of the sequence of events and generates an embedding space in which events that occur predominantly in similar contexts are separated by less distance than 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.) resulting from the training encoder 70c may differ significantly from the event embedding space resulting from the training event encoder 70, since the training corpora used for two encoders, are different.

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

[0077] Фиг. 16 иллюстрирует примерную последовательность шагов, выполняемых детектором 62 аномалий для защиты целевой клиентской системы (например, клиентов 10а-h на фиг. 1) от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Целевая клиентская система может быть или не быть членом поднабора клиентов, обеспечивающих обучающий корпус событий, которые производят модели поведения и/или клиентские профили, как указано выше. Для защиты целевой клиентской системы события могут детектироваться в целевой клиентской системе и/или других устройствах, таких как маршрутизаторы 15а-b (см. фиг. 1), и могут передаваться на сервер 16 безопасности в виде индикаторов событий. Такие индикаторы событий могут быть затем предварительно обработаны в соответствии с их источником, типом события, временем, настройками учетной записи службы и т.д. и организованы в виде потока 24 событий. События могут обрабатываться индивидуально или группами. В ответ на прием индикатора события от целевой клиентской системы на этапе 254 детектор 62 аномалии может собрать последовательность событий для анализа согласно соответствующему индикатору события. Этап 254 может включать в себя идентификацию источника события (т.е. клиентской системы, в которой произошло соответствующее событие), выбор из потока 24 событий множества других событий для формирования последовательности событий. В некоторых вариантах осуществления члены последовательности выбираются таким образом, чтобы все они происходили из одной и той же целевой клиентской системы. В другом примере все члены последовательности должны находиться в заранее определенном поднаборе клиентских систем, например, в сетевом субдомене или общем IP-адресе. Выбранные события также могут быть упорядочены в соответствии с их временем возникновения и/или обнаружения, например, с использованием метки времени, предоставленной с индикатором входящего события. Последовательность событий может быть дополнительно разделена на части, например, идентифицирующие центральное событие и контекст события (см., например, фиг. 8-А).[0077] FIG. 16 illustrates an exemplary sequence of steps performed by anomaly detector 62 to protect a target client system (eg, clients 10a-h in FIG. 1) from computer security threats according to some embodiments of the present invention. The target client system may or may not be a member of a subset of clients providing a training corpus of events that produce behavior patterns and/or client profiles as stated above. To protect the target client system, events may be detected on the target client system and/or other devices, such as routers 15a-b (see FIG. 1), and may be transmitted to the security server 16 as event indicators. Such event indicators can then be preprocessed according to their source, event type, time, service account settings, etc. and are organized as a stream of 24 events. Events can be processed individually or in groups. In response to receiving an event indicator from the target client system at step 254, 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 from the event stream 24 a plurality of other events to form a sequence of events. In some embodiments, the members of the sequence are selected so that they all originate from the same target client system. In another example, all members of the sequence must be in a predefined subset of client systems, such as a network subdomain or a public IP address. Selected events can also be ordered according to their time of occurrence and/or detection, for example, using a timestamp provided with an 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 an appropriate event indicator, for example, according to the identifier of the target client system on which the corresponding event occurred. When the corresponding target client system has provided training activities to develop client profiles and/or to train behaviors, step 256 may include selecting a client profile/cluster having the corresponding 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 to 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 event category/cluster). Other client profile selection criteria may include selecting a client profile based on the network address of the target client system (for example, 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. 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 a behavior model 86 with parameter values specific to the corresponding selected client profile. In some embodiments, after creating a profile-specific instance, executing model 86 (step 260) comprises projecting 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 corresponding sequence of events are representative of normal/baseline user behavior associated with the corresponding client profile or not. In one embodiment, step 260 includes feeding the event context (£), i) 0) of the corresponding sequence to the behavior model 86 and computing the 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 E o of the sequence and comparing the corresponding score to a predetermined threshold (eg, 0.95). In some embodiments, a score value below a threshold indicates that the corresponding event E o is substantially unlikely to occur in the corresponding event context, and therefore indicates an anomaly consistent with a potential computer security threat. In some embodiments, the user or administrator of the security server 16 can tune the sensitivity of the method by adjusting the 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 model 86 to determine a sequence event representation in an event embedding space specific to the corresponding client profile. Step 262 may include determining whether the event E i corresponds to a pattern of normal behavior for the corresponding client profile in accordance with the position of the corresponding event in the embedding space. For example, an event may be considered normal when it is located in a training event cluster (e.g., 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 embedding space, and abnormal if it is in other regions.

[0082] Когда событие последовательности (например, Eo) считается аномалией или, другими словами, не соответствует шаблону нормальности, установленному посредством обучения для соответствующего клиентского профиля, этап 264 может пометить соответствующее событие для дальнейшего анализа. В некоторых вариантах осуществления аномалия может инициировать передачу предупреждения о безопасности диспетчером 64 предупреждений сервера 16 безопасности (см. фиг. 5). Предупреждения системы безопасности могут поступать в клиентскую систему, где произошло аномальное событие, и/или администратору соответствующей клиентской системы. Случаи аномальных событий также могут быть собраны и сообщены для дальнейшего анализа в лабораторию компьютерной безопасности.[0082] When a sequence event (eg, E o ) is considered an anomaly, or in other words, does not conform to the pattern of normality established through learning for the corresponding client profile, step 264 may flag the corresponding event for further analysis. In some embodiments, an 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. Incidents of anomalous events can also be collected and reported to a computer security laboratory for further analysis.

[0083] Примерные системы и способы, описанные выше, позволяют эффективно обнаруживать угрозы компьютерной безопасности, такие как вредоносное программное обеспечение и вторжение. Раскрытые системы и способы реализуют поведенческий подход к компьютерной безопасности, в котором нормальное/базовое поведение пользователя автоматически выводится системой в соответствии с обучающим корпусом событий, и при этом отклонение от базовой модели поведения может указывать на угрозу.[0083] The exemplary systems and methods described above effectively detect computer security threats such as malware and intrusions. The disclosed systems and methods implement a behavioral approach to computer security in which normal/baseline user behavior is automatically inferred by the system in accordance with a training corpus of events, and where deviation from the baseline 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 the launch of certain processes, attempts to access certain files or network locations, and network traffic events such as access to certain ports and addresses, among others. One skilled in the art will appreciate that the systems and methods described herein can be adapted to other types of events, such as events related to, among other things, a user's social media activity, a user's browsing history, and a user's gaming activity. 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 occurred on corresponding subsets of client systems. Each client profile may represent a normal and/or favorable usage pattern for the respective client systems. These client profiles can then be used to detect instances of anomalous behavior that may indicate a computer security threat.

[0085] Некоторые традиционные системы компьютерной безопасности работают в соответствии с набором правил, которые количественно определяют поведение, указывающее на злой умысел. Поскольку разработчики обычно заинтересованы в предоставлении таких решений широкому кругу клиентов, правила поведения обычно носят общий характер и не предназначены для конкретных пользователей. Однако на практике пользователи очень разнородны. Даже в пределах одной компании или одной семьи способы использования компьютера каждым участником могут существенно различаться. Набор действий, который может считаться нормальным для разработчика программного обеспечения или инженера, может быть очень необычным при детектировании на компьютере в бухгалтерии. Более того, один и тот же пользователь может существенно отличаться в поведении дома на работе. Следовательно, общие правила поведения могут не отражать разнообразие и специфику реальных пользователей. В отличие от таких традиционных систем, в некоторых вариантах осуществления настоящего изобретения события, происходящие в каждой клиентской системе, просматриваются и анализируются выборочно по модели, фиксирующей нормальное/базовое поведение самой соответствующей клиентской системы и/или похожих клиентов. Иначе говоря, границы поведенческой «нормальности» могут быть определены с существенной специфичностью: конкретный клиентский компьютер, определенная группа пользователей (например, конкретный отдел компании, члены семьи, определенная возрастная группа) и т.д.[0085] Some traditional computer security systems operate according to a set of rules that quantify behavior that indicates malicious intent. Because developers are generally interested in providing such solutions to a wide range of customers, the rules of conduct are usually general in nature and not intended for specific users. However, in practice, users are very heterogeneous. Even within the same company or family, the way each person uses a computer can vary greatly. A set of actions 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 may differ significantly in behavior at home and at work. Therefore, general rules of behavior may not reflect the diversity and specificity of actual users. Unlike such traditional systems, in some embodiments of the present invention, events occurring on each client system are viewed and analyzed selectively against a model capturing the normal/baseline 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 certain 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 computational resources and therefore may be impractical. Additionally, collecting events from individual users/machines may not provide enough data to develop statistically reliable behavior models. In contrast to this approach, some embodiments of the present invention group multiple users and/or machines into a single client profile, thereby providing a useful trade-off between specificity, reliability, and computational cost. Additionally, the way in which users and machines are grouped into profiles is itself based on behavioral criteria to ensure that such grouping maintains 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 the same basic behavior in terms of statistics of events occurring on member machines.

[0087] Некоторые традиционные системы и способы компьютерной безопасности в основном анализируют отдельные события. Многие события, происходящие во время работы компьютерной системы (например, открытие файла, доступ к веб-странице), могут не указывать на злой умысел, если их рассматривать изолированно. Однако они могут быть злонамеренными, когда происходят в контексте других событий, например, как конкретная последовательность действий. В отличие от более традиционных решений, некоторые варианты осуществления настоящего изобретения явно анализируют события в контексте и поэтому лучше подходят для таких ситуаций корреляции событий. В предпочтительном варианте осуществления отдельные события представлены в виде векторов в многомерном пространстве внедрения, имеющем отличительное свойство, заключающееся в том, что пара событий, которые происходят с относительно высокой частотой в одном и том же контексте событий, разделены меньшим расстоянием, чем другая пара событий, которые происходят реже в том же контексте события.[0087] Some traditional computer security systems and methods primarily analyze individual events. Many events that occur while a computer system is running (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 analyze events in context and are therefore better suited for such event correlation situations. In a preferred embodiment, individual events are represented as vectors in a multidimensional embedding space having the distinctive property that a pair of events that occur with relatively high frequency in the same event context are separated by a smaller distance than another pair of events. which occur less frequently in the same event context.

[0088] Успешное моделирование поведения может потребовать детектирования большого количества (например, сотен или тысяч) различных типов событий, но не все типы событий могут быть одинаково важны при моделировании поведения. Сбор и анализ статистических данных о стольких типах событий, полученных из большого количества источников, может оказаться непрактичным. Для решения этой проблемы некоторые варианты осуществления группируют события в категории или кластеры событий в соответствии со степенью сходства между событиями, таким образом создавая более надежную и/или релевантную статистику. Такое существенное уменьшение размерности может существенно облегчить построение клиентских профилей. Сходство событий может быть определено согласно нескольким критериям, например, согласно расстоянию, разделяющему два события в пространстве внедрения событий. В предпочтительном варианте осуществления два события могут считаться подобными, если они происходят преимущественно в одном и том же контексте (например, события А и В считаются подобными, если как А, так и В часто предшествует событие X, и/или за ним следует событие Y, т.е. как в примерных последовательностях XAY и XBY).[0088] Successful behavior modeling may require detecting 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 statistical data on so many types of events from so many sources may be impractical. To address this issue, some embodiments group events into categories or event clusters according to the degree of similarity between events, thereby generating more reliable and/or relevant statistics. This significant reduction in dimensionality can greatly facilitate the construction of customer profiles. Event similarity can be determined according to several criteria, for example, according to 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 example sequences XAY and XBY).

[0089] Фиг. 17-А-В иллюстрируют эксперимент по применению некоторых систем и способов, описанных выше, для обнаружения угроз компьютерной безопасности. Корпус событий, собранных от множества отслеживаемых клиентов, использовался для обучения компонентов механизма профилирования, как указано выше, в результате чего отслеживаемые клиенты были разделены на 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 the components of the profiling engine as outlined above, resulting in the monitored clients being divided into 11 client clusters/profiles. Events were divided into event categories according to each event's representation in a 15-dimensional embedding space. Profile-specific behavior patterns were developed for each of the respective client clusters. Then a certain type of attack was carried out on the test machine. Sequences of events collected from the testing machine were fed to an anomaly detector, an instance of which, in turn, had parameters specific to each of the behavior models. Some such sequences of events have been detected as anomalies.

[0090] Фиг. 17-А иллюстрирует оценки аномалий, специфичных для кластера, представленные по шкале, где оценка 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% confidence in the anomaly (eg, at least one sequence event received from the test machine was not seen in training). The graph shows the scores averaged over sequences of anomalous events and the corresponding standard deviations. The figure shows that the same sequence(s) can be considered an anomaly with a confidence level 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 behavior patterns associated with clusters 1, 2, and 7 not only detect the attack relatively more effectively than the other patterns, but all event sequences associated with the attacks are considered “equally anomalous.” In contrast, the models associated with clusters 0 and 9 indicate some sequences of events from the same attack as “less anomalous” than others.

[0091] Фиг. 17-В иллюстрирует специфичные для профиля средние уровни детектирования, достигнутые для трех различных типов атак. Последовательности событий, собранные с тестовой машины во время каждого типа атаки, были проанализированы с использованием каждой из 11 обученных моделей поведения, специфичных для профиля. Скорость детектирования различается в зависимости от моделей и типов атак, что дополнительно свидетельствует об особенностях некоторых систем и способов, описанных в данном документе.[0091] FIG. 17-B illustrates the profile-specific average detection levels achieved for three different attack types. Sequences of events collected from the test machine during each attack type were analyzed using each of the 11 profile-specific trained behaviors. Detection rates vary across attack models and types, further highlighting the unique nature of some of the systems and methods described in this document.

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

Специалисту в данной области техники понятно, что вышеупомянутые варианты осуществления могут быть различным образом изменены, без выхода при этом за рамки объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.One skilled in the art will understand that the above embodiments may be modified 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 (58)

1. Компьютерная система для детектирования угрозы компьютерной безопасности, содержащая по меньшей мере один аппаратный процессор, конфигурированный, чтобы:1. A computer system for detecting a computer security threat, comprising at least one hardware processor configured to: в ответ на прием индикатора членства в кластере, указывающего группировку множества клиентских систем во множество клиентских кластеров, выбрать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем;in response to receiving a cluster membership indicator indicating a grouping of a plurality of client systems into a plurality of client clusters, select a client cluster from the plurality of client clusters, wherein the selected client cluster comprises a plurality of client systems; в ответ на выбор клиентского кластера выбирать обучающий корпус событий из коллекции событий в соответствии с тем, произошли ли выбранные события на членах выбранного клиентского кластера;in response to the selection of the client cluster, select a training corpus of events from the collection of events according to whether the selected events occurred on members of the selected client cluster; в ответ на выбор обучающего корпуса событий обучать модель поведения кодировать коллективное поведение членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, причем модель поведения имеет набор регулируемых параметров; иin response to the selection of a training corpus of events, train a behavior model to encode the collective behavior of members of the selected client cluster in accordance with the training corpus of events, wherein the behavior model has a set of adjustable parameters; And в ответ на обучение модели поведения передавать набор значений регулируемых параметров детектору аномалий, конфигурированному для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности;in response to learning the behavior model, transmitting a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on the target client system indicates a computer security threat; причем:and: модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события; иthe behavior model is configured to input a selected event from the sequence of events and, in response, to determine a prediction indicator indicating the likelihood that another event in the sequence of events is of the selected event type; And последовательность событий содержит множество событий обучающего корпуса, причем множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий.the sequence of events contains a plurality of events of the training corpus, the plurality of events being ordered according to the time of occurrence of each event of the plurality of events. 2. Компьютерная система по п. 1, в которой обучение модели поведения включает: определение спрогнозированного события в соответствии с индикатором прогнозирования;2. The computer system according to claim 1, in which training the behavior model includes: determining the predicted event in accordance with the forecasting indicator; сравнение спрогнозированного события с другим событием последовательности событий;comparing a predicted event with another event in a sequence of events; и регулировку набора конфигурируемых параметров в соответствии с результатом сравнения.and adjusting the set of configurable parameters in accordance with the result of the comparison. 3. Компьютерная система по п. 1, в которой:3. Computer system according to claim 1, in which: последовательность событий содержит центральное событие и контекст события, при этом контекст события содержит первый поднабор событий, происходящих до центрального события, и второй поднабор событий, происходящих позже центрального события;the sequence of events contains a central event and an event context, wherein the event context contains a first subset of events occurring before the central event and a second subset of events occurring after the central event; выбранное событие является центральным событием и другое событие является членом контекста события.the selected event is the central event and the other event is a member of the event context. 4. Компьютерная система по п. 1, в которой:4. Computer system according to claim 1, in which: последовательность событий содержит центральное событие и контекст события, при этом контекст события содержит первый поднабор событий, происходящих до центрального события, и второй поднабор событий, происходящих позже центрального события;the sequence of events contains a central event and an event context, wherein the event context contains a first subset of events occurring before the central event and a second subset of events occurring after the central event; выбранное событие является членом контекста события и другое событие является центральным событием.the selected event is a member of the event context and the other event is the central event. 5. Компьютерная система по п. 1, в которой модель поведения содержит кодер событий, конфигурированный для ввода выбранного события и, в ответ, для определения набора координат, указывающих положение выбранного события в пространстве внедрения события, при этом координаты определяются в зависимости от того, происходит ли выбранное событие в выбранном контексте других событий обучающего корпуса.5. The computer system of claim 1, wherein the behavior model comprises an event encoder configured to input a selected event and, in response, to determine a set of coordinates indicating the position of the selected event in the event embedding space, wherein the coordinates are determined depending on whether the selected event occurs in the selected context of other events in the training corpus. 6. Компьютерная система по п. 1, в которой:6. Computer system according to claim 1, in which: коллекция событий делится на множество категорий событий в соответствии с тем, происходит ли событие из коллекции событий в выбранном контексте других событий из коллекции событий; иthe event collection is divided into a plurality of event categories according to whether an event from the event collection occurs in the selected context of other events from the event collection; And множество клиентских систем группируется в кластеры в соответствии с профилем события каждой клиентской системы, причем профиль события определяют в соответствии с количеством событий, происходящих в каждой клиентской системе и принадлежащих выбранной категории из множества категорий событий.the plurality of client systems are grouped into clusters according to the event profile of each client system, the event profile being determined in accordance with the number of events occurring on each client system that belong to a selected category from the plurality of event categories. 7. Компьютерная система по п. 6, в которой профиль события каждой клиентской системы содержит множество компонентов, причем каждый компонент определяется в соответствии с долей событий, принадлежащих каждой категории событий из множества категорий событий, причем доля вычисляется из общего количества событий коллекции событий, происходящей в каждой клиентской системе.7. The computer system of claim 6, wherein the event profile of each client system comprises a plurality of components, wherein each component is defined according to a proportion of events belonging to each event category of the plurality of event categories, the proportion being calculated from the total number of events of the event collection occurring on each client system. 8. Компьютерная система по п. 6, в которой группировка множества клиентских систем в кластеры включает назначение клиентских систем, имеющих похожие профили событий, одному и тому же клиентскому кластеру.8. The computer system of claim 6, wherein grouping multiple client systems into clusters includes assigning client systems having similar event profiles to the same client cluster. 9. Компьютерная система по п. 1, в которой обучающий корпус выбирается так, чтобы включать только события, которые произошли на членах выбранного клиентского кластера.9. The computer system of claim 1, wherein the training corpus is selected to include only events that occurred on members of the selected client cluster. 10. Компьютерная система по п. 1, в которой выбранное событие включает в себя запуск выбранного процесса в клиентской системе из множества клиентских систем.10. The computer system of claim 1, wherein the selected event includes starting a selected process on a client system of the plurality of client systems. 11. Реализуемый компьютером способ детектирования угрозы компьютерной безопасности, включающий:11. A computer-implemented method for detecting a threat to computer security, including: применение по меньшей мере одного аппаратного процессора компьютерной системы, чтобы в ответ на прием индикатора членства в кластере, указывающего группировку множества клиентских систем во множество клиентских кластеров, выбирать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем;using at least one hardware processor of the computer system to, in response to receiving a cluster membership indicator indicating grouping of a plurality of client systems into a plurality of client clusters, select a client cluster from the plurality of client clusters, wherein the selected client cluster comprises a plurality of client systems; в ответ на выбор клиентского кластера применение по меньшей мере одного аппаратного процессора компьютерной системы для выбора обучающего корпуса событий из коллекции событий в соответствии с тем, произошли ли выбранные события на членах выбранного клиентского кластера;in response to selecting a client cluster, using at least one hardware processor of the computer system to select a training corpus of events from the collection of events in accordance with whether the selected events occurred on members of the selected client cluster; в ответ на выбор обучающего корпуса событий применение по меньшей мере одного аппаратного процессора компьютерной системы для обучения модели поведения кодированию коллективного поведения членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, при этом модель поведения имеет набор регулируемых параметров; иin response to selecting a training corpus of events, using at least one hardware processor of the computer system to train a behavior model to encode the collective behavior of members of the selected client cluster in accordance with the training corpus of events, wherein the behavior model has a set of adjustable parameters; And в ответ на обучение модели поведения применение по меньшей мере одного аппаратного процессора компьютерной системы для передачи набора значений регулируемых параметров на детектор аномалий, конфигурированный для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности;in response to learning the behavior model, using at least one hardware processor of the computer system to transmit a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on a target client system indicates a computer security threat; причем:and: модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события; иthe behavior model is configured to input a selected event from the sequence of events and, in response, to determine a prediction indicator indicating the likelihood that another event in the sequence of events is of the selected event type; And последовательность событий содержит множество событий обучающего корпуса, причем множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий.the sequence of events contains a plurality of events of the training corpus, the plurality of events being ordered according to the time of occurrence of each event of the plurality of events. 12. Способ по п. 11, в котором обучение модели поведения включает: определение спрогнозированного события в соответствии с индикатором прогнозирования;12. The method according to claim 11, in which training the behavior model includes: determining the predicted event in accordance with the forecasting indicator; сравнение спрогнозированного события с другим событием в последовательности событий; иcomparison of a predicted event with another event in a sequence of events; And регулировку набора конфигурируемых параметров по результатам сравнения.adjustment of a set of configurable parameters based on the comparison results. 13. Способ по п. 11, в котором:13. The method according to claim 11, in which: последовательность событий содержит центральное событие и контекст события, при этом контекст события содержит первый поднабор событий, происходящих до центрального события, и второй поднабор событий, происходящих позже центрального события;the sequence of events contains a central event and an event context, wherein the event context contains a first subset of events occurring before the central event and a second subset of events occurring after the central event; выбранное событие является центральным событием; и другое событие является членом контекста события.the selected event is the central event; and the other event is a member of the event context. 14. Способ по п. 11, в котором:14. The method according to claim 11, in which: последовательность событий содержит центральное событие и контекст события, при этом контекст события содержит первый поднабор событий, происходящих до центрального события, и второй поднабор событий, происходящих позже центрального события;the sequence of events contains a central event and an event context, wherein the event context contains a first subset of events occurring before the central event and a second subset of events occurring after the central event; выбранное событие является членом контекста события и другое событие является центральным событием.the selected event is a member of the event context and the other event is the central event. 15. Способ по п. 11, в котором модель поведения содержит кодер событий, конфигурированный для ввода выбранного события и, в ответ, для определения набора координат, указывающих положение выбранного события в пространстве внедрения события, при этом координаты определяют в зависимости от того, происходит ли выбранное событие в выбранном контексте других событий обучающего корпуса.15. The method of claim 11, wherein the behavior model comprises an event encoder configured to input a selected event and, in response, to determine a set of coordinates indicating the position of the selected event in the event embedding space, wherein the coordinates are determined depending on whether whether the selected event is in the selected context of other events in the training corpus. 16. Способ по п. 11, в котором:16. The method according to claim 11, in which: коллекцию событий делят на множество категорий событий в соответствии с тем, происходит ли событие из коллекции событий в выбранном контексте других событий из коллекции событий; иthe collection of events is divided into a plurality of event categories according to whether an event from the collection of events occurs in the selected context of other events from the collection of events; And множество клиентских систем группируют в кластеры в соответствии с профилем события каждой клиентской системы, причем профиль события определяют в соответствии с подсчетом событий, происходящих в каждой клиентской системе и принадлежащих выбранной категории из множества категорий событий.a plurality of client systems are grouped into clusters according to each client system's event profile, wherein the event profile is determined in accordance with a count of events occurring on each client system that belong to a selected category of the plurality of event categories. 17. Способ по п. 16, в котором профиль события каждой клиентской системы содержит множество компонентов, причем каждый компонент определяют в соответствии с долей событий, принадлежащих каждой категории событий из множества категорий событий, причем долю вычисляют из общего количества событий коллекции событий, происходящей в каждой клиентской системе.17. The method of claim 16, wherein the event profile of each client system comprises a plurality of components, each component being determined according to the proportion of events belonging to each event category of the plurality of event categories, the proportion being calculated from the total number of events of the event collection occurring in each client system. 18. Способ по п. 16, в котором группирование множества клиентских систем в кластеры включает назначение клиентских систем, имеющих похожие профили событий, одному и тому же клиентскому кластеру.18. The method of claim 16, wherein grouping multiple client systems into clusters includes assigning client systems having similar event profiles to the same client cluster. 19. Способ по п. 11, в котором обучающий корпус выбирают так, чтобы включать только события, которые произошли на членах выбранного клиентского кластера.19. The method of claim 11, wherein the training corpus is selected to include only events that occurred on members of the selected client cluster. 20. Способ по п. 11, в котором выбранное событие включает в себя запуск выбранного процесса в клиентской системе из множества клиентских систем.20. The method of claim 11, wherein the selected event includes running the selected process on a client system of the plurality of client systems. 21. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему:21. A non-transitory computer-readable medium storing instructions that, when executed by at least one hardware processor of a computer system, cause the computer system to: в ответ на прием индикатора членства в кластере, указывающего на группировку множества клиентских систем во множество клиентских кластеров, выбрать клиентский кластер из множества клиентских кластеров, причем выбранный клиентский кластер содержит множество клиентских систем;in response to receiving a cluster membership indicator indicating a grouping of a plurality of client systems into a plurality of client clusters, select a client cluster from the plurality of client clusters, wherein the selected client cluster comprises a plurality of client systems; в ответ на выбор клиентского кластера выбрать обучающий корпус событий из коллекции событий в соответствии с тем, произошли ли выбранные события на членах выбранного клиентского кластера;in response to the selection of the client cluster, select a training corpus of events from the collection of events according to whether the selected events occurred on members of the selected client cluster; в ответ на выбор обучающего корпуса событий обучить модель поведения кодировать коллективное поведение членов выбранного клиентского кластера в соответствии с обучающим корпусом событий, причем модель поведения имеет набор регулируемых параметров; иin response to the selection of a training corpus of events, train a behavior model to encode the collective behavior of members of the selected client cluster in accordance with the training corpus of events, wherein the behavior model has a set of adjustable parameters; And в ответ на обучение модели поведения передавать набор значений регулируемых параметров детектору аномалий, конфигурированному для определения, указывает ли целевое событие, происходящее в целевой клиентской системе, на угрозу компьютерной безопасности;in response to learning the behavior model, transmitting a set of adjustable parameter values to an anomaly detector configured to determine whether a target event occurring on the target client system indicates a computer security threat; причем:and: модель поведения конфигурирована для ввода выбранного события из последовательности событий и, в ответ, для определения индикатора прогнозирования, указывающего вероятность того, что другое событие последовательности событий относится к выбранному типу события; иthe behavior model is configured to input a selected event from the sequence of events and, in response, to determine a prediction indicator indicating the probability that another event in the sequence of events is of the selected event type; And последовательность событий содержит множество событий обучающего корпуса, причем множество событий упорядочено в соответствии со временем происшествия каждого события из множества событий.the sequence of events contains a plurality of events of the training corpus, the plurality of events being ordered according to the time of occurrence of each event of the plurality of events.
RU2021114478A 2018-12-10 2019-12-10 Systems and methods for detecting behavioural threats RU2803399C2 (en)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
RU2021114478A RU2021114478A (en) 2023-01-12
RU2803399C2 true RU2803399C2 (en) 2023-09-12

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150373039A1 (en) * 2014-06-23 2015-12-24 Niara, Inc. Entity Group Behavior Profiling
US9367694B2 (en) * 2014-05-16 2016-06-14 Raytheon Bbn Technologies Corp. Probabilistic cyber threat recognition and prediction
RU2587426C2 (en) * 2013-12-27 2016-06-20 Закрытое акционерное общество "Лаборатория Касперского" System and method of detecting directed attack on corporate infrastructure
US9401925B1 (en) * 2013-09-12 2016-07-26 Symantec Corporation Systems and methods for detecting security threats based on user profiles
US20170171231A1 (en) * 2015-12-11 2017-06-15 Brightpoint Security, Inc. Computer Network Threat Assessment
RU2633124C2 (en) * 2006-06-19 2017-10-11 ВИЗА Ю.Эс.Эй.ИНК,. Authentication of operations using network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2633124C2 (en) * 2006-06-19 2017-10-11 ВИЗА Ю.Эс.Эй.ИНК,. Authentication of operations using network
US9401925B1 (en) * 2013-09-12 2016-07-26 Symantec Corporation Systems and methods for detecting security threats based on user profiles
RU2587426C2 (en) * 2013-12-27 2016-06-20 Закрытое акционерное общество "Лаборатория Касперского" System and method of detecting directed attack on corporate infrastructure
US9367694B2 (en) * 2014-05-16 2016-06-14 Raytheon Bbn Technologies Corp. Probabilistic cyber threat recognition and prediction
US20150373039A1 (en) * 2014-06-23 2015-12-24 Niara, Inc. Entity Group Behavior Profiling
US20170171231A1 (en) * 2015-12-11 2017-06-15 Brightpoint Security, Inc. Computer Network Threat Assessment

Similar Documents

Publication Publication Date Title
EP3895046B1 (en) Systems and methods for behavioral threat detectiion
AU2019400060B2 (en) Systems and methods for behavioral threat detection
RU2803399C2 (en) Systems and methods for detecting behavioural threats
RU2772549C1 (en) Systems and methods for detecting behavioural threats
RU2778630C1 (en) Systems and methods for detecting behavioural threats
EP3895047B1 (en) Systems and methods for behavioral threat detection
CN113168468B (en) System and method for behavioral threat detection
CN113168469B (en) System and method for behavioral threat detection
Chattopadhyay et al. Data Intrusion Detection with basic Python coding and prevention of other intrusive manifestation by the use of intrusion application
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