Для чего нужен сниффер трафика в тестировании?

«Для чего нужен сниффер трафика в тестировании?» — вопрос из категории Тестирование безопасности, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Сниффер (анализатор) трафика — это инструмент для перехвата, записи и анализа сетевых пакетов, передаваемых между клиентом (например, браузером или мобильным приложением) и сервером. В контексте QA и тестирования безопасности он используется для:

1. Отладки и валидации API:

  • Проверка корректности HTTP-запросов и ответов (URL, метод, заголовки, тело).
  • Анализ форматов данных (JSON, XML, GraphQL).
  • Поиск расхождений между спецификацией (Swagger/OpenAPI) и реальным поведением.

2. Тестирования безопасности:

  • Выявление уязвимостей: Поиск чувствительных данных (токены, пароли), передаваемых в открытом виде (без HTTPS).
  • Анализ манёвров атаки: Имитация и изучение таких атак, как Man-in-the-Middle (MITM).
  • Проверка шифрования: Убедиться, что критичные данные должным образом зашифрованы.

3. Мокирования и подмены ответов:

  • Создание сценариев с ошибками сервера (500, 503) или нестандартными ответами для проверки устойчивости клиента.
  • Тестирование поведения приложения при медленном или нестабильном соединении (throttling).

4. Анализа производительности:

  • Замер времени отклика сервера.
  • Выявление лишних или дублирующихся запросов.
  • Анализ размера передаваемых данных.

Пример практического шага в тестировании безопасности:

  1. Запускаем Burp Suite или OWASP ZAP и настраиваем браузер на использование их как прокси.
  2. Включаем приложение и выполняем операцию входа в систему.
  3. В перехваченном запросе POST /login проверяем:
    • Используется ли защищённое соединение (https://).
    • Не передаётся ли пароль в параметрах URL (должен быть в теле запроса).
    • Присутствуют ли стандартные заголовки безопасности (например, Secure и HttpOnly у кук сессии).
  4. Пытаемся модифицировать запрос (например, подменить user_id в теле), чтобы проверить наличие уязвимостей на стороне сервера (например, недостаточную проверку прав).

Важно: Использование снифферов на продакшн-средах без явного разрешения часто нарушает политики безопасности компании. Все тесты должны проводиться в изолированных тестовых средах.