Интеграция плагина Wallarm FAST в проект Jenkins
Совместимость
Обратите внимание, плагин Wallarm FAST работает только с Freestyle-проектами Jenkins. Если тип вашего проекта Pipeline, ознакомьтесь с примером интеграции в Jenkins через FAST-ноду.
Шаг 1: Установка плагина
Установите плагин Wallarm FAST в проект Jenkins с помощью Plugin Manager. Более подробная информация об управлении плагинами описана в официальной документации Jenkins.
Если в ходе установки возникли проблемы, вы можете собрать и установить плагин вручную.
Для ручной сборки плагина Wallarm FAST выполните следующие шаги: Выполните последовательность команд: После успешного выполнения команд, в директории Ручная сборка плагина Wallarm FAST
git clone https://github.com/jenkinsci/wallarm-fast-plugin.git
cd wallarm-fast-plugin
mvn package
target
будет сформирован файл плагина wallarm-fast.hpi
.wallarm-fast.hpi
, используя инструкцию Jenkins.
Шаг 2: Добавление этапов записи и тестирования
Настроенный рабочий процесс
Дальнейшая инструкция предполагает, что у вас уже есть настроенный рабочий процесс в Jenkins, соответствующий одному из свойств:
в рабочем процессе реализовано автотестирование – добавляются этап записи запросов и этап тестирования безопасности;
для рабочего процесса уже записан набор базовых запросов – добавляется только этап тестирования безопасности.
Добавление этапа записи запросов
Для добавления этапа записи запросов необходимо выбрать режим Record baselines
на вкладке Build и заполнить переменные, описанные ниже. Этап записи запросов должен быть добавлен перед шагом с автотестированием приложения.
Сеть
Перед записью теста убедитесь, что FAST-плагин и инструмент тестирования находятся в одной сети.
Переменные для настройки режима записи
Переменная
Значение
Обязательность
Wallarm API token
Токен, полученный ранее в облаке Валарм.
Да
Wallarm API host
Адрес используемого API-сервера Валарм.
Возможные значение: us1.api.wallarm.com
— для американского облака;api.wallarm.com
— для европейского облака;api.wallarm.ru
— для российского облака.
По умолчанию: us1.api.wallarm.com
.Нет
Application host
Адрес, по которому доступно тестируемое приложение (IP или имя домена).
Да
Application port
Порт, на котором доступно тестируемое приложение.
По умолчанию: 8080.Нет
Fast port
Порт, на котором должна быть запущена FAST-нода.
Да
Inactivity timeout
Период времени, за который на FAST-ноду должен поступить хотя бы 1 запрос. Если запрос не поступит, плагин завершит работу.
Возможные значения: от 1 секунды до 1 недели.
Значение передается в секундах.
По умолчанию: 10 минут.Нет
Fast name
Имя Docker-контейнера с FAST-нодой.
Нет
Wallarm version
Версия используемой FAST-ноды.
Нет
Local docker network
Сеть Docker, в которой должна работать FAST-нода.
Нет
Local docker ip
IP-адрес, который будет присвоен запускаемой FAST-ноде.
Нет
Without sudo
Флаг для выполнения команд FAST-ноды с правами пользователя, который запустил FAST-ноду.
По умолчанию, команды запускаются с правами суперпользователя (с использованием sudo).Нет
Пример настройки плагина для запуска в режиме записи:
Далее необходимо дополнить этап запуска автотестов настройкой проксирования через FAST-ноду.
Плагин FAST самостоятельно остановит запись запросов, когда завершится тестирование.
Добавление этапа тестирования безопасности приложения
Для добавления этапа тестирования безопасности необходимо выбрать режим Playback baselines
на вкладке Build и заполнить переменные, описанные ниже.
Обратите внимание, что приложение должно быть уже запущено и доступно для тестирования до старта тестирования безопасности.
Сеть
Перед тестированием безопасности убедитесь, что FAST-плагин и приложение находятся в одной сети.
Переменные для настройки режима тестирования безопасности
Переменная
Значение
Обязательность
Wallarm API token
Токен, полученный ранее в облаке Валарм.
Да
Wallarm API host
Адрес используемого API-сервера Валарм.
Возможные значение:us1.api.wallarm.com
— для американского облака;api.wallarm.com
— для европейского облака;api.wallarm.ru
— для российского облака.
По умолчанию: us1.api.wallarm.com
.Нет
Application host
Адрес, по которому доступно тестируемое приложение (IP или имя домена).
Да
Application port
Порт, на котором доступно тестируемое приложение.
По умолчанию: 8080.Нет
Policy id
Идентификатор политики тестирования.
По умолчанию: 0
–Default Test Policy
.Нет
TestRecord id
Идентификатор набора базовых запросов, соответствует TEST_RECORD_ID.
По умолчанию: последний набор базовых запросов, записанный используемой FAST-нодой.Нет
TestRun RPS
Ограничение на количество запросов, отправляемых приложению в секунду.
Возможные значения: от 0 до 1000.
По умолчанию: null
(RPS не ограничено).Нет
TestRun name
Имя запускаемого теста безопасности.
По умолчанию, имя будет сгенерироано автоматически на базе даты запуска.Нет
TestRun description
Описание запускаемого теста безопасности.
Нет
Stop on first fail
Флаг для прекращения тестирования при возникновении первой ошибки.
Нет
Fail build
Флаг для завершения сборки с ошибкой, если в ходе тестирования безопасности были найдены уязвимости.
Нет
Exclude
Список расширений файлов, которые следует исключить из тестирования безопасности.
Разделитель расширений – | .
По умолчанию исключений нет.Нет
Fast name
Имя Docker-контейнера с FAST-нодой.
Нет
Wallarm version
Версия используемой FAST-ноды.
Нет
Local docker network
Сеть Docker, в которой должна работать FAST-нода.
Нет
Local docker ip
IP-адрес, который будет присвоен запускаемой FAST-ноде.
Нет
Without sudo
Флаг для выполнения команд FAST-ноды с правами пользователя, который запустил FAST-ноду.
По умолчанию, команды запускаются с правами суперпользователя (с использованием sudo).Нет
Пример настройки плагина для запуска в режиме тестирования безопасности:
Шаг 3: Получение результата тестирования
Результат проведенного тестирования безопасности отображается в интерфейсе Jenkins.
Больше примеров
С примерами интеграции FAST в рабочий процесс Jenkins можно ознакомиться в нашем GitHub и Jenkins.
Если у вас возникли вопросы по интеграции FAST в ваш рабочий процесс Jenkins, обратитесь в службу поддержки Валарм.
results matching ""
No results matching ""
results matching ""
No results matching ""