Описание подсистем модул
В данном подразделе приводятся описания основных подсистем модуля обнаружения уязвимостей.
Консоль управления
Задачами консоли управления являются настройка, запуск и координация остальных подсистем модуля.
При запуске консоль управления считывает файл с настройками модуля. Далее настройки передаются запускаемым подсистемам.
Подсистема предварительной обработки трассы
Задачей подсистемы предварительной обработки трассы (далее - «предобработчик трассы») является анализ и преобразование записей трассы к внутреннему представлению для дальнейшего анализа подсистемами построения профиля нормального поведения и обнаружения аномалий.
Основными задачами предобработчика трассы являются:
- · анализ значений POST-параметров и их замена на типы;
- · суммирование значений для одинаковых операций в записи трассы.
Как было сказано в Подразделе 4.5, при сравнении GET-параметров сопоставляются значения параметров, а при сравнении POST-параметров - их типы. Определение типов POST-параметров является непосредственной задачей предобработчика трассы.
В качестве типов используются символьные классы регулярных выражений стандарта POSIX [24]. Для определения типа используется соответствующее регулярное выражение.
Как было отмечено в Подразделе 6.2.2, в ряде случаев нужно обрабатывать отдельные GET-параметры как POST-параметры, и наоборот. То есть - заменять значение отдельных GET-параметров на их типы и не заменять значение отдельных POST-параметров на их типы. Список таких исключений задаётся в отдельном файле, представляющем собой совокупность записей, описывающих исключения.
Запись имеет следующую структуру:
- · запись открывается ключевым словом WAProfile_ExclusionBegin;
- · набор полей, описывающих исключение;
- · запись закрывается ключевым словом WAProfile_ExclusionEnd.
Запись состоит из следующих полей:
- · WAProfile_ExclusionURL - поле содержит URL-адрес веб-приложения, которому передаётся параметр;
- · WAProfile_ExclusionMethod - поле содержит метод, которым передаётся параметр. Возможные значения:
- o GET
- o POST
- · WAProfile_ExclusionParam - имя передаваемого параметра;
- · WAProfile_ExclusionType - уточнение способа, которым должен обрабатываться данный параметр. Возможные значения:
- o use_value - параметр сохраняет значение, при сравнении наборов HTTP-параметров происходит сравнение значений данных параметров;
- o use_type - вместо значения параметра определяется и используется его тип, при сравнении наборов HTTP-параметров происходит сравнение типов данных параметров;
- o 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