RU2778630C1 - Systems and methods for detecting behavioural threats - Google Patents
Systems and methods for detecting behavioural threats Download PDFInfo
- Publication number
- RU2778630C1 RU2778630C1 RU2021115725A RU2021115725A RU2778630C1 RU 2778630 C1 RU2778630 C1 RU 2778630C1 RU 2021115725 A RU2021115725 A RU 2021115725A RU 2021115725 A RU2021115725 A RU 2021115725A RU 2778630 C1 RU2778630 C1 RU 2778630C1
- Authority
- RU
- Russia
- Prior art keywords
- event
- target
- client
- client system
- events
- Prior art date
Links
- 230000003542 behavioural Effects 0.000 title claims description 6
- 230000004044 response Effects 0.000 claims abstract description 38
- 239000000203 mixture Substances 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 26
- 230000000694 effects Effects 0.000 abstract description 13
- 238000005516 engineering process Methods 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding Effects 0.000 description 63
- 230000006399 behavior Effects 0.000 description 49
- 238000004891 communication Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 10
- 230000001537 neural Effects 0.000 description 8
- 230000002547 anomalous Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 210000000225 Synapses Anatomy 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000002349 favourable Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006011 modification reaction Methods 0.000 description 2
- 230000002093 peripheral Effects 0.000 description 2
- 238000000513 principal component analysis Methods 0.000 description 2
- 230000000306 recurrent Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001489523 Coregonus artedi Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002068 genetic Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000000977 initiatory Effects 0.000 description 1
- 230000002452 interceptive Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000011068 load Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001902 propagating Effects 0.000 description 1
- 230000001681 protective Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002104 routine Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000002922 simulated annealing Methods 0.000 description 1
- 235000010956 sodium stearoyl-2-lactylate Nutrition 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Abstract
Description
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
[0001] Изобретение относится к системам и способам компьютерной безопасности, в частности к системам и способам детектирования вредоносного программного обеспечения и/или проникновения в компьютерную систему и/или сеть связи. [0001] The invention relates to computer security systems and methods, in particular to systems and methods for detecting malicious software and/or intrusion into a computer system and/or communications network.
[0002] В последние годы компьютерная и сетевая безопасность становятся все более важными как для частных лиц, так и для компаний. Быстрое развитие технологий электронной связи, растущая зависимость от программного обеспечения в повседневной деятельности и появление Интернета вещей сделали компании и отдельных лиц уязвимыми для потери конфиденциальности и кражи данных.[0002] In recent years, computer and network security have become increasingly important for both individuals and companies. The rapid development of electronic communication technologies, the growing reliance on software for daily activities, and the advent of the Internet of Things have left companies and individuals vulnerable to privacy loss and data theft.
[0003] Опытный злоумышленник может попытаться проникнуть в корпоративную сеть, используя различные методы, например, используя бэкдор, установленный на корпоративном компьютере вредоносным программным обеспечением. Затем злоумышленник может получить доступ, изменить или уничтожить конфиденциальную информацию. Другие примерные атаки включают, среди прочего, отключение или иным образом вывод из строя систем физической безопасности (например, охранную сигнализацию), установку шпионского программного обеспечения и вмешательство в автоматизированные системы, которые контролируют производство или распространение товаров и услуг (например, энергосистему).[0003] An experienced attacker may attempt to infiltrate a corporate network using various methods, such as using a backdoor installed on a corporate computer with malicious software. The attacker can then access, modify, or destroy the sensitive information. Other exemplary attacks include, but are not limited to, disabling or otherwise disabling physical security systems (such as burglar alarms), installing spyware, and interfering with automated systems that control the production or distribution of goods and services (such as the power grid).
[0004] Программное обеспечение, исполняемое в компьютерной системе, может использоваться для автоматического детектирования и/или предотвращения несанкционированного вторжения и других злонамеренных действий. Такое программное обеспечение, обычно известное как система детектирования вторжений (IDS), может отслеживать активность сети и/или компьютера на предмет необычных событий или нарушений порядка. Типичная IDS записывает информацию, относящуюся к наблюдаемым событиям, уведомляет пользователя или сетевого администратора и создает отчеты. Некоторые IDS могут пойти дальше, чтобы предотвратить выполнение злоумышленником злонамеренных действий, например, путем изменения настроек безопасности (например, перенастройки брандмауэра) в ответ на детектирование вторжения.[0004] Software executable on a computer system may be used to automatically detect and/or prevent tampering and other malicious activities. Such software, commonly known as an intrusion detection system (IDS), can monitor network and/or computer activity for unusual events or out of order. A typical IDS records information related to observed events, notifies the user or network administrator, and generates reports. Some IDSs may go further to prevent an attacker from performing malicious actions, for example, by changing security settings (eg, reconfiguring the firewall) in response to intrusion detection.
[0005] Однако по мере того, как программные услуги постепенно становятся популярней, а объем данных, передаваемых по информационным сетям, увеличивается, для программного обеспечения безопасности становится все более непрактичным просеивать данный огромный объем информации на предмет индикаторов злонамеренной активности.[0005] However, as software services gradually become more popular and the amount of data transferred over information networks increases, it becomes increasingly impractical for security software to sift through this vast amount of information for indicators of malicious activity.
Следовательно, существует значительный интерес к разработке более надежных и масштабируемых систем и способов детектирования вторжений.Consequently, there is considerable interest in developing more reliable and scalable intrusion detection systems and methods.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯDISCLOSURE OF THE INVENTION
[0006] Согласно одному аспекту серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на прием индикации, выбирать значение параметра из множества значений параметра в соответствии с целевой клиентской системой, и создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется согласно обучающему корпусу событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.[0006] According to one aspect, the server computer system comprises at least one hardware processor configured to: responsive to receiving a target event occurrence indication on the target client system, collect a sequence of events including the target event, wherein all events of the sequence of events have occurred on the target client system, with the members of the sequence of events arranged according to the time of occurrence of each event in the sequence of events. The at least one hardware processor is also configured to, in response to receiving the indication, select a parameter value from a plurality of parameter values in accordance with the target client system, and instantiate the behavior with the parameter value, the behavior being configured to input the selected event of the sequence of events, and , in response, create a prediction indicator indicating the probability that the sequence of events includes the target event. The at least one hardware processor is also configured to, in response to instantiating the behavior model, determine whether the target event indicates a computer security threat according to the predictive indicator. The set of parameter values is determined according to the training corpus of events that occurred on the set of client systems grouped into the set of client clusters. Each of the plurality of parameter values is defined in accordance with a distinct subset of the training corpus, with each distinct subset occurring on members of a distinct cluster from the plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.
[0007] Согласно другому аспекту реализуемый компьютером способ включает, в ответ на получение индикации происшествия целевого события на целевой клиентской системе, использование по меньшей мере одного аппаратного процессора компьютерной системы для сборки последовательности событий, включающей целевое событие, при этом все события последовательности событий произошли на целевой клиентской системе, причем члены последовательности событий расположены в соответствии с временем происшествия каждого события последовательности событий. Способ также включает, в ответ на прием индикации, использование по меньшей мере одного процессора компьютерной системы для выбора значения параметра из множества значений параметров в соответствии с целевой клиентской системой. Способ также включает, в ответ на выбор значений параметров набора, использование по меньшей мере одного аппаратного процессора компьютерной системы для создания экземпляра модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создания индикатора прогнозирования, указывающего вероятность того, что последовательность событий включает целевое событие. Способ также включает, в ответ на создание экземпляра модели поведения, использование по меньшей мере одного аппаратного процессора компьютерной системы для определения, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.[0007] According to another aspect, a computer-implemented method includes, in response to receiving an indication of the occurrence of a target event on a target client system, using at least one hardware processor of the computer system to assemble a sequence of events including the target event, wherein all events of the sequence of events have occurred on to the target client system, with the members of the sequence of events arranged according to the time of occurrence of each event in the sequence of events. The method also includes, in response to receiving the indication, using at least one computer system processor to select a parameter value from a plurality of parameter values in accordance with the target client system. The method also includes, in response to selecting set parameter values, using at least one hardware processor of the computer system to instantiate the behavior model with the parameter value, the behavior model being configured to input the selected event of the sequence of events and, in response, generating a prediction indicator indicating the probability that a sequence of events includes a target event. The method also includes, in response to instantiating the behavior model, using at least one hardware processor of the computer system to determine if the target event is indicative of a computer security threat, in accordance with the prediction indicator. The set of parameter values is determined in accordance with the training corpus of events that occurred on a set of client systems, grouped into a set of client clusters. Each of the plurality of parameter values is defined in accordance with a distinct subset of the training corpus, with each distinct subset occurring on members of a distinct cluster from the plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.
[0008] Согласно другому аспекту невременный машиночитаемый носитель хранит инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. Инструкции также побуждают компьютерную систему, в ответ на прием индикации, выбирать значение параметра из множества значений параметров в соответствии с целевой клиентской системой в ответ на выбор значения параметра, создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. Инструкции также побуждают компьютерную систему, в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, согласно индикатору прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор возникает на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметров в соответствии с целевым кластером. [0008] According to another aspect, the non-transitory computer-readable medium stores instructions that, when executed by at least one hardware processor of the computer system, causes the computer system to: in response to receiving a target event occurrence indication on the target client system, collect a sequence of events including the target event, all the event sequence events occurred on the target client system, with the members of the event sequence arranged according to the time of occurrence of each event in the event sequence. The instructions also cause the computer system, in response to receiving the indication, to select a parameter value from a plurality of parameter values in accordance with the target client system in response to the parameter value selection, to instantiate the behavior with the parameter value, the behavior configured to input the selected event sequence event and, in response, create a prediction indicator indicating the probability that the sequence of events includes the target event. The instructions also cause the computer system, in response to instantiating the behavior, to determine if the target event indicates a computer security threat, according to the predictive indicator. The set of parameter values is determined in accordance with the training corpus of events that occurred on a set of client systems, grouped into a set of client clusters. Each of the set of parameter values is determined in accordance with a separate subset of the training corpus, with each separate subset occurring on members of a separate cluster from a plurality of client clusters. Selecting a parameter value includes selecting a target cluster from a plurality of client clusters according to the target client system and selecting a parameter value according to the target cluster.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
[0009] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения следующего ниже подробного описания, данного со ссылками на чертежи, на которых изображено следующее:[0009] The above aspects and advantages of the present invention will become more clear after reading the following detailed description, given with reference to the drawings, which depict the following:
[0010] Фиг. 1 иллюстрирует несколько примерных взаимосвязанных клиентских систем, при этом сервер безопасности действует как система детектирования вторжений согласно некоторым вариантам осуществления настоящего изобретения.[0010] FIG. 1 illustrates several exemplary interconnected client systems, with a security server acting as an intrusion detection system, in accordance with some embodiments of the present invention.
[0011] Фиг.2 иллюстрирует примерный обмен данными, выполняемый для защиты клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0011] FIG. 2 illustrates an exemplary communication performed to secure a client system in accordance with some embodiments of the present invention.
[0012] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0012] FIG. 3-A illustrates an exemplary client system hardware configuration according to some embodiments of the present invention.
[0013] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения.[0013] FIG. 3-B illustrates an exemplary security server hardware configuration according to some embodiments of the present invention.
[0014] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в защищенной клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.[0014] Figure 4 illustrates a set of exemplary software components executing on a secure client system in accordance with some embodiments of the present invention.
[0015] Фиг.5 иллюстрирует примерную программную архитектуру сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения. [0015] FIG. 5 illustrates an exemplary security server software architecture according to some embodiments of the present invention.
[0016] Фиг.6 иллюстрирует примерную работу механизма профилирования согласно некоторым вариантам осуществления настоящего изобретения.[0016] FIG. 6 illustrates exemplary operation of a profiling engine according to some embodiments of the present invention.
[0017] Фиг.7 иллюстрирует примерную последовательность шагов, выполняемых механизмом профилирования согласно некоторым вариантам осуществления настоящего изобретения.[0017] Figure 7 illustrates an exemplary sequence of steps performed by a profiling engine according to some embodiments of the present invention.
[0018] Фиг.8-A иллюстрирует примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.[0018] FIG. 8-A illustrates exemplary event encoder training according to some embodiments of the present invention.
[0019] На Фиг.8-B показано альтернативное примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.[0019] FIG. 8-B shows an alternative exemplary event encoder training according to some embodiments of the present invention.
[0020] Фиг.9 иллюстрирует примерную последовательность шагов, выполняемых для обучения декодера событий в конфигурации с фиг.8-A.[0020] FIG. 9 illustrates an exemplary sequence of steps taken to train an event decoder in the configuration of FIG. 8-A.
[0021] Фиг.10 иллюстрирует примерное пространство внедрения событий и набор примерных кластеров событий согласно некоторым вариантам осуществления настоящего изобретения.[0021] FIG. 10 illustrates an exemplary event injection space and a set of exemplary event clusters according to some embodiments of the present invention.
[0022] Фиг.11 иллюстрирует примерное пространство клиентского профиля и набор клиентских кластеров согласно некоторым вариантам осуществления настоящего изобретения.[0022] FIG. 11 illustrates an exemplary client profile space and a set of client clusters according to some embodiments of the present invention.
[0023] Фиг.12 иллюстрирует примерный профиль события клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.[0023] FIG. 12 illustrates an exemplary client system event profile according to some embodiments of the present invention.
[0024] Фиг.13 иллюстрирует примерные компоненты и работу детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0024] FIG. 13 illustrates exemplary components and operation of an anomaly detector according to some embodiments of the present invention.
[0025] Фиг.14 иллюстрирует примерную последовательность шагов, выполняемых детектором аномалий во время обучения, согласно некоторым вариантам осуществления настоящего изобретения.[0025] FIG. 14 illustrates an exemplary sequence of steps performed by an anomaly detector during training, in accordance with some embodiments of the present invention.
[0026] Фиг.15 иллюстрирует примерные компоненты модели поведения, образующие часть детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0026] FIG. 15 illustrates exemplary behavioral model components forming part of an anomaly detector according to some embodiments of the present invention.
[0027] Фиг.16 иллюстрирует примерную последовательность шагов, выполняемых обученным детектором аномалий согласно некоторым вариантам осуществления настоящего изобретения.[0027] FIG. 16 illustrates an exemplary sequence of steps performed by a trained anomaly detector in accordance with some embodiments of the present invention.
[0028] Фиг.17-A иллюстрирует результаты эксперимента, включающего использование некоторых вариантов осуществления настоящего изобретения для детектирования реальных угроз компьютерной безопасности.[0028] Figure 17-A illustrates the results of an experiment involving the use of some embodiments of the present invention to detect real computer security threats.
[0029] Фиг.17-B иллюстрирует другие экспериментальные результаты использования некоторых вариантов осуществления для детектирования реальных угроз компьютерной безопасности.[0029] Figure 17-B illustrates other experimental results using some embodiments to detect real computer security threats.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯIMPLEMENTATION OF THE INVENTION
[0030] Следует понимать, что в нижеследующем описании все перечисленные соединения между структурами могут быть прямыми функциональными соединениями или непрямыми функциональными соединениями через промежуточные структуры. Набор элементов включает в себя один или более элементов. Считается, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает по меньшей мере два элемента. Если не указано иное, любое использование «ИЛИ» относится к неисключительному или. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном проиллюстрированном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, сгенерированный обработкой второго элемента и, опционально, других данных. Принятие определения или решения в соответствии с параметром включает в себя принятие определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа - это последовательность инструкций процессора, выполняющих задачу.[0030] It should be understood that in the following description, all listed connections between structures can be direct functional connections or indirect functional connections through intermediate structures. An element set includes one or more elements. Any reference to an element is considered to refer to at least one element. The set of elements includes at least two elements. Unless otherwise noted, any use of "OR" refers to a non-exclusive or. Unless otherwise required, any of the method steps described need not be performed in the specific illustrated order. The first element (eg, data) derived from the second element includes the first element equal to the second element, as well as the first element generated by processing the second element and optionally other data. Making a determination or decision in accordance with a parameter includes making a determination or decision in accordance with the parameter and, optionally, in accordance with other data. Unless otherwise indicated, an indicator of a quantity/data may be the quantity/data itself or an indicator other than the quantity/data itself. A computer program is a sequence of processor instructions that perform a task.
Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными объектами или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Если не указано иное, компьютерная безопасность включает защиту оборудования и данных от незаконного доступа, модификации и/или уничтожения. Машиночитаемые носители включают невременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также каналы коммуникации, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящее изобретение обеспечивает, среди прочего, компьютерные системы, содержащие аппаратные средства (например, один или более процессоров), запрограммированные для выполнения описанных здесь способов, а также машиночитаемые инструкции кодирования мультимедиа для выполнения способов, описанных в данном документе.The computer programs described in some embodiments of the present invention may be stand-alone program objects or sub-objects (eg, routines, libraries) of other computer programs. Unless otherwise noted, computer security includes the protection of equipment and data from unauthorized access, modification and/or destruction. Computer-readable media includes non-transitory media such as magnetic, optical, and semiconductor storage media (eg, hard disks, optical disks, flash memory, DRAM) as well as communication channels such as conductive cables and fiber optic lines. In some embodiments, the present invention provides, among other things, computer systems comprising hardware (e.g., one or more processors) programmed to perform the methods described herein, as well as computer-readable media encoding instructions for performing the methods described herein.
[0031] Нижеследующее описание иллюстрирует варианты осуществления изобретения в качестве примера, а не обязательно в качестве ограничения.[0031] The following description illustrates embodiments of the invention by way of example, and not necessarily as a limitation.
[0032] Фиг.1 иллюстрирует примерный набор клиентских систем 10a-h, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Клиентские системы 10a-h могут представлять любое электронное устройство, имеющее процессор, память и коммуникационный интерфейс. Примеры клиентских систем 10a-h включают персональные компьютеры, ноутбуки, планшетные компьютеры, мобильные телекоммуникационные устройства (например, смартфоны), медиаплееры, телевизоры, игровые консоли, бытовую технику (например, холодильники, термореле, интеллектуальное отопление и/или системы освещения), а также носимые устройства (например, умные часы, фитнес-оборудование), среди прочего. Клиентские системы 10a-h могут исполнять различное программное обеспечение, например, обработку документов, игры, электронные сообщения и приложения социальных сетей, среди прочего. Некоторые клиенты могут обмениваться информацией с удаленным сервером 17 контента, например, просматривать Интернет.[0032] Figure 1 illustrates an exemplary set of
[0033] Проиллюстрированные клиентские системы соединены локальными сетями 12a-b и, кроме того, с расширенной сетью 14, такой как глобальная сеть (WAN) или Интернет. В одном примере клиентские системы 10a-d представляют семейные электронные устройства, соединенные между собой домашней сетью 12a. Между тем, клиентские системы 10e-g могут обозначать отдельные компьютеры и/или корпоративный мэйнфрейм внутри офисного здания. Локальная сеть 12-b может тогда представлять часть корпоративной сети (например, локальную сеть - LAN).[0033] The client systems illustrated are connected by
[0034] Маршрутизатор содержит электронное устройство, обеспечивающее связь между множеством клиентских систем и/или доступ соответствующих клиентов к расширенной сети 14. В примере с фиг.1 маршрутизаторы 15a-b соединяют клиентов в локальных сетях 12a-b и/или предоставляют клиентам 10a-g доступ в Интернет. Маршрутизаторы 15a-b могут действовать как шлюзы между локальными сетями 12a-b соответственно и расширенной сетью 14 и могут дополнительно предоставлять набор сетевых услуг для клиентских систем 10a-g. Такие услуги включают в себя, например, распространение параметров конфигурации сети на клиентские системы 10a-g (например, назначение сетевых адресов через протокол динамической конфигурации хоста - DHCP) и маршрутизацию связи через последовательность сетевых узлов. Некоторые клиентские системы, такие как примерная клиентская система 10h, могут напрямую подключаться к расширенной сети 14, например, через телекоммуникационный ретранслятор.[0034] The router includes an electronic device that allows communication between a plurality of client systems and/or access of respective clients to the
[0035] Фиг.1 также иллюстрирует сервер 16 безопасности, подключенный к расширенной сети 14. Сервер 16 в общем представляет собой набор связанных с возможностью обмена информацией компьютерных систем, которые могут находиться или не находиться в физической близости друг от друга. Сервер 16 защищает клиентские системы 10a-h от угроз компьютерной безопасности, таких как вредоносное ПО и вторжение. В некоторых вариантах осуществления такая защита включает сервер 16 безопасности, детектирующий подозрительную активность, происходящую в клиентской системе, например действия злоумышленника, контролирующего соответствующую клиентскую систему.[0035] Figure 1 also illustrates a
[0036] Примерный обмен данными между сервером 16 безопасности и клиентской системой 10 проиллюстрирован на фиг.2. Клиентская система 10 может представлять любого клиента 10a-h с фиг.1. В некоторых вариантах осуществления сервер 16 конфигурирован для приема индикатора 20a события от клиентской системы 10, индикатора 20a, указывающего на возникновение конкретного типа события во время исполнения программного обеспечения на клиенте 10. Примеры таких событий включают запуск процесса/потока (например, пользователь запускает приложение, родительский процесс создает дочерний процесс и т. д.), попытку доступа к устройству ввода соответствующей клиентской системы (например, камере, микрофону), попытку доступа к локальному или удаленному сетевому ресурсу (например, протокол передачи гипертекста - HTTP-запрос для доступа к определенному URL-адресу, попытка доступа к репозиторию документов по локальной сети), запрос, сформулированный в конкретной схеме универсального идентификатора ресурса (например, mailto: или ftp: запрос), выполнение конкретной инструкции процессора (например, системный вызов), попытку загрузить библиотеку (например, динамически подключаемую библиотеку - DLL), попытку создать новый файл на диске, попытку чтения или записи в определенное место на диске (например, попытка перезаписать существующий файл, попытка открыть определенную папку или документ) и попытку отправить электронное сообщение (например, электронная почта, служба коротких сообщений - SMS и т. д.), среди прочего. В некоторых вариантах осуществления периоды неактивности, то есть промежутки времени между событиями и/или временные интервалы, когда соответствующая клиентская система бездействует, не регистрирует активность пользователя или выполняет только внутренние системные задачи, также квалифицируются как события, и о них можно сообщать через индикаторы события серверу безопасности. Такие периоды неактивности можно дополнительно разделить на короткие промежутки времени (например, порядка секунд) и длительные промежутки времени (например, порядка минут или часов). Детектированные события могут указывать, а могут и не указывать на злой умысел как таковой; некоторые события могут указывать на злой умысел, когда происходят вместе с другими событиями, и/или когда происходят в определенной последовательности. Другие события могут быть злонамеренными, если они происходят в определенное время дня или с необычной частотой, например, последовательность из 1000 операций чтения из определенной папки на диске с интервалом в несколько секунд.[0036] An exemplary communication between the
[0037] Каждый индикатор 20a события может содержать, среди прочего, индикатор типа соответствующего события и метку времени, указывающую момент времени, когда произошло соответствующее событие. Индикатор 20a события может дополнительно включать в себя идентификатор (идентификатор клиента) соответствующей клиентской системы и/или индикатор пользователя (идентификатор пользователя), который в настоящее время работает с соответствующей клиентской системой. Например, когда переданное событие включает создание процесса, индикатор пользователя может указывать на владельца родительского процесса. Индикатор 20a события может кодировать другие параметры, такие как имя процесса, местоположение/путь в файловой системе запускаемого процесса, сетевой адрес (например, Интернет-протокол - IP-адрес), универсальный указатель ресурса (URL) HTTP-запроса, и т.п.[0037] Each
[0038] В некоторых вариантах осуществления сервер 16 может также собирать информацию от маршрутизаторов 15a-b, как показано индикатором 20b события на фиг. 2. Такие индикаторы событий могут включать, например, индикаторы сетевых событий, таких как запросы доступа к сети, выданные клиентскими системами, подключенными к соответствующему маршрутизатору/шлюзу. Например, индикатор 20b события может включать в себя исходный IP-адрес, IP-адрес назначения, временную метку и размер полезной нагрузки. В некоторых вариантах осуществления индикатор 20b события содержит данные о событиях клиента, агрегированные соответствующим маршрутизатором в соответствии с различными протоколами обработки данных (например, сетевые потоки, сетевые журналы и т. д.).[0038] In some embodiments,
[0039] Сервер 16 безопасности поддерживает набор моделей поведения пользователя, представляющих базовый, нормальный и/или законный способ работы поднабора клиентских систем 10a-h. Такие модели поведения здесь считаются профилями клиентов. Параметры таких моделей поведения в общем представлены как база 19 данных профилей на фиг. 1 и могут включать выходные данные алгоритма кластеризации событий и/или клиентов, как подробно показано ниже. В одном примерном варианте осуществления, в котором профиль представлен клиентом или кластером событий, параметры соответствующего профиля могут включать координаты центроида кластера и набор чисел, указывающих диапазон соответствующего кластера вдоль различных осей. Другие параметры профиля могут включать, среди прочего, показатель эксцентриситета соответствующего кластера и среднее расстояние между элементами кластера и центроидом кластера, среди прочего. Профили клиентов могут быть созданы автоматически с использованием контролируемых или неконтролируемых методов и алгоритмов обучения, как показано ниже.[0039] The
[0040] Клиентский профиль может фиксировать поведение одного пользователя или может вместе фиксировать поведение множества пользователей. В качестве примеров: смартфон может использоваться в основном одним пользователем, поэтому клиентский профиль, прикрепленный к соответствующему смартфону, может по существу фиксировать базовое поведение его основного пользователя. Напротив, компьютеры, принадлежащие университетской компьютерной лаборатории, могут использоваться многими разными студентами; клиентский профиль, прикрепленный к одной из этих машин, может в совокупности представлять базовое поведение всех соответствующих студентов. Один клиентский профиль может быть прикреплен к одной клиентской системе/физической машине (например, смартфону, ноутбуку). В некоторых вариантах осуществления один клиентский профиль может вместе представлять множество физических машин. В одном таком примере клиентские системы 10a-d с фиг. 1 могут быть вместе представлены одним клиентским профилем, который фиксирует нормальное или базовое поведение членов конкретной семьи. В другом примере один клиентский профиль используется для представления всех компьютеров в бухгалтерском отделе корпорации, а другой клиентский профиль представляет все компьютеры, используемые группой исследований и разработок соответствующей корпорации. В варианте облачных вычислений, таком как среда инфраструктуры виртуального рабочего стола (VDI), в которой физическая машина может исполнять множество виртуальных машин для различных распределенных пользователей, один клиентский профиль может быть присоединен к множеству виртуальных машин, исполняющихся на соответствующей физической машине.[0040] A client profile may capture the behavior of a single user, or may capture the behavior of multiple users together. As examples, a smartphone may be used primarily by a single user, so a client profile attached to a respective smartphone can essentially capture the underlying behavior of its primary user. In contrast, computers owned by a university computer lab may be used by many different students; a client profile attached to one of these machines can collectively represent the basic behavior of all relevant students. One client profile can be attached to one client system/physical machine (eg smartphone, laptop). In some embodiments, one client profile may collectively represent multiple physical machines. In one such example,
[0041] В некоторых вариантах осуществления один пользователь может быть представлен множеством отдельных клиентских профилей. Например, один и тот же человек может иметь один клиентский профиль/базовое поведение на работе и отдельный клиентский профиль/базовое поведение дома. Другие примеры клиентских профилей могут быть связаны с пользователями определенной возрастной группы (например, подростки), конкретными личными интересами (например, игры), определенной профессией (например, инженер, художник, педагог) и т. д. В еще одном примерном варианте осуществления отдельные клиентские профили могут соответствовать различным компьютерным действиям, например, использованию разных компьютерных программ: просмотру Интернета, использованию социальных сетей, выполнению офисной работы и т. д. Еще другие примерные клиентские профили могут быть прикреплены к различным типам устройств (например, смартфон или ПК). Коллективные профили могут быть разработаны в соответствии с более сложными критериями, например, клиентский профиль, указывающий типичный/базовый способ, которым инженер из компании X просматривает Интернет. Другой примерный профиль может указывать на типичный способ, которым молодые люди используют планшетные компьютеры.[0041] In some embodiments, a single user may be represented by multiple distinct client profiles. For example, the same person may have one client profile/basic behavior at work and a separate client profile/basic behavior at home. Other examples of client profiles may be associated with users of a specific age group (eg, teenagers), specific personal interests (eg, games), a specific profession (eg, engineer, artist, educator), etc. In yet another exemplary embodiment, individual client profiles may correspond to different computer activities, such as using different computer programs: browsing the Internet, using social networks, doing office work, etc. Still other exemplary client profiles can be attached to various types of devices (for example, smartphone or PC). Collective profiles can be designed according to more complex criteria, such as a client profile indicating the typical/basic way an engineer from Company X browses the Internet. Another example profile may indicate the typical way young people use tablet computers.
[0042] Поднабор индикаторов 20a-b событий может быть собран для формирования корпуса событий, дополнительно используемого для получения клиентских профилей, как подробно показано ниже. Другой поднабор индикаторов событий может использоваться для детектирования угрозы безопасности. Например, в ответ на прием индикаторов 20a-b событий сервер 16 безопасности может определить, согласуется ли событие, переданное соответствующим индикатором события, с клиентским профилем, выбранным согласно соответствующему индикатору клиента. Иначе говоря, сервер 16 безопасности может определять, соответствует ли соответствующее событие шаблону нормального/базового поведения, закодированному в соответствующем клиентском профиле. Если нет, соответствующее событие может указывать на подозрительную активность, и в этом случае некоторые варианты осуществления могут предпринимать защитные действия, например, отправлять предупреждения 22a-b безопасности в соответствующую клиентскую систему и/или администратору соответствующей клиентской системы. В другом примере защитного действия некоторые варианты осуществления инструктируют маршрутизатор, который принадлежит той же локальной сети, что и подозрительная клиентская система, блокировать обмен данными с соответствующей подозрительной клиентской системой и/или от нее. Клиентские профили и обработка индикаторов событий сервером 16 безопасности дополнительно описаны ниже.[0042] A subset of
[0043] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 10 может представлять любую из клиентских систем 10a-h с фиг.1. Для ясности проиллюстрированная клиентская система представляет собой компьютерную систему. Конфигурация других клиентских систем, таких как мобильные телефоны, планшетные компьютеры и носимые устройства, может немного отличаться. Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для исполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие сигналы или данные могут быть закодированы и доставлены в процессор 32 в форме инструкций процессора, например машинного кода. Блок 34 памяти может содержать энергозависимый машиночитаемый носитель (например, динамическое запоминающее устройство с произвольным доступом - DRAM), хранящий данные/сигналы, к которым осуществляется доступ, или которые генерируются процессором 32 в ходе выполнения операций.[0043] FIG. 3-A illustrates an exemplary client system hardware configuration according to some embodiments of the present invention.
[0044] Устройства 36 ввода могут включать в себя компьютерные клавиатуры, мыши и микрофоны, среди прочего, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в клиентскую систему 10. Устройства 38 вывода могут включать в себя устройства отображения, такие как мониторы и динамики, среди прочего, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие соответствующей клиентской системе передавать данные пользователю. В некоторых вариантах осуществления устройства 36-38 ввода и вывода совместно используют общее аппаратное оборудование (например, сенсорный экран). Устройства 42 хранения включают в себя машиночитаемые носители, обеспечивающие невременное хранение, чтение и запись программных инструкций и/или данных. Примерные устройства хранения включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как CD и/или DVD диски и приводы. Сетевой адаптер (ы) 44 позволяет клиентской системе 10 подключаться к сети электронной связи (например, к сетям 12, 14 с фиг. 1) и/или к другим устройствам/компьютерным системам.[0044]
[0045] Контроллер-концентратор 40 в общем представляет множество системных, периферийных шин и/или шин набора микросхем и/или всех других схем, обеспечивающих связь между процессором 32 и остальными аппаратными компонентами клиентской системы 10. Например, контроллер-концентратор 40 может включать контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерываний. В зависимости от производителя оборудования некоторые такие контроллеры могут быть включены в единую интегральную схему и/или могут быть интегрированы с процессором. В другом примере контроллер-концентратор 40 может содержать процессор 32 подключения северного моста к памяти 34 и/или процессор 32 подключения южного моста к устройствам 36, 38, 42 и 44.[0045]
[0046] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера 16 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Сервер 16 содержит по меньшей мере один аппаратный процессор 132 (например, микропроцессор, многоядерную интегральную схему), физическую память 134 (например, DRAM), серверные устройства 142 хранения и набор серверных сетевых адаптеров 144. Серверные процессоры 132 могут включать в себя центральный процессор (CPU) и/или массив графических процессоров (GPU). Адаптеры 144 могут включать в себя сетевые карты и другие интерфейсы связи, позволяющие серверу 16 безопасности подключаться к сети 14 связи. Серверные устройства 142 хранения могут хранить данные, такие как индикаторы событий и/или параметры клиентского профиля. В некоторых вариантах осуществления сервер 16 дополнительно содержит устройства ввода и вывода, которые могут быть аналогичны по функциям устройствам 36 и 38 ввода/вывода клиентской системы 10 соответственно.[0046] FIG. 3-B illustrates an exemplary hardware configuration of a
[0047] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в клиентской системе 10 согласно некоторым вариантам осуществления настоящего изобретения. Такое программное обеспечение может включать в себя операционную систему 46 (ОС), обеспечивающую интерфейс между аппаратным обеспечением клиентской системы 10 и другими компьютерными программами, такими как пользовательское приложение 48, исполняющееся в соответствующей клиентской системе. Примеры операционных систем включают, среди прочего, Windows®, MacOS®, iOS® и Android®. Пользовательское приложение 48 в общем представляет любое приложение, такое как текстовый редактор, обработка изображений, электронная таблица, календарь, онлайн-игры, социальные сети, веб-браузер и приложения электронной связи, среди прочего. В некоторых вариантах осуществления приложение 50 безопасности конфигурировано для защиты клиентской системы 10 от угроз компьютерной безопасности, таких как вредоносное программное обеспечение и вторжение. Помимо других функций, приложение 50 безопасности конфигурировано для передачи индикаторов событий на сервер 16 безопасности и/или для приема предупреждений безопасности. В некоторых вариантах осуществления приложение 50 дополнительно содержит сборщик 52 событий и сетевой фильтр 53. Некоторая функциональность сетевого фильтра 53 может быть реализована непосредственно в аппаратном обеспечении. Когда клиентская система 10 управляет платформой аппаратной виртуализации, в которой ОС 46 и приложение 48 выполняются на виртуальной машине (например, в среде облачных вычислений), сборщик 52 событий и/или сетевой фильтр 53 могут исполняться вне соответствующей виртуальной машины, например, на уровне гипервизора, раскрывающего соответствующую виртуальную машину, с использованием методов, известных в данной области как интроспекция.[0047] FIG. 4 illustrates a set of exemplary software components executing on a
[0048] Сборщик 52 событий конфигурирован для детектирования различных событий, происходящих во время исполнения программного обеспечения клиентской системой 10. Некоторые варианты осуществления могут ставить метку времени для каждого детектированного события, чтобы записывать время наступления соответствующего события. Отслеживаемые события могут зависеть от компьютера и/или операционной системы. Примеры событий включают, среди прочего, запуск процесса, завершение процесса, порождение дочерних процессов, запросы доступа к периферийным устройствам (например, жесткому диску, сетевому адаптеру), команду, введенную пользователем в интерфейс командной строки и т. д. Такие аппаратные и/или программные события могут быть детектированы с использованием любого метода, известного в области компьютерной безопасности, например, путем подключения определенных функций операционной системы, детектирования системных вызовов, использования минифильтра файловой системы, изменения разрешения доступа к памяти для детектирования попытки выполнить код из определенных адресов памяти и т. д.[0048] The
[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
<30>Feb 8 21:36:51 dtm charon: 12 [IKE] establishing CHILD_SA dtmhq5 { 5 }<30>Feb 8 21:36:51 dtm charon: 12 [IKE] establishing CHILD_SA dtmhq5 { 5 }
<30>Feb 8 21:36:51 dtm charon: 12 [IKE] establishing CHILD_SA dtmhq5 { 5 }<30>Feb 8 21:36:51 dtm charon: 12 [IKE] establishing CHILD_SA dtmhq5 { 5 }
<187>Feb 8 21:37:56 example . domain . biz dhcpd: DHCPDISCOVER from 0c:14:7b:ll:<187>Feb 8 21:37:56 example . domain. biz dhcpd: DHCPDISCOVER from 0c:14:7b:ll:
14:64 via ethl : network ethl: no free leases14:64 via ethl : network ethl: no free leases
[0050] Сетевой фильтр 53 детектирует набор сетевых событий, происходящих во время электронной связи по сетям 12-14 между клиентской системой 10 и другими сторонами. Примерные события, детектированные сетевым фильтром 53, включают события, образующие часть установления соединения между клиентской системой 10 и другим сетевым объектом (например, запрос сетевого адреса, передача сетевого адреса, события установления связи и т. д.), события, которые конфигурируют зашифрованное соединение (уровень защищенных сокетов - SSL, виртуальная частная сеть - VPN), передачу данных и получение данных, среди прочего. В некоторых вариантах осуществления сетевой фильтр 53 собирает метаданные из перехваченного сетевого трафика. Такие метаданные могут включать в себя, например, исходный сетевой адрес (например, Интернет-протокол - IP-адрес), адрес назначения, временную метку пакета данных, индикатор типа протокола связи и размер пакета данных. Другие примерные метаданные могут включать в себя индикатор типа пользовательского агента протокола передачи гипертекста (HTTP), передающего соответствующий пакет связи/данных. Некоторые варианты осуществления организуют обменные метаданные в специализированные структуры данных, известные в данной области как сетевые потоки (например, NetFlow® от Cisco Systems, Inc.). Таблица 1 иллюстрирует примеры метаданных связи, представленных в виде потоков, согласно некоторым вариантам осуществления настоящего изобретения.[0050] The
Таблица 1Table 1
[0051] В некоторых вариантах реализации приложение 50 безопасности формулирует индикаторы событий в соответствии с аппаратными, программными и/или сетевыми событиями, обнаруженными сборщиком 52 и сетевым фильтром 53. Приложение 50 может дополнительно управлять обменом данными с сервером 16 безопасности, среди прочего, для передачи индикаторов событий и/или приема уведомлений безопасности.[0051] In some implementations, the
[0052] В альтернативном варианте осуществления вместо обработки сетевой связи на клиенте, как показано выше, сетевой фильтр 53 и/или маршрутизатор 15 могут быть конфигурированы для перенаправления на сервер 16 безопасности по меньшей мере части входящих электронных сообщений и/или из клиентской системы 10.[0052] In an alternative embodiment, instead of processing the network communication on the client as shown above, the
Например, параметры конфигурации сети клиентской системы 10 могут быть установлены для указания сервера 16 в качестве сетевого шлюза по умолчанию. Некоторые варианты осуществления затем используют сервер 16 безопасности для извлечения индикаторов событий из соответствующего перенаправленного трафика.For example, the network configuration settings of the
[0053] Фиг.5 иллюстрирует примерное программное обеспечение, исполняющееся на сервере 16 безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированное программное обеспечение включает механизм 60 профилирования и детектор 62 аномалий, дополнительно связанный с диспетчером 64 предупреждений. Квалифицированный специалист поймет, что не все проиллюстрированные компоненты должны исполняться на одной машине/процессоре; например, механизм 60 профилирования может исполняться на выделенном кластере процессоров, в то время как экземпляры детектора 62 аномалий могут исполняться на других машинах/процессорах.[0053] Figure 5 illustrates exemplary software running on a
[0054] В некоторых вариантах осуществления механизм 60 профилирования конфигурирован для анализа событий, происходящих в наборе клиентских систем (например, на поднаборе клиентов 10a-h на фиг.1), и для создания множества клиентских профилей, представляющих базовый, нормальный и/или законный способ работы с соответствующими клиентскими системами. Поднабор индикаторов 20a-b событий, полученных от клиентов, можно использовать для сборки корпуса обучающих событий, обозначенного корпусом 18 на фиг.1, 5 и 6. Затем профили определяются в соответствии с корпусом 18 событий. Определение клиентского профиля может включать, среди прочего, представление событий в абстрактном многомерном пространстве событий и выполнение процедур кластеризации данных, как более подробно показано ниже. Сконструированные профили затем могут быть сохранены как записи в базе 19 данных профилей. Примерная запись в базе данных профиля содержит набор параметров профиля, таких как набор координат центроида кластера, измерение диаметра и/или эксцентриситета кластера и т. д.[0054] In some embodiments, the
[0055] Фиг.6 иллюстрирует примерные компоненты и работу механизма 60 профилирования. В некоторых вариантах осуществления механизм 60 содержит кодер 70 событий, механизм 72 кластеризации событий и механизм 74 кластеризации клиентов, подключенный к кодеру 70 событий и механизму 72 кластеризации событий. Примерная последовательность шагов, выполняемых механизмом профилирования, проиллюстрирована на фиг.7.[0055] FIG. 6 illustrates exemplary components and operation of the
[0056] В последовательности шагов 202-204-206 механизм 60 профилирования может собрать обучающий корпус 18 событий в соответствии с индикаторами событий, полученными от выбранных клиентских систем и/или маршрутизатора (ов). Некоторые варианты осуществления накапливают индикаторы событий до тех пор, пока не будет удовлетворено какое-либо условие накопления.[0056] In the sequence of steps 202-204-206, the
Условия накопления могут быть определены в соответствии с подсчетом событий (собрать корпус из 1 миллиона событий) в соответствии с условием времени (например, записать все события, полученные в течение 1-часового интервала и т. д.), в соответствии с идентификатором клиентской системы и/или пользователя (например, записывать все события, полученные от корпорации X, диапазона IP-адресов Y, учетной записи Z подписки и т. д.), или любым другим способом, известным в данной области техники. Отдельные события могут быть помечены в соответствии с их происхождением и могут содержать метку времени, характеризующую момент времени, когда соответствующее событие даже произошло, или было обнаружено, или было получено на сервере безопасности 16 и т. д. В некоторых вариантах осуществления корпус 18 событий обновляется периодически и/или по запросу путем включения вновь полученных индикаторов событий.Accumulation conditions can be defined according to the event count (collect a corpus of 1 million events) according to the time condition (such as record all events received within a 1-hour interval, etc.), according to the client system ID and/or user (eg, record all events received from corporation X, IP address range Y, subscription account Z, etc.), or any other method known in the art. Individual events may be tagged according to their origin and may contain a timestamp indicating the point in time at which the corresponding event even occurred or was detected or received at the
[0057] В некоторых вариантах осуществления кодер 70 событий (фиг. 6) конфигурирован для ввода записи 26 события, содержащей данные, характеризующие событие, которое произошло в клиентской системе (например, запуск процесса на клиентской машине), и, в ответ, выведения вектора 28a событий, содержащего представление соответствующего события как вектора в абстрактном многомерном пространстве, обычно считающемся пространством внедрения в данной области техники. Примерное пространство внедрения охвачено набором осей, где каждая ось представляет отдельный признак события. Примеры функций могут включать, в случае сетевого события, IP-адрес источника, порт источника, IP-адрес пункта назначения, порт назначения и индикатор транспортного протокола, среди прочего. В другом примере каждая ось пространства внедрения соответствует линейной комбинации признаков события (например, в варианте осуществления декомпозиции главного компонента/единственного значения). В предпочтительных вариантах осуществления события анализируются в контексте других событий, которые предшествуют и/или следуют за соответствующим событием. В таких случаях кодер 70 конфигурирован для представления событий как векторов в пространстве внедрения контекстов, при этом два события, которые происходят преимущественно в аналогичных контекстах, расположены относительно близко друг к другу. Некоторые варианты осуществления выбирают размерность пространства внедрения в соответствии с размером словаря событий N, то есть подсчетом различных типов событий, которые отслеживает соответствующая система безопасности (подробнее о словаре событий см. ниже). Например, размерность пространства событий может быть порядка квадратного корня из N или логарифма из N. Типичный вариант осуществления настоящего изобретения использует пространство контекста внедрения, имеющее от нескольких сотен до нескольких тысяч измерений.[0057] In some embodiments, the event encoder 70 (FIG. 6) is configured to input an
[0058] Кодер 70 событий может быть сконструирован с использованием любого метода, известного в области автоматизированной обработки данных. В предпочтительном варианте осуществления кодер 70 содержит систему искусственного интеллекта, например многослойную искусственную нейронную сеть (например, рекуррентную нейронную сеть и/или нейронную сеть с прямой связью). Для достижения желаемого представления векторов событий, параметры кодера 70 могут быть настроены до тех пор, пока не будут удовлетворены некоторые условия производительности. Такая настройка здесь называется обучением и представлена этапом 208 на фиг.7. В варианте осуществления нейронной сети примерные настраиваемые параметры кодера 70 событий включают в себя, среди прочего, набор весов синапсов. В некоторых вариантах осуществления обучающий кодер 70 сводится к построению самого пространства внедрения. Иначе говоря, пространство внедрения не определяется заранее, а зависит от состава корпуса 18 событий и от выбранной процедуры обучения.[0058] The
[0059] Примерные обучающие процедуры показаны на фиг. 8A-B и содержат версии алгоритма word2vec, такие как алгоритм skip-gram и алгоритм непрерывного набора слов. В таких вариантах осуществления события анализируются не изолированно, а как составляющие последовательности 25 событий, состоящей из множества событий, упорядоченных в соответствии со временем возникновения или детектирования. В некоторых вариантах осуществления все события соответствующей последовательности выбираются так, чтобы они происходили в одной и той же клиентской системе. Последовательность 25 событий включает центральное событие Eo и контекст события, состоящий из подмножества событий E_k...E_1 (k≥0), предшествующее центральному событию и/или поднабору событий E1...Ep (p≥0) после центрального события. Типичные варианты осуществления используют симметричный контекст события (p = k), где p находится в диапазоне от 2 до 5. Каждое отдельное событие Ei (- k≤i≤p) может быть представлено как вектор чисел N-на-1, где каждая строка представляет отдельный тип события (например, запуск браузера, инициирование загрузки файла, запись данных на диск и т. д.), N представляет размер «словаря» типов событий, а ненулевой элемент указывает, что соответствующее событие относится к соответствующему типу события. Такое представление широко известно в данной области техники как унитарное кодирование. Примерный размер N словаря событий варьируется от нескольких сотен до нескольких тысяч различных типов событий, но может доходить до нескольких миллионов для конкретных применений. Квалифицированному специалисту поймет, что унитарное кодирование используется здесь только в качестве примера и никоим образом не ограничивает объем настоящего изобретения.[0059] Exemplary training procedures are shown in FIG. 8A-B and contain versions of the word2vec algorithm such as the skip-gram algorithm and the word continuum algorithm. In such embodiments, the events are not analyzed in isolation, but as part of an
[0060] В примерных процедурах обучения кодер событий объединяется и обучается совместно с декодером событий, оба из них могут содержать части нейронной сети с прямой связью и/или рекуррентной нейронной сети. В общем, пара кодер-декодер может быть конфигурирована для ввода первого поднабора обучающей последовательности (например, центрального события Eo) и вывода «прогноза» для второго поднабора соответствующей последовательности (например, некоторого контекстного события Ei, i≠0). В примерах на фиг. 8-AB, прогнозы показаны как унитарные векторы; альтернативные варианты осуществления могут использовать другое представление. Например, прогноз может быть представлен как N-мерный вектор чисел, каждое число указывает вероятность того, что соответствующий тип события присутствует во втором поднаборе.[0060] In exemplary training procedures, an event encoder is combined and trained in conjunction with an event decoder, both of which may comprise feed-forward and/or recurrent neural network portions. In general, an encoder-decoder pair may be configured to input a first subset of the training sequence (eg, central event Eo) and output a "prediction" for a second subset of the corresponding sequence (eg, some context event Ei, i≠0). In the examples in FIG. 8-AB, predictions are shown as unitary vectors; alternative embodiments may use a different representation. For example, a prediction can be represented as an N-dimensional vector of numbers, each number indicating the probability that the corresponding event type is present in the second subset.
[0061] В унитарной процедуре обучения, показанной на фиг. 8-A, пара кодер- декодер обучается для создания правильного контекста события с учетом центрального уравнения события. Для каждой последовательности событий, взятой из корпуса 18 событий, кодер 70a конфигурирован для ввода унитарного кодирования центрального события Eo и создания вектора 28c событий, содержащего представление центрального события E0 в пространстве контекста внедрения. В свою очередь, декодер 76a конфигурирован для ввода вектора 28c событий и вывода множества предполагаемых векторов, каждый из которых представляет «прогнозируемое» контекстное событие Ei (i≠0) соответствующей последовательности событий. Затем пара кодер-декодер может быть обучена путем настройки параметров кодера 70a и/или декодера 76a, чтобы уменьшить ошибку прогнозирования, то есть исправить несоответствие между «спрогнозированным» контекстом и фактическим контекстом соответствующих обучающих последовательностей.[0061] In the unitary learning procedure shown in FIG. 8-A, the encoder-decoder pair is trained to generate the correct event context given the event's central equation. For each sequence of events taken from the
[0062] Альтернативная процедура обучения использует алгоритм непрерывного набора слов и направлена на создание правильного центрального события Eo обучающей последовательности с учетом соответствующего контекста события. В одном таком примере, показанном на фиг. 8-B, кодер 70b событий конфигурирован для ввода набора однозначных векторов, представляющих контекстные события Ei (i≠0) последовательности 25, и для вывода внедренных векторов 28d-f событий, определяемых для каждого соответствующего контекстного события. В отличие от варианта осуществления skip-gram, показанной на фиг. 8-A, кодер 70b здесь соединен с декодером 76b событий, конфигурированным для ввода множества векторов 28d-f событий и создания прогноза или «предположения» для центрального событие Eo последовательности 25. Пара кодер-декодер может быть затем обучена путем настройки параметров кодера 70b и/или декодера 76b, чтобы уменьшить ошибку прогнозирования, то есть несоответствие между «спрогнозированным» центральным событием и фактическим центральным событием соответствующих обучающих последовательностей.[0062] An alternative learning procedure uses a continuous word set algorithm and aims to generate the correct central event Eo of the training sequence given the appropriate event context. In one such example, shown in FIG. 8-B,
[0063] Примерная последовательность шагов, реализующих обучение кодера событий, проиллюстрирована на фиг.9. На этапе 222 извлекается набор записей событий из корпуса 18 событий, и идентифицируется последовательность 25 событий в соответствии с отметками времени события и в соответствии с источником соответствующих событий (то есть клиентскими системами, в которых произошли соответствующие события). В варианте осуществления skip-gram на этапе 224 затем исполняется кодер 70a событий для создания представления Eo в пространстве внедрения (вектор 28c событий на фиг. 8-A). На этапе 226 механизм 60 профилирования исполняет декодер 76a событий для создания набора предсказаний или «предположений» для событий, предшествующих и/или последующих центральному событию Eo в последовательности 25. На этапе 228 каждое предсказанное контекстное событие сравнивается с соответствующим фактическим контекстным событием Ei (i≠0) последовательности 25, таким образом определяя ошибку численного предсказания. Ошибка прогнозирования, которую можно интерпретировать как функцию стоимости или целевую функцию, может быть вычислена любым способом, известным в области искусственного интеллекта. Такие вычисления могут включать определение расстояния, например расстояния Левенштейна, Евклида или косинусоидального расстояния между прогнозируемыми и фактическими событиями. Некоторые варианты осуществления определяют целевую функцию в соответствии с мерой перекрестной энтропии. На этапе 230 механизм профилирования может настроить параметры кодера 70a в направлении минимизации вычисленной ошибки прогнозирования. Некоторые примерные алгоритмы, используемые для обучения, включают, среди прочего, обратное распространение с использованием градиентного спуска, имитированного отжига и генетических алгоритмов. Некоторые варианты осуществления затем повторяют этапы 222-230 до тех пор, пока не будет удовлетворено условие завершения, например, пока средняя ошибка прогнозирования по корпусу 18 событий не упадет ниже заранее определенного порога. В другом варианте осуществления обучение продолжается в течение заранее определенного количества времени или заранее определенного количества итераций. Специалисту понятно, что последовательность этапов, показанная на фиг.9, в равной степени подходит для варианта осуществления мультимножества слов (фиг.8-B) с небольшими изменениями.[0063] An exemplary sequence of steps implementing event encoder training is illustrated in FIG. At
[0064] В ответ на обучение кодера событий, как указано выше, некоторые варианты осуществления дополнительно преобразуют сгенерированное пространство внедрения, чтобы уменьшить его размерность. Данная операция может содержать любой алгоритм уменьшения размерности данных, например анализ главных компонентов (PCA) или разложение по сингулярным значениям (SVD).[0064] In response to training the event encoder as above, some embodiments further transform the generated embedding space to reduce its dimension. This operation can contain any data dimensionality reduction algorithm such as Principal Component Analysis (PCA) or Singular Value Decomposition (SVD).
[0065] После обучения и опционального уменьшения размерности (этап 208 на фиг. 7) кодер 70 событий может представлять каждое событие как вектор в многомерном пространстве внедрения контекстов событий, при этом два события, которые часто происходят в одном и том же контексте события, занимают аналогичные положения. Иначе говоря, два таких события разделены в пространстве внедрения на расстояние, меньшее, чем расстояние между двумя событиями, которые происходят преимущественно в разных контекстах.[0065] After training and optional dimensionality reduction (
[0066] Возвращаясь к компонентам механизма 60 профилирования (фиг.6), механизм 74 кластеризации событий конфигурирован для организации векторов событий, созданных обученным кодером 70 событий и представляющих элементы обучающего корпуса 18, в кластеры в соответствии с положением каждого вектора событий, внутри пространства для встраивания (см. также этап 207 на фиг. 7). В некоторых вариантах осуществления кластер содержит множество событий, которые относительно близко расположены друг к другу в пространстве внедрения или, иначе говоря, множество событий, характеризующихся относительно небольшим расстоянием между событиями в пространстве внедрения. В альтернативном варианте осуществления кластер состоит из событий, которые занимают специфичную для кластера область пространства внедрения. Такие области могут быть взаимоисключающими или частично перекрываться. Фиг.10 иллюстрирует примерное пространство внедрения и набор кластеров 80a-b событий согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированные оси могут содержать, например, первый и второй главные компоненты проиллюстрированных векторов событий (векторы 28g-h-k). В варианте осуществления, использующем пространство внедрения контекстов событий, кластер может выборочно содержать события, которые происходят в основном в аналогичном контексте событий. Кроме того, один и тот же кластер может включать в себя события, происходящие в различных клиентских системах и/или представляющие активность различных пользователей.[0066] Returning to the components of the profiling engine 60 (FIG. 6), the event clustering engine 74 is configured to organize the event vectors generated by the trained
[0067] Для построения кластеров событий механизм 60 профилирования может использовать любой алгоритм кластеризации данных, известный в данной области техники, например вариант алгоритма k-средних. В другом примерном варианте осуществления можно обучить набор перцептронов разделять пространство внедрения на отдельные области и назначить векторы событий, расположенные в каждой области, отдельному кластеру событий. Количество кластеров и/или областей может быть определено заранее (например, согласно подсчету защищенных клиентских систем и/или отслеживаемых типов событий) или может быть определено динамически самим алгоритмом кластеризации. Результат кластеризации событий содержит набор параметров 54 кластера событий (фиг. 6), которые могут включать в себя для каждого кластера координаты центроида кластера и меру протяженности кластера, например диаметр и/или эксцентриситет. Другие примерные параметры 54 кластера могут включать, среди прочего, список членов соответствующего кластера и выбранного члена соответствующего кластера, рассматриваемого как репрезентативный/архетипический для соответствующего кластера. Параметры кластера могут быть переданы клиентскому механизму 74 кластеризации.[0067] The
[0068] Клиентский механизм 74 кластеризации (фиг. 6) конфигурирован для определения набора клиентских профилей в соответствии с кластерами событий, вычисленными механизмом 72 кластеризации событий. Такие клиентские профили показаны на фиг.11. В некоторых вариантах осуществления каждый клиентский профиль содержит выбранный поднабор (кластер) защищенных клиентских систем 10a-h. Некоторые клиентские профили могут включать несколько клиентских кластеров. В некоторых вариантах осуществления клиентский профиль может содержать архетип профиля, который может быть фактическим членом соответствующего кластера клиентов, или вымышленной клиентской системой, характеризующейся определенным положением в пространстве профиля. Например, архетип профиля может содержать центроид клиентского кластера, определяемого клиентским механизмом 74 кластеризации.[0068] The client clustering engine 74 (FIG. 6) is configured to define a set of client profiles in accordance with the event clusters computed by the
[0069] Для вычисления клиентских профилей некоторые варианты осуществления клиентского механизма 74 кластеризации назначают клиентские системы 10a-h кластерам в соответствии с профилем событий, указывающим типичное распределение событий, происходящих в соответствующих клиентских системах. В одном примерном варианте осуществления профиль события клиентской системы содержит вектор чисел, каждое из которых определяется в соответствии с подсчетом событий, происходящих в соответствующей клиентской системе и принадлежащих отдельному кластеру событий, ранее определенному механизмом 72 кластеризации событий. В примере, проиллюстрированном на фиг.12, каждый компонент профиля события определяется в соответствии с мерой принадлежности кластеру, показывающей долю событий, принадлежащих соответствующему кластеру Q событий, определяемому как долю от общего количества событий, доступных от соответствующей клиентской системы. Например, когда механизм 72 кластеризации событий идентифицировал три кластера событий C1, C2 и C3, вектор профиля события [0,1, 0,75, 0,15] может представлять клиентскую систему, в которой 10% событий, происходящих в соответствующей клиентской системе, принадлежат кластеру C1 события, при этом 75% событий принадлежат кластеру C2 события, а 15% событий принадлежат кластеру C3 события.[0069] To calculate client profiles, some embodiments of the client clustering engine 74 assign
[0070] В примерном варианте осуществления с фиг. 11 каждая клиентская система представлена в многомерном пространстве профиля согласно соответствующему профилю события. Иначе говоря, каждая координата клиентской системы представляет собой компонент профиля события соответствующего клиента. Фиг.11 иллюстрирует три примерных клиентских кластера/профиля 82a-c. Квалифицированный специалист может использовать любой метод, известный в области машинного обучения или интеллектуального анализа данных, для построения таких профилей; примерные методы включают в себя, среди прочего, варианты алгоритма кластеризации k-средних и нейронные сети. Альтернативные варианты осуществления могут использовать другие критерии назначения клиентской системы кластеру или использовать такие критерии в дополнение к профилю события соответствующего клиента. Примерные дополнительные критерии кластеризации клиентов включают, среди прочего, владельца и/или пользователя соответствующей клиентской системы, сетевой адрес соответствующей клиентской системы, тип устройства соответствующей клиентской системы и т. д. Например, клиенты, принадлежащие к одному семейству, одной корпорации или одному сетевому домену, могут быть сгруппированы в один кластер.[0070] In the exemplary embodiment of FIG. 11, each client system is represented in a multi-dimensional profile space according to a respective event profile. In other words, each client system coordinate is a component of the event profile of the corresponding client. 11 illustrates three exemplary client clusters/
[0071] После кластеризации клиентов механизм 60 профилирования может сохранять параметры кластера, такие как список клиентских систем, назначенных каждому кластеру/профилю, координаты архетипов кластера (например, центроидов), диаметры кластера и т.д., в базу данных 19 профилей.[0071] After client clustering, the
[0072] Фиг.13 иллюстрирует примерные компоненты и работу детектора 62 аномалий согласно некоторым вариантам осуществления настоящего изобретения (см. также Фиг.5). Детектор 62 аномалий конфигурирован для приема потока 24 событий, содержащего индикаторы событий, указывающих на события, происходящие в различных клиентских системах, и в ответ на вывод метки 88 безопасности, указывающей, указывают ли соответствующие события на угрозу безопасности, такую как вторжение или выполнение вредоносное ПО. В некоторых вариантах осуществления детектор 62 аномалий содержит диспетчер 84 профилей, конфигурированный, в ответ на получение уведомления о событии, указывающего на событие, происходящее в защищенной клиентской системе, для выбора клиентского профиля согласно соответствующему событию. Диспетчер 84 профилей дополнительно связан с моделью 86 поведения, конфигурированной для определения, соответствует ли соответствующее событие шаблону нормального/базового поведения, представленному соответствующим профилем. Если нет, соответствующее событие может рассматриваться как аномалия, что указывает на возможную атаку на соответствующую клиентскую систему.[0072] FIG. 13 illustrates exemplary components and operation of an
[0073] При подготовке к выполнению детектирования аномалий, как указано ниже, некоторые варианты осуществления детектора 62 аномалий сначала обучаются на корпусе событий с использованием выходных данных механизма 60 профилирования. Одной из целей обучения детектора 62 аномалий является определение нормального/базового поведения пользователя для каждого клиентского профиля, идентифицированного механизмом 60 профилирования. Обучение включает настройку набора параметров модели 86 поведения до тех пор, пока не будет удовлетворен критерий завершения. Корпус событий, используемый для обучения детектора 62 аномалий, может отличаться от обучающего корпуса 18, используемого для обучения компонентов механизма 60 профилирования.[0073] In preparation for performing anomaly detection as indicated below, some embodiments of the
[0074] Фиг. 14 иллюстрирует примерную последовательность этапов, выполняемых детектором 62 аномалий во время процедуры обучения согласно некоторым вариантам осуществления настоящего изобретения. В ответ на механизм 60 аномалий, создающий набор клиентских профилей, на этапе 242 выбирается один такой клиентский профиль из базы данных 19 профилей. В некоторых вариантах осуществления каждый такой клиентский профиль содержит набор клиентских кластеров, например кластер 82a на фиг. 11. Каждый клиентский кластер дополнительно включает в себя выбранный поднабор защищенных клиентских систем. На этапе 244 можно выбрать обучающий набор событий, зарегистрированных как происходящие в любой клиентской системе, связанной с соответствующим профилем/кластером. В некоторых вариантах осуществления этап 244 может содержать выбор обучающего набора событий из обучающего корпуса 18, уже использованного для построения клиентских профилей, как показано выше. Дальнейший этап 246 может использовать соответствующий обучающий набор событий в качестве обучающего корпуса для обучения модели 86 поведения.[0074] FIG. 14 illustrates an exemplary sequence of steps performed by an
[0075] В некоторых вариантах осуществления модель 86 поведения содержит компоненты, которые аналогичны по структуре и функциям некоторым компонентам механизма 60 профилирования. Например, некоторые варианты осуществления модели 86 включают в себя пару кодер-декодер, как показано на фиг.15, которая может быть построена с использованием технологии нейронных сетей и обучена в соответствии с членом семейства алгоритмов word2vec (см. описание выше в отношении фиг. 8-AB). Модель 86 поведения при обучении может затем сводиться к настройке параметров кодера 70c и/или декодера 76c (например, набора весов синапсов) с целью представления каждого события из соответствующего клиентского кластера/профиля как вектор в пространстве внедрения событий. В предпочтительном варианте осуществления кодер 70c анализирует каждое событие в контексте последовательности событий и генерирует пространство внедрения, в котором события, которые происходят преимущественно в аналогичных контекстах, разделены меньшим расстоянием по сравнению с событиями, которые происходят в других контекстах. Однако пространство внедрения событий (т. е. значение осей, размер расстояний между событиями и т. д.), полученное в результате обучающего кодера 70c, может существенно отличаться от пространства внедрения события, полученного из обучающего кодера 70 событий, поскольку обучающие корпуса, используемые для двух кодеров, различны.[0075] In some embodiments, the implementation of the
[0076] В предпочтительном варианте осуществления этап 246 включает обучение пары кодер-декодер с использованием версии алгоритма мультимножества слов (см. фиг. 8-B). В одном таком примере пара кодер-декодер (фиг. 15) конфигурирована для приема множества событий E-k,…E-1, E1... Ep, представляющих контекст события текущей анализируемой последовательности событий, и для создания N-мерного вектора 90 оценок прогнозирования, в котором каждый элемент связан с отдельным типом события, причем каждый элемент представляет вероятность того, что центральное событие соответствующей последовательности событий относится к соответствующему типу события. Например, более высокое значение оценки может указывать на то, что соответствующий тип события с большей вероятностью произойдет как центральное событие соответствующей последовательности событий, чем другие типы событий, имеющие более низкие оценки. В таких вариантах осуществления примерное обучение модели 86 может включать выбор последовательностей событий из поднабора событий, идентифицированных на этапе 244 (фиг.14), ввод контекста события соответствующей последовательности в кодер 70c, исполнение декодера 76c для создания прогноза для центрального события Eo соответствующей последовательности событий и наказание за неправильные прогнозирования путем обратного распространения ошибки прогнозирования через нейронные сети, которые образуют кодер 70c и/или декодер 76c. В ответ на успешное обучение на этапе 248 можно сохранить значения параметров обученной модели поведения. Процедура обучения может повторяться для каждого клиентского профиля, идентифицированного механизмом 60 профилирования.[0076] In the preferred embodiment,
[0077] Фиг. 16 иллюстрирует примерную последовательность шагов, выполняемых детектором 62 аномалий для защиты целевой клиентской системы (например, клиентов 10a-h на фиг. 1) от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Целевая клиентская система может быть или не быть членом поднабора клиентов, обеспечивающих обучающий корпус событий, которые производят модели поведения и/или клиентские профили, как указано выше. Для защиты целевой клиентской системы события могут детектироваться в целевой клиентской системе и/или других устройствах, таких как маршрутизаторы 15a-b (см. фиг. 1), и могут передаваться на сервер 16 безопасности в виде индикаторов событий. Такие индикаторы событий могут быть затем предварительно обработаны в соответствии с их источником, типом события, временем, настройками учетной записи службы и т. д. и организованы в виде потока 24 событий. События могут обрабатываться индивидуально или группами. В ответ на прием индикатора события от целевой клиентской системы на этапе 254 детектор 62 аномалии может собрать последовательность событий для анализа согласно соответствующему индикатору события. Этап 254 может включать в себя идентификацию источника события (т.е. клиентской системы, в которой произошло соответствующее событие), выбор из потока 24 событий множества других событий для формирования последовательности событий. В некоторых вариантах осуществления члены последовательности выбираются таким образом, чтобы все они происходили из одной и той же целевой клиентской системы. В другом примере все члены последовательности должны находиться в заранее определенном поднаборе клиентских систем, например, в сетевом субдомене или общем IP-адресе. Выбранные события также могут быть упорядочены в соответствии с их временем возникновения и/или обнаружения, например, с использованием метки времени, предоставленной с индикатором входящего события. Последовательность событий может быть дополнительно разделена на части, например, идентифицирующие центральное событие и контекст события (см., например, фиг. 8-A).[0077] FIG. 16 illustrates an exemplary sequence of steps taken by an
[0078] На этапе 256 диспетчер 84 профилей может выбрать клиентский профиль согласно соответствующему индикатору события, например, согласно идентификатору целевой клиентской системы, в которой произошло соответствующее событие. Когда соответствующая целевая клиентская система предоставила обучающие мероприятия для разработки клиентских профилей и/или для обучения моделей поведения, этап 256 может включать выбор клиентского профиля/кластера, имеющего соответствующую целевую клиентскую систему в качестве члена. Также могут использоваться другие критерии выбора профиля. Например, этап 256 может содержать выбор клиентского профиля в соответствии с положением целевой клиентской системы в пространстве клиентского профиля (см. фиг.11), например, путем сравнения положения целевой клиентской системы с набором архетипов кластера или центроида и выбора кластера/профиля, центроид которого ближе всего к целевой клиентской системе. В одном таком примере клиентский профиль может быть выбран в соответствии с профилем события, определенным для целевой клиентской системы (например, в соответствии с подсчетом событий, полученных от целевой клиентской системы, которые вписываются в конкретную категорию/кластер событий). Другие критерии выбора клиентского профиля могут включать в себя выбор клиентского профиля в соответствии с сетевым адресом целевой клиентской системы (например, выбор клиентского профиля, содержащего клиентов, имеющих тот же IP-адрес, что и у целевой клиентской системы), для владельца/пользователя целевой клиентской системы (например, выбор профиля, содержащего члены той же семьи, что и целевая клиентская система) и т. д. [0078] At
[0079] На дополнительном этапе 258 детектор аномалий может создать экземпляр модели 86 поведения со значениями параметров, специфичными для соответствующего выбранного клиентского профиля. В некоторых вариантах осуществления после создания экземпляра, зависящего от профиля, выполнение модели 86 (этап 260) содержит проецирование событий соответствующей последовательности событий в пространство внедрения событий, связанное с соответствующим клиентским профилем.[0079] In an
[0080] На этапе 262 теперь можно определить, являются ли событие(я) соответствующей последовательности событий представлением нормального/базового поведения пользователя, связанного с соответствующим клиентским профилем, или нет. В одном варианте осуществления этап 260 включает подачу контекста события (£), i) 0) соответствующей последовательности в модель 86 поведения и вычисление вектора 90 оценок прогнозирования соответствующей последовательности. Затем этап 262 может включать идентификацию элемента вектора 90, соответствующего типу события фактического центрального события Eo последовательности, и сравнение соответствующей оценки с заранее определенным порогом (например, 0,95). В некоторых вариантах осуществления значение оценки ниже порогового значения указывает, что соответствующее событие Eo, по существу, маловероятно, что произойдет в соответствующем контексте события, и, следовательно, указывает на аномалию, совместимую с потенциальной угрозой компьютерной безопасности. В некоторых вариантах осуществления пользователь или администратор сервера 16 безопасности может настраивать чувствительность метода, регулируя значение порога. В одном из таких примеров разные пороговые значения связаны с разными группами клиентских систем.[0080] At
[0081] В альтернативном варианте осуществления этап 260 может включать использование модели 86 для определения представления события £) последовательности в пространстве внедрения событий, специфичном для соответствующего клиентского профиля. Этап 262 может включать определение того, соответствует ли событие Ei шаблону нормального поведения для соответствующего клиентского профиля в соответствии с положением соответствующего события в пространстве внедрения. Например, событие может считаться нормальным, когда оно расположено в обучающем кластере событий (например, ближе к центроиду кластера, чем заранее определенный порог). В другом примере событие может считаться нормальным/благоприятным, если оно находится в определенных областях пространства внедрения, и аномальным, если оно находится в других регионах.[0081] In an alternative embodiment, step 260 may include using the
[0082] Когда событие последовательности (например, Eo) считается аномалией или, другими словами, не соответствует шаблону нормальности, установленному посредством обучения для соответствующего клиентского профиля, этап 264 может пометить соответствующее событие для дальнейшего анализа. В некоторых вариантах осуществления аномалия может инициировать передачу предупреждения о безопасности диспетчером 64 предупреждений сервера 16 безопасности (см. фиг. 5). Предупреждения системы безопасности могут поступать в клиентскую систему, где произошло аномальное событие, и/или администратору соответствующей клиентской системы. Случаи аномальных событий также могут быть собраны и сообщены для дальнейшего анализа в лабораторию компьютерной безопасности.[0082] When a sequence event (eg, Eo) is considered an anomaly, or, in other words, does not match the pattern of normality established through training for the respective client profile, step 264 may flag the respective event for further analysis. In some embodiments, the anomaly may trigger the transmission of a security alert by the
[0083] Примерные системы и способы, описанные выше, позволяют эффективно обнаруживать угрозы компьютерной безопасности, такие как вредоносное программное обеспечение и вторжение. Раскрытые системы и способы реализуют поведенческий подход к компьютерной безопасности, в котором нормальное/базовое поведение пользователя автоматически выводится системой в соответствии с обучающим корпусом событий, и при этом отклонение от базовой модели поведения может указывать на угрозу.[0083] The exemplary systems and methods described above can effectively detect computer security threats such as malware and intrusion. The disclosed systems and methods implement a behavioral approach to computer security in which normal/basic user behavior is automatically inferred by the system according to a learning corpus of events, and where a deviation from the base behavior may indicate a threat.
[0084] Некоторые варианты осуществления детектируют различные события, происходящие во множестве клиентских систем, например компьютерах, мобильных телефонах, сетевых устройствах и виртуальных машинах. Примеры событий включают запуск определенных процессов, попытки доступа к определенным файлам или сетевым местоположениям, а также события сетевого трафика, такие как доступ к определенным портам и адресам, среди прочего. Квалифицированному специалисту понятно, что описанные здесь системы и способы могут быть адаптированы к другим видам событий, таким как события, связанные, среди прочего, с активностью пользователя в социальных сетях, историей просмотра пользователем и игровой активностью пользователя. Уведомления о событиях собираются на сервере безопасности. Набор таких событий может использоваться в качестве обучающего корпуса для создания набора клиентских профилей, при этом каждый клиентский профиль может представлять одного пользователя, одну машину или множество пользователей/машин. В некоторых вариантах осуществления каждый клиентский профиль содержит поднабор клиентских систем и/или поднабор событий, которые произошли в соответствующих поднаборах клиентских систем. Каждый клиентский профиль может представлять нормальный и/или благоприятный образец использования соответствующих клиентских систем. Такие клиентские профили затем могут использоваться для детектирования случаев аномального поведения, которые могут указывать на угрозу компьютерной безопасности.[0084] Some embodiments detect various events occurring on multiple client systems, such as computers, mobile phones, network devices, and virtual machines. Examples of events include starting certain processes, attempts to access certain files or network locations, and network traffic events such as accessing certain ports and addresses, among others. The skilled artisan will appreciate that the systems and methods described herein may be adapted to other types of events, such as events related to a user's social media activity, a user's browsing history, and a user's gaming activity, among other things. Event notifications are collected on the security server. A set of such events can be used as a training corpus to create a set of client profiles, where each client profile can represent one user, one machine, or multiple users/machines. In some embodiments, each client profile contains a subset of client systems and/or a subset of events that have occurred on respective subsets of client systems. Each client profile may represent a normal and/or favorable usage pattern for the respective client systems. Such client profiles can then be used to detect instances of anomalous behavior that may indicate a computer security threat.
[0085] Некоторые традиционные системы компьютерной безопасности работают соответствии с набором правил, которые количественно определяют поведение, указывающее на злой умысел. Поскольку разработчики обычно заинтересованы в предоставлении таких решений широкому кругу клиентов, правила поведения обычно носят общий характер и не предназначены для конкретных пользователей. Однако на практике пользователи очень разнородны. Даже в пределах одной компании или одной семьи способы использования компьютера каждым участником могут существенно различаться. Набор действий, который может считаться нормальным для разработчика программного обеспечения или инженера, может быть очень необычным при детектировании на компьютере в бухгалтерии. Более того, один и тот же пользователь может существенно отличаться в поведении дома на работе. Следовательно, общие правила поведения могут не отражать разнообразие и специфику реальных пользователей. В отличие от таких традиционных систем, в некоторых вариантах осуществления настоящего изобретения события, происходящие в каждой клиентской системе, просматриваются и анализируются выборочно по модели, фиксирующей нормальное/базовое поведение самой соответствующей клиентской системы и/или похожих клиентов. Иначе говоря, границы поведенческой «нормальности» могут быть определены с существенной специфичностью: конкретный клиентский компьютер, определенная группа пользователей (например, конкретный отдел компании, члены семьи, определенная возрастная группа) и т. д.[0085] Some conventional computer security systems operate according to a set of rules that quantify behavior indicative of malicious intent. Since developers are usually interested in providing such solutions to a wide range of customers, the rules of conduct are usually general and not intended for specific users. In practice, however, users are very heterogeneous. Even within the same company or family, the way each member uses a computer can vary greatly. A set of activities that may be considered normal for a software developer or engineer may be very unusual when detected on a computer in an accounting department. Moreover, the same user can significantly differ in the behavior at home at work. Therefore, general rules of conduct may not reflect the diversity and specificity of real users. Unlike such conventional systems, in some embodiments of the present invention, the events occurring in each client system are viewed and analyzed selectively against a model that captures the normal/basic behavior of the respective client system itself and/or similar clients. In other words, the boundaries of behavioral "normality" can be defined with significant specificity: a specific client computer, a specific group of users (for example, a specific department of a company, family members, a specific age group), etc.
[0086] Из-за распространения программного обеспечения и использования Интернета попытка разработать высокоспецифические профили поведения, например профили, прикрепленные к каждому отдельному пользователю, может потребовать необоснованных вычислительных ресурсов и, следовательно, может быть непрактичной. Кроме того, сбор событий от отдельных пользователей/машин может не предоставить достаточно данных для разработки статистически надежных моделей поведения. В отличие от этого подхода, некоторые варианты осуществления настоящего изобретения группируют множество пользователей и/или машин в один клиентский профиль, таким образом обеспечивая полезный компромисс между специфичностью, надежностью и вычислительными затратами. Кроме того, способ, которым пользователи и машины группируются в профили, сам по себе основан на поведенческих критериях, чтобы гарантировать, что такое группирование сохраняет специфичность. В некоторых вариантах осуществления каждый клиентский профиль группирует вместе пользователей/машины, которые имеют по существу аналогичные профили событий. Иначе говоря, все члены клиентского профиля демонстрируют аналогичное базовое поведение с точки зрения статистики событий, происходящих на машинах-членах.[0086] Due to the proliferation of software and the use of the Internet, attempting to develop highly specific behavior profiles, such as profiles attached to each individual user, may require unreasonable computing resources and, therefore, may not be practical. Also, collecting events from individual users/machines may not provide enough data to develop statistically robust behaviors. In contrast to this approach, some embodiments of the present invention group multiple users and/or machines into a single client profile, thus providing a useful trade-off between specificity, reliability, and computational cost. Also, the way in which users and machines are grouped into profiles is itself based on behavioral criteria to ensure that such grouping retains specificity. In some embodiments, each client profile groups together users/machines that have substantially similar event profiles. In other words, all members of a client profile exhibit similar basic behavior in terms of statistics of events occurring on member machines.
[0087] Некоторые традиционные системы и способы компьютерной безопасности в основном анализируют отдельные события. Многие события, происходящие во время работы компьютерной системы (например, открытие файла, доступ к веб-странице), могут не указывать на злой умысел, если их рассматривать изолированно. Однако они могут быть злонамеренными, когда происходят в контексте других событий, например, как конкретная последовательность действий. В отличие от более традиционных решений, некоторые варианты осуществления настоящего изобретения явно анализируют события в контексте и поэтому лучше подходят для таких ситуаций корреляции событий. В предпочтительном варианте осуществления отдельные события представлены в виде векторов в многомерном пространстве внедрения, имеющем отличительное свойство, заключающееся в том, что пара событий, которые происходят с относительно высокой частотой в одном и том же контексте событий, разделены меньшим расстоянием, чем другая пара событий, которые происходят реже в том же контексте события.[0087] Some conventional computer security systems and methods primarily analyze individual events. Many events that occur during the operation of a computer system (eg, opening a file, accessing a web page) may not indicate malicious intent when viewed in isolation. However, they can be malicious when they occur in the context of other events, such as a specific sequence of actions. Unlike more traditional solutions, some embodiments of the present invention explicitly parse events in context and are therefore better suited to such event correlation situations. In a preferred embodiment, the individual events are represented as vectors in a multidimensional embedding space having the distinctive property that a pair of events that occur at a relatively high frequency in the same event context are separated by less distance than another pair of events, that occur less frequently in the same event context.
[0088] Успешное моделирование поведения может потребовать детектирования большого количества (например, сотен или тысяч) различных типов событий, но не все типы событий могут быть одинаково важны при моделировании поведения. Сбор и анализ статистических данных о стольких типах событий, полученных из большого количества источников, может оказаться непрактичным. Для решения этой проблемы некоторые варианты осуществления группируют события в категории или кластеры событий в соответствии со степенью сходства между событиями, таким образом создавая более надежную и/или релевантную статистику. Такое существенное уменьшение размерности может существенно облегчить построение клиентских профилей. Сходство событий может быть определено согласно нескольким критериям, например, согласно расстоянию, разделяющему два события в пространстве внедрения событий. В предпочтительном варианте осуществления два события могут считаться подобными, если они происходят преимущественно в одном и том же контексте (например, события A и B считаются подобными, если как A, так и B часто предшествует событие X, и/или за ним следует событие Y, т. е. как в примерных последовательностях XAY и XBY).[0088] Successful behavior modeling may require the detection of a large number (eg, hundreds or thousands) of different event types, but not all event types may be equally important in behavior modeling. Collecting and analyzing statistics on so many types of events from a large number of sources may not be practical. To solve this problem, some embodiments group events into categories or clusters of events according to the degree of similarity between events, thus generating more reliable and/or relevant statistics. Such a significant reduction in dimension can greatly facilitate the construction of client profiles. Event similarity can be determined according to several criteria, such as the distance separating two events in the event embedding space. In a preferred embodiment, two events may be considered similar if they occur predominantly in the same context (e.g., events A and B are considered similar if both A and B are frequently preceded by event X and/or followed by event Y , i.e., as in the exemplary XAY and XBY sequences).
[0089] Фиг. 17-A-B иллюстрируют эксперимент по применению некоторых систем и способов, описанных выше, для обнаружения угроз компьютерной безопасности. Корпус событий, собранных от множества отслеживаемых клиентов, использовался для обучения компонентов механизма профилирования, как указано выше, в результате чего отслеживаемые клиенты были разделены на 11 клиентских кластеров/профилей. События были разделены на категории событий в соответствии с представлением каждого события в 15-мерном пространстве внедрения. Модели поведения, специфичные для профиля, были разработаны для каждого из соответствующих клиентских кластеров. Затем на тестовой машине была проведена атака определенного типа. Последовательности событий, собранные с испытательной машины, подавались на детектор аномалий, экземпляр которого, в свою очередь, имел параметры, специфичные для каждой из моделей поведения. Некоторые такие последовательности событий были обнаружены как аномалии.[0089] FIG. 17-A-B illustrate an experiment using some of the systems and methods described above to detect computer security threats. A corpus of events collected from multiple monitored clients was used to train profiling engine components as above, resulting in the monitored clients being divided into 11 client clusters/profiles. Events were divided into event categories according to the representation of each event in a 15-dimensional embedding space. Profile-specific behaviors have been developed for each of the respective client clusters. Then a certain type of attack was carried out on the test machine. The sequences of events collected from the testing machine were fed to the anomaly detector, which in turn had parameters specific to each of the behaviors. Some such sequences of events have been found to be anomalies.
[0090] Фиг. 17-A иллюстрирует оценки аномалий, специфичных для кластера, представленные по шкале, где оценка 1 указывает на 100% достоверность аномалии (например, по меньшей мере одно событие последовательности событий, полученное от тестовой машины, не было видно на тренировках). На графике представлены значения баллов, усредненные по последовательностям аномальных событий, и соответствующие стандартные отклонения. На чертеже показано, что одна и та же последовательность(и) может считаться аномалией с уровнем достоверности, зависящим от кластера. Другими словами, одни и те же последовательности событий считаются «менее аномальными» для одних клиентов, чем для других. Например, модели поведения, связанные с кластерами 1, 2 и 7, не только детектируют атаку относительно более эффективно, чем другие модели, но и все последовательности событий, связанные с атаками, считаются «одинаково аномальными». Напротив, модели, связанные с кластерами 0 и 9, указывают некоторые последовательности событий одной и той же атаки как «менее аномальные», чем другие.[0090] FIG. 17-A illustrates cluster-specific anomaly scores presented on a scale, where a score of 1 indicates 100% certainty of the anomaly (eg, at least one sequence of events received from the test machine was not seen in training). The graph shows the scores averaged over the sequences of anomalous events and the corresponding standard deviations. The drawing shows that the same sequence(s) can be considered an anomaly with a level of confidence depending on the cluster. In other words, the same sequences of events are considered "less anomalous" for some clients than for others. For example, the behaviors associated with
[0091] Фиг. 17-B иллюстрирует специфичные для профиля средние уровни детектирования, достигнутые для трех различных типов атак. Последовательности событий, собранные с тестовой машины во время каждого типа атаки, были проанализированы с использованием каждой из 11 обученных моделей поведения, специфичных для профиля. Скорость детектирования различается в зависимости от моделей и типов атак, что дополнительно свидетельствует об особенностях некоторых систем и способов, описанных в данном документе.[0091] FIG. 17-B illustrates profile-specific average detection levels achieved for three different attack types. Event sequences collected from the test machine during each type of attack were analyzed using each of 11 trained profile-specific behaviors. The detection rate varies depending on the models and types of attacks, which additionally indicates the features of some of the systems and methods described in this document.
[0092] Такие экспериментальные результаты указывают на другое потенциальное применение некоторых вариантов осуществления настоящего изобретения. Централизованное решение компьютерной безопасности может выборочно разрабатывать стратегии защиты для каждого набора клиентов, идентифицированных клиентским профилем, и/или для других клиентов, которые имеют сходство с архетипом каждого клиентского кластера. Некоторые варианты осуществления могут идентифицировать клиентские кластеры, для которых описанные здесь способы предлагают удовлетворительную степень безопасности, и другие клиентские кластеры, которые требуют дополнительных мер безопасности. Настройка защиты для каждого клиентского кластера может улучшить взаимодействие с пользователем и сократить ненужные вычислительные затраты.[0092] Such experimental results point to other potential applications of some embodiments of the present invention. The centralized computer security solution may selectively develop security strategies for each set of clients identified by the client profile and/or for other clients that are similar to the archetype of each client cluster. Some embodiments may identify client clusters for which the methods described herein offer a satisfactory degree of security and other client clusters that require additional security measures. Setting up security for each client cluster can improve the user experience and reduce unnecessary computational overhead.
[0093] Специалисту в данной области техники понятно, что вышеупомянутые варианты осуществления могут быть различным образом изменены, без выхода при этом за рамки объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.[0093] Those skilled in the art will appreciate that the above embodiments may be varied in various ways without departing from the scope of the present invention. Accordingly, the scope of legal protection of the present invention is defined by the following claims and their legal equivalents.
Claims (72)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/215,251 | 2018-12-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2778630C1 true RU2778630C1 (en) | 2022-08-22 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2316821C2 (en) * | 2005-07-05 | 2008-02-10 | Нортроп Граман Корпорейшн | Method for automatic asymmetric detection of threat with usage of reverse direction tracking and behavioral analysis |
US20130097706A1 (en) * | 2011-09-16 | 2013-04-18 | Veracode, Inc. | Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security |
RU2522019C1 (en) * | 2012-12-25 | 2014-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of detecting threat in code executed by virtual machine |
US20140215618A1 (en) * | 2013-01-25 | 2014-07-31 | Cybereason Inc | Method and apparatus for computer intrusion detection |
US20180004961A1 (en) * | 2014-10-06 | 2018-01-04 | Exabeam, Inc. | System, method, and computer program product for detecting and assessing security risks in a network |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2316821C2 (en) * | 2005-07-05 | 2008-02-10 | Нортроп Граман Корпорейшн | Method for automatic asymmetric detection of threat with usage of reverse direction tracking and behavioral analysis |
US20130097706A1 (en) * | 2011-09-16 | 2013-04-18 | Veracode, Inc. | Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security |
RU2522019C1 (en) * | 2012-12-25 | 2014-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of detecting threat in code executed by virtual machine |
US20140215618A1 (en) * | 2013-01-25 | 2014-07-31 | Cybereason Inc | Method and apparatus for computer intrusion detection |
US20180004961A1 (en) * | 2014-10-06 | 2018-01-04 | Exabeam, Inc. | System, method, and computer program product for detecting and assessing security risks in a network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3895046B1 (en) | Systems and methods for behavioral threat detectiion | |
AU2019400060B2 (en) | Systems and methods for behavioral threat detection | |
RU2778630C1 (en) | Systems and methods for detecting behavioural threats | |
RU2772549C1 (en) | Systems and methods for detecting behavioural threats | |
RU2803399C2 (en) | Systems and methods for detecting behavioural threats | |
AU2019398651B2 (en) | Systems and methods for behavioral threat detection | |
US11973774B2 (en) | Multi-stage anomaly detection for process chains in multi-host environments | |
US20210273958A1 (en) | Multi-stage anomaly detection for process chains in multi-host environments | |
Tao et al. | A Behavior Sequence Clustering-Based Enterprise Network Anomaly Host Recognition Method |