Автоматическое построение профилей нормального поведения веб-приложений

Разработка инструментального средства для обнаружения уязвимостей веб-приложений на основе контроля поведения с функцией автоматического построения профилей нормального поведения. Основные методы обнаружения аномалий, анализ возможности их применения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.02.2015
Размер файла 865,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В основе метода лежит нейросеть с количеством слоёв от трёх до пяти. Входы используются для подачи входных данных, значения на выходах анализируются для обнаружения аномалий.

В контексте предложенного метода обнаружения уязвимостей данная модель может быть использована следующим образом.

Количество входов нейросети делается равным сумме количества всех возможных GET и POST параметров и количества всех операций над всеми объектами окружения. Количество выходов устанавливается равным количеству веб-приложений. В режиме обнаружения аномалий на входы нейросети, соответствующие GET и POST параметрам подаются: 1, если данный параметр присутствовал в HTTP-запросе, и 0, если не присутствовал. На входы, соответствующие операциям над объектами окружения, подаются соответствующие значения операций. Значение на выходах варьируется от 0 до 1 с шагом 0.1. Считается, что значение на некотором выходе большее 0.5 однозначно идентифицирует веб-приложение, которому может принадлежать такая комбинация HTTP-параметров и значений операций. Если более чем на одном выходе обнаружено значение большее 0.5, или ни на одном выходе нет значения большего 0.5 - фиксируется аномалия и предполагается уязвимость в веб-приложении, которому поступил запрос.

На этапе построения профиля нормального поведения проводится настройка весов нейросети при помощи некоторого автоматического алгоритма обучения, например при помощи алгоритма с обратным распространением. На входы нейросети подаётся очередная комбинация, характеризующая набор HTTP-параметров и набор значений операций, полученных в ходе обработки данного HTTP-запроса. Значение выхода, соответствующий запрашиваемому веб-приложению, устанавливается в 1, после чего алгоритмом обучения производится настройка весов. Полученная конфигурация сети сохраняется в профиле нормального поведения.

5.5 Сравнительный анализ методов обнаружения аномалий и обоснование выбора метода

Исходя из контекста решаемой задачи, для сравнительного анализа рассмотренных математических моделей обнаружения аномалий можно выбрать следующие критерии.

1. Нечувствительность метода к ненормальности распределения анализируемой случайной величины.

О распределении значений каждой операции априори никаких предположений сделать нельзя. При этом, необходимо отметить тот факт, что значительная часть статистических моделей является чувствительной к виду распределения значений случайной величины и для корректной работы требует нормального или близкого к нормальному распределения.

Из рассмотренных методов данному критерию удовлетворяют:

метод EWMA - корректная работа метода при распределениях, не являющихся близкими к нормальному, подтверждается в [21];

метод цепей Маркова - сам метод основан на анализе вероятностей переходов и не зависит собственно от распределения значений анализируемой случайной величины;

нейросетевой метод - в основе метода лежит нейросеть, для корректной работы которой априори не требуется нормальное распределение.

Как было подчёркнуто в описании метода Хотеллинга [4], для корректной работы метода при многомерном распределении параметров, не являющимся близким к нормальному, требуется достаточно большое количество анализируемых параметров (то есть, достаточно большая размерность вектора значений) - примерно 30 и более. Но о количестве анализируемых параметров заранее ничего сказать нельзя и, следовательно, нельзя гарантировать корректную работу метода при произвольном виде многомерного распределения значений. Следовательно, относительно метода Хотеллинга в общем случае нельзя сказать, что он удовлетворяет обозначенному критерию.

2. Корректная работа метода при произвольном количестве параметров.

Как было отмечено выше, заранее о количестве анализируемых параметров ничего сказать нельзя. При этом, для корректной работы многомерных статистических методов количество параметров может играть важную роль. В частности, как было сказано выше, для корректной работы метода Хотеллинга в условиях произвольного многомерного распределения параметров требуется достаточно большое количество анализируемых параметров. Следовательно, метод Хотеллинга данному критерию в общем случае не удовлетворяет.

Остальные методы данному критерию удовлетворяют:

метод EWMA - метод является одномерным статистическим, так что общее количество анализируемых параметров не влияет на корректность работы метода;

метод цепей Маркова - метод является одномерным стохастическим, так что общее количество анализируемых параметров не влияет на корректность работы метода;

нейросетевой метод - в основе метода лежит нейросеть, конфигурация которой может быть произвольной, так что общее количество анализируемых параметров не влияет на корректность работы метода.

3. Локальность переобучения.

Возможны две основные ситуации, требующие перезапуск этапа обучения и переформирование профилей нормального поведения:

в сфере контроля модуля обнаружения аномалий появляется новое веб-приложение, для которого профили нормального поведения ещё не сформированы;

в веб-приложения, для которых профили нормального поведения уже сформированы, вносятся изменения. Например, в составе веб-приложения отдельные библиотеки меняются на обновлённые и исправленные.

За данным критерием стоит следующая идея. В обоих ситуациях крайне нежелателен полный останов модуля обнаружения уязвимостей для переформирования всех профилей нормального поведения. Желательно провести формирование или переформирование профилей только для тех веб-приложений, которые были добавлены или изменены, при этом работа модуля с остальными профилями нормального поведения была бы продолжена.

Из рассмотренных методов данному критерию удовлетворяют:

