СИСТЕМЫ И СПОСОБЫ СООБЩЕНИЯ ОБ ИНЦИДЕНТАХ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ
SYSTEMS AND METHODS FOR REPORTING COMPUTER SECURITY INCIDENTS

РОДСТВЕННЫЕ ЗАЯВКИ
[0001] В настоящей заявке испрашивается приоритет по дате подачи предварительных патентных заявок США №62/699 817, поданной 18 июля 2018 г. и озаглавленной «ИИ для проверки безопасности», и №62/816 389, поданной 11 марта 2019 г. и озаглавленный «Системы и способы сообщения об инцидентах компьютерной безопасности», полное содержание которых включено в настоящий документ посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] Изобретение относится к системам и способам противодействия угрозам компьютерной безопасности, в частности к сообщению автоматически обнаруженных инцидентов оператору.
[0003] Вредоносное программное обеспечение, также известное как вредоносное ПО, поражает большое количество компьютерных систем по всему миру. Во многих формах, таких как компьютерные вирусы, троянские программы, шпионское ПО и программы-вымогатели, вредоносное ПО представляют серьезный риск для миллионов пользователей компьютеров, делая их уязвимыми для потери данных и конфиденциальной информации, кражи персональных данных и потери производительности, среди прочего. Вредоносное программное обеспечение также может способствовать несанкционированному доступу к компьютерной системе, что может дополнительно позволить злоумышленнику (хакеру) извлекать пользовательские данные и другую конфиденциальную информацию.
[0004] Большое количество устройств, неофициально называемых интернетом вещей (ИВ), все в большей степени подключается к коммуникационным сетям и сети Интернет. К таким устройствам относятся, среди прочего, смартфоны, умные часы, телевизоры и другие мультимедийные устройства, игровые консоли, бытовая техника и различные домашние датчики, такие как термореле. По мере того, как все больше таких устройств уходит в онлайн, они становятся уязвимыми для угроз безопасности, таких как вредоносное ПО и вторжение. Следовательно, существует растущая потребность в защите таких устройств от вредоносных программ, а также в защите коммуникаций с такими устройствами.
[0005] Вредоносные программы и способы взлома постоянно развиваются, заставляя поставщиков решений в области компьютерной безопасности не отставать от постоянно меняющегося ландшафта угроз. Одна конкретная категория способов безопасности, обычно известная как поведенческое обнаружение, основана на контроле активности устройства и/или компонента программного обеспечения в соответствии с набором правил. Некоторые паттерны активности (например, последовательности событий аппаратного или программного обеспечения, определенные особенности сетевого трафика) соответствуют нормальному, легитимному, использованию соответствующего устройства, тогда как другие могут указывать на злой умысел.
[0006] По мере того как все больше и больше устройств подключаются к Интернету, а бизнес становится в основном управляемым данными, скорость и чистый объем трафика данных по сетям электронной коммуникации постоянно увеличивается и может превзойти возможности традиционных систем и способов компьютерной безопасности. Кроме того, всякий раз, когда для расследования инцидентов компьютерной безопасности требуется вмешательство человека, эффективность обнаружения сильно ограничивается способностью сотрудников службы безопасности сортировать большие объемы информации. Следовательно, существует сильный стимул для разработки надежных и масштабируемых способов анализа и визуализации данных, относящихся к безопасности.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0007] Согласно одному аспекту, способ использует серверную компьютерную систему для защиты множества клиентских систем от угроз компьютерной безопасности. Способ включает использование по меньшей мере одного аппаратного процессора серверной компьютерной системы в ответ на получение экспертного индикатора для выбора первой процедуры для оценки первого предиката безопасности из множества процедур, причем первую процедуру выбирают в соответствии с экспертным индикатором. Экспертный индикатор содержит множество элементов метаданных, характеризующих сетевой поток между клиентской системой из множества клиентских систем и другой стороной. Способ дополнительно включает использование по меньшей мере одного аппаратного процессора серверной компьютерной системы для выбора второй процедуры для оценки второго предиката безопасности из множества процедур, причем вторую процедуру выбирают в соответствии с результатом выполнения первой процедуры. Способ дополнительно включает использование по меньшей мере одного аппаратного процессора серверной компьютерной системы, в ответ на выбор первой процедуры, для добавления первого текстового сообщения к оповещению безопасности, указывающему, подвержена ли клиентская система угрозе компьютерной безопасности. Первое текстовое сообщение определяют согласно первому шаблону сообщения, выбранному согласно первой процедуре. Способ дополнительно включает использование по меньшей мере одного аппаратного процессора серверной компьютерной системы, в ответ на выбор второй процедуры, для добавления второго текстового сообщения к оповещению безопасности. Второе текстовое сообщение определяют в соответствии со вторым шаблоном сообщения, выбранным в соответствии со второй процедурой. Способ дополнительно включает использование по меньшей мере одного аппаратного процессора серверной компьютерной системы для передачи оповещения безопасности на устройство администрирования, конфигурированное для отображения оповещения безопасности человеку-оператору.
[0008] Согласно другому аспекту, серверная компьютерная система конфигурирована для защиты множества клиентских систем от угроз компьютерной безопасности. Серверная компьютерная система содержит по меньшей мере один аппаратный процессор, конфигурированный для выполнения экспертного анализатора и диспетчера оповещений, соединенного с экспертным анализатором. Экспертный анализатор конфигурирован, в ответ на получение экспертного индикатора, для выбора первой процедуры для оценки первого предиката безопасности из множества процедур, причем первая процедура выбирается согласно экспертному индикатору. Экспертный индикатор содержит множество элементов метаданных, характеризующих сетевой поток между клиентской системой из множества клиентских систем и другой стороной. Экспертный анализатор дополнительно конфигурирован для выбора второй процедуры для оценки второго предиката безопасности из множества процедур, причем вторая процедура выбирается в соответствии с результатом выполнения первой процедуры. Диспетчер оповещений конфигурирован, в ответ на выбор экспертным анализатором первой процедуры, для добавления первого текстового сообщения к оповещению безопасности, указывающему, подвержена ли клиентская система угрозе компьютерной безопасности. Первое текстовое сообщение определяют согласно первому шаблону сообщения, выбранному согласно первой процедуре. Диспетчер оповещений дополнительно конфигурирован, в ответ на выбор экспертным анализатором второго алгоритма безопасности, для добавления второго текстового сообщения к оповещению безопасности. Второе текстовое сообщение определяется в соответствии со вторым шаблоном сообщения, выбранным в соответствии со второй процедурой. Диспетчер оповещений дополнительно конфигурирован для передачи оповещения безопасности на устройство администрирования, конфигурированное для отображения оповещения безопасности человеку-оператору.
[0009] Согласно другому аспекту, энергонезависимый машиночитаемый носитель хранит инструкции, которые при выполнении по меньшей мере одним аппаратным процессором серверной компьютерной системы, конфигурированной для защиты множества клиентских систем от угроз компьютерной безопасности, предписывают серверной компьютерной системе выполнение экспертного анализатора и диспетчера оповещений, соединенного с экспертным анализатором. Экспертный анализатор конфигурирован, в ответ на получение экспертного индикатора, для выбора первой процедуры для оценки первого предиката безопасности из множества процедур, причем первая процедура выбирается согласно экспертному индикатору. Экспертный индикатор содержит множество элементов метаданных, характеризующих сетевой поток между клиентской системой из множества клиентских систем и другой стороной. Экспертный анализатор дополнительно конфигурирован для выбора второй процедуры для оценки второго предиката безопасности из множества процедур, причем вторая процедура выбирается в соответствии с результатом выполнения первой процедуры. Диспетчер оповещений конфигурирован, в ответ на выбор экспертным анализатором первой процедуры, для добавления первого текстового сообщения к оповещению безопасности, указывающему, подвержена ли клиентская система угрозе компьютерной безопасности. Первое текстовое сообщение определяют согласно первому шаблону сообщения, выбранному согласно первой процедуре. Диспетчер оповещений дополнительно конфигурирован, в ответ на выбор экспертным анализатором второго алгоритма безопасности, для добавления второго текстового сообщения к оповещению безопасности. Второе текстовое сообщение определяют в соответствии со вторым шаблоном сообщения, выбранным в соответствии со второй процедурой. Диспетчер оповещений дополнительно конфигурирован для передачи оповещения безопасности на устройство администрирования, конфигурированное для отображения оповещения безопасности человеку-оператору.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0010] Вышеупомянутые аспекты и преимущества настоящего изобретения станут более понятными после прочтения следующего ниже подробного описания, данного со ссылками на чертежи, на которых изображено следующее:
[0011] Фиг. 1 показывает пример набора клиентских систем, защищенных от угроз компьютерной безопасности, согласно некоторым вариантам осуществления настоящего изобретения.
[0012] Фиг. 2 показывает пример обмена данными между различными субъектами согласно некоторым вариантам осуществления настоящего изобретения.
[0013] Фиг. 3 иллюстрирует пример конфигурации аппаратного обеспечения компьютерного устройства согласно некоторым вариантам осуществления настоящего изобретения.
[0014] Фиг. 4 иллюстрирует пример компонентов программного обеспечения, выполняющиеся в клиентской системе согласно некоторым вариантам осуществления настоящего изобретения.
[0015] Фиг. 5 показывает пример последовательности этапов, выполняемых в качестве части предварительной обработки потока согласно некоторым вариантам осуществления настоящего изобретения.
[0016] Фиг. 6 показывает другую последовательность этапов, иллюстрирующую пример процесса маркировки потока согласно некоторым вариантам осуществления настоящего изобретения.
[0017] Фиг. 7-А показывает пример маркировки потока согласно некоторым вариантам осуществления настоящего изобретения.
[0018] Фиг. 7-В показывает другой пример маркировки потока согласно некоторым вариантам осуществления настоящего изобретения.
[0019] Фиг. 8 иллюстрирует пример компонентов программного обеспечения и работы сервера безопасности согласно некоторым вариантам осуществления настоящего изобретения.
[0020] Фиг. 9 показывает пример последовательности этапов, выполняемых компонентом экспертного анализатора согласно некоторым вариантам осуществления настоящего изобретения.
[0021] Фиг. 10 показывает пример последовательности этапов, выполняемых компонентом диспетчера оповещений согласно некоторым вариантам осуществления настоящего изобретения.
[0022] Фиг. 11 иллюстрирует пример процедуры обнаружения атаки, содержащей дерево решений, согласно некоторым вариантам осуществления настоящего изобретения.
[0023] Фиг. 12 показывает другой пример процедуры обнаружения атаки согласно некоторым вариантам осуществления, причем процедура содержит несколько этапов, и каждый этап может выполняться согласно множеству сценариев.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0024] Следует понимать, что в нижеследующем описании все перечисленные соединения между структурами могут быть прямыми функциональными соединениями или непрямыми функциональными соединениями через промежуточные структуры. Набор элементов включает в себя один или более элементов. Считается, что любое упоминание элемента относится по меньшей мере к одному элементу. Множество элементов включает по меньшей мере два элемента. Если не требуется иное, любые описанные этапы способа не обязательно должны выполняться в конкретном проиллюстрированном порядке. Первый элемент (например, данные), полученный из второго элемента, включает в себя первый элемент, равный второму элементу, а также первый элемент, сгенерированный обработкой второго элемента и, опционально, других данных. Принятие определения или решения в соответствии с параметром включает в себя принятие определения или решения в соответствии с параметром и, опционально, в соответствии с другими данными. Если не указано иное, индикатором некоторого количества/данных может быть само количество/данные или индикатор, отличный от самого количества/данных. Компьютерная программа - это последовательность инструкций процессора, выполняющих задачу. Компьютерные программы, описанные в некоторых вариантах осуществления настоящего изобретения, могут быть автономными программными объектами или подобъектами (например, подпрограммами, библиотеками) других компьютерных программ. Термин «база данных» используется здесь для обозначения любого организованного набора данных с возможностью поиска. Машиночитаемые носители включают энергонезависимые носители, такие как магнитные, оптические и полупроводниковые носители данных (например, жесткие диски, оптические диски, флэш-память, DRAM), а также каналы коммуникации, такие как проводящие кабели и оптоволоконные линии. Согласно некоторым вариантам осуществления настоящее изобретение обеспечивает, среди прочего, компьютерные системы, содержащие аппаратные средства (например, один или более процессоров), запрограммированные для выполнения описанных здесь способов, а также машиночитаемые инструкции кодирования мультимедиа для выполнения способов, описанных в данном документе.
[0025] Нижеследующее описание иллюстрирует варианты осуществления изобретения в качестве примера, а не обязательно в качестве ограничения.
[0026] Фиг. 1 показывает пример конфигурации, в которой множество клиентских систем 10а-е защищено от угроз компьютерной безопасности согласно некоторым вариантам осуществления настоящего изобретения. Клиентские системы 10а-е могут представлять любое электронное устройство, имеющее процессор, память и коммуникационный интерфейс. Примеры клиентских систем 10а-е включают корпоративные мэйнфреймы, персональные компьютеры, ноутбуки, планшетные компьютеры, мобильные телекоммуникационные устройства (например, смартфоны), медиаплееры, телевизоры, игровые консоли, бытовую технику (например, холодильники, термореле, интеллектуальное отопление и/или системы освещения), а также носимые устройства (например, умные часы, спортивное и фитнес-оборудование), среди прочего. Клиентские системы 10а-е связаны между собой локальной сетью 12 и дополнительно подключены к расширенной сети 14, такой как Интернет. Локальная сеть 12 может содержать локальную сеть (LAN). Примеры локальных сетей 12 могут включать, среди прочего, домашнюю сеть и корпоративную сеть.
[0027] В некоторых вариантах осуществления устройство 15 экспорта потока конфигурировано для перехвата трафика данных между клиентами 10а-е в пределах локальной сети 12 и/или между клиентами 10а-е и другими субъектами, расположенными вне локальной сети 12. В некоторых вариантах осуществления экспортер 15 потока конфигурирован так, чтобы действовать в качестве шлюза между локальной сетью 12 и расширенной сетью 14, или же конфигурирован так, что по меньшей мере часть сетевого трафика между локальной сетью 12 и расширенной сетью 14 проходит через экспортер 15 потока. В некоторых вариантах осуществления экспортер потока выборочно извлекает информацию из перехваченного трафика, представляет извлеченную информацию в качестве сетевого потока, закодированного в экспортном формате, таком как экспорт информации о потоке по Интернет-протоколу - IPFIX (описанный в запросе комментариев инженерной группы Интернета IETF-RFC 7011) или NetFlow от Cisco, Inc. (см., например, IETF-RFC 3954), и экспортирует соответствующие данные сетевого потока на агрегатор данных или сервер безопасности, как показано ниже. Сетевой поток может быть определен как набор пакетов данных, проходящих через точку наблюдения в сети (например, экспортер 15 потока) в течение определенного интервала времени, так что все пакеты, принадлежащие конкретному потоку, имеют набор общих свойств (например, то же происхождение и/или назначение). Экспортируемая информация, относящаяся к сетевому потоку, обычно содержит сводку метаданных перехваченного трафика, соответствующие метаданные, полученные из заголовков пакетов или характеристик пакетов, отличных от фактического содержимого полезных данных. Примеры элементов метаданных потока включают в себя IP-адрес отправителя и получателя или имя домена в Интернете, размер полезных данных, протокол передачи, временную метку и т.д. В типичном формате экспорта данные могут быть организованы в виде таблицы, где каждая строка представляет отдельный поток, а каждый столбец - значение параметра соответствующего потока. Такие столбцы таблицы потоков в настоящем документе считаются элементами потока. Элементы потока, сформулированные в соответствии с отраслевыми стандартами, такими как IPFIX и NetFlow, в настоящем документе называются стандартными элементами потока.
[0028] В некоторых вариантах осуществления агрегатор 17 данных конфигурирован для приема информации от защищенных клиентов 10а-е и/или экспортера(ов) 15 потока, а также для организации и предварительной обработки такой информации при подготовке к экспертному анализу. Сервер 16 безопасности, связанный с возможностью обмена информацией с агрегатором 17 данных и/или репозиторием 18 данных, конфигурирован для анализа информации, собранной от клиентов, для обнаружения потенциальных угроз компьютерной безопасности.
[0029] Агрегатор 17 данных может выполнять частичный экспертный анализ информации, полученной от клиентов и/или экспортеров потоков. Тем не менее, типичный агрегатор 17 данных не выполняет оценок безопасности, например, не определяет, указывает ли конкретный поток на несанкционированный доступ к какой-либо части компьютерной системы, или указывает ли соответствующий поток на заражение вредоносным ПО. Вместо этого тип предварительной обработки, выполняемой типичными вариантами осуществления агрегатора 17 данных, направлен на ускорение и облегчение экспертного анализа, выполняемого другими компонентами системы (например, сервером 16 безопасности), за счет снятия некоторой вычислительной нагрузки с этих компонентов. Затем сервер 16 может сосредоточиться на выполнении программ обнаружения вредоносного ПО и/или вторжений, в то время как существенная часть работы, требуемой для приведения данных в оптимальную форму для обработки безопасности, может выполняться агрегатором 17 данных. Примеры операций предварительной обработки включают в себя фильтрацию событий и/или потоков, то есть, выбор событий и/или данных потока согласно различным критериям.
[0030] Некоторые варианты осуществления агрегатора 17 данных хранят относящуюся к безопасности информацию (например, индикаторы событий, сетевые потоки) в репозитории 18 данных, который может быть реализован с использованием любого типа машиночитаемого носителя, включая, но не ограничиваясь, жесткий диск, хранилище SAN, RAM-диск, любые структуры памяти, накопитель и т.д. Агрегатор 17 данных может не хранить все результаты предварительной обработки потока в репозиторий 18 данных. Вместо этого в некоторых вариантах осуществления выбираются некоторые результаты, которые могут быть особенно информативными и/или могут наилучшим образом фиксировать какой-либо тип изменения состояния контролируемого клиента и/или сети. Такие результаты предварительной обработки могут быть выбраны в соответствии с набором заранее определенных правил. Работа агрегатора 17 данных более подробно описана ниже.
[0031] В некоторых вариантах осуществления клиентские системы 10а-е контролируются, управляются и/или конфигурируются удаленно с использованием программного обеспечения, выполняемого на устройстве 13 администрирования, подключенном к расширенной сети 14 (например, Интернет). Примеры устройств 13 администрирования включают, среди прочего, персональный компьютер и смартфон. Устройство 13 может предоставлять графический интерфейс пользователя (GUI), позволяющий пользователю (например, специалисту по компьютерной безопасности, сетевому администратору) удаленно контролировать и/или управлять работой клиентских систем 10а-е, например, для установки параметров конфигурации и/или получения оповещения безопасности о событиях, происходящих в соответствующих клиентских системах. В одном примере сценария использования клиенты 10а-е представляют собой отдельные компьютеры в корпоративной сети, а устройство 13 администрирования в совокупности представляет собой компьютеры центра управления безопасностью (SOC), конфигурированные для визуализации и контроля активности соответствующей сети. В одном из таких примеров устройство 13 администрирования может выполнять программное обеспечение управления информацией и событиями (SIEM), конфигурированное для отображения оповещений безопасности, связанных с событиями, происходящими в соответствующей корпоративной сети. В другом примере сценария использования клиенты 10а-е представляют собой электронные устройства домашнего хозяйства, соединенные между собой домашней сетью. В таких случаях устройство администрирования 13 может представлять смартфон владельца, выполняющий приложение, которое позволяет соответствующему владельцу получать оповещения безопасности, касающиеся клиентов 10а-е, настраивать параметры доступа к сети и/или родительского контроля и т.д.
[0032] Квалифицированный специалист поймет, что проиллюстрированная конфигурация с фиг. 1 является лишь одной из многих возможных конфигураций. Каждый из компонентов 15 и 17 может быть реализован как автономное сетевое устройство или может быть реализован как часть сервера или группы серверов, опционально как микропрограммное обеспечение или как программное обеспечение. Например, экспортер 15 потока и агрегатор 17 данных могут быть воплощены в виде компьютерных программ, выполняемых на одной и той же физической машине. В некоторых вариантах осуществления агрегатор 17 данных может выполняться на сервере 16 безопасности. В другом альтернативном варианте осуществления экспортер 15 потока может представлять собой программное обеспечение, выполняющееся в клиентской системе, например, клиентах 10а-е на фиг. 1. В других примерных вариантах осуществления любой из экспортера 15 потока и агрегатора 17 данных может быть осуществлен в виде специализированного аппаратного устройства, например, с использованием программируемых вентильных матриц (FPGA) или специализированных интегральных схем (ASIC).
[0033] Фиг. 2 показывает пример обмена данными согласно некоторым вариантам осуществления настоящего изобретения. Агрегатор 17 данных может принимать индикатор 22 события от контролируемой клиентской системы 10 и/или индикатор 20 потока от экспортера 15 потока. Индикатор 22 события может содержать данные, указывающие на возникновение события во время работы соответствующей клиентской системы. Некоторые такие события могут указывать на угрозу безопасности. Другие события могут не указывать на злой умысел сами по себе, но могут указывать на атаку, если они предпринимаются в контексте других событий, происходящих в соответствующей клиентской системе или в других контролируемых клиентских системах. Пример индикатора 22 события может указывать на то, что конкретное вредоносное программное обеспечение (вредоносное ПО) было обнаружено в соответствующей клиентской системе. Другие примеры событий, передаваемых через индикатор 22 событий, включают запуск определенного программного компонента/приложения, попытку доступа к определенному месту на локальном запоминающем устройстве (например, жестком диске) или конкретному сетевому ресурсу, определенную последовательность операций (например, большое количество операций записи на диск за короткое время) и т.д. Индикатор 20 потока может включать в себя сводку сетевого трафика, организованную в виде набора метаданных (например, таблицы данных в формате NetFlow или IPFIX, содержащей множество стандартных элементов потока).
[0034] В некоторых вариантах осуществления агрегатор 17 данных может предварительно обработать собранные данные, чтобы облегчить дальнейший анализ сервером 16 безопасности. Предварительная обработка может добавлять подробности (например, дополнительные метаданные) к данным, полученным от экспортера 15 потока и/или клиентских систем 10а-е. В одном из таких примеров данные сетевого потока могут быть маркированы дополнительной информацией (например, геолокацией, частотой посещения конкретного IP-адреса, соотношением между отправлением и получением и т.д.). В альтернативном варианте осуществления такая маркировка потока может выполняться экспортером 15 потока. Подробности и примеры предварительной обработки/маркировки потока приведены ниже.
[0035] Сервер 16 безопасности в общем представляет собой набор связанных с возможностью обмена информацией компьютерных систем, которые могут находиться или не находиться в физической близости друг от друга. Сервер 16 конфигурирован для анализа данных, полученных от клиентов, для обнаружения угроз компьютерной безопасности, таких как вредоносное ПО и вторжение. Когда такой анализ указывает на угрозу, некоторые варианты осуществления сервера 16 передают оповещение 26 безопасности на устройство 13 администрирования. Оповещение 13 содержит кодирование по меньшей мере одного сообщения оповещения, сформулированного на естественном языке (например, английском, голландском и т.д.), соответствующего сообщения, сформулированного для предоставления информации оператору-человеку (например, специалисту по компьютерной безопасности, сетевому администратору, владельцу, и т.д.) о соответствующей угрозе и о причинах, приведших к ее обнаружению. В некоторых вариантах осуществления сообщение оповещения может дополнительно включать в себя значения различных параметров или численные значения, определенные во время анализа (например, время, размеры файлов, сетевые адреса, географические местоположения), а также предложения по дальнейшему действию или исследованию (например, изолировать сетевой домен X, запустить антивирусное ПО на хосте Y и т.д.).
[0036] Пример сообщения оповещения может гласить: «Вероятность злонамеренной активности со стороны объекта, принадлежащего к поддомену сети «Бухгалтерский учет», составляет 75%. Принтер, расположенный по сетевому адресу X, загрузил значительный объем данных (размером > 1 ГБ) на подозрительный IP-адрес (щелкните для подробностей). Перевод произошел в нерабочее время, в выходные (щелкните для подробностей)». Некоторые части сообщения оповещения могут быть снабжены гиперссылками, с отображением большего количества текста при нажатии на них. Например, «целевое устройство было идентифицировано как принтер, потому что его МАС-адрес указывает на устройство, произведенное Epson», и «целевой IP-адрес был признан подозрительным, поскольку он соответствовал элементу из серого списка и был геопозиционирован на территории Украины».
[0037] Другой пример сообщение оповещения может гласить: «Оповещение о вторжении! Обнаружено с помощью эвристики №5, 25 и 71 (щелкните на числа для подробностей)». Другая версия может гласить «Оповещение о вторжении! Обнаружено по времени активности, адресу назначения и размеру полезных данных (щелкните для подробностей)». В приведенных выше примерах подчеркнутые элементы могут содержать гиперссылки.
[0038] Фиг. 3 показывает пример конфигурации аппаратного обеспечения компьютерного устройства согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированное вычислительное устройство в целом представляет собой любую из машин, показанных на фиг. 1 (клиенты 10а-е, устройство 13 администрирования, экспортер 15 потока, агрегатор 17 данных и сервер 16 безопасности). Конфигурация, показанная на фиг. 3, соответствует компьютерной системе; архитектура других устройств, таких как планшетные компьютеры, смартфоны и т.д., может немного отличаться от примерной архитектуры, показанной в данном документе. Процессор 32 содержит физическое устройство (например, многоядерную интегральную схему, сформированную на полупроводниковой подложке), конфигурированное для исполнения вычислительных и/или логических операций с набором сигналов и/или данных. Такие операции могут быть закодированы в виде инструкций процессора (например, машинный код или какой-либо другой язык программирования). Блок 34 памяти может содержать недолговечный машиночитаемый носитель (например, RAM), хранящий инструкции процессора и/или данные, к которым осуществляется доступ или которые генерируются процессором 32 в ходе выполнения операций. Устройства 36 ввода могут включать в себя компьютерные клавиатуры, мыши и микрофоны, среди прочего, в том числе соответствующие аппаратные интерфейсы и/или адаптеры, позволяющие пользователю вводить данные и/или инструкции в соответствующее вычислительное устройство. Устройства 38 вывода могут включать в себя устройства отображения, такие как мониторы и динамики, среди прочего, а также аппаратные интерфейсы/адаптеры, такие как графические карты, позволяющие соответствующему вычислительному устройству передавать данные пользователю. В некоторых вариантах осуществления устройства 36 ввода и устройства 38 вывода могут совместно использовать общую часть аппаратного обеспечения, как в случае устройств с сенсорным экраном. Устройства 42 хранения включают в себя машиночитаемые носители, обеспечивающие энергонезависимое хранение, чтение и запись программных инструкций и/или данных. Примерные устройства 42 хранения включают в себя магнитные и оптические диски и устройства флэш-памяти (твердотельные), а также съемные носители, такие как CD и/или DVD диски и приводы. Сетевые адаптеры 44 позволяют соответствующему вычислительному устройству подключаться к сети электронной коммуникации и/или обмениваться данными с другими устройствами/компьютерными системами. Контроллер-концентратор 40 представляет собой множество шин системы, периферии и/или чипсета и/или всех других электронных схем, обеспечивающих коммуникации между процессором 32 и устройствами 34, 36, 38, 42 и 44. Например, контроллер-концентратор 40 может включать в себя, среди прочего, контроллер памяти, контроллер ввода/вывода (I/O) и контроллер прерываний. В другом примере контроллер-концентратор 40 может содержать процессор 32 подключения северного моста к памяти 34 и/или процессор 32 подключения южного моста к устройствам 36, 38, 42 и 44.
[0039] На фиг. 4 показаны примерные компоненты программного обеспечения, выполняющиеся в клиентской системе, например клиентах 10а-е с фиг. 1. Приложение 48, в целом, представляет любое пользовательское приложение, такое как текстовый редактор, электронная таблица, компьютерная графика, браузер, игра, медиаплеер и приложения электронной коммуникации, среди прочего. Приложение 50 безопасности может выполнять различные задачи компьютерной безопасности, такие как обнаружение вредоносного программного обеспечения, контроль приложений, родительский контроль и т.д. Приложение 50 может содержать сборщик событий 52, конфигурированный для обнаружения возникновения различных связанных с безопасностью событий во время выполнения приложения 48 и/или ОС 46. Возникновение и параметры таких событий могут быть переданы агрегатору 17 данных в виде индикаторов 22 событий. Сетевой фильтр 53 может предоставлять услуги безопасности коммуникации, такие как межсетевой экран и/или анализ трафика. В некоторых вариантах осуществления сетевой фильтр 53 может извлекать информацию из электронных сообщений между клиентом 10 и другими субъектами и может экспортировать такую информацию в качестве индикатора потока в агрегатор 17 данных.
[0040] Фиг. 5-6 показывают примеры последовательностей этапов, подробно описывающие примерную работу агрегатора 17 данных согласно некоторым вариантам осуществления настоящего изобретения. Конкретная операция предварительной обработки, выполняемая агрегатором 17, включает маркирование сетевых потоков, полученных от клиентов 10а-е и/или экспортера(ов) 15 потока. Маркирование в настоящем документе относится к определению дополнительной информации (например, метаданных) из входящих данных, таких как индикатор 20 потока и/или индикатора 22 события (см. фиг. 2), и добавления соответствующей дополнительной информации к представлению соответствующих входящих данных, например в качестве дополнительного столбца в строке таблицы, представляющей сетевой поток. Маркированные элементы потока могут быть определены в соответствии с любой комбинацией стандартных элементов потока (т.е. элементов потока, сформулированных в соответствии со стандартом, таким как NetFlow или IPFIX), или могут опционально быть получены в соответствии с такими стандартными элементами потока и, возможно, другой внешней и/или не относящейся к потоку информации.
[0041] Неограничивающим примером маркированного элемента является элемент с маркированной геолокации, полученной из IP-адреса целевого сетевого потока с помощью справочной таблицы геолокации. Таблица поиска сопоставляет IP-адрес с географическим положением (например, страной, городом, почтовым индексом, регионом и т.д.), которое затем становится новым маркированным элементом соответствующего потока. Другим неограничивающим примером маркированного элемента является промежуток времени или продолжительность, которая может быть дополнительно вычислена в соответствии с временными метками «время начала потока» и «время окончания потока». Другой пример маркированного элемента - это индикатор частоты запросов, полученных с определенного IP-адреса. Еще один примерный маркированный элемент - это коэффициент трафика, полученный из количества данных, отправленных и полученных от конкретного IP-адреса или конкретного порта устройства, расположенного на конкретном IP-адресе. Еще один примерный маркированный элемент - это элемент порта/IP-адреса, полученный в соответствии с исходным IP-адресом и портом назначения сетевого потока.
[0042] Конкретная категория маркированных элементов включает составные маркированные элементы, которые определяются согласно другим маркированным элементам и, опционально, согласно другим данным. Составной маркированный элемент может содержать комбинацию множества маркированных элементов. Неограничивающий пример маркированного составного элемента определяется в соответствии с элементом с интервалом времени и элементом с маркировкой геолокации. Другой неограничивающий пример вычисляется путем определения объема трафика (например, частоты, байтов или их комбинации) для конкретной геолокации. Составные маркированные элементы, в свою очередь, могут использоваться для определения других, более сложных маркированных элементов.
[0043] Фиг. 5 показывает примерную последовательность этапов, выполняемых для маркировки потока согласно некоторым вариантам осуществления настоящего изобретения. В ответ на прием сетевого потока для анализа на этапе 104 может быть определен порядок маркировки. В некоторых вариантах осуществления маркирование осуществляется посредством набора модулей маркировки, которые могут выполняться одновременно или последовательно в зависимости от типа анализируемых данных. Например, каждый модуль маркировки может вычислять отдельный маркирвоанный элемент. В оптимизированной конфигурации параллельных вычислений отдельные модули маркировки могут выполняться на разных физических процессорах агрегатора 17. Этап 104 может определять порядок, в котором такие модули выполняются, например, в соответствии с характеристикой анализируемого сетевого потока. В одном примере выполнение модуля маркировки А требует наличия определенного маркированного элемента, который вычисляется модулем маркировки В. Затем примерная очередность может гарантировать, что модуль В выполняется перед модулем А. Очередность также может предотвратить циклические зависимости и/или бесконечные циклы. В альтернативном варианте агрегатор 17 данных содержит конечный автомат, который автоматически запускает выполнение различных модулей маркировки в соответствии с особенностями анализируемого сетевого потока. Например, каждый модуль маркировки может запускаться при наличии определенного типа элемента потока.
[0044] На этапе 106 модуль маркировки выбирается в соответствии с очередностью. На следующем этапе 108 выполняется соответствующий модуль маркировки (подробности см. на фиг. 6). Затем на этапе 110 определяется, есть ли еще какие-либо модули маркировки, которые необходимо выполнить, и если да, агрегатор 17 данных возвращается к этапу 106, чтобы выбрать другой модуль маркировки для выполнения.
[0045] На фиг. 6 показана последовательность этапов, подробно описывающая выполнение типичного модуля маркировки. Сначала на этапе 122 проверяется, все ли данные, необходимые для получения соответствующего маркированного элемента, доступны, например, все ли необходимые элементы потока уже определены. Если нет, выполнение соответствующего модуля маркировки может завершиться. В некоторых вариантах осуществления соответствующий модуль может быть повторно запущен позже, когда требуемые данные станут доступны.
[0046] Когда все требуемые данные доступны, соответствующий модуль (модули) маркировки может выполнять последовательность этапов в цикле для каждой строки таблицы, представляющей соответствующий сетевой поток. Для каждой строки этап 126 может считывать набор элементов потока, в то время как этап 128 может определять маркированный элемент согласно соответствующим элементам потока и, опционально, согласно другим данным. Когда необходимо создать новый столбец для вмещения маркированного элемента, соответствующий столбец создается на этапе 132. Следующий этап 134 фактически записывает маркированный элемент в таблицу, представляющую сетевой поток. Этап 134 может включать перезапись существующего маркированного элемента.
[0047] На фиг. 7-А-В показан пример процесса маркировки добавочного потока согласно некоторым вариантам осуществления настоящего изобретения. Индикатор 20 потока включает множество потоков, каждый из которых представлен в виде строки таблицы, имеющей множество столбцов/стандартных элементов, представляющих, например, IP-адрес источника и назначения, размер пакета и т.д. Индикатор 20 потока может быть получен от экспортера 15 потока (см. фиг. 2 и соответствующее описание выше). В проиллюстрированном примере первый модуль маркировки определяет геолокацию в соответствии с элементом «IP-адрес назначения» каждого потока. Вновь вычисленный маркированный элемент записывается в новый столбец. Второй модуль повторно использует элемент/столбец «IP-адрес назначения», но он также использует внутреннюю базу данных, которая отслеживает, как часто посещался IP-адрес. Он увеличивает значение во внутренней базе данных, хранит это значение в базе данных и копирует его в новый столбец, обозначенный в настоящем документе как «Частота». Третий модуль маркировки использует столбцы «Отправленные байты» и «Полученные байты» и определяет соотношение трафика, например, как отправленное/полученное, и записывает вновь вычисленное значение в новый столбец, обозначенный в настоящем документе как «Коэффициент трафика». Четвертый модуль маркировки использует стандартные элементы «IP-адрес источника» и «Порт назначения» каждого потока и внутреннюю базу данных для определения степени, в которой соответствующий кортеж значений представляет собой аномальное отклонение от предыдущей активности, записанной на этом IP-адресе источника. Этот новый маркированный элемент записывается в новый столбец, который называется «Показатель аномалии 1».
[0048] В примере составной маркировки пятый модуль маркировки (фиг. 7-В) использует столбец «Порт назначения» и столбец «Коэффициент трафика», ранее определенные третьим модулем маркировки, для изменения значения, уже присутствующего в столбце «Показатель аномалии 1» и определенного четвертым модулем маркировки. Результат обновляется в существующем столбце «Показатель аномалии 1» или, опционально, в новом столбце, обозначенном в настоящем документе «Показатель аномалии 2».
[0049] Фиг. 8 показывает пример компонентов и работы сервера 16 безопасности согласно некоторым вариантам осуществления настоящего изобретения. Компоненты могут включать экспертный анализатор 64, подключенный к диспетчеру 66 оповещений, и диспетчер 62 сценариев, подключенный к экспертному анализатору 64 и/или диспетчеру 66 оповещений. Квалифицированный специалист поймет, что диспетчер 62, анализатор 64 и диспетчер 66 оповещений могут быть отдельными объектами (например, отдельными процессами, которые могут выполняться на различных физических процессорах) или отдельными компонентами (например, библиотеками) единого программного объекта, выполняемого на сервере 16. Точно так же следует понимать, что «подача сигналов», как описано в данном документе, может представлять фактическую передачу данных между отдельными исполняющими объектами/машинами или передачу значений между отдельными модулями одного исполняющего объекта. В альтернативных вариантах осуществления некоторые компоненты могут быть реализованы аппаратно и/или программно.
[0050] Термин «предикат» используется в настоящем документе для обозначения утверждения, которое имеет переменную степень истинности, зависящую от значений его переменных. Оценка предиката включает определение значения истинности соответствующего предиката. Примеры предикатов, среди прочего, включают «клиент X подвергся атаке», «клиент X является принтером» и «размер загружаемых данных превышает 1 ГБ». Некоторые предикаты являются строго логическими (истина/ложь), в то время как значение истинности других предикатов может быть числовым, что указывает на вероятность того, что соответствующий предикат истинен (например, существует вероятность р, что клиент X подвергся атаке, причем р может быть 50%, 65%, 90% и т.д.). В некоторых вариантах осуществления некоторые значения предиката выборочно запускают оповещение, как более подробно показано ниже. Например, определение того, что клиент X подвергается атаке, может вызвать оповещение, в то время как определение того, что клиент X является принтером, не может. В другом примере оповещение запускается, когда вероятность того, что соответствующий предикат имеет вычисленное значение истинности, превышающее заранее определенное предельное значение (например, вероятность атаки >75%).
[0051] Термин «сценарий» используется в настоящем документе для обозначения набора правил, протокола или алгоритма оценки предиката. Один из примеров сценария содержит набор условий, которые, когда удовлетворяются входящим набором данных потока и/или события, указывают, что соответствующий предикат является истинным. Сценарий может включать в себя любое логическое предложение, содержащее набор предикатов, связанных И, ИЛИ и/или НЕ, например импликация (р ∧ q) ∨(r ∧ s ∧ ¬ t) → u, где р, q, r, s, t - исходные условия, а u - заключение. В одном из таких примеров и является основным предикатом, связанным с соответствующим сценарием (например, «клиент X подвергся атаке»). Выполнение соответствующего сценария включает оценку множества других субпредикатов р, q, …t. Предикат р может гласить «клиент X является принтером», предикат q может гласить «клиент X загрузил данные на подозрительный IP-адрес», а предикат t может гласить «активность произошла в рабочее время». Оценка предиката q, в свою очередь, может потребовать оценки нескольких субпредикатов (например, проверки того, находится ли соответствующий адрес в черном или сером списке, и проверки того, привязан ли соответствующий IP-адрес к определенному региону или стране). Другие примеры сценария включают эвристику обнаружения вредоносных программ и дерево решений. Обычно между предикатами и сценариями существует отношение «один ко многим», т.е. может быть несколько способов оценки одного предиката.
[0052] Некоторые варианты осуществления используют несколько (например, сотни) сценариев для обнаружения угроз компьютерной безопасности. Несколько таких сценариев могут выполняться параллельно. Сценарии могут быть реализованы в виде программных программ, то есть последовательностей компьютерных инструкций, специфичных для соответствующего сценария. Сценарии могут храниться в репозитории 19 сценариев в машиночитаемой форме, такой как исполняемый код, XML, байт-код, язык Пролог и т.д. Затем сценарии могут быть извлечены, доступны или вызваны выборочно в соответствии с особенностями полученного потока и/или индикаторов событий. Чтобы обеспечить возможность выборочного запуска сценариев, некоторые варианты осуществления репозитория сценариев дополнительно содержат индикаторы связи между предикатами и сценариями, используемые для оценки соответствующих предикатов.
[0053] В некоторых вариантах осуществления диспетчер 62 сценариев конфигурирован для выбора набора сценариев в соответствии с предикатом и/или различными характеристиками собранных данных и для передачи выбора в экспертный анализатор 64 и/или диспетчер 66 оповещений. Выполнение некоторых сценариев может быть инициировано определенными триггерными событиями и/или значениями триггеров определенных элементов собранных потоков. В одном таком примере диспетчер 62 сценария и/или экспертный анализатор 64 могут содержать конечный автомат, запускаемый определенными значениями входных экспертных индикаторов.
[0054] Экспертный анализатор 64 конфигурирован для анализа данных, собранных из клиентских систем 10а-е и/или модуля 15 экспорта потоков, в соответствии с набором сценариев. Анализируемые данные могут включать результат предварительной обработки агрегатором 17 данных и/или экспортером/эксппортерами 15 потока. В некоторых вариантах осуществления такая предварительная обработка может включать в себя маркировку, то есть добавление дополнительных метаданных к данным, полученным от клиентов, для облегчения анализа экспертным анализатором 64.
[0055] Фиг. 9 иллюстрирует работу экспертного анализатора 64 согласно некоторым вариантам осуществления настоящего изобретения. Для каждого предиката, требующего оценки, анализатор 64 может выборочно извлекать по меньшей мере один сценарий и выполнить соответствующий сценарий для оценки соответствующего предиката. Оценка предикатов может дополнительно включать извлечение/доступ к информации из репозитория 18 данных. Такая информация может содержать параметры конфигурации устройства, данные идентификации устройства (например, таблицу, связывающую МАС-адреса с производителями или типами устройств и т.д.) и/или ретроспективные данные (например, журналы событий или сети и т.д.). Учитывая, что оценка предиката может включать оценку других субпредикатов, при этом каждый такой субпредикат может оцениваться согласно отдельному сценарию, некоторые варианты осуществления рекурсивно выполняют этапы 202-212, пока не будут оценены все соответствующие предикаты и субпредикаты.
[0056] В некоторых вариантах осуществления этап 209 может проверить, была ли оценка предиката успешной. Иногда некоторые предикаты невозможно оценить из-за отсутствия необходимых данных. В некоторых случаях позже может быть сделана еще одна попытка оценить соответствующий предикат. Когда соответствующий предикат был успешно оценен, на этапе 210 экспертный анализатор 64 передает результат оценки текущего предиката диспетчеру 66 оповещений. В ответ диспетчер 66 может сформулировать текстовую часть оповещения в соответствии с такими результатами, полученными от анализатора 64 (более подробно ниже). Когда оценка предиката завершена, этап 214 может проверить, удовлетворяет ли вычисленное значение предиката условию оповещения (например, вероятность атаки >75%). Если да, анализатор 64 может сигнализировать диспетчеру 66 оповещений, чтобы подготовить для передачи оповещение 26 безопасности.
[0057] В некоторых вариантах осуществления диспетчер 66 оповещений формулирует и передает оповещение 26 безопасности на устройство 13 администрирования (см. фиг. 2). Оповещения представляют собой текстовую часть, сформулированную на естественном языке. Соответствующая текстовая часть может включать в себя различные значения (например, значения предиката), оцениваемые во время выполнения сценария экспертным анализатором 64. Диспетчер 66 оповещений может формулировать сообщения оповещения в соответствии с набором заранее определенных шаблонов оповещений. В некоторых вариантах осуществления каждый шаблон оповещения связан со сценарием, позволяя выборочный поиск соответствующего шаблона согласно сценарию (сценариям), выполняемому экспертным анализатором 64. Примерный шаблон оповещения может содержать текст, сформулированный на естественном языке, и набор заполнителей для значений предикатов, оцениваемых как часть соответствующего сценария. Некоторые примерные шаблоны показаны ниже:
• Т1: Имеется [% val_1] вероятности вторжения. Целевой IP-адрес [% val_2]. Оценка основана на типе устройства, объеме загруженных данных и IP-адресе назначения, как показано ниже.
• Т2: клиентское устройство - это [% val_3].
• Т3: На [% val_4] клиент загрузил приблизительно [% val_5] данных на подозрительный IP-адрес.
• Т4: Клиентское устройство - это принтер в соответствии с МАС-адресом и открытыми интерфейсами коммуникации.
• Т5: IP-адрес был признан подозрительным, поскольку он привязан к [% val_6].
• Т6: IP-адрес был внесен в черный список.
где [% val_i] указывает заполнители для элементов, включая IP-адрес, дату, размер файла и т.д. Шаблоны оповещений могут храниться в специальном репозитории 29 шаблонов или, альтернативно, могут быть включены в репозиторий 19 сценариев. В одном примере шаблоны оповещений могут быть закодированы вместе со связанным сценарием, например, как часть кодирования XML, байт-кода или кода Пролога соответствующего сценария.
[0058] Фиг. 10 показывает пример последовательности этапов, выполняемых диспетчером 66 оповещений согласно некоторым вариантам осуществления настоящего изобретения. Проиллюстрированный диспетчер оповещений перехватывает сигналы, полученные от диспетчера 62 сценария и/или экспертного анализатора 64. Затем сообщение оповещения постепенно создается на основе индивидуальных шаблонов для конкретного сценария и результатов оценки, полученных от экспертного анализатора 64. Когда принятый сигнал содержит индикатор 63 сценария (фиг. 8), менеджер 66 оповещений может выборочно извлекать шаблон оповещения, связанный с соответствующим сценарием, из репозитория 29 шаблонов. Когда оцениваются различные предикаты сценария, этап 232 может редактировать текущее сообщение оповещения, чтобы включить в него вычисленные значения. В некоторых вариантах осуществления этап 232 может просто создать экземпляр соответствующего шаблона с оцененными значениями предиката (в приведенных выше примерах замена заполнителя [% val_3] на «принтер» и заполнителя [% val_4] меткой времени).
[0059] Когда оценка предиката включает оценку набора субпредикатов, диспетчер 64 оповещений может рекурсивно извлекать шаблоны согласно сценариям для оценки соответствующих субпредикатов. В таких ситуациях этап 232 может включать переформулировку текущего сообщения оповещения в соответствии с шаблоном оповещения для основного сценария/предиката и, кроме того, в соответствии с индивидуальным шаблоном/шаблонами, связанным(и) с соответствующим субпредикатом. В некоторых вариантах осуществления такая переформулировка может просто включать конкатенацию основного шаблона оповещения с шаблонами соответствующих субпредикатов. Используя примерные шаблоны, проиллюстрированные выше, конкатенация может привести к шаблону оповещения, гласящему «Т1Т2Т3». В альтернативных вариантах осуществления конкатенация может быть заменена более сложной обработкой, например, для создания иерархического шаблона, позволяющего пользователю получать доступ к различным уровням информации, относящейся к соответствующей ситуации безопасности. Такое примерное переформулирование шаблонов включает в себя введение гиперссылок, диаграмм, подробных списков и т.д.
[0060] Когда диспетчер 234 оповещений получает индикатор оповещения от анализатора 64, указывающий на выполнение набора условий для оповещения пользователя/администратора, диспетчер 66 оповещений может собрать оповещение 26 безопасности, включая текстовое сообщение, созданное на этапах 226-232, и вывести оповещение 26 для передачи на устройство 13 администрирования.
[0061] Примерные системы и способы, описанные выше, позволяют эффективно обнаруживать и передавать угрозы компьютерной безопасности даже в высокопроизводительных вычислительных приложениях и высокоскоростных сетях. В некоторых вариантах осуществления используются распределенные агенты для сбора важных для безопасности данных от клиентов. Такие данные могут включать в себя, например, сводки сетевого трафика и/или информацию о возникновении конкретных событий во время выполнения программного обеспечения на защищенном клиентском устройстве. Собранная информация затем централизуется и предварительно обрабатывается перед подачей в экспертный анализатор, конфигурированный для определения, указывают ли собранные данные на угрозу компьютерной безопасности, такую как вредоносное программное обеспечение и/или сетевое вторжение. Предварительная обработка может включать в себя, например, маркировку данных сетевого потока дополнительной информацией, указывающей на безопасность (например, метаданными, полученными согласно различным аспектам соответствующего потока и/или согласно данным, не относящимся к потоку). Такая предварительная обработка может существенно облегчить обнаружение, избавляя экспертный анализатор от некоторой вычислительной нагрузки, связанной с обнаружением. Такое распределение вычислительных затрат между компонентами системы безопасности может быть особенно важным в высокоскоростных высокопроизводительных вычислительных приложениях, где объем данных может превосходить традиционные централизованные системы компьютерной безопасности.
[0062] Некоторые варианты осуществления настоящего изобретения основаны на наблюдении, что скорость и абсолютный объем данных, циркулирующих по современным сетям электронной коммуникации, могут легко перегрузить персонал компьютерной безопасности. Следовательно, существует сильный стимул для разработки надежных и масштабируемых способов анализа и визуализации информации, относящейся к безопасности. Некоторые варианты осуществления обеспечивают интуитивно понятное представление соответствующих подробностей в ответ на обнаружение события безопасности, так что даже средний компьютерный оператор может понять, что произошло и как реагировать на каждую ситуацию.
[0063] Некоторые варианты осуществления отображают сообщение оповещения, сформулированное на естественном языке (например, английском, китайском), подробно описывающие различные аспекты события безопасности, включая отчет об аргументации, которая привела к его обнаружению. Такие сообщения оповещения существенно облегчают понимание события безопасности, позволяют оператору мысленно проверить точность заключения, вынесенного машиной, а также позволяют сообщать о соответствующем событии нетехническому персоналу (например, менеджерам, владельцам и т.д.). Некоторые такие сообщения могут даже использоваться в качестве экспертных доказательств в суде.
[0064] В некоторых вариантах осуществления сообщение оповещения создается постепенно и динамически путем сборки фрагментов сообщения по мере прохождения машиной алгоритма обнаружения. В одном из таких примеров фрагмент сообщения может добавляться каждый раз, когда оценивается условие или вычисляется конкретная переменная. Таким образом, сообщение оповещения может развиться от «X произошло» до «X произошло, потому что Y» и до «X произошло из-за Y и Z, где Z было определено на основе Z1 и Z2» и т.д.
[0065] Одним из преимуществ такой конструкции динамического сообщения является то, что она не требует знания априори всех сценариев обнаружения, возможных результатов и возможных комбинаций параметров. Вместо того, чтобы адаптировать сообщения оповещения к каждой ситуации безопасности (например, к каждому результату экспертного анализа), некоторые варианты осуществления прикрепляют шаблон сообщения оповещения к каждому сценарию обнаружения и/или к каждой программе для оценки значимой для безопасности величины (например, определения тип устройства, определения репутации партнера по коммуникации и др.). Затем полное сообщение оповещения может быть построено динамически из фрагментов сообщения, сгенерированных отдельными шаблонами, выбранными в соответствии с тем, как было фактически обнаружено соответствующее событие. Рассматривая пример дерева решений, в котором каждый «лист» соответствует уникальной комбинации условий, вместо прикрепления заранее определенных сообщений оповещения к отдельным листьям, некоторые варианты осуществления прикрепляют фрагменты сообщения к промежуточным ветвям и подветвям дерева решений. Затем фактическое сообщение оповещения строится в соответствии с конкретным способом прохождения дерева решений.
[0066] Один из таких примеров проиллюстрирован на фиг. 11. Программа обнаружения содержит дерево решений, в котором узлы представляют различные предикаты, а ветви представляют различные значения соответствующих предикатов. Например, предикат Р1 может гласить «клиент - это принтер», предикат Р2 может гласить «клиент загрузил большой файл» и т.д. В проиллюстрированном примере два различных пути через дерево решений приводят к одному и тому же заключению V, например, «клиент атакован». Однако в некоторых вариантах осуществления сообщение оповещения, генерируемое при прохождении одного пути обнаружения, будет отличаться от сообщения оповещения, генерируемого другим путем обнаружения. В проиллюстрированном примере шаблоны оповещений Т1, …, Т4 связаны с предикатами Р1, …, Р4 соответственно. Каждый такой шаблон может создавать фрагмент сообщения M1, …, М4 соответственно. В примерном варианте осуществления, где фрагменты сообщения объединяются для формирования полного сообщения оповещения, левый путь создает сообщение оповещения M1+М4, при этом правый путь создает сообщение оповещения M1+М2+М3, даже если заключение то же. И наоборот, система, в которой заранее определенное сообщение оповещения связано с заключением V, выдает одно и то же сообщение оповещения как для левого, так и для правого путей обнаружения.
[0067] Когда относящиеся к безопасности данные генерируются и обрабатываются с высокой скоростью, возможно, в конфигурациях параллельных вычислений, могут возникать ситуации, когда некоторая информация, которая требуется для оценки конкретного предиката, недоступна в момент вызова конкретного сценария. Однако соответствующая информация может быть доступна позже. Таким образом, даже когда данные, собранные с клиентских машин и сетей, запускают один и тот же сценарий/сценарии обнаружения, некоторые из этих сценариев могут не выполняться каждый раз, поэтому фактически проведенный анализ безопасности может отличаться от одного раза к другому. Иначе говоря, в быстро меняющихся конфигурациях асинхронных вычислений, которые иногда требуются для обработки огромного объема информации, генерируемой современными компьютерами и сетями, линия или обоснование/точная последовательность оценок предикатов априори неизвестны. Система динамически генерируемых оповещений, как в некоторых вариантах осуществления настоящего изобретения, может позволить оператору точно понять, какая аргументация использовалась каждый раз, и почему две похожие ситуации могут иногда приводить к противоречивым заключениям безопасности.
[0068] Более того, в постоянно меняющемся мире компьютерной безопасности может быть несколько способов обнаружения угрозы безопасности и несколько способов вычисления различных параметров безопасности. Постоянно разрабатываются новые инструменты анализа, алгоритмы и сценарии атак. Благодаря недавним достижениям в области искусственного интеллекта, растет интерес к тому, чтобы позволить машине гибко выбирать из доступного набора инструментов. Динамическое генерирование сообщений оповещения, обеспечиваемое некоторыми вариантами осуществления настоящего изобретения, способно обеспечить такое гибкое принятие решений.
[0069] В одном таком примере, показанном на фиг. 12, программа обнаружения содержит оценку трех различных предикатов P1, Р2 и Р3. Однако каждый предикат может оцениваться множеством независимых способов, проиллюстрированных отдельными сценариями S1, …, S8. Примеры таких сценариев включают отдельные эвристики анализа, например, анализ отдельных аспектов входных данных. Два различных набора данных (экспертные индикаторы 24а-b) могут запускать различные сценарии для оценки соответствующих предикатов. Например, экспертный индикатор 24а может запускать сценарии S1, S4 и S7, тогда как индикатор 24b может запускать сценарии S1, S5 и S6. В проиллюстрированном варианте осуществления каждый сценарий содержит связанный шаблон оповещения. Соответствующие шаблоны генерируют набор фрагментов сообщения M1, М4, М7 и M1, М5, М6, соответственно, которые собираются менеджером 66 оповещений в проиллюстрированные сообщения оповещения. Пример показывает, что сообщения оповещения могут отличаться, даже если заключение одинаково в обоих случаях. Определенные сообщения оповещения (M1+М4+М7 по сравнению с M1+М5+М6) указывают на различные способы, которыми был вынесено заключение. В ситуациях, когда левая и правая последовательности сценариев приводят к противоречивым заключениям, сообщения оповещения могут предложить аналитику существенное понимание причин такого несоответствия.
[0070] Другой примерный вариант осуществления, который может быть проиллюстрирован с помощью фиг. 12, может испробовать все альтернативные способы оценки каждого предиката. Например, экспертный анализатор 64 может оценивать предикат Р1, используя все три сценария S1, S2 и S3, и предикат Р2, используя два сценария S4 и S5. Сценарии могут выполняться параллельно, например, на разных процессорах или машинах. Каждый сценарий может иметь внутреннюю достоверность, отраженную, например, в показателях производительности, таких как частота обнаружения и/или частота ложных срабатываний. Таким образом, такая система может генерировать множество заключений, каждое из которых соответствует отдельной комбинации сценариев, причем каждая комбинация имеет собственную степень достоверности, которая может быть изложена в соответствующем сообщении оповещения. Составные сообщения оповещения, указывающие на конкретную комбинацию сценариев, используемых для каждого заключения, могут, таким образом, помочь аналитику разобраться в противоречивых заключениях и, в конечном итоге, какому заключению следует доверять.
[0071] Что касается примеров, показанных на фиг. 11 и 12, заключение V может представлять различные типы предикатов, например, основной предикат безопасности, такой как «клиент находится под атакой», или любой подпредикат, оцениваемый как часть сценария безопасности: «клиент - это принтер», «IP адрес является подозрительным", "аномальный сетевой трафик на узле X", "трафик на узле X превышает ожидаемый объем" и т.д.
[0072] Дополнительным преимуществом динамического построения оповещений безопасности является то, что это позволяет разделить различные компоненты системы безопасности. В частности, это позволяет разрабатывать сценарии обнаружения независимо друг от друга. Иными словами, новые сценарии обнаружения могут быть разработаны и добавлены к существующему набору инструментов без необходимости изменения остальных компонентов обнаружения (например, диспетчера 66 оповещений). Каждому новому сценарию может быть предоставлен собственный шаблон для генерации фрагмента сообщения оповещения. Эта независимая архитектура системы безопасности может существенно облегчить разработку, тестирование и внедрение, что приведет к общему сокращению времени вывода на рынок и затрат на обслуживание.
[0073] Специалисту в данной области техники понятно, что вышеупомянутые варианты осуществления могут быть различным образом изменены, без выхода при этом за рамки объема правовой охраны настоящего изобретения. Соответственно, объем правовой охраны настоящего изобретения определен следующей ниже формулой изобретения и ее юридическими эквивалентами.