Что входит в тестирование безопасности (Security Testing) веб-приложений?

«Что входит в тестирование безопасности (Security Testing) веб-приложений?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование безопасности — это процесс оценки приложения на наличие уязвимостей, которые могут привести к несанкционированному доступу, утечке данных или нарушению работы системы.

Основные категории уязвимостей и методы проверки:

  1. Инъекции (OWASP A01):

    • SQL-инъекция: Попытка внедрить SQL-код в параметры запроса.
      -- Пример проверки в поле логина
      ' OR '1'='1' --
    • Командная инъекция: Внедрение команд ОС через поля ввода.
  2. Недостатки аутентификации и авторизации (OWASP A02, A01):

    • Обход аутентификации (подбор учетных данных, слабые пароли).
    • Недостаточный контроль доступа (IDOR): Попытка доступа к данным другого пользователя, манипулируя ID в запросе (например, GET /api/users/123 -> GET /api/users/456).
  3. Межсайтовый скриптинг — XSS (OWASP A03): Внедрение вредоносного JavaScript-кода, который выполняется в браузере жертвы.

    <script>alert('XSS')</script>
  4. Межсайтовая подделка запроса — CSRF (OWASP A07): Вынуждение браузера пользователя отправить вредоносный запрос к доверенному сайту, где он аутентифицирован.

Инструменты:

  • Сканеры уязвимостей: OWASP ZAP, Burp Suite (автоматическое сканирование).
  • Ручное тестирование: Postman/Insomnia для анализа и модификации запросов.
  • Анализ: Проверка заголовков безопасности (HSTS, CSP), валидация SSL/TLS, поиск чувствительных данных в ответах сервера и исходном коде.