Создание теста безопасности

Необходимые сведения

Для создания test run'а с помощью API вам потребуется токен.

Для создания test run'а с помощью веб-интерфейса вам потребуется аккаунт Валарм.

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

Далее будет использоваться следующее демонстрационное значение токена: token_Qwe12345.

При создании теста безопасности создается новый набор запросов.

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

Создание test run'a с помощью API

Создайте и запустите test run, используя следующий запрос к API:

POST

Создать тест безопасности

https://us1.api.wallarm.com/v1/test_run
Запрос к API POST /v1/test_run
Авторизация запроса: Нужна С помощью токена
HTTP-заголовок с токеном: X-WallarmAPI-Token Служит для передачи значения токена
Параметры: name (обязательный параметр) Имя теста безопасности
test_record_name Имя набора запросов, в который будет вестись запись базовых запросов.
Значение по умолчанию: имя теста безопасности.
desc Детальное описание теста безопасности.
Значение по умолчанию: пустая строка.
file_extensions_to_exclude Позволяет с помощью регулярного выражения задать типы файлов, которые будут исключены из процесса проверки.
Например, если указать расширение ico, то проверка базового запроса GET /favicon.ico не будет проведена, а сам базовый запрос будет пропущен.
Формат регулярного выражения:
- .: любой символ в любом количестве (от нуля и выше);
- x*: символ x в любом количестве (от нуля и выше);
- x?: единичное вхождение символа x (или его отсутствие);
- единичное расширение (например, jpg);
- несколько расширений, разделенных вертикальной чертой: jpg | png.
Значение по умолчанию: пустая строка (проверяются файлы с любым расширением).
policy_id Идентификатор политики тестирования.
Если этот параметр будет отсутствовать в запросе, то будет использована политика тестирования по умолчанию.
stop_on_first_fail Параметр, определяющий поведение FAST при обнаружении уязвимости.
true: остановить выполнение теста безопасности при первой обнаруженной уязвимости.
false: обработать все поступившие в рамках теста базовые запросы вне зависимости от факта обнаружения уязвимостей.
Значение по умолчанию: false
skip_duplicated_baselines Параметр, позволяющий не обрабатывать дубликаты базового запроса (если пришло несколько одинаковых базовых запросов — создавать тестовые запросы только для первого базового запроса).
true: пропускать дублирующиеся базовые запросы.
false: создавать тестовые запросы для каждого базового запроса.
Значение по умолчанию: true
rps_per_baseline Ограничение на количество тестовых запросов в секунду (requests per second, RPS), которые могут быть отправлены для одного базового запроса в рамках текущего теста безопасности.
Минимальное значение: 1.
Максимальное значение: 500.
Значение по умолчанию: null (RPS не ограничено)
rps Глобальное ограничение на количество тестовых запросов в секунду (requests per second, RPS), которые могут быть отправлены в рамках текущего теста безопасности.
Минимальное значение: 1.
Максимальное значение: 1000.
Значение по умолчанию: null (RPS не ограничено)
inactivity_timeout Интервал, в течение которого будет ожидаться поступление новых базовых запросов.
Действие параметра подробно описано здесь.
Этот параметр не влияет на процесс создания и выполнения тестовых запросов на основе уже записанных базовых запросов.
Минимальное значение: 300 (300 секунд, 5 минут).
Максимальное значение: 86400 (86400 секунд, 1 день).
Значение по умолчанию: 1800 (1800 секунд, 30 минут)



Пример запроса:

curl --request POST \
  --url https://us1.api.wallarm.com/v1/test_run \
  --header 'Content-Type: application/json' \
  --header 'Host: us1.api.wallarm.com' \
  --header 'X-WallarmAPI-Token: token_Qwe12345' \
  --data '{
    "name":"demo-testrun"
}'

Пример ответа:

