DAST (Dynamic Application Security Testing)

DAST (Dynamic Application Security Testing) - это метод динамического тестирования безопасности приложений, при котором сканирование выполняется на работающем приложении (обычно через веб-интерфейс или API) для выявления уязвимостей в режиме реального времени, без доступа к исходному коду.

Ключевые характеристики DAST

  • "Чёрный ящик" (Black Box): Тестирует приложение снаружи, как злоумышленник или обычный пользователь.
  • Анализ в реальном времени: Обнаруживает уязвимости, проявляющиеся только при работе приложения.
  • Контекстная точность: Учитывает реальную инфраструктуру, конфигурацию сервера и взаимодействие компонентов.

Преимущества

  • Обнаружение runtime-проблем: Логические ошибки, конфигурационные риски.
  • Независимость от языка: Работает с любым веб-приложением/API.
  • Эмуляция атак: Поведение близко к реальному пентесту.
  • Проверка инфраструктуры: Firewall, серверные настройки.

Недостатки

  • Позднее выявление: Требует развёрнутого приложения (в отличие от SAST).
  • Ложные срабатывания: Может пропустить сложные мультишаговые уязвимости.
  • Ограниченная глубина: Не анализирует внутреннюю логику кода.
  • Риск нагрузки: Активное сканирование может "положить" тестовое окружение.

Как работает DAST?

  • Сканирование: Инструмент отправляет HTTP/S-запросы, фаззит параметры, подставляет вредоносные данные (например, <script>, SQL-команды).
  • Анализ ответов: Ищет аномалии: ошибки СУБД, выполнение скриптов, неожиданное поведение.
  • Отчёт: Фиксирует уязвимости с доказательствами (HTTP-запрос/ответ), уровнем риска и рекомендациями.

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

Категория Примеры уязвимостей
Инъекции SQLi, NoSQLi, Command Injection
XSS Хранимый/отражённый XSS
Безопасность API Невалидация входных данных, BOLA/IDOR
Аутентификация Слабые пароли, сломанный контроль доступа
Конфигурация Утечка данных через заголовки, ошибки сервера

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