ВВЕДЕНИЕ 3
РАЗДЕЛ 1. МЕХАНИЗМЫ УПРАВЛЕНИЯ ДОСТУПОМ И СЕССИЯМИ 4
1.1. Методы аутентификации в вэб-приложениях 4
1.1.1. Аутентификация по паролю 6
1.1.2. Аутентификация в форме 13
1.2. Аутентификация по сертификатам 21
1.3. Аутентификация по одноразовым паролям 23
1.4. Аутентификация по ключам доступа 26
1.5. Выводы по первому разделу 28
РАЗДЕЛ 2. ОШИБКИ АУТЕНТИФИКАЦИИ 30
2.1. Уязвимости хранения паролей 30
2.2. Уязвимости проверки пароля 34
2.3. Аутентификация в cookie 36
2.4. Уязвимости передаваемых параметров 37
2.5. Уязвимости хранения пароля в базе данных 39
2.6. Robots.txt и хранение пароля в виде хеша 43
2.7. Угон сессии, манипуляция параметрами, local file inclusion 45
2.8. Выводы по главе 2 49
РАЗДЕЛ 3. ОХРАНА ТРУДА 50
ЗАКЛЮЧЕНИЕ 52
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 53
Современный интегрированный мир построен на миллиардах вебсерверов, поддерживающих работу web-сайтов, обеспечивающих выполнение различных функций, начиная от торговых операций и заканчивая поддержкой электронного правительства.
Web-приложения ежедневно подвергаются различным атакам. При наличии большого количества инструментов для атак, статей с подробным описанием и даже видео демонстраций проведения атак, многие люди пытаются попробовать свои силы. Существуют люди, которые превращают взлом web-сайтов в так называемый бизнес. Из-за их действий многие владельцы web-приложений терпят финансовые убытки, а также попадание личной информации третьим лицам. Согласно исследованиям компании Positive Technologies за 2018 год, среднее количество атак составляет 2138 атак, 99% из которых проводятся вручную. В связи с этим обеспечение информационной безопасности (аИБ) web-приложений является актуальной задачей.
Предмет исследования: уязвимости и ошибки в реализации аутентификации.
Объект исследования: различные методы аутентификации.
Цель работы: анализ уязвимостей аутентификации на сайтах.
Для достижения заявленной цели были поставлены следующие задачи:
– анализ имеющихся механизмов управления доступом, их уязвимостей;
– проверка различных методов аутентификации на тестовых сайтах;
– анализ полученных результатов;
– выводы по результатам исследования.
В ходе данной работы были проанализированы уязвимости авторизации на сайте. Были рассмотрены такие уязвимости как хранение чувствительных данных на странице, отсутствие фильтрации формы ввода паролей, уязвимости баз данных(SQL-инъекции), включение зловредной информации в параметры запросов, выполнение произвольного кода на стороне сервера.
Все атаки были проведены на специальном сайте для обучения пентестингу HackThisSite, однако многие из них очень похожи на реальные, описанные в отчетах по безопасности.
По итогам работы можно сделать выводы, что изучение веб-безопасности необходимо как программистам, которые собираются разрабатывать серверные и клиентские части сайтов, так и тестировщикам, специалистам по информационной безопасности для того, чтобы сделать интернет безопаснее.
Результаты работы использованы в качестве лабораторной работы по курсу «WEB- программирование».