метод Хотеллинга - достаточно провести этап обучения для нового или изменённого веб-приложения, с заменой уже существующих для разных наборов HTTP-параметров профилей нормального поведения значений операций;

метод EWMA - достаточно провести этап обучения для нового или изменённого веб-приложения, с заменой уже существующих для разных наборов HTTP-параметров профилей нормального поведения значений операций;

метод цепей Маркова - достаточно провести этап обучения для нового или изменённого веб-приложения, с заменой уже существующих для разных наборов HTTP-параметров профилей нормального поведения значений операций.

Данному критерию не удовлетворяет нейросетевой метод, так как количество выходов нейросети равно количеству веб-приложений. В первой ситуации при добавлении нового веб-приложения появляется дополнительный выход, следовательно - меняется конфигурация сети, что в обязательном порядке приведёт к необходимости перезапуска этапа обучения и перенастройке сети. Во втором случае конфигурация сети не меняется, но меняется поведение изменившегося веб-приложения. А так как обучение нейросети проводится для всей совокупности веб-приложений, потребуется перезапуск этапа обучения и перенастройка сети.

4. Анализ значений, а не последовательности их появления.

Недостатком статистических методов считается нечувствительность к аномалиям в последовательности событий. Существует ряд методов, которые предназначены для обнаружения аномалий именно в последовательности событий, например - метод упреждающего генерирования шаблонов (Predictive Pattern Generation) [6] и описанный выше метод цепей Маркова. По сути, такие методы предполагают переход системы из состояния в состояние в зависимости от поступающих значений и на этапе обучения определяют вероятности переходов. Отправной точкой служит предположение о том, что множество состояний системы конечно, иначе возникают проблемы с определением момента завершения этапа обучения, так как система будет продолжать переходить в новые состояния. Реализация методов этого класса основывается на анализе последовательности значений из конечного множества значений. Примером может служить последовательность системных вызовов операционной системы. Однако в рассматриваемой задаче анализируемые последовательности содержат значения операций, и о конечности множества их значений априори ничего сказать нельзя. Поэтому анализ самих значений, а не последовательности их появлений, представляется более перспективным в контексте данной задачи.

Таким образом, данному критерию не удовлетворяет метод цепей Маркова. Для рассматриваемой задачи применение метода цепей Маркова представляется проблематичным, так как, как было показано в Подразделе 5.3, в качестве типов событий предполагается использовать значения операций. Множество значений операций может быть сколь угодно большим, в то время как размерность матрицы вероятностей переходов и, следовательно, сложность расчёта значений её элементов, зависит от количества элементов множества.

Из рассмотренных методов следующие методы анализируют значения случайных величин, а не последовательность появления этих значений:

метод Хотеллинга - в основе лежит многомерный статистический метод, на результаты работы которого влияют сами значения, а не их последовательность;

метод EWMA - в основе лежит одномерный статистический метод, на результаты работы которого влияют сами значения, а не их последовательность;

нейросетевой метод - в основе метода лежит нейросеть, на результаты работы которой влияют сами значения, а не их последовательность.

Таким образом, с учётом сравнения методов по приведённым критериям, наиболее подходящим методом для обнаружения аномалий в значениях операций из рассмотренных является метод EWMA.

6. Модуль обнаружения уязвимостей

В данном разделе описывается разработанный модуль обнаружения уязвимостей. Сначала формулируются требования к модулю. Далее описывается структура профиля нормального поведения, программная архитектура модуля и описание всех подсистем, входящих в модуль.

Модуль реализован в виде набора классов на языке C++, предназначенных для использования в рамках СОА "Мониторинг-РВС".

6.1 Требования к модулю

В данном подразделе формулируются требования к разрабатываемому модулю обнаружения уязвимостей.

К модулю предъявляются следующие требования:

модуль должен содержать независимые подсистемы для построения профилей нормального поведения веб-приложений и для обнаружения уязвимостей на основе построенных профилей;

профили нормального поведения должны храниться во внешних по отношению к модулю структурах данных, например, в файлах или в базе данных;

модуль должен осуществлять корректную работу вне зависимости от того, поступают записи трассы в режиме реального времени, или анализ происходит пост-фактум на основе сформированной трассы.

6.2 Структура профиля нормального поведения

В данном подразделе описывается структура профиля нормального поведения. Профиль нормального поведения представляет собой совокупность записей, описывающих соответствие между наборами HTTP-параметров и наборами допустимых операций над объектами окружения. Точнее, каждому набору HTTP-параметров соответствует набор допустимых операций над объектами окружения. Так как, как было сказано в описании предложенного метода обнаружения уязвимостей, помимо обнаружения аномалий, связанных с выполнением недопустимых с точки зрения профиля нормального поведения операций, будет производиться ещё и анализ значений операций при помощи математического метода обнаружения аномалий (таковым по результатам сравнительного анализа был выбран метод EWMA), то в описании каждой операции из набора операций должны быть указаны дополнительные данные для дальнейшего использования методом при обнаружении аномалий в значениях операций. Профили нормального поведения хранятся в файлах на жёстком диске.

Каждая запись профиля нормального поведения состоит из секций мета-информации, секции HTTP-параметров, которая подразделяется на подсекции GET и POST параметров, и секции информации об операциях над объектами окружения.

Запись профиля нормального поведения открывается ключевым словом WAProfile_Begin и заканчивается ключевым словом WAProfile_End.

