#11 – Тестирование безопасности
Видеоурок
Тестирование безопасности
Тестирование безопасности — это процесс оценки программного обеспечения на предмет уязвимостей, которые могут быть использованы злоумышленниками для нарушения конфиденциальности, целостности или доступности данных. Это критически важный этап в разработке программного обеспечения, особенно для веб-приложений и мобильных сервисов, которые взаимодействуют с личными данными пользователей.
При обсуждении безопасности важно понимать, что уязвимости могут проявляться на различных уровнях приложения: от некорректно настроенных серверов до ошибок в коде на стороне клиента. Безопасность должна быть интегрирована на всех этапах разработки, однако финальная проверка, которую проводит QA-инженер, играет ключевую роль в предотвращении атак.
Основные принципы
Тестирование безопасности охватывает несколько ключевых аспектов, направленных на защиту веб-приложений и данных пользователей от потенциальных угроз.
- Проверка на уязвимости. Основная цель тестирования безопасности — выявление уязвимостей в приложении. Уязвимости — это слабые места в системе, которые могут быть использованы злоумышленниками для проведения атак. Существует множество типов уязвимостей, таких как SQL-инъекции, межсайтовый скриптинг (XSS), нарушения аутентификации и авторизации, проблемы с управлением сессиями, утечки конфиденциальных данных и многие другие. Все эти уязвимости могут привести к компрометации данных или полной потере контроля над системой.
- Защита данных. Безопасность данных — один из важнейших аспектов безопасности веб-приложений. Речь идет не только о защите конфиденциальной информации, такой как пароли или финансовые данные, но и любых данных, которые могут быть использованы злоумышленниками. Важно убедиться, что данные передаются через защищенные каналы (например, через HTTPS) и хранятся на сервере в зашифрованном виде. Также следует проверять, что приложение не хранит конфиденциальные данные в открытом виде в кэше браузера или на стороне клиента.
- Аутентификация и авторизация. Аутентификация — это процесс подтверждения личности пользователя, а авторизация — это процесс проверки прав доступа пользователя к определенным ресурсам или действиям. Одной из ключевых задач тестировщика безопасности является проверка того, что аутентификация и авторизация функционируют корректно. Например, тестировщик должен убедиться, что злоумышленник не может получить доступ к учетной записи другого пользователя или к ресурсам, к которым ему не предоставлен доступ.
- Управление сессиями. Сессии позволяют сохранять состояние пользователя во время его взаимодействия с веб-приложением. Однако неправильно настроенные сессии могут стать целью атак, таких как захват или подмена сессии. Тестировщик должен проверить, что сессии защищены и корректно управляются, например, что они автоматически завершаются после определенного периода бездействия или после выхода пользователя.
Инструменты и подходы: OWASP, ZAP, Burp Suite
После рассмотрения основных принципов тестирования безопасности, перейдем к инструментам, которые помогают тестировщикам находить уязвимости и проверять безопасность веб-приложений.
OWASP
OWASP (Open Web Application Security Project) – это глобальная инициатива, направленная на повышение безопасности веб-приложений. Одним из ключевых ресурсов OWASP является проект OWASP Top 10 — список десяти самых распространенных уязвимостей веб-приложений, который регулярно обновляется.
Некоторые из распространенных уязвимостей включают:
- SQL-инъекции: атака, при которой злоумышленник вставляет вредоносный SQL-код в запрос к базе данных с целью получить или модифицировать данные.
- Межсайтовый скриптинг (XSS): атака, при которой злоумышленник внедряет вредоносный скрипт в веб-страницу, выполняемый на стороне клиента.
- Нарушение контроля доступа: уязвимость, при которой злоумышленник может получить доступ к ресурсам, к которым он не имеет прав.

OWASP Top 10 предлагает рекомендации по обнаружению и предотвращению этих уязвимостей, что делает его важным инструментом для тестировщиков.
ZAP
ZAP (Zed Attack Proxy) – один из самых популярных инструментов для тестирования безопасности веб-приложений, разработанный сообществом OWASP. ZAP работает как прокси-сервер, перехватывающий и анализирующий HTTP(S)-трафик между браузером и сервером, что позволяет обнаруживать уязвимости в реальном времени.

ZAP поддерживает автоматические сканирования уязвимостей, анализ HTTP-запросов и ответов, а также выполнение ручных атак, таких как внедрение скриптов или обход механизмов аутентификации.
Burp Suite
Burp Suite – мощный инструмент для тестирования безопасности, широко используемый профессионалами. Он предоставляет полный набор инструментов для анализа трафика, поиска уязвимостей и выполнения различных атак.
Burp Suite позволяет перехватывать и модифицировать трафик для проверки реакции системы на неожиданные данные. Также он поддерживает автоматическое сканирование на наличие уязвимостей и модуль Intruder, который используется для атак с перебором значений, таких как брутфорс.

Burp Suite является одним из наиболее популярных инструментов среди специалистов по безопасности благодаря интуитивно понятному интерфейсу и широкому набору функций.
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть