Запуск FAST-ноды с использованием API Валарм

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

Для выполнения описанных в этом документе действий вам потребуется токен.

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

  • токен token_Qwe12345;
  • идентификатор теста безопасности tr_1234;
  • идентификатор набора запросов rec_0001.

Процесс запуска и настройки FAST-ноды состоит из двух этапов:

  1. Развертывание Docker-контейнера с FAST-нодой.
  2. Получение идентификатора теста безопасности.

Развертывание Docker-контейнера c FAST-нодой

Доступ к серверам API Wallarm

Для корректной работы FAST-ноды необходим доступ к API-серверам (us1.api.wallarm.com, api.wallarm.com или api.wallarm.ru) с использованием протокола HTTPS (TCP/443). Убедитесь, что файервол не блокирует доступ хоста Docker к серверам API.

Для настройки FAST-ноды требуется при запуске контейнера передать в контейнер токен с помощью переменной среды окружения WALLARM_API_TOKEN. Также вы можете передать переменную ALLOWED_HOSTS, если необходимо ограничить записываемые запросы.

Для этого поместите переменные среды окружения в файл и передайте его в контейнер с помощью параметра --env-file команды docker run (инструкция в руководстве «Быстрый старт»).

Запустите контейнер с FAST-нодой, выполнив следующую команду:

docker run \ 
--rm \
--name <имя> \
--env-file=<файл с переменными среды окружения> \
-p <порт для публикации>:8080 \
wallarm/fast

В этом руководстве предполагается, что контейнер запускается однократно в рамках одного задания CI/CD и удаляется после завершения задания, поэтому в приведенной выше команде docker run есть параметр --rm.

Подробное описание прочих параметров команды приведено в руководстве «Быстрый старт».

Пример.

FAST-нода использует токен token_Qwe12345 и настроена на запись всех поступающих запросов, у которых HTTP-заголовок Host содержит строку example.local.

Файл с переменными среды окружения:

fast.cfg
WALLARM_API_TOKEN=token_Qwe12345
ALLOWED_HOSTS=example.local

Запускается контейнер с именем fast-poc-demo:

  • Контейнер будет удален после завершения процесса работы;
  • В контейнер передаются переменные среды окружения из файла fast.cfg
  • Внутренний порт 8080 FAST-ноды опубликован на порт 9090 хоста Docker.
docker run --rm --name fast-poc-demo --env-file=fast.cfg -p 9090:8080  wallarm/fast

При успешном запуске FAST-ноды в терминальном выводе и лог-файле контейнера Docker будут присутствовать следующие информационные сообщения:

[info] Node connected to Wallarm Cloud
[info] Waiting for TestRun to check…

Теперь FAST-нода слушает входящие соединения на IP-адресе хоста Docker и порту, которые вы указали с помощью параметра -p команды docker run.

Получение идентификатора теста безопасности

В зависимости от выбранного сценария работы, вам потребуется либо запустить новый тест безопасности, либо скопировать уже существующий.

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

Получение идентификатора политики тестирования

Если вы планируете использовать собственную политику тестирования, то создайте ее и получите идентификатор политики. Затем передайте этот идентификатор в параметре policy_id запроса к API при создании или копировании теста безопасности.

Если вы планируете использовать политику по умолчанию, не указывайте параметр policy_id в запросе к API.

Создание политики

Пример создания политики тестирования приведен в руководстве «Быстрый старт».

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

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

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

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

О том, как создать и запустить тест, можно прочитать здесь.

После создания и запуска теста безопасности должно пройти некоторое время, прежде чем FAST-нода будет готова к записи запросов. Перед отправкой запросов к приложению с помощью инструмента тестирования убедитесь, что FAST-нода готова к записи.

Для этого периодически получайте статус созданного теста безопасности с помощью выполнения запроса к API:

GET

Проверить состояние теста безопасности

https://us1.api.wallarm.com/v1/test_run/test_run_id
Запрос к API: GET /v1/test_run/test_run_id
Авторизация запроса: Нужна С помощью токена
HTTP-заголовок с токеном: X-WallarmAPI-Token Служит для передачи значения токена
Параметры: test_run_id (обязательный параметр) Значение идентификатора теста безопасности, состояние которого необходимо проверить



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

curl --request GET \
  --url https://us1.api.wallarm.com/v1/test_run/tr_1234 \
  --header 'Host: us1.api.wallarm.com' \
  --header 'X-WallarmAPI-Token: token_Qwe12345'

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

{
  "status": 200,
  "body": {
    "id": tr_1234,
    "name": "demo-testrun",
    ...
    "ready_for_recording": true,
    ...
  }
}

При успешном выполнении запроса к API вы получите ответ от сервера, который содержит информацию о готовности FAST-ноды к записи (параметр ready_for_recording).

Если значение параметра ready_for_recordingtrue, то нода готова к записи и вы можете начать отправку запросов к целевому приложению с помощью инструмента тестирования.

В противном случае выполните запрос к API повторно через небольшой промежуток времени.

Копирование теста безопасности

Скопированный тест безопасности использует существующий набор запросов.

Используйте этот вариант работы с тестом безопасности, если требуется провести тестирование целевого приложения с использованием записанных ранее базовых запросов.

Как скопировать тест безопасности

О том, как скопировать тест , можно прочитать здесь.

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

Дальнейшие действия

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

При необходимости вы можете вернуться к описанию развертывания с помощью API или общему описанию рабочего процесса CI/CD с использованием FAST.

results matching ""

    No results matching ""