6.2.1 Секция мета-информации

Секция мета-информации содержит набор основных и вспомогательных данных профиля нормального поведения.

Основными полями являются:

WAProfile_URL - данное поле содержит базовый URL-адрес веб-приложения.

Вспомогательными полями являются:

WAProfile_UserAgent - данное поле может содержать значение User-Agent HTTP-запроса. Поле является необязательным. Если значение поля задано, то в режиме обнаружения аномалий будет проводиться дополнительная проверка. Значение "*" в данном поле отключает проверку, семантически соответствуя любому значению.

6.2.2 Секция HTTP-параметров

Секция HTTP-параметров содержит перечисление параметров и их значений из набора HTTP-параметров, которому соответствует данная запись профиля нормального поведения.

Секция HTTP-параметров состоит из подсекций GET и POST параметров. Подсекции идентичны и имеют следующую структуру:

Подсекция открывается ключевым словом WAProfile_RequestSectionBegin.

Первым полем подсекции является поле WRA_RequestMethod, имеющее два возможных значения - GET и POST. Значение данного поля определяет, какие параметры описываются данной подсекцией.

Список GET или POST параметров, в зависимости от подсекции.

Подсекция закрывается ключевым словом WAProfile_RequestSectionEnd.

Каждый HTTP-параметр описывается парой полей:

WAProfile_ParameterName - данное поле содержит имя параметра;

WAProfile_ParameterValue - данное поле содержит значение параметра либо его тип (см. Подраздел 6.4.2).

В разработанном модуле в качестве типов используются символьные классы регулярных выражений стандарта POSIX [24]:

[: alnum:] - буквенно-цифровые символы;

[: alpha:] - буквенные символы;

[: blank:] - пробелы и знаки табуляции;

[: cntrl:] - управляющие символы;

[: digit:] - цифры;

[: graph:] - символы, которые и печатны, и одновременно видимы;

[: lower:] - буквы нижнего регистра;

[: print:] - печатные символы (символы, не являющиеся управляющими);

[: punct:] - знаки пунктуации;

[: space:] - пробельные символы;

[: upper:] - буквы верхнего регистра;

[: xdigit:] - шестнадцатеричные цифры.

Для проверки соответствия типа параметра используется соответствующее регулярное выражение.

Тем не менее, для GET-параметров возможны исключения - вместо совпадения значения для некоторых параметров целесообразнее проверять совпадение типов. К примеру, значение GET-параметра showforum системы управления форумом Invision Power Board варьируется, но логика работы системы при наличии этого параметра в URL остаётся неизменной. Аналогично, для POST-параметров возможны исключения - вместо совпадения типов для некоторых параметров целесообразнее проверять совпадение значений. К примеру, значение POST-параметра act системы управления форумом Invision Power Board является указанием к действию системе - и влияет на логику работы системы при обработке остальных POST-данных. Формат описания исключений для разработанного модуля приводится в Подразделе 6.4.2.

6.2.3 Секция информации об операциях над объектами окружения

Секция содержит информацию об операциях из набора допустимых операций над объектами окружения, определённого для набора HTTP-параметров, которому соответствует данная запись профиля нормального поведения.

Секция состоит из подсекций, описывающих операции над объектами окружения. Подсекции имеют следующую структуру:

Подсекция открывается ключевым словом WAProfile_ObjectRequestStart.

Набор полей, описывающих операцию над объектом окружения и содержащих дополнительные данные для использования математической моделью обнаружения аномалий.

Подсекция закрывается ключевым словом WAProfile_ObjectRequestEnd.

Операция описывается следующими полями:

WAProfile_ObjectId - данное поле содержит строку-идентификатор объекта окружения, которому принадлежит описываемая операция;

WAProfile_ObjectName - данное поле содержит текстовую строку-описание объекта окружения, которому принадлежит описываемая операция;

WAProfile_ObjectOp - данное поле содержит строку-идентификатор операции

WAProfile_ObjectOpMean - данное поле содержит вещественное значение, представляющее математическое ожидание статистики, рассчитываемой по формуле (5.2.1);

WAProfile_ObjectOpLambda - данное поле содержит вещественное значение константы сглаживания л, используемого при расчёте статистики по формуле (5.2.1);

WAProfile_ObjectOpUCL - данное поле содержит вещественное значение верхнего контрольного предела, рассчитываемое по формуле (5.2.3);

WAProfile_ObjectOpLCL - данное поле содержит вещественное значение нижнего контрольного предела, рассчитываемое по формуле (5.2.4).

6.2.4 Пример записи профиля нормального поведения

Ниже приводится пример одной записи профиля нормального поведения. Запись определяет две допустимые операции ("SELECT" и "INSERT") к одному объекту окружения (сервер MySQL версии 4.1.8) для набора параметров, состоящего из одного GET-параметра q и четырёх POST параметров title, changed, body, format.

WAProfile_Begin

WAProfile_RequestURL: http://localhost/mrvs/

WAProfile_UserAgent: *

WAProfile_RequestSectionBegin

WAProfile_RequestMethod: GET

WAProfile_VariableName: q

WAProfile_VariableValue: node/edit

WAProfile_RequestSectionEnd

WAProfile_RequestSectionBegin

WAProfile_RequestMethod: POST

WAProfile_VariableName: title

WAProfile_VariableValue: [: alnum:]

