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

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

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

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

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

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

добавление данных записи трассы в дерево запросов

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

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

    1. Если на входе есть очередная запись трассы - переход на шаг 2, иначе останов. 2. Из записи извлекается URL-адрес, которому адресован запрос. 3. Проверяется, есть ли уже в дереве вершина глубины 1 с таким же URL-адресом. Если такой вершины нет (рисунок 6.4.2), то: 3.1. заводится вершина глубины 1 с данным URL; 3.2. созданной вершине глубины 1 добавляется дочерняя вершина глубины 2 с набором HTTP-параметров, извлеченным из записи трассы; 3.3. созданной вершине глубины 2 с набором HTTP-параметров добавляется дочерняя вершина с набором операций, извлеченным из записи трассы; 3.4. переход на шаг 1.

Иначе:

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

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

    3.5.3 создается вершина глубины 2 с набором HTTP-параметров, извлеченным из записи трассы; 3.5.4 созданной вершине глубины 2 добавляется дочерняя вершина глубины 3 с набором операций, извлеченным из записи трассы; 3.5.5 переход на шаг 1 алгоритма.

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

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

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

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

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

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

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

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

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

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

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

Похожие статьи




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

Предыдущая | Следующая