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, небезопасные настройки).