WAProfile_VariableName: changed

WAProfile_VariableValue: [: digit:]

WAProfile_VariableName: body

WAProfile_VariableValue: [: alnum:]

WAProfile_VariableName: format

WAProfile_VariableValue: [: alnum:]

WAProfile_RequestSectionEnd

WAProfile_ObjectRequestStart

WAProfile_ObjectId: mysql418

WAProfile_ObjectName: MySQL 4.1.8

WAProfile_ObjectOp: SELECT

WAProfile_ObjectOpMean: 43

WAProfile_ObjectOpLambda: 0.2

WAProfile_ObjectOpUCL: 44.6

WAProfile_ObjectOpVCL: 42.4

WAProfile_ObjectRequestEnd

WAProfile_ObjectRequestStart

WAProfile_ObjectId: mysql418

WAProfile_ObjectName: MySQL 4.1.8

WAProfile_ObjectOp: INSERT

WAProfile_ObjectOpMean: 6

WAProfile_ObjectOpLambda: 0.2

WAProfile_ObjectOpUCL: 7

WAProfile_ObjectOpVCL: 5

WAProfile_ObjectRequestEnd

WAProfile_End

6.3 Программная архитектура модуля

В данном подразделе описывается программная архитектура разработанного модуля обнаружения уязвимостей.

Модуль состоит из следующих основных подсистем:

консоль управления;

подсистема предварительной обработки трассы веб-приложения;

подсистема построения профиля нормального поведения;

подсистема обнаружения аномалий.

Подробное описание каждой подсистемы модуля проводится в соответствующих подразделах Раздела 6.4 Ниже приводится краткое описание задач, решаемых каждой подсистемой.

Задачами консоли управления является:

общее управление модулем;

загрузка параметров конфигурации;

настройка и запуск подсистем.

Задачами подсистемы предварительной обработки трассы являются:

получение записей трассы от поставщиков событий СОА "Мониторинг-РВС";

анализ и преобразование записей трассы во внутреннее представление для дальнейшей передачи подсистемам построения профиля нормального поведения и обнаружения аномалий.

Задачами подсистемы построения профиля нормального поведения являются:

анализ поступающих от подсистемы предварительной обработки трассы записей трассы и построение дерева запросов;

формирование и сохранение профилей нормального поведения на основе дерева запросов.

Задачами подсистемы обнаружения аномалий являются:

загрузка профилей нормального поведения и формирование дерева профилей;

анализ поступающих от подсистемы предварительной обработки трассы записей трассы и выявление аномалий;

подача сообщений о выявленных аномалиях на консоль управления.

Модуль может функционировать в двух основных режимах: режиме построения профилей нормального поведения и режиме обнаружения аномалий.

На рисунке 6.3.1 показана схема работы модуля в режиме построения профиля нормального поведения. Данные от поставщиков событий (на схеме обозначены аббревиатурой "ПС"), перехватывающих HTTP-запросы к веб-приложению и обращения веб-приложения к объектам окружения, попадают в подсистему предварительной обработки трассы, где анализируются и преобразовываются к внутреннему представлению записи трассы. Далее преобразованная запись трассы передаётся в подсистему построения профилей нормального поведения, где происходит анализ и добавление содержащихся в записях трассы данных в строящееся дерево запросов. По команде отключения режима построения профилей нормального поведения с консоли управления, подсистема построения профилей нормального поведения формирует на основе построенного дерева запросов профили нормального поведения и сохраняет их в базу данных профилей нормального поведения (на схеме помечена аббревиатурой "БД").

Рисунок 6.3.1 Схема функционирования модуля в режиме построения профиля нормального поведения

На рисунке 6.3.2 показана схема работы модуля в режиме обнаружения аномалий. Данные от поставщиков событий (на схеме обозначены аббревиатурой "ПС"), перехватывающих HTTP-запросы к веб-приложению и обращения веб-приложения к объектам окружения, попадают в подсистему предварительной обработки трассы, где анализируются и преобразовываются к внутреннему представлению записи трассы. Далее преобразованная запись трассы передаётся в подсистему обнаружения аномалий, где происходит анализ и выявление аномалий относительно профилей нормального поведения. Профили нормального поведения загружаются подсистемой обнаружения из базы данных профилей нормального поведения (на схеме помечена аббревиатурой "БД") в начальный момент времени и формируют дерево профилей нормального поведения.

Рисунок 6.3.2 Схема функционирования модуля в режиме обнаружения аномалий

6.4 Описание подсистем модуля

В данном подразделе приводятся описания основных подсистем модуля обнаружения уязвимостей.

6.4.1 Консоль управления

Задачами консоли управления являются настройка, запуск и координация остальных подсистем модуля.

При запуске консоль управления считывает файл с настройками модуля. Далее настройки передаются запускаемым подсистемам.

6.4.2 Подсистема предварительной обработки трассы

Задачей подсистемы предварительной обработки трассы (далее - "предобработчик трассы") является анализ и преобразование записей трассы к внутреннему представлению для дальнейшего анализа подсистемами построения профиля нормального поведения и обнаружения аномалий.

Основными задачами предобработчика трассы являются:

анализ значений POST-параметров и их замена на типы;

суммирование значений для одинаковых операций в записи трассы.

Как было сказано в Подразделе 4.5, при сравнении GET-параметров сопоставляются значения параметров, а при сравнении POST-параметров - их типы. Определение типов POST-параметров является непосредственной задачей предобработчика трассы.

