Копирование теста безопасности
Необходимые сведения
Для копирования с помощью API вам потребуются:
- токен;
- идентификатор существующего набора запросов.
Для копирования с помощью веб-интерфейса вам потребуется аккаунт Валларм.
При необходимости вы можете получить детальную информацию о токене и наборе запросов.
Далее будут использоваться следующие демонстрационные значения:
- токен
token_Qwe12345
, - идентификатор набора запросов
rec_0001
.
Скопированный тест безопасности использует существующий набор запросов.
Используйте этот вариант создания тестов безопасности, если требуется провести тестирование целевого приложения с использованием записанных ранее базовых запросов.
Правила копирования теста безопасности
При копировании необходимо учитывать следующее:
- Вы можете указать любую политику тестирования при копировании: она не обязана совпадать с политикой, использованной для оригинального теста безопасности.
- Вы можете скопировать тест безопасности, находящийся в любом из следующих состояний:
failed
,interrupted
,passed
,paused
,running
. Описание этих состояний находится здесь. - Нельзя копировать тест с использованием пустого набора запросов (в котором не содержится базовых запросов).
Нельзя копировать тест с использованием набора запросов, в который ведется запись базовых запросов.
Если вы попытаетесь скопировать такой тест безопасности с помощью запроса к API, то API-сервер вернет ответ с кодом
400
(Bad Request
) и сообщением об ошибке следующего вида:{ "status": 400, "body": { "test_record_id": { "error": "not_ready_for_cloning", "value": rec_0001 } } }
Пока процесс записи для какого-либо теста безопасности не остановлен, вы не сможете выполнить копирование этого теста из веб-интерфейса.
Копирование теста безопасности с помощью API
Скопируйте тест безопасности и запустите его, используя следующий запрос к API:
Запрос к API | POST /v1/test_run |
|
---|---|---|
Авторизация запроса: | Нужна | С помощью токена |
HTTP-заголовок с токеном: | X-WallarmAPI-Token |
Служит для передачи значения токена |
Параметры: | name (обязательный параметр) |
Имя теста безопасности |
test_record_id (обязательный параметр) |
Идентификатор существующего набора запросов | |
desc |
Детальное описание теста безопасности. Значение по умолчанию: пустая строка |
|
policy_id |
Идентификатор политики тестирования. Если этот параметр будет отсутствовать в запросе, то будет использована политика тестирования по умолчанию. |
|
file_extensions_to_exclude |
Позволяет с помощью регулярного выражения задать типы файлов, которые будут исключены из процесса проверки. Например, если указать расширение ico , то проверка базового запроса GET /favicon.ico не будет проведена, а сам базовый запрос будет пропущен.Формат регулярного выражения: - . : любой символ в любом количестве (от нуля и выше); - x* : символ x в любом количестве (от нуля и выше);- x? : единичное вхождение символа x (или его отсутствие);- единичное расширение (например, jpg ); - несколько расширений, разделенных вертикальной чертой: jpg | png .Значение по умолчанию: пустая строка (проверяются файлы с любым расширением). |
|
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 не ограничено) |
Пример запроса:
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",
"test_record_id":"rec_0001"
}'
Пример ответа: идет копирование теста безопасности
{
"status": 200,
"body": {
"id": tr_1234,
"name": "demo-testrun",
...
"state": "cloning",
...
"test_record_id": "rec_0001",
...
}
Состояние cloning
означает, что в данный момент времени происходит процесс клонирования базовых запросов из исходного теста безопасности (идентификатор tr_1234
) в его копию.
Пример ответа: ошибка копирования
{
"status": 400,
"body": {
"test_record_id": {
"error": "not_ready_for_cloning",
"value": "rec_0001"
}
}
}
Ошибка not_ready_for_cloning
означает, что невозможно клонировать базовые запросы из исходного теста безопасности в его копию, так как все еще идет процесс записи в набор запросов rec_0001
.
При успешном выполнении запроса к API вы получите ответ от сервера, который содержит:
id
: идентификатор копии теста безопасности (например,tr_1234
).Вам потребуется значение этого параметра на следующих этапах работы с FAST.
state
: состояние теста безопасности.Только что скопированный тест будет находиться в состоянии
cloning
. После успешного завершения процедуры копирования состояние изменится наrunning
.Описание всех возможных значений параметра
state
находится здесь.
Копирование теста безопасности с помощью веб-интерфейса
Чтобы скопировать тест безопасности с помощью веб-интерфейса портала Валарм, выполните следующие действия:
- Войдите на портал с помощью вашего аккаунта Валарм и перейдите на вкладку «Запуски тестов».
- Выберите тест безопасности, который вы хотите скопировать, и откройте меню действий справа от него.
Выберите пункт меню «Создать аналогичный тест».
В появившейся боковой панели задайте:
- имя копии теста безопасности;
- политику, которая будет использоваться при выполнении теста;
- ноду, на которой будет выполняться тест.
При необходимости вы также можете задать дополнительные параметры, находящиеся под спойлером «Дополнительные настройки»:
- Галочка «Остановить при первом непройденном тесте» определяет, остановится ли выполнение теста безопасности после обнаружения первой уязвимости.
- Галочка «Пропускать повторяющиеся запросы» определяет, будут ли проигнорированы дубликаты полученных ранее базовых запросов. Если галочка поставлена, то при получении базового запроса, полностью совпадающего с каким-либо другим, записанным ранее, на его основе не будут созданы тестовые запросы, а в консоли 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 мин
.
Убедитесь, что пункт «Use baselines from
<имя набора запросов, который будет переиспользован>
» отмечен галочкой.Переиспользование набора запросов
Обратите внимание, что в этом пункте используется именно имя набора запросов, а не имя теста безопасности.
Зачастую имя набора запросов не задается: например, при создании теста без указания параметра
test_record_name
имя набора запросов совпадает с именем теста безопасности.На скриншоте выше приведен пример, когда при копировании используется набор запросов с именем, не эквивалентным имени теста безопасности, где этот набор запросов использовался (набор запросов
MY TEST RECORD
использовался в тестеDEMO TEST RUN
).Запустите тест, нажав на кнопку «Создать и запустить».
results matching ""
No results matching ""
results matching ""
No results matching ""