Включая проверку подлинности с помощью ключа для контейнера docker OWASP ZAP

#docker #keycloak #owasp #zap

Вопрос:

Я работаю над решением, которое включает запуск стабильного образа owasp/zap2docker, чтобы полностью сканировать веб-приложение, реализующее блокировку ключей для аутентификации и управления пользователями.

Если я правильно понимаю, мне нужно будет включить контекстный файл с деталями аутентификации, такими как пользователь/пароль, целевые URL-адреса формы входа и предположение, что метод аутентификации основан на форме при выполнении docker run . Если я не ошибаюсь и правильно следил за информацией в Интернете, казалось бы, этот файл контекста должен быть создан и экспортирован из приложения ZAP UI.

Мои вопросы заключаются в следующем:

  • Подтверждено ли, что Keycloak использует аутентификацию на основе форм?
  • Правильно ли я понимаю, что для этого необходимо создать, экспортировать и предоставить контекстный файл командам запуска docker?
  • Существуют ли какие-либо конкретные шаги, которые мне нужно было бы принять к сведению при создании контекстного файла?
  • Как я могу подтвердить, что процесс входа в систему прошел успешно?

Комментарии:

1. Keycloak for authentication это очень расплывчатое определение. Keycloak предлагает протокол единого входа SAML и OIDC. Каждый протокол имеет свои собственные варианты (потоки, инициированные IDP/SP, …). Ключ-ключ может также реализовывать необязательный/обязательный взаимный (X. 509) Аутентификация TLS (так что она вообще не будет основана на форме).

Ответ №1:

Понятия не имею о замке ключа, но вы правы насчет контекстного файла ZAP. Хотя, если вы можете аутентифицироваться в своем приложении с помощью заголовка, вы можете просто установить это с помощью env var.

ZAP ведет статистику — смотрите https://www.zaproxy.org/docs/internal-statistics/ и найдите «auth» в ключе. Вы можете проверить их с помощью крючков сканирования https://www.zaproxy.org/docs/docker/scan-hooks/

В качестве альтернативы вы можете подождать, пока платформа автоматизации полностью не поддержит аутентификацию — надеюсь, это произойдет скоро, но без ETA. В любом случае вам все равно нужно будет сначала настроить и протестировать аутентификацию на рабочем столе ZAP.

Комментарии:

1. Я знаю, что вы ссылались на статистику через API в контейнере docker, но есть ли способ подтвердить успешный вход в ZAP UI 2.11? Я хотел бы проверить, что вход в систему выполняется как при создании контекстного файла, так и после запуска контейнера, поэтому я пропускаю первую проверку.

2. Кроме того, веб-приложение использует cors для аутентификации с помощью ключа. Как я уже говорил, Keycloak, по-видимому, использует аутентификацию на основе формы и возвращает токен на предъявителя. Есть ли какие-либо дополнительные настройки, которые мне нужно было бы включить для управления как входами в систему на разных сайтах, так и токенами на предъявителя?

3. ДА. ZAP только «понимает» простые сценарии аутентификации. Для блокировки ключей вам нужно будет управлять всем (скрипты voa ZAP). ZAP будет делать то, что вы ему скажете, поэтому, если ваши сценарии все обработают правильно, то все будет работать. Я записал несколько видео — поиск «auth» на zaproxy.org/videos-list