В качестве типов используются символьные классы регулярных выражений стандарта POSIX [24]. Для определения типа используется соответствующее регулярное выражение.

Как было отмечено в Подразделе 6.2.2, в ряде случаев нужно обрабатывать отдельные GET-параметры как POST-параметры, и наоборот. То есть - заменять значение отдельных GET-параметров на их типы и не заменять значение отдельных POST-параметров на их типы. Список таких исключений задаётся в отдельном файле, представляющем собой совокупность записей, описывающих исключения.

Запись имеет следующую структуру:

запись открывается ключевым словом WAProfile_ExclusionBegin;

набор полей, описывающих исключение;

запись закрывается ключевым словом WAProfile_ExclusionEnd.

Запись состоит из следующих полей:

WAProfile_ExclusionURL - поле содержит URL-адрес веб-приложения, которому передаётся параметр;

WAProfile_ExclusionMethod - поле содержит метод, которым передаётся параметр. Возможные значения:

GET

POST

WAProfile_ExclusionParam - имя передаваемого параметра;

WAProfile_ExclusionType - уточнение способа, которым должен обрабатываться данный параметр. Возможные значения:

use_value - параметр сохраняет значение, при сравнении наборов HTTP-параметров происходит сравнение значений данных параметров;

use_type - вместо значения параметра определяется и используется его тип, при сравнении наборов HTTP-параметров происходит сравнение типов данных параметров;

use_custom_regexp - значение параметра проверяется специальным регулярным выражением в формате PCRE [24], которое указывается в отдельном поле.

WAProfile_ExclusionRegexp - поле содержит регулярное выражение в формате PCRE [24]. Поле является необязательным. Регулярное выражение, заданное в поле, используется для проверки значения параметра, если в качестве значения поля WAProfile_ExclusionType задано use_custom_regexp.

Примеры записей:

WAProfile_ExclusionBegin

WAProfile_ExclusionURL: http://localhost/mrvs/

WAProfile_ExclusionMethod: POST

WAProfile_ExclusionParam: q

WAProfile_ExclusionType: use_value

WAProfile_ExclusionEnd

WAProfile_ExclusionBegin

WAProfile_ExclusionURL: http://localhost/mrvs/

WAProfile_ExclusionMethod: GET

WAProfile_ExclusionParam: q

WAProfile_ExclusionType: use_custom_regexp

WAProfile_ExclusionRegexp: /^node\/ [0-9] +\/edit (\/)? $/i

WAProfile_ExclusionEnd

6.4.3 Подсистема построения профиля нормального поведения

Задачей подсистемы построения профиля нормального поведения является анализ трассы, полученной в режиме обучения, и построение на её основе профилей нормального поведения для веб-приложений, данные о запросах к которым содержатся в записях трассы.

Подсистема активизируется при запуске модуля в режиме построения профиля нормального поведения.

Подсистема получает на вход очередную запись трассы во внутреннем представлении, проанализированную и преобразованную предобработчиком трассы.

На основании поступающих записей трассы строится дерево запросов, в котором семантически вершины глубины 1 соответствуют веб-приложениям, вершины глубины 2 - наборам HTTP-параметров, а вершины глубины 3 - наборам операций. Как было отмечено выше, веб-приложения различаются по URL-адресу.

На рисунке 6.4.1 показано добавление данных записи трассы в дерево запросов.

Рисунок 6.4.1 Добавление данных записи трассы в дерево запросов

Дерево строится по следующему алгоритму:

Если на входе есть очередная запись трассы - переход на шаг 2, иначе останов.

Из записи извлекается URL-адрес, которому адресован запрос.

Проверяется, есть ли уже в дереве вершина глубины 1 с таким же URL-адресом. Если такой вершины нет (рисунок 6.4.2), то:

заводится вершина глубины 1 с данным URL;

созданной вершине глубины 1 добавляется дочерняя вершина глубины 2 с набором HTTP-параметров, извлечённым из записи трассы;

созданной вершине глубины 2 с набором HTTP-параметров добавляется дочерняя вершина с набором операций, извлечённым из записи трассы;

переход на шаг 1.

Иначе:

проверяется, есть ли среди дочерних вершин глубины 2 данной вершины глубины 1 вершина с набором HTTP-параметров, совпадающим с набором HTTP-параметров, извлечённым из записи трассы. Если такая вершина глубины 2 есть (рисунок 6.4.4), то:

найденной вершине глубины 2 добавляется дочерняя вершина глубины 3 с набором операций, извлечённым из записи трассы;

переход на шаг 1 алгоритма.

Иначе (рисунок 6.4.3):

создаётся вершина глубины 2 с набором HTTP-параметров, извлечённым из записи трассы;

созданной вершине глубины 2 добавляется дочерняя вершина глубины 3 с набором операций, извлечённым из записи трассы;

переход на шаг 1 алгоритма.

Построение дерева завершается в тот момент, когда обработана последняя запись трассы.

Рисунок 6.4.2 иллюстрирует ситуацию добавления данных записи трассы в дерево запросов в случае, когда нет соответствующей вершины глубины 1. Рисунок 6.4.3 иллюстрирует ситуацию добавления данных записи трассы в дерево запросов в случае, когда есть соответствующая вершина глубины 1, но нет соответствующей вершины глубины 2. Рисунок 6.4.4 иллюстрирует ситуацию добавления данных записи трассы в дерево запросов в случае, когда есть соответствующая вершина глубины 1 и есть соответствующая вершина глубины 2.

