Запуск теста

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

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

Тестовые запросы создаются и выполняются решением FAST следующим образом:

  1. Пока FAST-нода не имеет политики тестирования и ID теста безопасности, происходит прозрачное проксирование всех поступающих к нему запросов.

  2. После создания и запуска теста безопасности на FAST-ноду из облака Валарм поступают политика тестирования и ID теста.

  3. Если на FAST-ноду поступает базовый запрос к целевому приложению:

    1. Нода связывает поступивший запрос с ID теста.
    2. Нода сохраняет этот помеченный запрос в облаке Валарм.
    3. Исходный запрос без изменений передается к целевому приложению.

    Процесс записи базовых запросов

    Этот процесс иначе называется записью базовых запросов. Запись может быть остановлена пользователем из веб-интерфейса облака или при помощи Валарм API. При этом нода продолжит пропускать запросы без изменений к целевому приложению.

    FAST-нода определяет, является ли запрос базовым по отношению к целевому приложению, сравнивая домен запроса со значением переменной среды окружения ALLOWED_HOSTS, заданной при развертывании ноды. Если вы следовали этому руководству, все запросы, направленные к домену google-gruyere.appspot.com, будут являться базовыми.

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

  4. FAST-нода получает из облака Валарм записанные ранее базовые запросы, основываясь на ID теста.

  5. FAST-нода генерирует набор тестовых запросов для каждого записанного базового запроса на основании политики тестирования, переданной из облака Валарм.

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

    Внутренняя логика FAST-ноды

    О запуске нескольких тестов безопасности

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


Для запуска процесса генерации тестовых запросов и тестирования приложения Google Gruyere на уязвимости выполните следующие действия:

  1. Создайте тест безопасности.
  2. Выполните ранее созданный базовый HTTPS-запрос.

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

Создайте и запустите test run с помощью портала Валарм.

Если вы следовали этому руководству, задайте следующие базовые параметры при создании test run'а:

  • имя test run'а: DEMO TEST RUN;
  • политика тестирования: DEMO POLICY;
  • FAST-нода: DEMO NODE.

В этом руководстве не задаются никакие дополнительные настройки test run.

После запуска test run'а Test run ID будет автоматически передан на FAST-ноду. На странице «Testruns» вы увидите созданный test run с мигающим красным индикатором «REC», который показывает, что нода ведет запись поступающих к ней базовых запросов.

Можно кликнуть по столбцу «Базовые запросы», чтобы увидеть приходящие запросы:

Просмотр записанных базовых запросов

Готовность ноды к записи запросов

Дождитесь, когда в консольном выводе будет видно, что FAST-нода DEMO NODE готова к записи базовых запросов для теста безопасности с именем DEMO TEST RUN.

Индикатором готовности ноды к записи базовых запросов служит сообщение от ноды следующего вида:

[info] Recording baselines for TestRun#N ‘DEMO TEST RUN’

Только после этого нода будет способна генерировать и выполнять тестовые запросы на основе проксируемых через нее базовых запросов.

В консольном выводе видно, что FAST-нода DEMO NODE готова к записи базовых запросов для теста с именем DEMO TEST RUN:

[info] Node connected to Wallarm Cloud
[info] Loaded 0 custom extensions for fast scanner
[info] Loaded 51 default extensions for fast scanner
[info] Waiting for TestRun to check...
[info] Recording baselines for TestRun#N 'DEMO TEST RUN'

2. Выполнение ранее созданного базового HTTPS-запроса

Для того, чтобы выполнить базовый запрос, перейдите в настроенном браузере Mozilla Firefox по созданной в предыдущей главе ссылке.

Результат выполнения запроса показан ниже:

Результат выполнения запроса

Из консольного вывода видно, что FAST-нода записала базовый запрос:

[info] Node connected to Wallarm Cloud
[info] Loaded 0 custom extensions for fast scanner
[info] Loaded 51 default extensions for fast scanner
[info] Waiting for TestRun to check...
[info] Recording baselines for TestRun#N 'DEMO TEST RUN'
[info] Proxy request GET https://google-gruyere.appspot.com/430232491618310677730226710602783767322/snippets.gtl?password=paSSw0rd&uid=123
[info] Running a test set for the baseline #X

Вы можете наблюдать, что в облако Валарм пришло несколько базовых запросов:

Поступление базовых запросов

Данный документ в демонстрационных целях предполагает выполнение только одного конкретного запроса. Поскольку запросов к целевому приложению больше не поступает, остановите процесс записи базовых запросов, выбрав в выпадающем меню справа от теста безопасности пункт «Остановить запись».

Управление процессом выполнения тестов

Для данного теста безопасности набор тестовых запросов генерируется достаточно быстро, однако в зависимости от количества запросов, настроек политики тестирования и времени реакции целевого приложения процесс тестирования может быть длительным. В этом случае вы можете поставить его на паузу или прервать, выбрав соответствующий пункт меню (аналогично пункту «Остановить запись»).

Процесс тестирования будет завершен автоматически, если не ведется запись базовых запросов. Краткая информация по обнаруженным уязвимостям будет выведена в столбце «Результаты». Для запроса, который используется в данном документе, должны быть обнаружены несколько XSS-уязвимостей:

Обнаруженные уязвимости


Теперь вы выполнили все цели, поставленные в начале главы и получили результат тестирования на основе базового запроса к Google Gruyere, выражающийся в нескольких обнаруженных XSS-уязвимостях.

results matching ""

    No results matching ""