Динамическое тестирование безопасности приложений
DAST — инструмент для поиска уязвимостей приложений, который работает «в динамике», то есть ищет проблемы в запущенном ПО. У этого класса решений нет доступа к исходному коду (принцип «чёрного ящика»). Основная цель его использования — выявить и устранить уязвимости до того, как их заметят потенциальные злоумышленники.
Что проверяет DAST
Динамическое тестирование безопасности может применяться во множестве разных ситуаций с учётом задач пользователя:
- Проверка приложения перед запуском после развёртывания в тестовой среде. После мониторинга исходного кода приложения с помощью SAST (Статического тестирования безопасности приложений) в нём всё равно могут остаться уязвимости. DAST проверит ПО в деле, чтобы найти и устранить пробелы.
- Контроль безопасности уже запущенного приложения. Тщательная проверка на уязвимости до запуска не гарантирует их отсутствие в будущем, например, после обновления какого-либо компонента. Инструмент может применяться для непрерывного мониторинга.
- Приёмка приложения, созданного для компании сторонним разработчиком. Поскольку DAST не требует доступа к коду, анализатор позволит быстро оценить безопасность готового продукта.
- Анализ унаследованного ПО. Отсутствие исходников часто затрудняет использование статического анализа. DAST позволяет оперативно проверить приложение.
Анализировать с помощью DAST можно как продукт, предназначенный для использования клиентами компании, так и внутрикорпоративные приложения.
Как DAST ищет уязвимости в приложениях
- имитирует реальные действия пользователя;
- отправляет запросы для проверки ПО под нагрузкой;
- отправляет вредоносное содержимое (SQL-инъекции, межсайтовые сценарии и т.п.);
- ищет открытые порты и другие потенциальные источники утечек данных.
Преимущества применения DAST
- Простота использования. Не нужен доступ к исходному коду, поэтому применить DAST можно на любом продукте.
- Выявление проблем, которые видны только в запущенном приложении. Например, некорректных реакций на запрос пользователя.
- Относительно низкое число ложноположительных срабатываний (в сравнении с SAST). Инструмент нацелен на выявление реальных проблем безопасности, а не прогноз вероятности их возникновения.
- Высокая точность в поиске уязвимостей. Достигается за счёт комбинирования различных техник поиска.
- Отсутствие привязки к конкретному языку программирования и используемым разработчиком инструментам. Подойдёт для анализа абсолютно всех приложений.
Сложности эксплуатации DAST
- Выявленные уязвимости трудно связать с конкретным фрагментом кода.
- Возможен пропуск ошибок в логике приложения, так как DAST определит их как изначально заданные условия.
- Необходимость разворачивать среды для тестирования и задействовать дополнительные мощности.
Чтобы достичь наибольшей эффективности, DAST часто применяют параллельно с SAST. Например, инструмент комплексной безопасности приложений Solar appScreener задействует оба инструмента. Функции динамического тестирования также частично реализованы в IAST (Интерактивное тестирование безопасности приложений).