Рисунок 6.4.2 Добавление данных записи трассы в дерево запросов в случае, когда нет вершины глубины 1 с аналогичным URL

Рисунок 6.4.3 Добавление данных записи трассы в дерево запросов в случае, когда есть вершины глубины 1 с аналогичным URL, но нет вершины глубины 2 с совпадающим набором HTTP-параметров

Рисунок 6.4.4 Добавление данных записи трассы в дерево запросов в случае, когда есть вершина глубины 1 с аналогичным URL и есть вершина глубины 2 с совпадающим набором HTTP-параметров

Далее запускается алгоритм построения профилей нормального поведения на основе сформированного дерева. Алгоритм устроен следующим образом:

Выбирается очередная вершина глубины 1 (то есть, очередное веб-приложение). Если вершина есть - переход на шаг 2, иначе - останов.

Выбирается очередная дочерняя вершина глубины 2 (первая, если произошёл переход с шага 1). Если вершина есть - переход на шаг 3, иначе - переход на шаг 1.

Выбирается очередная дочерняя вершина глубины 3. Если вершины нет - переход на шаг 4, иначе:

3.1 выбирается очередная операция из набора операций, содержащегося в данной вершине. Если операции нет - переход на шаг 3. Значение каждой операции считается очередным значением для расчёта статистики по формуле (5.2.1). Для каждой операции каждого объекта окружения ведётся своя статистика.

Обход текущей ветки ("веб-приложение - набор параметров - множество операций") завершён. Для текущего веб-приложения (текущая вершина глубины 1) и текущего набора HTTP-параметров (вершина глубины 2) определено множество допустимых операций (объединение наборов операций из всех дочерних вершин глубины 3), для каждой из которых просчитана статистика по формуле (5.2.1) метода EWMA, и определены контрольные пределы. Полученные данные оформляются в виде записи профиля нормального приложения для текущего веб-приложения и сохраняются в базу профилей нормального поведения. Переход на шаг 2.

Таким образом, запись профиля нормального поведения оформляется для каждого набора HTTP-параметров. Иными словами, записей в профиле нормального поведения для данного веб-приложения будет столько же, сколько дочерних вершин глубины 2 у вершины глубины 1, соответствующей этому веб-приложению.

6.4.4 Подсистема обнаружения аномалий

Задачей подсистемы обнаружения аномалий является анализ трассы, полученной в режиме обнаружения аномалий, на предмет аномалий в поведении веб-приложений. Под аномалиями понимаются как аномалии с точки зрения метода обнаружения уязвимостей (Подраздел 4.4), так и дополнительные виды аномалий - о них будет рассказано ниже.

Подсистема активизируется при запуске модуля в режиме обнаружения уязвимостей. После запуска подсистема производит загрузку профилей нормального поведения веб-приложений из базы данных профилей. При этом во внутреннем представлении формируется дерево профилей нормального поведения (далее "дерево профилей"), практически аналогичное дереву запросов. Разница состоит в том, что каждая вершина глубины 2 (то есть, каждый набор HTTP-параметров) имеет только одну дочернюю вершину глубины 3 (то есть, только один набор операций) - и эта вершина содержит множество всех допустимых операций для данного набора HTTP-параметров. Для каждой операции в дереве профилей сохраняются дополнительные параметры, используемые методом EWMA. После загрузки профилей нормального поведения подсистема переходит в режим обнаружения аномалий.

Подсистема получает на вход очередную запись трассы во внутреннем представлении, проанализированную и преобразованную предобработчиком трассы.

Обнаружение аномалий осуществляется по следующему алгоритму:

Получение очередной записи трассы.

В дереве профилей ищется вершина глубины 1 с совпадающим URL. Если такая вершина есть - переход на шаг 3, иначе на консоль управления подаются:

предупреждение об обнаруженной аномалии;

сообщение: "Для веб-приложения, которому адресован данный запрос, отсутствуют профили нормального поведения; возможно обращение по несуществующему адресу";

данные, содержащиеся в записи трассы.

Проверяется, есть ли среди дочерних вершин глубины 2 данной вершины глубины 1 вершина с набором HTTP-параметров, совпадающим с набором HTTP-параметров, извлечённым из записи трассы. Если такая вершина есть - переход на шаг 4, иначе на консоль управления подаются:

предупреждение об обнаруженной аномалии;

сообщение "Для набора HTTP-параметров, извлечённого из данной записи трассы, отсутствует профиль нормального поведения";

данные, содержащиеся в записи трассы.

Но так как основной задачей является обнаружение уязвимостей, необходимо произвести пересчёт значений операций, так как, возможно, набор HTTP-параметров из поступившей записи трассы не соответствует описанным как раз из-за наличия значений параметров, не соответствующих ожидаемому типу или значению, и занесённым в HTTP-запрос с целью воздействия на уязвимость. Пересчёт статистик операций необходимо произвести для всех вершин глубины 3, дочерних к вершинам глубины 2 с совпадающим набором HTTP-параметров безотносительно типов или значений. Для каждой операции обновлённое значение статистики проверяется на предмет выхода за контрольные пределы. При выходе значения статистики за контрольные пределы на консоль управления подаются:

