Способ обнаружения аномальной работы сетевого сервера (варианты)
METHOD FOR DETECTING ANOMALOUS WORK OF NETWORK SERVER (OPTIONS)

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к области мониторинга и защиты информационных систем и, в частности, к способам обнаружения нарушений в работе сетевых серверов, вызванных как внутренними неисправностями, возникшими в процессе функционирования, так и являющихся следствием компьютерных атак.
Уровень техники
Сетевые серверы являются основным элементом структуры корпоративных, коммерческих, общественных и государственных публичных сетей. Ключевая роль сетевых серверов делает их критичным элементом инфраструктуры современного информационного общества.
К типичным событиям, имеющим критический статус для сетевых серверов, относятся:
аппаратные неисправности (выход из строя сетевого адаптера);
перегрузка аппаратных ресурсов (исчерпание оперативной памяти, полная (100%) загрузка центрального процессора, полная (100%) загрузка доступной памяти дисковой подсистемы);
программные ошибки и сбои в ключевых компонентах обработки сетевых запросов (драйвер сетевого адаптера, веб-сервер, система управления (СУ) базой данных (БД), сервер распределения запросов).
Подобные события в существующих программных или аппаратных системах мониторинга обнаруживаются на основе превышения порога срабатывания, задаваемого индивидуально для каждого критического параметра, либо на основе факта обнаружения тех или иных событий в протоколах работы подсистем сетевого сервера.
Известен способ обнаружения компьютерных атак на сетевую компьютерную систему [1], включающую по крайней мере один компьютер, подключенный к сети и имеющий
установленную операционную систему;
установленное прикладное программное обеспечение, включающее систему анализа трафика, которая выполнена с возможностью
приема из сети и запоминания пакетов сообщений;
определения характеристик пакетов сообщений;
проведения расчетов для пакетов сообщений и их характеристик;
формирования сигналов о наличии атаки по результатам расчетов;  заключающийся в том что
устанавливают и запоминают пороговые значения параметров, причем в качестве параметров, рассчитываемых в единицу времени, выбираются следующие:
IP
IN
OUT
R=V/V,
IN
где V - объем входящего трафика, принятого по протоколу IP;
OUT
V - объем исходящего трафика, отправленного по протоколу IP;
CR
N - количество потоков критических приложений;
,
OUT
где N - количество исходящих ACK-флагов в ТСР-трафике;
IN
N - количество входящих ACK-флагов в ТСР-трафике;
UDP
UDP
TCP
R=V/V,
UDP
где V - объем входящего UDP-трафика;
TCP
V - объем входящего ТСР-трафика;
NUD
UDP
TCP
R=N/N,
UDP
где N - количество входящих UDP-пакетов;
TCP
N - количество входящих ТСР-пакетов;
ICM
ICM
IN
R=V/V,
ICM
где V - объем входящего трафика, полученного по протоколу ICMP;
SP
SYN
PSH
R=N/N,
SYN
где N - количество SYN-флагов во входящих пакетах, переданных по протоколу TCP;
PSH
N - количество PSH-флагов во входящих пакетах, переданных по протоколу TCP;
TCP
PSH
TCP
PSH
R=N/(N-N),
AVG
IN
IP
L=V/N,
IP
где N - количество входящих пакетов, передаваемых по протоколу IP;
TCP
TCP
TCP
L=V/N;
принимают из сети последовательность пакетов сообщений;
запоминают принятые пакеты сообщений;
выделяют из запомненных пакетов сообщений характеризующие их данные;
рассчитывают значения параметров, зависящих от полученных пакетов сообщений;
сравнивают рассчитанные значения параметров с пороговыми значениями;
принимают решение о факте наличия или отсутствия компьютерной атаки при сравнении рассчитанных значений параметров с пороговыми значениями;
определяют тип одиночной компьютерной атаки по сочетанию рассчитанных значений параметров на основе следующих условий
IP
CR
если значения параметров R и N превысили пороговое значение, то определяется атака типа HTTP-flood (условие 1);
IP
ACK
SP
TCP
TCP
если значения параметров R, D и R превысили пороговое значение, a R и L меньше порогового значения, то определяется атака типа SYN-flood (условие 2);
IP
TCP
ACK
если значения параметров R, R и D превысили пороговое значение, то определяется атака типа TCP-flood (условие 3);
IP
UDP
NUD
если значения параметров R, R и R превысили пороговое значение, то определяется атака типа UDP-flood (условие 4);
IP
ICM
AVG
если значения параметров R и R превысили пороговое значение, a L меньше порогового значения, то определяется атака типа ICMP-flood (условие 5);
определяют комбинированную компьютерную атаку по сочетанию рассчитанных значений параметров на основе следующих условий:
если одновременно выполняется условие 1 и условие 2, то определяется комбинированная атака HTTP-flood и SYN-flood;
если одновременно выполняется условие 1 и условие 3, то определяется комбинированная атака HTTP-flood и TCP-flood;
если одновременно выполняется условие 1 и условие 5, то определяется комбинированная атака HTTP-flood и ICMP-flood;
если одновременно выполняется условие 2 и условие 5, то определяется комбинированная атака SYN-flood и ICMP-flood;
если одновременно выполняется условие 3 и условие 5, то определяется комбинированная атака TCP-flood и ICMP-flood.
В известном способе в качестве внутренней причины аномальной работы сетевого компьютера (сервера) принимается во внимание только один параметр (количество потоков критических приложений, выполняемых сервером), а в качестве внешней причины - наличие одиночной или комбинированной компьютерной атаки из ограниченного перечня известных типов (HTTP-flood, SYN-flood, TCP-flood, ICMP-flood, UDP-flood).
При этом факт аномальной работы сервера определяется строго по превышению совокупности пороговых значений.
Однако вполне возможны ситуации, когда могут быть использованы неизвестные типы одиночных или комбинированных компьютерных атак, а также их комбинации с известными типами, причем одновременно количество потоков критических приложений, выполняемых сервером, не достигнет порогового значения.
В этом случае известный способ будет неэффективным, факт наличия или отсутствия компьютерной атаки не будет зафиксирован, но, тем не менее, сервер будет не способен работать в нормальном режиме. Это является недостатком известного способа.
Раскрытие изобретения
Техническим результатом является обеспечение возможности обнаружения неисправностей сервера вследствие программных и аппаратных сбоев, а также обнаружение известных и неизвестных ранее атак, их последствий и незлонамеренных нарушений работы сервера.
Для этого предлагается способ, ранее описанный в [2].
Согласно первому варианту способа обнаружения аномальной работы сетевого сервера, включающего
по крайней мере, один сервер, подключенный к цифровой сети передачи данных;
средство обнаружения аномальной работы, подключенное к серверу и выполненное с возможностью приема из сети и запоминания пакетов сообщений;
определения характеристик пакетов сообщений;
проведения расчетов для пакетов сообщений и их характеристик;
определения степени загрузки вычислительных ресурсов сервера;
формирования и обучения нейронной сети;
проведения расчетов для нейронной сети;
накопления и запоминания значений векторов динамического отклика сервера на основе параметров загрузки сервера, характеристик входных и выходных пакетов;
вычисления порогового значения ошибки классификации по накопленным значениям векторов динамического отклика;
формирования сигналов о наличии аномальной работы по результатам расчетов;
способ, заключается в том, что
запускают сервер в режиме контролируемой нормальной работы;
формируют нейронную сеть в средстве обнаружения аномальной работы, выполняя следующие действия:
запоминают и накапливают в единицу времени значения векторов динамического отклика сервера, вычисляемые на основе следующих параметров:
количество, размер и тип входных и выходных пакетов по всем обслуживаемым сервером протоколам;
уровень загруженности процессора сервера;
уровень использования оперативной памяти сервера;
уровень использования виртуальной памяти сервера;
количество операций ввода-вывода в дисковых устройствах сервера;
формируют обучающее множество нейронной сети;
обучают нейронную сеть для минимизации ошибки классификации векторов обучающего множества;
устанавливают и запоминают пороговое значение ошибки классификации;
запускают сервер в рабочем режиме;
обнаруживают аномальную работу сервера, выполняя следующие действия:
вычисляют значение вектора динамического отклика сервера;
вычисляют с помощью нейронной сети по вектору динамического отклика значение ошибки классификации;
формируют сигнал о наличии аномальной работы сервера при сравнении значения ошибки классификации с пороговым значением.
Нейронную сеть в средстве обнаружения аномальной работы предпочтительно формируют по принципу автоассоциативного запоминающего устройства со сжатием информации.
Согласно второму варианту способа обнаружения аномальной работы сетевого сервера, включающего
по крайней мере, один сервер, подключенный к цифровой сети передачи данных;
средство обнаружения аномальной работы, подключенное к серверу и выполненное с возможностью
приема из сети и запоминания пакетов сообщений;
определения характеристик пакетов сообщений;
проведения расчетов для пакетов сообщений и их характеристик;
определения степени загрузки вычислительных ресурсов сервера;
настройки параметров машины опорных векторов;
проведения расчетов для машины опорных векторов;
накопления и запоминания значений векторов динамического отклика сервера на основе параметров загрузки сервера, характеристик входных и выходных пакетов;
вычисления порогового значения ошибки реконструкции по накопленным значениям векторов динамического отклика;
формирования сигналов о наличии аномальной работы по результатам расчетов; способ, заключается в том, что
запускают сервер в режиме контролируемой нормальной работы;
формируют машину опорных векторов в средстве обнаружения аномальной работы, выполняя следующие действия:
запоминают и накапливают в единицу времени значения векторов динамического отклика сервера, вычисляемые на основе следующих параметров::
количество, размер и тип входных и выходных пакетов по всем обслуживаемым сервером протоколам;
уровень загруженности процессора сервера;
уровень использования оперативной памяти;
уровень использования виртуальной памяти;
количество операций ввода-вывода с дисковыми устройствами;
формируют данные для настройки машины опорных векторов;
настраивают машину опорных векторов для минимизации эмпирического риска неправильной классификации на сформированных данных;
устанавливают и запоминают пороговое значение ошибки классификации;
запускают сервер в рабочем режиме;
обнаруживают аномальную работу сервера, выполняя следующие действия:
вычисляют значение вектора динамического отклика сервера;
вычисляют с помощью машины опорных векторов по вектору динамического отклика значение ошибки классификации;
формируют сигнал о наличии аномальной работы сервера при сравнении значения ошибки классификации с пороговым значением.
Машину опорных векторов в средстве обнаружения аномальной работы предпочтительно формируют по принципу одноклассового классификатора.
Предлагаемый способ основан на формировании независимого от внешних источников динамического образа поведения сетевого сервера, что позволяет сформировать автономную систему обнаружения аномальной работы.
Для этого решается задача обнаружения факта некорректного функционирования сетевого сервера без использования предварительно задаваемых критериев корректности.
Под корректностью функционирования здесь понимается принадлежность группы непосредственно измеряемых или вычисляемых по ним характеристик работы сетевого сервера (мгновенного образа) к множеству образов, характеризующих нормальное функционирование и использованных в период настройки.
Включение в характеристики параметров загрузки системных компонент сетевого сервера, а также обрабатываемого сервером трафика позволяет выявлять аномальные ситуации в широком спектре причин: от ошибок конфигурирования, программных сбоев прикладных и системных компонентов, до сетевых атак и последствий от несанкционированных злонамеренных действий на сетевом сервере.
Способ позволяет для каждого сетевого сервера построить индивидуальный динамический образ нормального функционирования, с помощью которого будут обнаруживаться аномалии в поведении программ и оборудования сетевого сервера независимо от их природы и причин. В частности, способ позволяет обнаруживать факты эксплуатации прежде неизвестных уязвимостей подсистем сетевого сервера, а также любые деструктивные действия, являющиеся следствием любых компьютерных атак, как сетевых, так и локальных.
Описываемый способ предусматривает два режима функционирования, которые могут при необходимости совмещаться во времени:
настройка,
обнаружение аномальной работы.
Настройка, в свою очередь, предусматривает
сбор непосредственно наблюдаемых характеристик сетевого сервера и формирование из них базы настроечных данных;
предварительную обработку базы настроечных данных и формирование базы обучающих образов;
обучение одноклассового классификатора на базе обучающих образов;
оценка качества обучения и автоматическое вычисление порога обнаружения аномалий.
К характеристикам сетевого сервера относятся измеряемые с равномерными промежутками времени входящий и исходящий сетевой трафик по всем открытым сетевым портам сервера (количество байтов, пакетов и их параметры), а также степень загрузки системы (загруженность процессора, оперативной памяти, каналов ввода/вывода, количество занятых дескрипторов ввода/вывода операционной системы и пр.).
Для реализации описываемого способа важно, чтобы в период настройки функционирование сетевого сервера осуществлялось преимущественно в нормальном режиме с различными нагрузками, включая пиковые. Период настройки может занимать разное по продолжительности время с тем, чтобы обеспечить разнообразие видов нагрузки сервера.
Способ допускает наличие небольшого числа временных периодов ненормального функционирования, однако рекомендуется в период настройки администратору сетевого сервера отслеживать отклонения в работе сервера от нормального и как можно быстрее восстанавливать работу. В том случае, если работа сетевого сервера неразрывно связана с работой других серверов, например серверов баз данных, то нормальное функционирование должно поддерживаться и на этих серверах.
Настроенная система обнаружения аномалий работает с теми же характеристиками сетевого сервера и теми же способами предварительной обработки данных, которые использовались в режиме настройки. Циклический алгоритм работы системы обнаружения аномалий приводится ниже:
сбор непосредственно наблюдаемых характеристик сетевого сервера в текущий момент времени;
предварительная обработка текущих наблюдаемых характеристик с получением текущего образа;
применение одноклассового классификатора к текущему образу с получением ошибки распознания образа;
формирование события обнаружения аномалии в случае превышения ошибкой величины порога, вычисленного в режиме настройки.
Большая величина ошибки распознания данных является свидетельством непохожести текущего состояния сетевого сервера, проявленного через его наблюдаемые характеристики, от состояний нормального функционирования, использовавшихся для обучения одноклассового классификатора в режиме настройки.
Способ может быть реализован как с помощью нейросетевого одноклассового классификатора, так и с помощью одноклассового классификатора на основе метода опорных векторов, а также иных методов одноклассовой классификации.
При первичном разворачивании в эксплуатацию системы обнаружения аномалий сетевого сервера необходимо осуществить настройку и только потом возможно рабочее функционирование с обнаружением аномалий. В случае легитимного изменения конфигурации сетевого сервера, включая аппаратные компоненты, номенклатуру и версии программного обеспечения, может потребоваться заново произвести настройку, поскольку характеристики сетевого сервера после проведенных изменений могут также измениться. Признаком необходимости перенастройки может быть большое количество обнаруживаемых аномалий при отсутствии сбоев и компьютерных атак.
Настройка порога срабатывания является в целом эвристической процедурой, требующей контроля со стороны квалифицированного специалиста. При неправильной настройке порога в процессе работы будет обнаруживаться избыточное число событий или, наоборот, значимые события будут игнорироваться. По этой причине процесс выбора порога невозможно сделать полностью автоматическим, совсем исключив участие человека-оператора.
Кроме того, предлагаемый способ за счет комплексности анализируемых факторов дополнительно обеспечивает обнаружение неизвестных прежде атак через эффект изменения поведения контролируемого сетевого сервера.
В предлагаемом способе порог вычисляется не по исходным характеристикам функционирования сервера, а по степени подобия совокупности характеристик, образующих характерный образец (паттерн) поведения сервера в одном из режимов нормального функционирования. Отдельные характеристики при обнаружении аномальной работы могут как достигать своих предельных значений, так и не достигать их.
Обнаружение событий в системном журнале и их корреляция, по сути, является эвристической процедурой, хорошо работающей для известных подсистем (например, операционных систем, систем управления базами данных, Web-серверов и т.п.), однако для мониторинга прикладных подсистем сетевого сервера необходимо индивидуально разрабатывать соответствующие эвристические алгоритмы. Это не всегда возможно по причине недостаточной квалификации персонала службы мониторинга, недостаточных ресурсов, а также из-за закрытости системы мониторинга для расширения новыми правилами.
Предлагаемый способ не предусматривает явного контроля за событиями прикладных сервисов, однако подразумевает, что результатом работы сетевого сервера является обмен сетевыми сообщениями (трафиком) по определенным протоколам, что рассматривается как количественная характеристика работы сервера. Изменение совокупности этих характеристик вследствие фактического выхода из строя прикладной подсистемы сетевого сервера будет обнаружено описываемым способом как аномальная работа.
Обнаружение проблем безопасности в целом решается различными системами IDS (Intrusion Detection System), среди которых выделяются два класса: Network based IDS (обнаружение сетевых вторжений) и Host based IDS (обнаружение вторжений на компьютере).
Известными видами сетевых атак являются:
HTTP-flood, DNS flood, UDP flood, SYN flood, IP fragmentation - переполнение ресурсов сетевого сервера запросами распределенной сети атакующих компьютеров;
DNS amplification, NTP amplification, SNMP reflection - подмена адреса отправителя на адрес жертвы в легитимном запросе, вызывающем генерацию значительно трафика в направлении атакуемого сетевого сервера;
Code injection (SQL, PHP, Python) - запрос к сетевому серверу, эксплуатирующий уязвимость прикладного программного обеспечения и приводящий к нарушению работоспособности или выполнению код злоумышленника на сетевом сервере. Подход Network based IDS основан на обнаружении и классификации сетевых атак в сетевом трафике. При этом применяются различные методы, включающие обнаружение сигнатур известных сетевых атак, оценка степени опасности трафика по сходству с известными атаками, а также различные эвристические подходы. Большинство методов, применяемых в Network based IDS, принципиально не в состоянии обнаруживать новые атаки, часто основанные на новых выявленных уязвимостях в программном обеспечении.
Системы Host based IDS в основном представлены антивирусными программами, работающими с сигнатурами вирусов, а также обнаруживающими с помощью ряда методов необычную активность на компьютере. Эти методы основаны на частных особенностях конкретных операционных систем и их версий. Для обнаружения модификаций известных вирусов и новых вирусов используется метод помещения подозрительного объекта в среду эмуляции, в которой с помощью заложенных в антивирус эвристических правил выясняется благонадежность объекта перед его фактическим использованием на компьютере.
Общим свойством систем Network based IDS и Host based IDS является необходимость поддержания в актуальном состоянии базы сигнатур и правил обнаружения вирусов и сетевых атак. Неактуальные базы (например, вследствие истечения срока действия лицензии на продукт IDS или вследствие нарушения процесса обновления баз) делают защищаемый сетевой сервер уязвимым перед новыми вирусами и новыми видами сетевых атак.
Осуществление изобретения
Рассмотрим осуществление предложенного способа на примерах предпочтительного выполнения.
Способ в любом варианте допускает реализацию в виде программной системы, функционирующей как в самом сетевом сервере, так и на внешнем по отношению к нему устройстве. Также возможно разделение функций при реализации способа между самим сетевым сервером и внешним устройством. В последнем случае сетевой сервер сообщает характеристики своего функционирования на внешнее устройство, которое производит их накопление в базе для настройки и/или использует для обнаружения аномалий.
Устройство может обслуживать несколько сетевых серверов.
Типовыми характеристиками, которые должны измеряться у сетевого сервера для реализации описываемого способа, являются количество байт входящего и исходящего сетевого трафика по каждому из сетевых портов, а также суммарное число принятых и переданных байт по протоколам TCP, UDP, ICMP в достаточно короткий фиксированный промежуток времени, например в течение 1 секунды. Также к наблюдаемым характеристикам относится загрузка вычислительных ресурсов сервера: центрального процессора, оперативной и виртуальной памяти, а также каналов ввода вывода. Разделяются выходные характеристики сетевого сервера (исходящий сетевой трафик и загрузка вычислительных ресурсов) и входные (входящий сетевой трафик).
В качестве образа текущего состояния сетевого сервера можно использовать матрицу коэффициентов корреляции попарно между каждой выходной и каждой входной измеренной характеристикой. Коэффициент корреляции вычисляется на базе нескольких последовательных промежутков времени, предшествующих текущему моменту и включающих его.
В режиме настройки по окончании обучения одноклассового классификатора вся база обучающих образов проверяется на полученном классификаторе для вычисления ошибки распознавания образа. Полученный средний уровень ошибки, скорректированный в соответствии с установками алгоритма, используется в качестве порога обнаружения аномалии.
Для реализации всех вычислений и операций вполне может быть сформирована программа (комплекс программ) специалистом по программированию (программистом) на любом известном универсальном языке программирования (например, языке С) на основе приведенных выше соотношений. Затем эта программа может быть выполнена на компьютере.
Необходимо отметить, что возможны и другие варианты реализации предложенного способа, отличающиеся от описанного выше и зависящие от личных предпочтений при программировании отдельных действий и функций.
Источники информации
1. Патент РФ №2538292, приоритет от 24.07.2013 г.
2. Vladimir Eliseev, Yury Shabalin. Dynamic response recognition by neural network to detect network host anomaly activity. Proceedings of the 8th International Conference on Security of Information and Networks (SIN 2015), September 8-10, 2015, Sochi, Russia, pp.246-249 (издано в г. Таганроге, 2015 г.).