- Training
Тестирование веб-приложений интересно тем, что оно требует наиболее широкого владения различными видами тестирования. Одно из ключевых мест занимает тестирование защищенности (security testing) или проверка отсутствия известных уязвимостей.
Почему тестирование защищенности имеет такое большое значение именно для веб-приложений?
- Веб-приложения ориентированы на массовое использование, поэтому сбои в работе, вызванные действиями злоумышленника, могут оказать негативное воздействие на большое количество ни в чём неповинных пользователей.
- Веб-приложения могут хранить конфиденциальную информацию, утечка этих данных может иметь очень серьёзные последствия.
- Доступ к веб-приложению имеет множество “недоверенных” пользователей, при этом владельцы или разработчики приложения как правило не могут контролировать или ограничивать их действия.
- Обмен информацией между браузером и сервером происходит по открытым каналам с использованием открытых протоколов, поэтому сложно контролировать данные, передаваемые клиентами.
- Разработка веб-приложений не всегда ведётся с должным вниманием к обеспечению защищенности и надёжности, потому что рынок в первую очередь требует “быстро”!
Разумеется, тестирование защищенности не ограничивается тестированием самого веб-приложения. Уязвимость может находиться в веб-сервере, операционной системе, почтовой системе, ftp-сервере или ещё где-то. Но задача создания защищенного окружения в большей степени находится в зоне ответственности системных администраторов, а вот защищенность вашего собственного веб-приложения -- целиком на совести его разработчиков и тестировщиков.
На тренинге мы рассмотрим как общие принципы компроментации защиты веб-приложений, так и отдельные наиболее распространенные виды уязвимостей, которые могут быть использованы даже не слишком квалифицированным злоумышленником, что существенно повышает вероятность их эксплуатации.
Краткое содержание тренинга:
Основные принципы компроментации защиты веб-приложения:
- Атаки на клиент (браузер)
- Атаки на сервер
- Атаки на сеть
- Социальная инженерия
Инструментарий тестировщика
- Анализ исходного кода
- Анализ данных и структуры запросов
- Сканирование (поиск вширь)
- Фаззинг (поиск вглубь)
Распространенные атаки на клиент:
- обход валидаторов
- подделка cookies и перехват сессий
- сross-site scripting (XSS)
- cross-site request forgery (XSRF)
Распространенные атаки на сервер:
- SQL-инъекции
- файловые инъекции (внедрение backdoor shell)
- командные инъекции (удаленное выполнение команд)
- получение доступа к содержимому директорий и файлов
- отказ в обслуживании (DoS)
Веб-сервисы (SOAP, REST, JSON API)