предупреждение об аномалии;

сообщение "Обнаружен выход статистики значений операции за контрольные пределы для недопустимого набора HTTP-параметров" с уточнением операции, объекта окружения и значения операции;

данные, содержащиеся в записи трассы.

Для каждой операции из набора операций над объектами окружения, извлечённого из записи трассы, проверяется её наличие в наборе допустимых операций в дочерней вершине глубины 3. Для каждой операции, не входящей во множество допустимых операций, на консоль управления подаются:

предупреждение об аномалии;

сообщение "Для набора HTTP-параметров, извлечённого из данной записи трассы, обнаружена недопустимая операция" с уточнением операции и объекта окружения;

данные, содержащиеся в записи трассы.

Для каждой операции, входящей в набор допустимых операций, обновляется значение статистики по формуле (5.2.1), параметры для которой берутся из дерева профилей (то есть, из соответствующей записи профиля нормального поведения). Обновлённое значение статистики проверяется на предмет выхода за контрольные пределы. При выходе значения статистики за контрольные пределы на консоль управления подаются:

предупреждение об аномалии;

сообщение "Обнаружен выход статистики значений операции за контрольные пределы" с уточнением операции, объекта окружения и значения операции;

данные, содержащиеся в записи трассы.

7. Результаты

В результате данной работы:

сформулированы основные понятия;

описан предлагаемый метод обнаружения уязвимостей и обоснована идея использования математического метода обнаружения аномалий для анализа значений операций;

рассмотрены 4 математических метода обнаружения аномалий - приведены описания методов, возможное использование каждого метода в рамках общего метода обнаружения уязвимостей и автоматическое построение профилей нормального поведения для каждого метода;

сформулированы критерии для сравнительного анализа рассмотренных методов обнаружения аномалий, в результате которого выбран один метод для дальнейшей реализации в рамках предложенного метода обнаружения уязвимостей;

на основе метода разработан и реализован модуль обнаружения уязвимостей для СОА "Мониторинг-РВС" с функцией автоматического построения профилей нормального поведения;

проведены испытания на широко распространённых веб-приложениях.

8. Заключение

В данной работе приведено описание метода обнаружения уязвимостей на основе контроля поведения и разработанного на его основе модуля обнаружения уязвимостей с функцией автоматического построения профилей нормального поведения. В основе метода обнаружения уязвимостей лежит обнаружение аномалий в поведении веб-приложения. Задача обнаружения аномалий в целом и обнаружения аномалий применительно к веб-приложениям в частности в последние годы становится всё более актуальной [1, 3, 6, 8]. Автоматическое построение профилей нормального поведения позволяет уйти от необходимости ручной настройки средства обеспечения безопасности под конкретное веб-приложение, что является трудоёмкой и затратной по времени задачей даже для опытного специалиста.

В ходе работы была выявлена техническая сложность задачи, проявляющаяся на этапе реализации программного средства. Для получения достаточной информации для возможно полного анализа поведения веб-приложения требуется создание поставщиков событий для каждого объекта окружения. Кроме того, программный интерфейс многих объектов окружения не позволяет получить нужные данные, что может потребовать модификацию программных библиотек объекта (как, например, это было сделано авторами в [3]) - это нарушает целостность и стабильность системы и весьма проблематично для программ с закрытым исходным кодом. Также требуется создание координирующей системы, сопоставляющей события от разных объектов окружения с HTTP-запросами и формирующей готовые для анализа записи трассы.

Таким образом, важными направлениями дальнейшей работы в данной области представляются:

усовершенствование алгоритмов обнаружения уязвимостей на основе контроля поведения;

интеграция этапов обучения и обнаружения уязвимостей без потери точности обнаружения и увеличения количества ложных предупреждений;

создание единой системы получения событий с подключаемыми по мере необходимости поставщиками событий для отдельных объектов окружения.

9. Литература

[1] Kruegel C., Giovanny V. Anomaly Detection of Web-based Attacks // In Proceedings of the 10th ACM Conference on Computer and Communication Security (CCS '03). 2003. P.251-261.

[2] Vigna G., Robertson W., Kher V., Kemmerer. R. A. A Stateful Intrusion Detection System for World-Wide Web Servers // In Proceedings of the Annual Computer Security Applications Conference (ACSAC 2003). 2003. P.34-43

[3] Valeur F., Mutz D., Vigna G. A Learning-Based Approach to the Detection of SQL Attacks // Intrusion and Malware Detection and Vulnerability Assessment. 2005.

[4] Ye N., Emran S. M., Chen Q., Vilbert S. Multivariate Statistical Analysis of Audit Trails for Host-Based Intrusion Detection // IEEE Transactions on Computers. 2002. № 7.

[5] Denning D. An Intrusion Detection Model // IEEE Transactions on Software Engineering. 1987. № 2. P.222.

[6] Park Y. A Statistical Process Control Approach for Network Intrusion Detection // In partial fulfillment of the requirements for the degree doctor of philosophy in the school of industrial and systems engineering. 2005.

[7] Kohout L. J., Yasinsac A., McDuffie E. Activity Profiles for Intrusion Detection. Деп. в Dept. of Computer Science, Florida SU. 2003.

[8] Ye N. A Markov Chain Model of Temporal Behavior for Anomaly Detection // Proceedings of the 2000 IEEE Workshop on Information Assurance and Security United States Military Academy. West Point, NY. 2000.

