Настройка фаззера

Включение фаззера

По умолчанию фаззер выключен, но вы всегда можете его включить на вкладке «Fuzz testing» редактора политик:

Включение фаззера

Переключатели активности фаззера и «Использовать только пользовательские детекты» на вкладке «Attacks to test» взаимно исключают друг друга.

Политика по умолчанию не поддерживает работу с фаззером.

Все настройки, связанные с фаззером и поиском аномалий, вынесены на отдельную вкладку «Fuzz testing» редактора политик.

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

Вы можете:

  • добавлять полезные нагрузки нажатием на ссылки «Add payload» и «Add another payload»;
  • добавлять условия, влияющие на работу фаззера, нажатием на ссылки «Add condition» и «Add another condition»;
  • удалять созданные полезные нагрузки и условия нажатием на символ «—» справа от них.

Работа с полезными нагрузками или условиями

Список параметров, которые допустимо использовать при создании условий:

  • Status: код ответа HTTP;
  • Length: длина ответа (в байтах);
  • Time: время ответа на запрос (в секундах);
  • Length diff: разница в длине ответа на запрос FAST и на оригинальный базовый запрос (в байтах);
  • Time diff: разница между временем ответа на запрос FAST и на оригинальный базовый запрос (в секундах);
  • DOM diff: разница в количестве элементов DOM в запросе FAST и исходном базовом запросе;
  • Body: регулярное выражение Ruby. Условие выполняется, если тело (body) ответа удовлетворяет этому регулярному выражению.

В секции «Stop fuzzing if response» к параметрам, описанным выше, добавляются следующие:

  • Anomalies: количество обнаруженных аномалий;
  • Timeout errors: количество раз, когда не было получено ответа от сервера.

При помощи комбинации этих параметров можно настроить необходимые условия, которые влияют на работу фаззера (см. ниже).

Секция Payloads

Здесь задаются одна или несколько полезных нагрузок.

При вставке (Insert) в значение point’a полезной нагрузки указываются:

  • размер нагрузки (от 1 до 255 байт);
  • место, куда вставлять нагрузку: в начало, в конец или в случайное место.

При замене (Replace) полезной нагрузкой значения point’a указываются:

  • способ замены: заменять случайный сегмент в значении, первые M байт, последние M байт, значение целиком;
  • размер нагрузки M (от 1 до 255 байт).

Секция Consider result an anomaly if response

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

Пример:

Считать, что отправленный FAST запрос вызвал аномалию, если тело ответа удовлетворяет регулярному выражению .*SQLITE_ERROR.*:

Пример условия

Поведение по умолчанию

Если не задано ни одного условия в этой секции, фаззер примет за аномалию любой ответ сервера, параметры которого аномально отличаются от ответа на базовый запрос (например, большое время ответа сервера).

Секция Consider result not an anomaly if response

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

Пример:

Считать, что отправленный FAST запрос не вызвал аномалию, если код ответа меньше 500:

Пример условия

Секция Stop fuzzing if response

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

Пример:

Фаззинг будет остановлен при обнаружении более двух аномалий (количество единичных аномальных байт в каждой аномалии может быть любым и не равняться двум):

Пример условия

Поведение по умолчанию

Если условия остановки процесса поиска не заданы, то фаззер проверит все 255 аномальных байт (при обнаружении аномалии — каждый отдельный байт в полезной нагрузке) и тогда будет остановлен.

results matching ""

    No results matching ""

    results matching ""

      No results matching ""