Полная версия

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

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

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

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

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

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

На основании поступающих записей трассы строится дерево запросов, в котором семантически вершины глубины 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, соответствующей этому веб-приложению.

 
Перейти к загрузке файла
<<   СОДЕРЖАНИЕ   >>