[9] Технический проект системы обнаружения компьютерных атак для распределённых вычислительных сетей, разрабатываемой в рамках опытно-конструкторской работы "Создание системы обнаружения компьютерных атак для распределённых вычислительных сетей". ВМиК МГУ. 2003.

[10] Ристик И. Защита Web приложений с помощью Apache и mod_security [HTML] (http://www.securitylab.ru/analytics/216322. php)

[11] Maunder A., Van Rooyen R., Suleman H. Designing a `universal' Web application server // Proceedings of SAICSIT 2005.2005. P.111 - 113.

[12] Huang Y. - W., Lee D. T. Web Application Security - Past, Present, and Future // Institute of Information Science, Academia Sinica.

[13] Shah S. An Introduction to HTTP fingerprinting [HTML] (http://net-square.com/httprint/httprint_paper.html)

[14] Auronen L. Tool-Based Approach to Assessing Web Application Security // Helsinki University of Technology. 2002.

[15] Russell, Deborah, Gangemi Computer Security Basics. California: O'Reilly&Associates, Inc. 1991.

[16] Symantec Internet Security Threat Report. Trends for January 06-June 06. Vol. X. 2006.

[17] Научно-технический отчет. Разработка методов оценки защищенности скриптовых языков, обеспечивающих функционирование активных элементов Web-серверов. ВМиК, МГУ. 2004.

[18] Auger R. Web Application Firewall Evaluation Criteria // WASC. 2006.

[19] Huang Y. - W., Yu F., Hang C., Tsai C. - H., Lee D. T., Kuo S. - Y. Securing Web Application Code by Static Analysis and Runtime Protection. 2004.

[20] Ye N., Borror C., Zhang Y. EWMA Techniques for Computer Intrusion Detection Through Anomalous Changes in Event Intensity // Quality Reliability Int. 2002. №18. P.443-451.

[21] Borror C., Montgomery D., Runger G. Robustness of the EWMA control charts to non-normality // Journal of Quality Technology. 1998. № 30. P.352-361.

[22] Конверс Т., Парк Д., Морган К. PHP 5 и MySQL. Библия пользователя. П.: Диалектика-Вильямс, 2006.

[23] RFC-2616: Hypertext Transfer Protocol - HTTP/1.1 [HTML] (http://www.w3.org/Protocols/rfc2616/rfc2616.html).

[24] Фридл Д. Регулярные выражения. П.: Питер, 2003.2-е издание.

[25] Ryan J., Ling M. - J., Miikkulainen R. Intrusion Detection with Neural Networks // Advances in Neural Information Processing Systems. 1998. № 10.

[26] Гнеденко Б.В. Курс теории вероятностей. УРСС, 2001.

[27] Drupal Community Plumbing [HTML] (http://www.drupal.org/).

[28] Invision Systems, Inc. [HTML] (http://www.invisionsystems.com/).

Размещено на Allbest.ru


Подобные документы

  • Назначение и типы роботов-андроидов. Функции обнаружения объектов в робототехнике; машинное, электромагнитное зрение, датчики препятствий на ИК лучах. Разработка концептуально-функциональной модели робота типа "шагающий" с функцией обнаружения объекта.

    курсовая работа [3,0 M], добавлен 20.12.2012

  • Методы обнаружения вирусов. Метод соответствия определению вирусов в словаре. Обнаружение странного поведения программ, "белый список" и эвристический анализ. Антивирусное программное обеспечение. Обнаружение подозрительного поведения любой из программ.

    презентация [6,0 M], добавлен 10.05.2011

  • Описание технологии ASP.NET исполняемой на платформе Net FrameWork, ее преимущества. Возможности применения коллекции ViewState. Примеры использования шаблонов. Основные контролы Web приложений. Разработка программы-словаря с использованием ASP.NET.

    курсовая работа [1,2 M], добавлен 13.09.2012

  • Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.

    дипломная работа [68,7 K], добавлен 04.08.2016

  • Анализ систем распознавания поведения лабораторных мышей. Классификация движений на основе построенных дескрипторов. Существующие методы обнаружения движения, разработка соответствующего программного обеспечения и оценка его эффективности, функции.

    дипломная работа [1,1 M], добавлен 16.09.2017

  • Теоретико-методологические основы моделирования интеграционных экспертных систем. Направления повышения эффективности адаптивных систем обнаружения сетевых аномалий. Математическая реализация модели адаптивных систем обнаружения сетевых аномалий.

    дипломная работа [5,1 M], добавлен 03.01.2023

  • Разработка веб-приложений на основе Servlet API. Основные способы передачи данных от пользователя. Краткая справка по необходимым программным компонентам. Составление программы интернет-чата на основе протокола HTTP. Диаграмма классов веб-приложения.

    лабораторная работа [1,1 M], добавлен 01.05.2014

  • Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.

    контрольная работа [135,5 K], добавлен 30.11.2015

  • Концепция адаптивного управления безопасностью. Средства анализа защищенности сетевых протоколов и сервисов. Компоненты и архитектура IDS. Классификация систем обнаружения атак. Поиск уязвимостей в современных системах IDS. Методы реагирования на атаки.

    курсовая работа [488,5 K], добавлен 13.12.2011

  • Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.

    контрольная работа [362,8 K], добавлен 10.11.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.