УРОВЕНЬ ТЕХНИКИ
[0001] Изобретение относится к системам и способам компьютерной безопасности, в частности к системам и способам детектирования вредоносного программного обеспечения и/или проникновения в компьютерную систему и/или сеть связи.
[0002] В последние годы компьютерная и сетевая безопасность становятся все более важными как для частных лиц, так и для компаний. Быстрое развитие технологий электронной связи, растущая зависимость от программного обеспечения в повседневной деятельности и появление Интернета вещей сделали компании и отдельных лиц уязвимыми для потери конфиденциальности и кражи данных.
[0003] Опытный злоумышленник может попытаться проникнуть в корпоративную сеть, используя различные методы, например, используя бэкдор, установленный на корпоративном компьютере вредоносным программным обеспечением. Затем злоумышленник может получить доступ, изменить или уничтожить конфиденциальную информацию. Другие примерные атаки включают, среди прочего, отключение или иным образом вывод из строя систем физической безопасности (например, охранную сигнализацию), установку шпионского программного обеспечения и вмешательство в автоматизированные системы, которые контролируют производство или распространение товаров и услуг (например, энергосистему).
[0004] Программное обеспечение, исполняемое в компьютерной системе, может использоваться для автоматического детектирования и/или предотвращения несанкционированного вторжения и других злонамеренных действий. Такое программное обеспечение, обычно известное как система детектирования вторжений (IDS), может отслеживать активность сети и/или компьютера на предмет необычных событий или нарушений порядка. Типичная IDS записывает информацию, относящуюся к наблюдаемым событиям, уведомляет пользователя или сетевого администратора и создает отчеты. Некоторые IDS могут пойти дальше, чтобы предотвратить выполнение злоумышленником злонамеренных действий, например, путем изменения настроек безопасности (например, перенастройки брандмауэра) в ответ на детектирование вторжения.
[0005] Однако по мере того, как программные услуги постепенно становятся популярней, а объем данных, передаваемых по информационным сетям, увеличивается, для программного обеспечения безопасности становится все более непрактичным просеивать данный огромный объем информации на предмет индикаторов злонамеренной активности.
Следовательно, существует значительный интерес к разработке более надежных и масштабируемых систем и способов детектирования вторжений.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0006] Согласно одному аспекту серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на прием индикации, выбирать значение параметра из множества значений параметра в соответствии с целевой клиентской системой, и создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. По меньшей мере один аппаратный процессор также конфигурирован, чтобы в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется согласно обучающему корпусу событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.
[0007] Согласно другому аспекту реализуемый компьютером способ включает, в ответ на получение индикации происшествия целевого события на целевой клиентской системе, использование по меньшей мере одного аппаратного процессора компьютерной системы для сборки последовательности событий, включающей целевое событие, при этом все события последовательности событий произошли на целевой клиентской системе, причем члены последовательности событий расположены в соответствии с временем происшествия каждого события последовательности событий. Способ также включает, в ответ на прием индикации, использование по меньшей мере одного процессора компьютерной системы для выбора значения параметра из множества значений параметров в соответствии с целевой клиентской системой. Способ также включает, в ответ на выбор значений параметров набора, использование по меньшей мере одного аппаратного процессора компьютерной системы для создания экземпляра модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создания индикатора прогнозирования, указывающего вероятность того, что последовательность событий включает целевое событие. Способ также включает, в ответ на создание экземпляра модели поведения, использование по меньшей мере одного аппаратного процессора компьютерной системы для определения, указывает ли целевое событие на угрозу компьютерной безопасности, в соответствии с индикатором прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор происходит на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметра в соответствии с целевым кластером.
[0008] Согласно другому аспекту невременный машиночитаемый носитель хранит инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему: в ответ на получение индикации происшествия целевого события на целевой клиентской системе, собирать последовательность событий, включающую целевое событие, причем все события последовательности событий произошли на целевой клиентской системе, при этом члены последовательности событий расположены в соответствии со временем происшествия каждого события в последовательности событий. Инструкции также побуждают компьютерную систему, в ответ на прием индикации, выбирать значение параметра из множества значений параметров в соответствии с целевой клиентской системой в ответ на выбор значения параметра, создавать экземпляр модели поведения со значением параметра, причем модель поведения конфигурирована для ввода выбранного события последовательности событий и, в ответ, создавать индикатор прогнозирования, указывающий вероятность того, что последовательность событий включает в себя целевое событие. Инструкции также побуждают компьютерную систему, в ответ на создание экземпляра модели поведения, определять, указывает ли целевое событие на угрозу компьютерной безопасности, согласно индикатору прогнозирования. Множество значений параметров определяется в соответствии с обучающим корпусом событий, произошедших на множестве клиентских систем, сгруппированных во множество клиентских кластеров. Каждое из множества значений параметров определяется в соответствии с отдельным поднабором обучающего корпуса, причем каждый отдельный поднабор возникает на членах отдельного кластера из множества клиентских кластеров. Выбор значения параметра включает выбор целевого кластера из множества клиентских кластеров в соответствии с целевой клиентской системой и выбор значения параметров в соответствии с целевым кластером.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0009] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения следующего ниже подробного описания, данного со ссылками на чертежи, на которых изображено следующее:
[0010] Фиг. 1 иллюстрирует несколько примерных взаимосвязанных клиентских систем, при этом сервер безопасности действует как система детектирования вторжений согласно некоторым вариантам осуществления настоящего изобретения.
[0011] Фиг.2 иллюстрирует примерный обмен данными, выполняемый для защиты клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0012] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0013] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0014] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в защищенной клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.
[0015] Фиг.5 иллюстрирует примерную программную архитектуру сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0016] Фиг.6 иллюстрирует примерную работу механизма профилирования согласно некоторым вариантам осуществления настоящего изобретения.
[0017] Фиг.7 иллюстрирует примерную последовательность шагов, выполняемых механизмом профилирования согласно некоторым вариантам осуществления настоящего изобретения.
[0018] Фиг.8-A иллюстрирует примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.
[0019] На Фиг.8-B показано альтернативное примерное обучение кодера событий согласно некоторым вариантам осуществления настоящего изобретения.
[0020] Фиг.9 иллюстрирует примерную последовательность шагов, выполняемых для обучения декодера событий в конфигурации с фиг.8-A.
[0021] Фиг.10 иллюстрирует примерное пространство внедрения событий и набор примерных кластеров событий согласно некоторым вариантам осуществления настоящего изобретения.
[0022] Фиг.11 иллюстрирует примерное пространство клиентского профиля и набор клиентских кластеров согласно некоторым вариантам осуществления настоящего изобретения.
[0023] Фиг.12 иллюстрирует примерный профиль события клиентской системы согласно некоторым вариантам осуществления настоящего изобретения.
[0024] Фиг.13 иллюстрирует примерные компоненты и работу детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.
[0025] Фиг.14 иллюстрирует примерную последовательность шагов, выполняемых детектором аномалий во время обучения, согласно некоторым вариантам осуществления настоящего изобретения.
[0026] Фиг.15 иллюстрирует примерные компоненты модели поведения, образующие часть детектора аномалий согласно некоторым вариантам осуществления настоящего изобретения.
[0027] Фиг.16 иллюстрирует примерную последовательность шагов, выполняемых обученным детектором аномалий согласно некоторым вариантам осуществления настоящего изобретения.
[0028] Фиг.17-A иллюстрирует результаты эксперимента, включающего использование некоторых вариантов осуществления настоящего изобретения для детектирования реальных угроз компьютерной безопасности.
[0029] Фиг.17-B иллюстрирует другие экспериментальные результаты использования некоторых вариантов осуществления для детектирования реальных угроз компьютерной безопасности.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0030] Следует понимать, что в нижеследующем описании все перечисленные соединения между структурами могут быть прямыми функциональными соединениями или непрямыми функциональными соединениями через промежуточные структуры. Набор элементов включает в себя один или более элементов. Считается, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает по меньшей мере два элемента. Если не указано иное, любое использование «ИЛИ» относится к неисключительному или. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном проиллюстрированном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, сгенерированный обработкой второго элемента и, опционально, других данных. Принятие определения или решения в соответствии с параметром включает в себя принятие определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа - это последовательность инструкций процессора, выполняющих задачу.
Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными объектами или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Если не указано иное, компьютерная безопасность включает защиту оборудования и данных от незаконного доступа, модификации и/или уничтожения. Машиночитаемые носители включают невременные носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также каналы коммуникации, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящее изобретение обеспечивает, среди прочего, компьютерные системы, содержащие аппаратные средства (например, один или более процессоров), запрограммированные для выполнения описанных здесь способов, а также машиночитаемые инструкции кодирования мультимедиа для выполнения способов, описанных в данном документе.
[0031] Нижеследующее описание иллюстрирует варианты осуществления изобретения в качестве примера, а не обязательно в качестве ограничения.
[0032] Фиг.1 иллюстрирует примерный набор клиентских систем 10a-h, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Клиентские системы 10a-h могут представлять любое электронное устройство, имеющее процессор, память и коммуникационный интерфейс. Примеры клиентских систем 10a-h включают персональные компьютеры, ноутбуки, планшетные компьютеры, мобильные телекоммуникационные устройства (например, смартфоны), медиаплееры, телевизоры, игровые консоли, бытовую технику (например, холодильники, термореле, интеллектуальное отопление и/или системы освещения), а также носимые устройства (например, умные часы, фитнес-оборудование), среди прочего. Клиентские системы 10a-h могут исполнять различное программное обеспечение, например, обработку документов, игры, электронные сообщения и приложения социальных сетей, среди прочего. Некоторые клиенты могут обмениваться информацией с удаленным сервером 17 контента, например, просматривать Интернет.
[0033] Проиллюстрированные клиентские системы соединены локальными сетями 12a-b и, кроме того, с расширенной сетью 14, такой как глобальная сеть (WAN) или Интернет. В одном примере клиентские системы 10a-d представляют семейные электронные устройства, соединенные между собой домашней сетью 12a. Между тем, клиентские системы 10e-g могут обозначать отдельные компьютеры и/или корпоративный мэйнфрейм внутри офисного здания. Локальная сеть 12-b может тогда представлять часть корпоративной сети (например, локальную сеть - LAN).
[0034] Маршрутизатор содержит электронное устройство, обеспечивающее связь между множеством клиентских систем и/или доступ соответствующих клиентов к расширенной сети 14. В примере с фиг.1 маршрутизаторы 15a-b соединяют клиентов в локальных сетях 12a-b и/или предоставляют клиентам 10a-g доступ в Интернет. Маршрутизаторы 15a-b могут действовать как шлюзы между локальными сетями 12a-b соответственно и расширенной сетью 14 и могут дополнительно предоставлять набор сетевых услуг для клиентских систем 10a-g. Такие услуги включают в себя, например, распространение параметров конфигурации сети на клиентские системы 10a-g (например, назначение сетевых адресов через протокол динамической конфигурации хоста - DHCP) и маршрутизацию связи через последовательность сетевых узлов. Некоторые клиентские системы, такие как примерная клиентская система 10h, могут напрямую подключаться к расширенной сети 14, например, через телекоммуникационный ретранслятор.
[0035] Фиг.1 также иллюстрирует сервер 16 безопасности, подключенный к расширенной сети 14. Сервер 16 в общем представляет собой набор связанных с возможностью обмена информацией компьютерных систем, которые могут находиться или не находиться в физической близости друг от друга. Сервер 16 защищает клиентские системы 10a-h от угроз компьютерной безопасности, таких как вредоносное ПО и вторжение. В некоторых вариантах осуществления такая защита включает сервер 16 безопасности, детектирующий подозрительную активность, происходящую в клиентской системе, например действия злоумышленника, контролирующего соответствующую клиентскую систему.
[0036] Примерный обмен данными между сервером 16 безопасности и клиентской системой 10 проиллюстрирован на фиг.2. Клиентская система 10 может представлять любого клиента 10a-h с фиг.1. В некоторых вариантах осуществления сервер 16 конфигурирован для приема индикатора 20a события от клиентской системы 10, индикатора 20a, указывающего на возникновение конкретного типа события во время исполнения программного обеспечения на клиенте 10. Примеры таких событий включают запуск процесса/потока (например, пользователь запускает приложение, родительский процесс создает дочерний процесс и т. д.), попытку доступа к устройству ввода соответствующей клиентской системы (например, камере, микрофону), попытку доступа к локальному или удаленному сетевому ресурсу (например, протокол передачи гипертекста - HTTP-запрос для доступа к определенному URL-адресу, попытка доступа к репозиторию документов по локальной сети), запрос, сформулированный в конкретной схеме универсального идентификатора ресурса (например, mailto: или ftp: запрос), выполнение конкретной инструкции процессора (например, системный вызов), попытку загрузить библиотеку (например, динамически подключаемую библиотеку - DLL), попытку создать новый файл на диске, попытку чтения или записи в определенное место на диске (например, попытка перезаписать существующий файл, попытка открыть определенную папку или документ) и попытку отправить электронное сообщение (например, электронная почта, служба коротких сообщений - SMS и т. д.), среди прочего. В некоторых вариантах осуществления периоды неактивности, то есть промежутки времени между событиями и/или временные интервалы, когда соответствующая клиентская система бездействует, не регистрирует активность пользователя или выполняет только внутренние системные задачи, также квалифицируются как события, и о них можно сообщать через индикаторы события серверу безопасности. Такие периоды неактивности можно дополнительно разделить на короткие промежутки времени (например, порядка секунд) и длительные промежутки времени (например, порядка минут или часов). Детектированные события могут указывать, а могут и не указывать на злой умысел как таковой; некоторые события могут указывать на злой умысел, когда происходят вместе с другими событиями, и/или когда происходят в определенной последовательности. Другие события могут быть злонамеренными, если они происходят в определенное время дня или с необычной частотой, например, последовательность из 1000 операций чтения из определенной папки на диске с интервалом в несколько секунд.
[0037] Каждый индикатор 20a события может содержать, среди прочего, индикатор типа соответствующего события и метку времени, указывающую момент времени, когда произошло соответствующее событие. Индикатор 20a события может дополнительно включать в себя идентификатор (идентификатор клиента) соответствующей клиентской системы и/или индикатор пользователя (идентификатор пользователя), который в настоящее время работает с соответствующей клиентской системой. Например, когда переданное событие включает создание процесса, индикатор пользователя может указывать на владельца родительского процесса. Индикатор 20a события может кодировать другие параметры, такие как имя процесса, местоположение/путь в файловой системе запускаемого процесса, сетевой адрес (например, Интернет-протокол - IP-адрес), универсальный указатель ресурса (URL) HTTP-запроса, и т.п.
[0038] В некоторых вариантах осуществления сервер 16 может также собирать информацию от маршрутизаторов 15a-b, как показано индикатором 20b события на фиг. 2. Такие индикаторы событий могут включать, например, индикаторы сетевых событий, таких как запросы доступа к сети, выданные клиентскими системами, подключенными к соответствующему маршрутизатору/шлюзу. Например, индикатор 20b события может включать в себя исходный IP-адрес, IP-адрес назначения, временную метку и размер полезной нагрузки. В некоторых вариантах осуществления индикатор 20b события содержит данные о событиях клиента, агрегированные соответствующим маршрутизатором в соответствии с различными протоколами обработки данных (например, сетевые потоки, сетевые журналы и т. д.).
[0039] Сервер 16 безопасности поддерживает набор моделей поведения пользователя, представляющих базовый, нормальный и/или законный способ работы поднабора клиентских систем 10a-h. Такие модели поведения здесь считаются профилями клиентов. Параметры таких моделей поведения в общем представлены как база 19 данных профилей на фиг. 1 и могут включать выходные данные алгоритма кластеризации событий и/или клиентов, как подробно показано ниже. В одном примерном варианте осуществления, в котором профиль представлен клиентом или кластером событий, параметры соответствующего профиля могут включать координаты центроида кластера и набор чисел, указывающих диапазон соответствующего кластера вдоль различных осей. Другие параметры профиля могут включать, среди прочего, показатель эксцентриситета соответствующего кластера и среднее расстояние между элементами кластера и центроидом кластера, среди прочего. Профили клиентов могут быть созданы автоматически с использованием контролируемых или неконтролируемых методов и алгоритмов обучения, как показано ниже.
[0040] Клиентский профиль может фиксировать поведение одного пользователя или может вместе фиксировать поведение множества пользователей. В качестве примеров: смартфон может использоваться в основном одним пользователем, поэтому клиентский профиль, прикрепленный к соответствующему смартфону, может по существу фиксировать базовое поведение его основного пользователя. Напротив, компьютеры, принадлежащие университетской компьютерной лаборатории, могут использоваться многими разными студентами; клиентский профиль, прикрепленный к одной из этих машин, может в совокупности представлять базовое поведение всех соответствующих студентов. Один клиентский профиль может быть прикреплен к одной клиентской системе/физической машине (например, смартфону, ноутбуку). В некоторых вариантах осуществления один клиентский профиль может вместе представлять множество физических машин. В одном таком примере клиентские системы 10a-d с фиг. 1 могут быть вместе представлены одним клиентским профилем, который фиксирует нормальное или базовое поведение членов конкретной семьи. В другом примере один клиентский профиль используется для представления всех компьютеров в бухгалтерском отделе корпорации, а другой клиентский профиль представляет все компьютеры, используемые группой исследований и разработок соответствующей корпорации. В варианте облачных вычислений, таком как среда инфраструктуры виртуального рабочего стола (VDI), в которой физическая машина может исполнять множество виртуальных машин для различных распределенных пользователей, один клиентский профиль может быть присоединен к множеству виртуальных машин, исполняющихся на соответствующей физической машине.
[0041] В некоторых вариантах осуществления один пользователь может быть представлен множеством отдельных клиентских профилей. Например, один и тот же человек может иметь один клиентский профиль/базовое поведение на работе и отдельный клиентский профиль/базовое поведение дома. Другие примеры клиентских профилей могут быть связаны с пользователями определенной возрастной группы (например, подростки), конкретными личными интересами (например, игры), определенной профессией (например, инженер, художник, педагог) и т. д. В еще одном примерном варианте осуществления отдельные клиентские профили могут соответствовать различным компьютерным действиям, например, использованию разных компьютерных программ: просмотру Интернета, использованию социальных сетей, выполнению офисной работы и т. д. Еще другие примерные клиентские профили могут быть прикреплены к различным типам устройств (например, смартфон или ПК). Коллективные профили могут быть разработаны в соответствии с более сложными критериями, например, клиентский профиль, указывающий типичный/базовый способ, которым инженер из компании X просматривает Интернет. Другой примерный профиль может указывать на типичный способ, которым молодые люди используют планшетные компьютеры.
[0042] Поднабор индикаторов 20a-b событий может быть собран для формирования корпуса событий, дополнительно используемого для получения клиентских профилей, как подробно показано ниже. Другой поднабор индикаторов событий может использоваться для детектирования угрозы безопасности. Например, в ответ на прием индикаторов 20a-b событий сервер 16 безопасности может определить, согласуется ли событие, переданное соответствующим индикатором события, с клиентским профилем, выбранным согласно соответствующему индикатору клиента. Иначе говоря, сервер 16 безопасности может определять, соответствует ли соответствующее событие шаблону нормального/базового поведения, закодированному в соответствующем клиентском профиле. Если нет, соответствующее событие может указывать на подозрительную активность, и в этом случае некоторые варианты осуществления могут предпринимать защитные действия, например, отправлять предупреждения 22a-b безопасности в соответствующую клиентскую систему и/или администратору соответствующей клиентской системы. В другом примере защитного действия некоторые варианты осуществления инструктируют маршрутизатор, который принадлежит той же локальной сети, что и подозрительная клиентская система, блокировать обмен данными с соответствующей подозрительной клиентской системой и/или от нее. Клиентские профили и обработка индикаторов событий сервером 16 безопасности дополнительно описаны ниже.
[0043] Фиг.3-A иллюстрирует примерную конфигурацию аппаратного обеспечения клиентской системы согласно некоторым вариантам осуществления настоящего изобретения. Клиентская система 10 может представлять любую из клиентских систем 10a-h с фиг.1. Для ясности проиллюстрированная клиентская система представляет собой компьютерную систему. Конфигурация других клиентских систем, таких как мобильные телефоны, планшетные компьютеры и носимые устройства, может немного отличаться. Процессор 32 содержит физическое устройство (например, микропроцессор, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для исполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие сигналы или данные могут быть закодированы и доставлены в процессор 32 в форме инструкций процессора, например машинного кода. Блок 34 памяти может содержать энергозависимый машиночитаемый носитель (например, динамическое запоминающее устройство с произвольным доступом - DRAM), хранящий данные/сигналы, к которым осуществляется доступ, или которые генерируются процессором 32 в ходе выполнения операций.
[0044] Устройства 36 ввода могут включать в себя компьютерные клавиатуры, мыши и микрофоны, среди прочего, включая соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в клиентскую систему 10. Устройства 38 вывода могут включать в себя устройства отображения, такие как мониторы и динамики, среди прочего, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие соответствующей клиентской системе передавать данные пользователю. В некоторых вариантах осуществления устройства 36-38 ввода и вывода совместно используют общее аппаратное оборудование (например, сенсорный экран). Устройства 42 хранения включают в себя машиночитаемые носители, обеспечивающие невременное хранение, чтение и запись программных инструкций и/или данных. Примерные устройства хранения включают в себя магнитные и оптические диски и устройства флэш-памяти, а также съемные носители, такие как CD и/или DVD диски и приводы. Сетевой адаптер (ы) 44 позволяет клиентской системе 10 подключаться к сети электронной связи (например, к сетям 12, 14 с фиг. 1) и/или к другим устройствам/компьютерным системам.
[0045] Контроллер-концентратор 40 в общем представляет множество системных, периферийных шин и/или шин набора микросхем и/или всех других схем, обеспечивающих связь между процессором 32 и остальными аппаратными компонентами клиентской системы 10. Например, контроллер-концентратор 40 может включать контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерываний. В зависимости от производителя оборудования некоторые такие контроллеры могут быть включены в единую интегральную схему и/или могут быть интегрированы с процессором. В другом примере контроллер-концентратор 40 может содержать процессор 32 подключения северного моста к памяти 34 и/или процессор 32 подключения южного моста к устройствам 36, 38, 42 и 44.
[0046] Фиг. 3-B иллюстрирует примерную конфигурацию аппаратного обеспечения сервера 16 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Сервер 16 содержит по меньшей мере один аппаратный процессор 132 (например, микропроцессор, многоядерную интегральную схему), физическую память 134 (например, DRAM), серверные устройства 142 хранения и набор серверных сетевых адаптеров 144. Серверные процессоры 132 могут включать в себя центральный процессор (CPU) и/или массив графических процессоров (GPU). Адаптеры 144 могут включать в себя сетевые карты и другие интерфейсы связи, позволяющие серверу 16 безопасности подключаться к сети 14 связи. Серверные устройства 142 хранения могут хранить данные, такие как индикаторы событий и/или параметры клиентского профиля. В некоторых вариантах осуществления сервер 16 дополнительно содержит устройства ввода и вывода, которые могут быть аналогичны по функциям устройствам 36 и 38 ввода/вывода клиентской системы 10 соответственно.
[0047] Фиг.4 иллюстрирует набор примерных программных компонентов, исполняемых в клиентской системе 10 согласно некоторым вариантам осуществления настоящего изобретения. Такое программное обеспечение может включать в себя операционную систему 46 (ОС), обеспечивающую интерфейс между аппаратным обеспечением клиентской системы 10 и другими компьютерными программами, такими как пользовательское приложение 48, исполняющееся в соответствующей клиентской системе. Примеры операционных систем включают, среди прочего, Windows®, MacOS®, iOS® и Android®. Пользовательское приложение 48 в общем представляет любое приложение, такое как текстовый редактор, обработка изображений, электронная таблица, календарь, онлайн-игры, социальные сети, веб-браузер и приложения электронной связи, среди прочего. В некоторых вариантах осуществления приложение 50 безопасности конфигурировано для защиты клиентской системы 10 от угроз компьютерной безопасности, таких как вредоносное программное обеспечение и вторжение. Помимо других функций, приложение 50 безопасности конфигурировано для передачи индикаторов событий на сервер 16 безопасности и/или для приема предупреждений безопасности. В некоторых вариантах осуществления приложение 50 дополнительно содержит сборщик 52 событий и сетевой фильтр 53. Некоторая функциональность сетевого фильтра 53 может быть реализована непосредственно в аппаратном обеспечении. Когда клиентская система 10 управляет платформой аппаратной виртуализации, в которой ОС 46 и приложение 48 выполняются на виртуальной машине (например, в среде облачных вычислений), сборщик 52 событий и/или сетевой фильтр 53 могут исполняться вне соответствующей виртуальной машины, например, на уровне гипервизора, раскрывающего соответствующую виртуальную машину, с использованием методов, известных в данной области как интроспекция.
[0048] Сборщик 52 событий конфигурирован для детектирования различных событий, происходящих во время исполнения программного обеспечения клиентской системой 10. Некоторые варианты осуществления могут ставить метку времени для каждого детектированного события, чтобы записывать время наступления соответствующего события. Отслеживаемые события могут зависеть от компьютера и/или операционной системы. Примеры событий включают, среди прочего, запуск процесса, завершение процесса, порождение дочерних процессов, запросы доступа к периферийным устройствам (например, жесткому диску, сетевому адаптеру), команду, введенную пользователем в интерфейс командной строки и т. д. Такие аппаратные и/или программные события могут быть детектированы с использованием любого метода, известного в области компьютерной безопасности, например, путем подключения определенных функций операционной системы, детектирования системных вызовов, использования минифильтра файловой системы, изменения разрешения доступа к памяти для детектирования попытки выполнить код из определенных адресов памяти и т. д.
[0049] Некоторые варианты осуществления отслеживают аппаратные и/или программные события с использованием инструментов системного журнала, встроенных в OS 46 (например, Syslog в UNIX®). Такие инструменты могут генерировать список дескрипторов событий, включая временную метку для каждого события, числовой код, идентифицирующий тип события, индикатор типа процесса или приложения, которые сгенерировали соответствующее событие, и другие параметры события. Приложение 50 безопасности может извлекать такую информацию из соответствующего системного журнала для формулирования индикаторов событий. Примерные записи системного журнала приведены ниже:
<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:
14: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 иллюстрирует примеры метаданных связи, представленных в виде потоков, согласно некоторым вариантам осуществления настоящего изобретения.
Таблица 1
[0051] В некоторых вариантах реализации приложение 50 безопасности формулирует индикаторы событий в соответствии с аппаратными, программными и/или сетевыми событиями, обнаруженными сборщиком 52 и сетевым фильтром 53. Приложение 50 может дополнительно управлять обменом данными с сервером 16 безопасности, среди прочего, для передачи индикаторов событий и/или приема уведомлений безопасности.
[0052] В альтернативном варианте осуществления вместо обработки сетевой связи на клиенте, как показано выше, сетевой фильтр 53 и/или маршрутизатор 15 могут быть конфигурированы для перенаправления на сервер 16 безопасности по меньшей мере части входящих электронных сообщений и/или из клиентской системы 10.
Например, параметры конфигурации сети клиентской системы 10 могут быть установлены для указания сервера 16 в качестве сетевого шлюза по умолчанию. Некоторые варианты осуществления затем используют сервер 16 безопасности для извлечения индикаторов событий из соответствующего перенаправленного трафика.
[0053] Фиг.5 иллюстрирует примерное программное обеспечение, исполняющееся на сервере 16 безопасности, согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированное программное обеспечение включает механизм 60 профилирования и детектор 62 аномалий, дополнительно связанный с диспетчером 64 предупреждений. Квалифицированный специалист поймет, что не все проиллюстрированные компоненты должны исполняться на одной машине/процессоре; например, механизм 60 профилирования может исполняться на выделенном кластере процессоров, в то время как экземпляры детектора 62 аномалий могут исполняться на других машинах/процессорах.
[0054] В некоторых вариантах осуществления механизм 60 профилирования конфигурирован для анализа событий, происходящих в наборе клиентских систем (например, на поднаборе клиентов 10a-h на фиг.1), и для создания множества клиентских профилей, представляющих базовый, нормальный и/или законный способ работы с соответствующими клиентскими системами. Поднабор индикаторов 20a-b событий, полученных от клиентов, можно использовать для сборки корпуса обучающих событий, обозначенного корпусом 18 на фиг.1, 5 и 6. Затем профили определяются в соответствии с корпусом 18 событий. Определение клиентского профиля может включать, среди прочего, представление событий в абстрактном многомерном пространстве событий и выполнение процедур кластеризации данных, как более подробно показано ниже. Сконструированные профили затем могут быть сохранены как записи в базе 19 данных профилей. Примерная запись в базе данных профиля содержит набор параметров профиля, таких как набор координат центроида кластера, измерение диаметра и/или эксцентриситета кластера и т. д.
[0055] Фиг.6 иллюстрирует примерные компоненты и работу механизма 60 профилирования. В некоторых вариантах осуществления механизм 60 содержит кодер 70 событий, механизм 72 кластеризации событий и механизм 74 кластеризации клиентов, подключенный к кодеру 70 событий и механизму 72 кластеризации событий. Примерная последовательность шагов, выполняемых механизмом профилирования, проиллюстрирована на фиг.7.
[0056] В последовательности шагов 202-204-206 механизм 60 профилирования может собрать обучающий корпус 18 событий в соответствии с индикаторами событий, полученными от выбранных клиентских систем и/или маршрутизатора (ов). Некоторые варианты осуществления накапливают индикаторы событий до тех пор, пока не будет удовлетворено какое-либо условие накопления.
Условия накопления могут быть определены в соответствии с подсчетом событий (собрать корпус из 1 миллиона событий) в соответствии с условием времени (например, записать все события, полученные в течение 1-часового интервала и т. д.), в соответствии с идентификатором клиентской системы и/или пользователя (например, записывать все события, полученные от корпорации X, диапазона IP-адресов Y, учетной записи Z подписки и т. д.), или любым другим способом, известным в данной области техники. Отдельные события могут быть помечены в соответствии с их происхождением и могут содержать метку времени, характеризующую момент времени, когда соответствующее событие даже произошло, или было обнаружено, или было получено на сервере безопасности 16 и т. д. В некоторых вариантах осуществления корпус 18 событий обновляется периодически и/или по запросу путем включения вновь полученных индикаторов событий.
[0057] В некоторых вариантах осуществления кодер 70 событий (фиг. 6) конфигурирован для ввода записи 26 события, содержащей данные, характеризующие событие, которое произошло в клиентской системе (например, запуск процесса на клиентской машине), и, в ответ, выведения вектора 28a событий, содержащего представление соответствующего события как вектора в абстрактном многомерном пространстве, обычно считающемся пространством внедрения в данной области техники. Примерное пространство внедрения охвачено набором осей, где каждая ось представляет отдельный признак события. Примеры функций могут включать, в случае сетевого события, IP-адрес источника, порт источника, IP-адрес пункта назначения, порт назначения и индикатор транспортного протокола, среди прочего. В другом примере каждая ось пространства внедрения соответствует линейной комбинации признаков события (например, в варианте осуществления декомпозиции главного компонента/единственного значения). В предпочтительных вариантах осуществления события анализируются в контексте других событий, которые предшествуют и/или следуют за соответствующим событием. В таких случаях кодер 70 конфигурирован для представления событий как векторов в пространстве внедрения контекстов, при этом два события, которые происходят преимущественно в аналогичных контекстах, расположены относительно близко друг к другу. Некоторые варианты осуществления выбирают размерность пространства внедрения в соответствии с размером словаря событий N, то есть подсчетом различных типов событий, которые отслеживает соответствующая система безопасности (подробнее о словаре событий см. ниже). Например, размерность пространства событий может быть порядка квадратного корня из N или логарифма из N. Типичный вариант осуществления настоящего изобретения использует пространство контекста внедрения, имеющее от нескольких сотен до нескольких тысяч измерений.
[0058] Кодер 70 событий может быть сконструирован с использованием любого метода, известного в области автоматизированной обработки данных. В предпочтительном варианте осуществления кодер 70 содержит систему искусственного интеллекта, например многослойную искусственную нейронную сеть (например, рекуррентную нейронную сеть и/или нейронную сеть с прямой связью). Для достижения желаемого представления векторов событий, параметры кодера 70 могут быть настроены до тех пор, пока не будут удовлетворены некоторые условия производительности. Такая настройка здесь называется обучением и представлена этапом 208 на фиг.7. В варианте осуществления нейронной сети примерные настраиваемые параметры кодера 70 событий включают в себя, среди прочего, набор весов синапсов. В некоторых вариантах осуществления обучающий кодер 70 сводится к построению самого пространства внедрения. Иначе говоря, пространство внедрения не определяется заранее, а зависит от состава корпуса 18 событий и от выбранной процедуры обучения.
[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 словаря событий варьируется от нескольких сотен до нескольких тысяч различных типов событий, но может доходить до нескольких миллионов для конкретных применений. Квалифицированному специалисту поймет, что унитарное кодирование используется здесь только в качестве примера и никоим образом не ограничивает объем настоящего изобретения.
[0060] В примерных процедурах обучения кодер событий объединяется и обучается совместно с декодером событий, оба из них могут содержать части нейронной сети с прямой связью и/или рекуррентной нейронной сети. В общем, пара кодер-декодер может быть конфигурирована для ввода первого поднабора обучающей последовательности (например, центрального события Eo) и вывода «прогноза» для второго поднабора соответствующей последовательности (например, некоторого контекстного события Ei, i≠0). В примерах на фиг. 8-AB, прогнозы показаны как унитарные векторы; альтернативные варианты осуществления могут использовать другое представление. Например, прогноз может быть представлен как N-мерный вектор чисел, каждое число указывает вероятность того, что соответствующий тип события присутствует во втором поднаборе.
[0061] В унитарной процедуре обучения, показанной на фиг. 8-A, пара кодер- декодер обучается для создания правильного контекста события с учетом центрального уравнения события. Для каждой последовательности событий, взятой из корпуса 18 событий, кодер 70a конфигурирован для ввода унитарного кодирования центрального события Eo и создания вектора 28c событий, содержащего представление центрального события E0 в пространстве контекста внедрения. В свою очередь, декодер 76a конфигурирован для ввода вектора 28c событий и вывода множества предполагаемых векторов, каждый из которых представляет «прогнозируемое» контекстное событие Ei (i≠0) соответствующей последовательности событий. Затем пара кодер-декодер может быть обучена путем настройки параметров кодера 70a и/или декодера 76a, чтобы уменьшить ошибку прогнозирования, то есть исправить несоответствие между «спрогнозированным» контекстом и фактическим контекстом соответствующих обучающих последовательностей.
[0062] Альтернативная процедура обучения использует алгоритм непрерывного набора слов и направлена на создание правильного центрального события Eo обучающей последовательности с учетом соответствующего контекста события. В одном таком примере, показанном на фиг. 8-B, кодер 70b событий конфигурирован для ввода набора однозначных векторов, представляющих контекстные события Ei (i≠0) последовательности 25, и для вывода внедренных векторов 28d-f событий, определяемых для каждого соответствующего контекстного события. В отличие от варианта осуществления skip-gram, показанной на фиг. 8-A, кодер 70b здесь соединен с декодером 76b событий, конфигурированным для ввода множества векторов 28d-f событий и создания прогноза или «предположения» для центрального событие Eo последовательности 25. Пара кодер-декодер может быть затем обучена путем настройки параметров кодера 70b и/или декодера 76b, чтобы уменьшить ошибку прогнозирования, то есть несоответствие между «спрогнозированным» центральным событием и фактическим центральным событием соответствующих обучающих последовательностей.
[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) с небольшими изменениями.
[0064] В ответ на обучение кодера событий, как указано выше, некоторые варианты осуществления дополнительно преобразуют сгенерированное пространство внедрения, чтобы уменьшить его размерность. Данная операция может содержать любой алгоритм уменьшения размерности данных, например анализ главных компонентов (PCA) или разложение по сингулярным значениям (SVD).
[0065] После обучения и опционального уменьшения размерности (этап 208 на фиг. 7) кодер 70 событий может представлять каждое событие как вектор в многомерном пространстве внедрения контекстов событий, при этом два события, которые часто происходят в одном и том же контексте события, занимают аналогичные положения. Иначе говоря, два таких события разделены в пространстве внедрения на расстояние, меньшее, чем расстояние между двумя событиями, которые происходят преимущественно в разных контекстах.
[0066] Возвращаясь к компонентам механизма 60 профилирования (фиг.6), механизм 74 кластеризации событий конфигурирован для организации векторов событий, созданных обученным кодером 70 событий и представляющих элементы обучающего корпуса 18, в кластеры в соответствии с положением каждого вектора событий, внутри пространства для встраивания (см. также этап 207 на фиг. 7). В некоторых вариантах осуществления кластер содержит множество событий, которые относительно близко расположены друг к другу в пространстве внедрения или, иначе говоря, множество событий, характеризующихся относительно небольшим расстоянием между событиями в пространстве внедрения. В альтернативном варианте осуществления кластер состоит из событий, которые занимают специфичную для кластера область пространства внедрения. Такие области могут быть взаимоисключающими или частично перекрываться. Фиг.10 иллюстрирует примерное пространство внедрения и набор кластеров 80a-b событий согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированные оси могут содержать, например, первый и второй главные компоненты проиллюстрированных векторов событий (векторы 28g-h-k). В варианте осуществления, использующем пространство внедрения контекстов событий, кластер может выборочно содержать события, которые происходят в основном в аналогичном контексте событий. Кроме того, один и тот же кластер может включать в себя события, происходящие в различных клиентских системах и/или представляющие активность различных пользователей.
[0067] Для построения кластеров событий механизм 60 профилирования может использовать любой алгоритм кластеризации данных, известный в данной области техники, например вариант алгоритма k-средних. В другом примерном варианте осуществления можно обучить набор перцептронов разделять пространство внедрения на отдельные области и назначить векторы событий, расположенные в каждой области, отдельному кластеру событий. Количество кластеров и/или областей может быть определено заранее (например, согласно подсчету защищенных клиентских систем и/или отслеживаемых типов событий) или может быть определено динамически самим алгоритмом кластеризации. Результат кластеризации событий содержит набор параметров 54 кластера событий (фиг. 6), которые могут включать в себя для каждого кластера координаты центроида кластера и меру протяженности кластера, например диаметр и/или эксцентриситет. Другие примерные параметры 54 кластера могут включать, среди прочего, список членов соответствующего кластера и выбранного члена соответствующего кластера, рассматриваемого как репрезентативный/архетипический для соответствующего кластера. Параметры кластера могут быть переданы клиентскому механизму 74 кластеризации.
[0068] Клиентский механизм 74 кластеризации (фиг. 6) конфигурирован для определения набора клиентских профилей в соответствии с кластерами событий, вычисленными механизмом 72 кластеризации событий. Такие клиентские профили показаны на фиг.11. В некоторых вариантах осуществления каждый клиентский профиль содержит выбранный поднабор (кластер) защищенных клиентских систем 10a-h. Некоторые клиентские профили могут включать несколько клиентских кластеров. В некоторых вариантах осуществления клиентский профиль может содержать архетип профиля, который может быть фактическим членом соответствующего кластера клиентов, или вымышленной клиентской системой, характеризующейся определенным положением в пространстве профиля. Например, архетип профиля может содержать центроид клиентского кластера, определяемого клиентским механизмом 74 кластеризации.
[0069] Для вычисления клиентских профилей некоторые варианты осуществления клиентского механизма 74 кластеризации назначают клиентские системы 10a-h кластерам в соответствии с профилем событий, указывающим типичное распределение событий, происходящих в соответствующих клиентских системах. В одном примерном варианте осуществления профиль события клиентской системы содержит вектор чисел, каждое из которых определяется в соответствии с подсчетом событий, происходящих в соответствующей клиентской системе и принадлежащих отдельному кластеру событий, ранее определенному механизмом 72 кластеризации событий. В примере, проиллюстрированном на фиг.12, каждый компонент профиля события определяется в соответствии с мерой принадлежности кластеру, показывающей долю событий, принадлежащих соответствующему кластеру Q событий, определяемому как долю от общего количества событий, доступных от соответствующей клиентской системы. Например, когда механизм 72 кластеризации событий идентифицировал три кластера событий C1, C2 и C3, вектор профиля события [0,1, 0,75, 0,15] может представлять клиентскую систему, в которой 10% событий, происходящих в соответствующей клиентской системе, принадлежат кластеру C1 события, при этом 75% событий принадлежат кластеру C2 события, а 15% событий принадлежат кластеру C3 события.
[0070] В примерном варианте осуществления с фиг. 11 каждая клиентская система представлена в многомерном пространстве профиля согласно соответствующему профилю события. Иначе говоря, каждая координата клиентской системы представляет собой компонент профиля события соответствующего клиента. Фиг.11 иллюстрирует три примерных клиентских кластера/профиля 82a-c. Квалифицированный специалист может использовать любой метод, известный в области машинного обучения или интеллектуального анализа данных, для построения таких профилей; примерные методы включают в себя, среди прочего, варианты алгоритма кластеризации k-средних и нейронные сети. Альтернативные варианты осуществления могут использовать другие критерии назначения клиентской системы кластеру или использовать такие критерии в дополнение к профилю события соответствующего клиента. Примерные дополнительные критерии кластеризации клиентов включают, среди прочего, владельца и/или пользователя соответствующей клиентской системы, сетевой адрес соответствующей клиентской системы, тип устройства соответствующей клиентской системы и т. д. Например, клиенты, принадлежащие к одному семейству, одной корпорации или одному сетевому домену, могут быть сгруппированы в один кластер.
[0071] После кластеризации клиентов механизм 60 профилирования может сохранять параметры кластера, такие как список клиентских систем, назначенных каждому кластеру/профилю, координаты архетипов кластера (например, центроидов), диаметры кластера и т.д., в базу данных 19 профилей.
[0072] Фиг.13 иллюстрирует примерные компоненты и работу детектора 62 аномалий согласно некоторым вариантам осуществления настоящего изобретения (см. также Фиг.5). Детектор 62 аномалий конфигурирован для приема потока 24 событий, содержащего индикаторы событий, указывающих на события, происходящие в различных клиентских системах, и в ответ на вывод метки 88 безопасности, указывающей, указывают ли соответствующие события на угрозу безопасности, такую как вторжение или выполнение вредоносное ПО. В некоторых вариантах осуществления детектор 62 аномалий содержит диспетчер 84 профилей, конфигурированный, в ответ на получение уведомления о событии, указывающего на событие, происходящее в защищенной клиентской системе, для выбора клиентского профиля согласно соответствующему событию. Диспетчер 84 профилей дополнительно связан с моделью 86 поведения, конфигурированной для определения, соответствует ли соответствующее событие шаблону нормального/базового поведения, представленному соответствующим профилем. Если нет, соответствующее событие может рассматриваться как аномалия, что указывает на возможную атаку на соответствующую клиентскую систему.
[0073] При подготовке к выполнению детектирования аномалий, как указано ниже, некоторые варианты осуществления детектора 62 аномалий сначала обучаются на корпусе событий с использованием выходных данных механизма 60 профилирования. Одной из целей обучения детектора 62 аномалий является определение нормального/базового поведения пользователя для каждого клиентского профиля, идентифицированного механизмом 60 профилирования. Обучение включает настройку набора параметров модели 86 поведения до тех пор, пока не будет удовлетворен критерий завершения. Корпус событий, используемый для обучения детектора 62 аномалий, может отличаться от обучающего корпуса 18, используемого для обучения компонентов механизма 60 профилирования.
[0074] Фиг. 14 иллюстрирует примерную последовательность этапов, выполняемых детектором 62 аномалий во время процедуры обучения согласно некоторым вариантам осуществления настоящего изобретения. В ответ на механизм 60 аномалий, создающий набор клиентских профилей, на этапе 242 выбирается один такой клиентский профиль из базы данных 19 профилей. В некоторых вариантах осуществления каждый такой клиентский профиль содержит набор клиентских кластеров, например кластер 82a на фиг. 11. Каждый клиентский кластер дополнительно включает в себя выбранный поднабор защищенных клиентских систем. На этапе 244 можно выбрать обучающий набор событий, зарегистрированных как происходящие в любой клиентской системе, связанной с соответствующим профилем/кластером. В некоторых вариантах осуществления этап 244 может содержать выбор обучающего набора событий из обучающего корпуса 18, уже использованного для построения клиентских профилей, как показано выше. Дальнейший этап 246 может использовать соответствующий обучающий набор событий в качестве обучающего корпуса для обучения модели 86 поведения.
[0075] В некоторых вариантах осуществления модель 86 поведения содержит компоненты, которые аналогичны по структуре и функциям некоторым компонентам механизма 60 профилирования. Например, некоторые варианты осуществления модели 86 включают в себя пару кодер-декодер, как показано на фиг.15, которая может быть построена с использованием технологии нейронных сетей и обучена в соответствии с членом семейства алгоритмов word2vec (см. описание выше в отношении фиг. 8-AB). Модель 86 поведения при обучении может затем сводиться к настройке параметров кодера 70c и/или декодера 76c (например, набора весов синапсов) с целью представления каждого события из соответствующего клиентского кластера/профиля как вектор в пространстве внедрения событий. В предпочтительном варианте осуществления кодер 70c анализирует каждое событие в контексте последовательности событий и генерирует пространство внедрения, в котором события, которые происходят преимущественно в аналогичных контекстах, разделены меньшим расстоянием по сравнению с событиями, которые происходят в других контекстах. Однако пространство внедрения событий (т. е. значение осей, размер расстояний между событиями и т. д.), полученное в результате обучающего кодера 70c, может существенно отличаться от пространства внедрения события, полученного из обучающего кодера 70 событий, поскольку обучающие корпуса, используемые для двух кодеров, различны.
[0076] В предпочтительном варианте осуществления этап 246 включает обучение пары кодер-декодер с использованием версии алгоритма мультимножества слов (см. фиг. 8-B). В одном таком примере пара кодер-декодер (фиг. 15) конфигурирована для приема множества событий E-k,…E-1, E1... Ep, представляющих контекст события текущей анализируемой последовательности событий, и для создания N-мерного вектора 90 оценок прогнозирования, в котором каждый элемент связан с отдельным типом события, причем каждый элемент представляет вероятность того, что центральное событие соответствующей последовательности событий относится к соответствующему типу события. Например, более высокое значение оценки может указывать на то, что соответствующий тип события с большей вероятностью произойдет как центральное событие соответствующей последовательности событий, чем другие типы событий, имеющие более низкие оценки. В таких вариантах осуществления примерное обучение модели 86 может включать выбор последовательностей событий из поднабора событий, идентифицированных на этапе 244 (фиг.14), ввод контекста события соответствующей последовательности в кодер 70c, исполнение декодера 76c для создания прогноза для центрального события Eo соответствующей последовательности событий и наказание за неправильные прогнозирования путем обратного распространения ошибки прогнозирования через нейронные сети, которые образуют кодер 70c и/или декодер 76c. В ответ на успешное обучение на этапе 248 можно сохранить значения параметров обученной модели поведения. Процедура обучения может повторяться для каждого клиентского профиля, идентифицированного механизмом 60 профилирования.
[0077] Фиг. 16 иллюстрирует примерную последовательность шагов, выполняемых детектором 62 аномалий для защиты целевой клиентской системы (например, клиентов 10a-h на фиг. 1) от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Целевая клиентская система может быть или не быть членом поднабора клиентов, обеспечивающих обучающий корпус событий, которые производят модели поведения и/или клиентские профили, как указано выше. Для защиты целевой клиентской системы события могут детектироваться в целевой клиентской системе и/или других устройствах, таких как маршрутизаторы 15a-b (см. фиг. 1), и могут передаваться на сервер 16 безопасности в виде индикаторов событий. Такие индикаторы событий могут быть затем предварительно обработаны в соответствии с их источником, типом события, временем, настройками учетной записи службы и т. д. и организованы в виде потока 24 событий. События могут обрабатываться индивидуально или группами. В ответ на прием индикатора события от целевой клиентской системы на этапе 254 детектор 62 аномалии может собрать последовательность событий для анализа согласно соответствующему индикатору события. Этап 254 может включать в себя идентификацию источника события (т.е. клиентской системы, в которой произошло соответствующее событие), выбор из потока 24 событий множества других событий для формирования последовательности событий. В некоторых вариантах осуществления члены последовательности выбираются таким образом, чтобы все они происходили из одной и той же целевой клиентской системы. В другом примере все члены последовательности должны находиться в заранее определенном поднаборе клиентских систем, например, в сетевом субдомене или общем IP-адресе. Выбранные события также могут быть упорядочены в соответствии с их временем возникновения и/или обнаружения, например, с использованием метки времени, предоставленной с индикатором входящего события. Последовательность событий может быть дополнительно разделена на части, например, идентифицирующие центральное событие и контекст события (см., например, фиг. 8-A).
[0078] На этапе 256 диспетчер 84 профилей может выбрать клиентский профиль согласно соответствующему индикатору события, например, согласно идентификатору целевой клиентской системы, в которой произошло соответствующее событие. Когда соответствующая целевая клиентская система предоставила обучающие мероприятия для разработки клиентских профилей и/или для обучения моделей поведения, этап 256 может включать выбор клиентского профиля/кластера, имеющего соответствующую целевую клиентскую систему в качестве члена. Также могут использоваться другие критерии выбора профиля. Например, этап 256 может содержать выбор клиентского профиля в соответствии с положением целевой клиентской системы в пространстве клиентского профиля (см. фиг.11), например, путем сравнения положения целевой клиентской системы с набором архетипов кластера или центроида и выбора кластера/профиля, центроид которого ближе всего к целевой клиентской системе. В одном таком примере клиентский профиль может быть выбран в соответствии с профилем события, определенным для целевой клиентской системы (например, в соответствии с подсчетом событий, полученных от целевой клиентской системы, которые вписываются в конкретную категорию/кластер событий). Другие критерии выбора клиентского профиля могут включать в себя выбор клиентского профиля в соответствии с сетевым адресом целевой клиентской системы (например, выбор клиентского профиля, содержащего клиентов, имеющих тот же IP-адрес, что и у целевой клиентской системы), для владельца/пользователя целевой клиентской системы (например, выбор профиля, содержащего члены той же семьи, что и целевая клиентская система) и т. д.
[0079] На дополнительном этапе 258 детектор аномалий может создать экземпляр модели 86 поведения со значениями параметров, специфичными для соответствующего выбранного клиентского профиля. В некоторых вариантах осуществления после создания экземпляра, зависящего от профиля, выполнение модели 86 (этап 260) содержит проецирование событий соответствующей последовательности событий в пространство внедрения событий, связанное с соответствующим клиентским профилем.
[0080] На этапе 262 теперь можно определить, являются ли событие(я) соответствующей последовательности событий представлением нормального/базового поведения пользователя, связанного с соответствующим клиентским профилем, или нет. В одном варианте осуществления этап 260 включает подачу контекста события (£), i) 0) соответствующей последовательности в модель 86 поведения и вычисление вектора 90 оценок прогнозирования соответствующей последовательности. Затем этап 262 может включать идентификацию элемента вектора 90, соответствующего типу события фактического центрального события Eo последовательности, и сравнение соответствующей оценки с заранее определенным порогом (например, 0,95). В некоторых вариантах осуществления значение оценки ниже порогового значения указывает, что соответствующее событие Eo, по существу, маловероятно, что произойдет в соответствующем контексте события, и, следовательно, указывает на аномалию, совместимую с потенциальной угрозой компьютерной безопасности. В некоторых вариантах осуществления пользователь или администратор сервера 16 безопасности может настраивать чувствительность метода, регулируя значение порога. В одном из таких примеров разные пороговые значения связаны с разными группами клиентских систем.
[0081] В альтернативном варианте осуществления этап 260 может включать использование модели 86 для определения представления события £) последовательности в пространстве внедрения событий, специфичном для соответствующего клиентского профиля. Этап 262 может включать определение того, соответствует ли событие Ei шаблону нормального поведения для соответствующего клиентского профиля в соответствии с положением соответствующего события в пространстве внедрения. Например, событие может считаться нормальным, когда оно расположено в обучающем кластере событий (например, ближе к центроиду кластера, чем заранее определенный порог). В другом примере событие может считаться нормальным/благоприятным, если оно находится в определенных областях пространства внедрения, и аномальным, если оно находится в других регионах.
[0082] Когда событие последовательности (например, Eo) считается аномалией или, другими словами, не соответствует шаблону нормальности, установленному посредством обучения для соответствующего клиентского профиля, этап 264 может пометить соответствующее событие для дальнейшего анализа. В некоторых вариантах осуществления аномалия может инициировать передачу предупреждения о безопасности диспетчером 64 предупреждений сервера 16 безопасности (см. фиг. 5). Предупреждения системы безопасности могут поступать в клиентскую систему, где произошло аномальное событие, и/или администратору соответствующей клиентской системы. Случаи аномальных событий также могут быть собраны и сообщены для дальнейшего анализа в лабораторию компьютерной безопасности.
[0083] Примерные системы и способы, описанные выше, позволяют эффективно обнаруживать угрозы компьютерной безопасности, такие как вредоносное программное обеспечение и вторжение. Раскрытые системы и способы реализуют поведенческий подход к компьютерной безопасности, в котором нормальное/базовое поведение пользователя автоматически выводится системой в соответствии с обучающим корпусом событий, и при этом отклонение от базовой модели поведения может указывать на угрозу.
[0084] Некоторые варианты осуществления детектируют различные события, происходящие во множестве клиентских систем, например компьютерах, мобильных телефонах, сетевых устройствах и виртуальных машинах. Примеры событий включают запуск определенных процессов, попытки доступа к определенным файлам или сетевым местоположениям, а также события сетевого трафика, такие как доступ к определенным портам и адресам, среди прочего. Квалифицированному специалисту понятно, что описанные здесь системы и способы могут быть адаптированы к другим видам событий, таким как события, связанные, среди прочего, с активностью пользователя в социальных сетях, историей просмотра пользователем и игровой активностью пользователя. Уведомления о событиях собираются на сервере безопасности. Набор таких событий может использоваться в качестве обучающего корпуса для создания набора клиентских профилей, при этом каждый клиентский профиль может представлять одного пользователя, одну машину или множество пользователей/машин. В некоторых вариантах осуществления каждый клиентский профиль содержит поднабор клиентских систем и/или поднабор событий, которые произошли в соответствующих поднаборах клиентских систем. Каждый клиентский профиль может представлять нормальный и/или благоприятный образец использования соответствующих клиентских систем. Такие клиентские профили затем могут использоваться для детектирования случаев аномального поведения, которые могут указывать на угрозу компьютерной безопасности.
[0085] Некоторые традиционные системы компьютерной безопасности работают соответствии с набором правил, которые количественно определяют поведение, указывающее на злой умысел. Поскольку разработчики обычно заинтересованы в предоставлении таких решений широкому кругу клиентов, правила поведения обычно носят общий характер и не предназначены для конкретных пользователей. Однако на практике пользователи очень разнородны. Даже в пределах одной компании или одной семьи способы использования компьютера каждым участником могут существенно различаться. Набор действий, который может считаться нормальным для разработчика программного обеспечения или инженера, может быть очень необычным при детектировании на компьютере в бухгалтерии. Более того, один и тот же пользователь может существенно отличаться в поведении дома на работе. Следовательно, общие правила поведения могут не отражать разнообразие и специфику реальных пользователей. В отличие от таких традиционных систем, в некоторых вариантах осуществления настоящего изобретения события, происходящие в каждой клиентской системе, просматриваются и анализируются выборочно по модели, фиксирующей нормальное/базовое поведение самой соответствующей клиентской системы и/или похожих клиентов. Иначе говоря, границы поведенческой «нормальности» могут быть определены с существенной специфичностью: конкретный клиентский компьютер, определенная группа пользователей (например, конкретный отдел компании, члены семьи, определенная возрастная группа) и т. д.
[0086] Из-за распространения программного обеспечения и использования Интернета попытка разработать высокоспецифические профили поведения, например профили, прикрепленные к каждому отдельному пользователю, может потребовать необоснованных вычислительных ресурсов и, следовательно, может быть непрактичной. Кроме того, сбор событий от отдельных пользователей/машин может не предоставить достаточно данных для разработки статистически надежных моделей поведения. В отличие от этого подхода, некоторые варианты осуществления настоящего изобретения группируют множество пользователей и/или машин в один клиентский профиль, таким образом обеспечивая полезный компромисс между специфичностью, надежностью и вычислительными затратами. Кроме того, способ, которым пользователи и машины группируются в профили, сам по себе основан на поведенческих критериях, чтобы гарантировать, что такое группирование сохраняет специфичность. В некоторых вариантах осуществления каждый клиентский профиль группирует вместе пользователей/машины, которые имеют по существу аналогичные профили событий. Иначе говоря, все члены клиентского профиля демонстрируют аналогичное базовое поведение с точки зрения статистики событий, происходящих на машинах-членах.
[0087] Некоторые традиционные системы и способы компьютерной безопасности в основном анализируют отдельные события. Многие события, происходящие во время работы компьютерной системы (например, открытие файла, доступ к веб-странице), могут не указывать на злой умысел, если их рассматривать изолированно. Однако они могут быть злонамеренными, когда происходят в контексте других событий, например, как конкретная последовательность действий. В отличие от более традиционных решений, некоторые варианты осуществления настоящего изобретения явно анализируют события в контексте и поэтому лучше подходят для таких ситуаций корреляции событий. В предпочтительном варианте осуществления отдельные события представлены в виде векторов в многомерном пространстве внедрения, имеющем отличительное свойство, заключающееся в том, что пара событий, которые происходят с относительно высокой частотой в одном и том же контексте событий, разделены меньшим расстоянием, чем другая пара событий, которые происходят реже в том же контексте события.
[0088] Успешное моделирование поведения может потребовать детектирования большого количества (например, сотен или тысяч) различных типов событий, но не все типы событий могут быть одинаково важны при моделировании поведения. Сбор и анализ статистических данных о стольких типах событий, полученных из большого количества источников, может оказаться непрактичным. Для решения этой проблемы некоторые варианты осуществления группируют события в категории или кластеры событий в соответствии со степенью сходства между событиями, таким образом создавая более надежную и/или релевантную статистику. Такое существенное уменьшение размерности может существенно облегчить построение клиентских профилей. Сходство событий может быть определено согласно нескольким критериям, например, согласно расстоянию, разделяющему два события в пространстве внедрения событий. В предпочтительном варианте осуществления два события могут считаться подобными, если они происходят преимущественно в одном и том же контексте (например, события A и B считаются подобными, если как A, так и B часто предшествует событие X, и/или за ним следует событие Y, т. е. как в примерных последовательностях XAY и XBY).
[0089] Фиг. 17-A-B иллюстрируют эксперимент по применению некоторых систем и способов, описанных выше, для обнаружения угроз компьютерной безопасности. Корпус событий, собранных от множества отслеживаемых клиентов, использовался для обучения компонентов механизма профилирования, как указано выше, в результате чего отслеживаемые клиенты были разделены на 11 клиентских кластеров/профилей. События были разделены на категории событий в соответствии с представлением каждого события в 15-мерном пространстве внедрения. Модели поведения, специфичные для профиля, были разработаны для каждого из соответствующих клиентских кластеров. Затем на тестовой машине была проведена атака определенного типа. Последовательности событий, собранные с испытательной машины, подавались на детектор аномалий, экземпляр которого, в свою очередь, имел параметры, специфичные для каждой из моделей поведения. Некоторые такие последовательности событий были обнаружены как аномалии.
[0090] Фиг. 17-A иллюстрирует оценки аномалий, специфичных для кластера, представленные по шкале, где оценка 1 указывает на 100% достоверность аномалии (например, по меньшей мере одно событие последовательности событий, полученное от тестовой машины, не было видно на тренировках). На графике представлены значения баллов, усредненные по последовательностям аномальных событий, и соответствующие стандартные отклонения. На чертеже показано, что одна и та же последовательность(и) может считаться аномалией с уровнем достоверности, зависящим от кластера. Другими словами, одни и те же последовательности событий считаются «менее аномальными» для одних клиентов, чем для других. Например, модели поведения, связанные с кластерами 1, 2 и 7, не только детектируют атаку относительно более эффективно, чем другие модели, но и все последовательности событий, связанные с атаками, считаются «одинаково аномальными». Напротив, модели, связанные с кластерами 0 и 9, указывают некоторые последовательности событий одной и той же атаки как «менее аномальные», чем другие.
[0091] Фиг. 17-B иллюстрирует специфичные для профиля средние уровни детектирования, достигнутые для трех различных типов атак. Последовательности событий, собранные с тестовой машины во время каждого типа атаки, были проанализированы с использованием каждой из 11 обученных моделей поведения, специфичных для профиля. Скорость детектирования различается в зависимости от моделей и типов атак, что дополнительно свидетельствует об особенностях некоторых систем и способов, описанных в данном документе.
[0092] Такие экспериментальные результаты указывают на другое потенциальное применение некоторых вариантов осуществления настоящего изобретения. Централизованное решение компьютерной безопасности может выборочно разрабатывать стратегии защиты для каждого набора клиентов, идентифицированных клиентским профилем, и/или для других клиентов, которые имеют сходство с архетипом каждого клиентского кластера. Некоторые варианты осуществления могут идентифицировать клиентские кластеры, для которых описанные здесь способы предлагают удовлетворительную степень безопасности, и другие клиентские кластеры, которые требуют дополнительных мер безопасности. Настройка защиты для каждого клиентского кластера может улучшить взаимодействие с пользователем и сократить ненужные вычислительные затраты.
[0093] Специалисту в данной области техники понятно, что вышеупомянутые варианты осуществления могут быть различным образом изменены, без выхода при этом за рамки объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.
название | год | авторы | номер документа |
---|---|---|---|
СИСТЕМЫ И СПОСОБЫ ДЕТЕКТИРОВАНИЯ ПОВЕДЕНЧЕСКИХ УГРОЗ | 2019 |
|
RU2803399C2 |
СИСТЕМЫ И СПОСОБЫ ДЕТЕКТИРОВАНИЯ ПОВЕДЕНЧЕСКИХ УГРОЗ | 2019 |
|
RU2772549C1 |
Компьютерная система и способ для обнаружения вредоносных программ с использованием машинного обучения | 2021 |
|
RU2802860C1 |
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СООБЩЕНИЙ DNS ДЛЯ СЕЛЕКТИВНОГО СБОРА КОМПЬЮТЕРНЫХ КРИМИНАЛИСТИЧЕСКИХ ДАННЫХ | 2020 |
|
RU2776349C1 |
ДИНАМИЧЕСКИЙ ИНДИКАТОР РЕПУТАЦИИ ДЛЯ ОПТИМИЗАЦИИ ОПЕРАЦИЙ ПО ОБЕСПЕЧЕНИЮ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ | 2017 |
|
RU2723665C1 |
СИСТЕМЫ И СПОСОБЫ СООБЩЕНИЯ ОБ ИНЦИДЕНТАХ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ | 2019 |
|
RU2757597C1 |
СИСТЕМЫ И СПОСОБЫ АВТОМАТИЧЕСКОГО ОБНАРУЖЕНИЯ УСТРОЙСТВА, УПРАВЛЕНИЯ УСТРОЙСТВОМ И УДАЛЕННОЙ ПОМОЩИ | 2015 |
|
RU2694022C2 |
Система и способы для дешифрования сетевого трафика в виртуализированной среде | 2017 |
|
RU2738021C2 |
ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС ДЛЯ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ И УДАЛЕННОГО УПРАВЛЕНИЯ СЕТЕВЫМИ КОНЕЧНЫМИ ТОЧКАМИ | 2015 |
|
RU2697935C2 |
ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК | 2016 |
|
RU2714607C2 |
Изобретение относится к вычислительной технике. Технический результат заключается в повышении уровня безопасности вычислительной системы. Серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный, чтобы: в ответ на происшествие целевого события на целевой клиентской системе определять, содержит ли целевая клиентская система вредоносное программное обеспечение; и выполнять операцию защиты для защиты целевой клиентской системы; причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает: определение контекста события целевого события, выбор клиентского профиля из множества заранее определенных клиентских профилей, использование модели поведения, специфичной для выбранного клиентского профиля для определения множества оценок прогнозирования в соответствии с контекстом события, выбор оценки, определенной для типа события целевого события, и сравнение выбранной оценки с предварительно определенным порогом; причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает аналогичное поведение. 3 н. и 18 з.п. ф-лы, 20 ил., 1 табл.
1. Серверная компьютерная система, содержащая по меньшей мере один аппаратный процессор, конфигурированный, чтобы:
в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, определять в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; и
в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнять операцию защиты для защиты целевой клиентской системы;
причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,
выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,
в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,
выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, и
сравнение выбранной оценки с предварительно определенным порогом;
причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает аналогичное поведение.
2. Компьютерная система по п. 1, в которой определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
когда выбранная оценка указывает, что целевое событие вероятно произойдет в контексте события, определение, что целевая клиентская система не содержит вредоносного программного обеспечения; и,
когда выбранная оценка указывает, что целевое событие вряд ли произойдет в контексте события, определение, что целевая клиентская система содержит вредоносное программное обеспечение.
3. Компьютерная система по п. 1, в которой определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
определение спрогнозированного события в соответствии с множеством оценок прогнозирования;
сравнение спрогнозированного события с целевым событием; и
в ответ, определение, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с результатом сравнения.
4. Компьютерная система по п. 1, в которой:
модель поведения содержит кодер событий, конфигурированный для определения набора координат, указывающих положение целевого события в пространстве внедрения события; и
аппаратный процессор дополнительно конфигурирован для определения, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с положением.
5. Компьютерная система по п. 1, в которой определение состава выбранного кластера клиентских систем включает:
построение множества категорий событий в соответствии с тем, происходит ли выбранное событие набора событий в выбранном контексте других событий набора событий;
в ответ на построение множества категорий событий, решение, принадлежит ли каждая клиентская система выбранному кластеру клиентских систем в соответствии с профилем события каждой клиентской системы, причем профиль события определяется в соответствии с подсчетом событий, происходящих на каждой клиентской системе и принадлежащих выбранной категории событий из множества категорий событий.
6. Компьютерная система по п. 1, дополнительно конфигурированная для выбора клиентского профиля в соответствии с тем, является ли целевая клиентская система членом выбранного кластера.
7. Компьютерная система по п. 1, в которой выбор клиентского профиля включает:
определение набора координат, указывающих положение целевой клиентской системы в многомерном пространстве внедрения;
в ответ, выбор целевого кластера из множества кластеров в соответствии с набором координат; и
выбор клиентского профиля в соответствии с целевым кластером.
8. Компьютерная система по п. 7, конфигурированная для выбора целевого кластера дополнительно в соответствии с другим набором координат, указывающих положение члена целевого кластера в пространстве внедрения.
9. Компьютерная система по п. 1, в которой по меньшей мере один аппаратный процессор конфигурирован для выбора клиентского профиля дополнительно в соответствии с текущим пользователем целевой клиентской системы.
10. Компьютерная система по п. 1, в которой контекст события целевого события содержит попытку доступа целевой клиентской системой к выбранному сетевому местоположению.
11. Реализуемый компьютером способ детектирования поведенческих угроз, включающий:
в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, использование по меньшей мере одного аппаратного процессора компьютерной системы при определении, в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; и
в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнение операции защиты для защиты целевой клиентской системы;
причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,
выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,
в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля, для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,
выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, и
сравнение выбранной оценки с предварительно определенным порогом;
причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает схожее поведение.
12. Способ по п. 11, в котором определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
когда выбранная оценка указывает, что целевое событие вероятно произойдет в контексте события, определение, что целевая клиентская система не содержит вредоносного программного обеспечения; и,
когда выбранная оценка указывает, что целевое событие вряд ли произойдет в контексте события, определение, что целевая клиентская система содержит вредоносное программное обеспечение.
13. Способ по п. 11, в котором определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
определение спрогнозированного события в соответствии с множеством оценок прогнозирования;
сравнение спрогнозированного события с целевым событием; и
в ответ, определение, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с результатом сравнения.
14. Способ по п. 11, в котором:
модель поведения содержит кодер событий, конфигурированный для определения набора координат, указывающих положение целевого события в пространстве внедрения события; и
по меньшей мере один аппаратный процессор дополнительно конфигурирован для определения, содержит ли целевая клиентская система вредоносное программное обеспечение, в соответствии с положением.
15. Способ по п. 11, в котором определение состава выбранного кластера клиентских систем включает:
построение множества категорий событий в соответствии с тем, происходит ли выбранное событие набора событий в выбранном контексте других событий набора событий;
в ответ на построение множества категорий событий, решение, принадлежит ли каждая клиентская система выбранному кластеру клиентских систем в соответствии с профилем события каждой клиентской системы, причем профиль события определяется в соответствии с подсчетом событий, происходящих в каждой клиентской системе и принадлежащих выбранной категории событий из множества категорий событий.
16. Способ по п. 11, дополнительно включающий выбор клиентского профиля в соответствии с тем, является ли целевая клиентская система членом выбранного кластера.
17. Способ по п. 11, в котором выбор клиентского профиля включает:
определение набора координат, указывающих положение целевой клиентской системы в многомерном пространстве внедрения;
в ответ, выбор целевого кластера множества кластеров в соответствии с набором координат; и
выбор клиентского профиля в соответствии с целевым кластером.
18. Способ по п. 17, включающий выбор целевого кластера дополнительно в соответствии с другим набором координат, указывающим положение члена целевого кластера в пространстве внедрения.
19. Способ по п. 11, в котором по меньшей мере один аппаратный процессор конфигурирован для выбора клиентского профиля дополнительно в соответствии с текущим пользователем целевой клиентской системы.
20. Способ по п. 11, в котором контекст события целевого события содержит попытку доступа целевой клиентской системой к выбранному сетевому местоположению.
21. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении по меньшей мере одним аппаратным процессором компьютерной системы побуждают компьютерную систему:
в ответ на происшествие целевого события на целевой клиентской системе, причем целевое событие выбрано из группы, содержащей запуск процесса и попытку доступа к файлу, определять в соответствии с целевым событием, содержит ли целевая клиентская система вредоносное программное обеспечение; и
в ответ на определение, что целевая клиентская система содержит вредоносное программное обеспечение, выполнять операцию защиты для защиты целевой клиентской системы;
причем определение, содержит ли целевая клиентская система вредоносное программное обеспечение, включает:
определение контекста события целевого события, причем контекст события содержит набор событий, произошедших на целевой клиентской системе перед целевым событием, и другой набор событий, произошедших на целевой клиентской системе следом за целевым событием,
выбор клиентского профиля из множества заранее определенных клиентских профилей в соответствии с целевым событием, причем выбранный клиентский профиль характеризует базовое поведение выбранного кластера клиентских систем,
в ответ на выбор клиентского профиля, использование модели поведения, специфичной для выбранного клиентского профиля, для определения множества оценок прогнозирования в соответствии с контекстом события, причем каждая оценка из множества оценок прогнозирования определяется для отдельного типа события и указывает вероятность того, что событие отдельного типа события могло произойти в контексте события для выбранного клиентского профиля,
выбор, из множества оценок прогнозирования, оценки, определенной для типа события целевого события, и
сравнение выбранной оценки с предварительно определенным порогом;
причем состав выбранного кластера клиентских систем определяется путем анализа набора событий, произошедших на множестве клиентских систем для определения, какая из множества клиентских систем показывает схожее поведение.
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз | 1924 |
|
SU2014A1 |
СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ УГРОЗ В КОДЕ, ИСПОЛНЯЕМОМ ВИРТУАЛЬНОЙ МАШИНОЙ | 2012 |
|
RU2522019C1 |
АВТОМАТИЧЕСКОЕ АСИММЕТРИЧНОЕ ОБНАРУЖЕНИЕ УГРОЗЫ С ИСПОЛЬЗОВАНИЕМ ОТСЛЕЖИВАНИЯ В ОБРАТНОМ НАПРАВЛЕНИИ И ПОВЕДЕНЧЕСКОГО АНАЛИЗА | 2005 |
|
RU2316821C2 |
Авторы
Даты
2022-08-22—Публикация
2019-12-10—Подача