{
  "status": 200,
  "body": {
    "id": tr_1234,
    "name": "demo-testrun",
    ...
    "state": "running",
    ...
}

При успешном выполнении запроса к API вы получите ответ от сервера, который содержит:

  • id: идентификатор теста безопасности (например, tr_1234).

    Вам потребуется значение этого параметра на следующих этапах работы с FAST для:

    1. Проверки готовности ноды к записи.
    2. Остановки процесса записи базовых запросов.
    3. Проверки статуса теста.


  • state: состояние теста безопасности.

    Только что созданный тест безопасности будет находиться в состоянии running. Описание всех возможных значений параметра state находится здесь.

  • test_record_id: идентификатор test record'а, в который будут помещены все записанные FAST-нодой базовые запросы (например, rec_0001).

Создание test run'а с помощью веб-интерфейса

Чтобы создать test run c с помощью веб-интерфейса портала Валарм, выполните следующие действия:

  1. Войдите на портал с помощью вашего аккаунта Валарм и перейдите на вкладку «Test runs».

  2. Нажмите на кнопку Create test run.

  3. В появившейся боковой панели задайте содержательное имя для test run'а.

  4. Из выпадающего списка «Default test policy» выберите требуемую политику тестирования (при необходимости создайте ее, или используйте политику по умолчанию).

  5. Из выпадающего списка «Node» выберите требуемую FAST-ноду (при необходимости создайте ее).

    Создание test run'а

  6. Задайте дополнительные настройки, если это требуется. Для этого нажмите «Advanced settings» для открытия списка дополнительных настроек test run. При создании test run вам доступны следующие дополнительные настройки:

    • Галочка «Остановить при первом непройденном тесте» определяет, остановится ли выполнение теста безопасности после обнаружения первой уязвимости.
    • Галочка «Пропускать повторяющиеся запросы» определяет, будут ли проигнорированы дубликаты полученных ранее базовых запросов. Если галочка поставлена, то при получении базового запроса, полностью совпадающего с каким-либо другим, записанным ранее, на его основе не будут созданы тестовые запросы, а в консоли FAST-ноды будет выведено следующее сообщение: [info] The baseline #8921 is duplicated and already was processed.
    • Галочка «Пропустить файлы с расширениями» позволяет с помощью регулярного выражения задать типы файлов, которые будут исключены из процесса проверки.

      Например, если указать расширение ico, то проверка базового запроса GET /favicon.ico не будет проведена, а сам запрос будет пропущен.

      Регулярное выражение может состоять из следующих взаимоисключающих элементов:

      • .: любой символ в любом количестве (от нуля и выше);
      • x*: символ x в любом количестве (от нуля и выше);
      • x?: единичное вхождение символа x (или его отсутствие);
      • единичное расширение (например, jpg);
      • несколько расширений, разделенных вертикальной чертой или запятой (например, jpg | png или jpg, png).


      Если параметр не задан, то будет выполнена проверка файлов с любым расширением.

    • Бегунок «RPS на запуск тестов» устанавливает верхнее ограничение на количество запросов в секунду, отправляемых приложению FAST-нодой в этом тесте безопасности. Данная настройка может принимать значения от 1 до 1000. Значение по умолчанию — 1000.

    • Бегунок «RPS на базовый запрос» устанавливает верхнее ограничение на количество запросов в секунду, отправляемых приложению, для одного базового запроса. Данная настройка может принимать значения от 1 до 500. Значение по умолчанию — 500.
    • Бегунок «Остановить запись базовых запросов через» устанавливает ограничение на время записи (ожидание) базовых запросов при их отсутствии. Данная настройка может принимать значения от 5 мин до 1 день (24 часа). Значение по умолчанию — 30 мин.

      Дополнительные настройки test run
  7. Нажмите на кнопку Create and run.

Повторное использование test record'а

После отправки запросов к целевому приложению с помощью инструмента тестирования и остановки процесса записи вы сможете использовать полученный при создании test run'а test record при создании других test run'ов.

results matching ""

    No results matching ""