Безопасность сессий в веб-приложении: практическое применение
Катерина Овеченко. Itera Consulting
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 2
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 4
Что такое веб-сессия?
“HTTP - это протокол без состояний. Сессии решают эту проблему.”
Веб-сессия – это структура данных конкретного пользователя, которую приложение использует для хранения временных данных, полезных только в течение того времени, которое пользователь взаимодействует с приложением.
04/13/2023/ 5
Атрибуты сессии
• ID сессии – это уникальный ID, используемый для идентификации пользователя при обмене запросами между клиентом и сервером.
Например: PHPSESSID=a2pdlk7jreml0u1m3bccd12551;
• Время действия (Expiry date) – это время окончания сессии. Может иметь такие параметры:
Фиксированное время после авторизации Фиксированное время после каждого нового запроса Закрытие браузера Выход из приложения (logout) Никогда Дополнительная авторизация на какое-то действиеНапример: EXPIRES 18.03.2014 16:52:22
04/13/2023/ 6
Передача ID сессии
04/13/2023/ 7
• http://www.example.com/index.php?PHPSESSID=a2pdlk7jreml0u1m3bccd12551
• http://www.example.com/s(lit3py55t21z5v55vlm25s55)/orderform.aspx
В URL адресе
• Session-token: SID=lit3py55t21z5v55vlm25s55• Cookies: PHPSESSID=a2pdlk7jreml0u13bccd12551
В поле заголовка
запроса (header)
• Login=Username&password=Password&SessionID=12345678
В теле POST запроса
Хранение ID сессии
04/13/2023/ 8
В cookies браузера
Скрытое поле (HTML код)
• ID сессии может храниться в исходном коде самого приложения на клиентской стороне во время работы пользователя с приложением.
В самом приложении
<form method="post" action="url"> <input type="hidden" name="sessionid" value="1111"> ... <input type="submit"> </form>
Немного статистики…
• "64% разработчиков не уверены в безопасности приложений, которые они создают“. (Microsoft Developer Research)
• "60% всех атак в Интернете направлены на взлом веб-приложений“. (Gartner)
• "Атаки на сессии пользователей и обход системы аутентификации занимают 2ое место в TOP-10 уязвимостей." (OWASP)
04/13/2023/ 9
Когда тестировать сессии?
Приложение с веб доступом
Приложение используется большим количеством пользователей (внутренних и/или внешних)
Приложение содержит важные персональные данные пользователей
Пользователи в приложении имеет разные уровни доступа
Приложение интегрируется с системой, которая содержит критические данные
04/13/2023/ 10
Последствия
Последствия удачной атаки напрямую зависят от того уровня доступа и данных, которыми обладает жертва в веб-приложении.
04/13/2023/ 11
Финансовые убытки
Нарушение конфиденциальности
Разрушение репутации
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 12
Session Hijacking
Есть несколько способов получения уникального идентификатора сессии:
• Предсказание идентификатора
• Сниффинг (Sniffing);
• Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc);
04/13/2023/ 13
Предсказуемые токены
Анализ ID сессии на предсказуемость можно делать вручную
или с помощью специальных инструментов.
На что обратить внимание:
• Имя пользователя / логин
• Пароль
• IP адрес
• Время авторизации
04/13/2023/ 14
Инструменты анализа
Инструменты анализа ID сессии:
• Burp Sequencer анализирует распредление ID сесиий для определния уровня случайности.
• SessionID Analysis - модуль WebScarab, позволяющий определить уровень случайности сгенерированных ID сессий.
• Crowbar - инструмент для брут-форса ID сессий.
04/13/2023/ 15
Предсказуемые токены. Пример
04/13/2023/ 16
Логин Пароль ID сессии - время
Webgoat Test123 65432ubphcfx 10/7/2005-10:10
65432ubphcfx 10/7/2005-10:11
Aspect 987654qwerty
65432udfqtb 10/7/2005-10:12
65432udfqtb 10/7/2005-10:13
alice Alice ????
Предсказуемые токены. Пример
04/13/2023/ 17
Логин Пароль ID сессии - время
Webgoat Test123 65432ubphcfx 10/7/2005-10:10
65432ubphcfx 10/7/2005-10:11
Aspect 987654qwerty
65432udfqtb 10/7/2005-10:12
65432udfqtb 10/7/2005-10:13
alice Alice ????
Предсказуемые токены. Пример
04/13/2023/ 18
Логин Пароль ID сессии - время
Webgoat Test123 65432ubphcfx
Aspect 987654qwer
ty
65432udfqtb
alice Alice ????
Предсказуемые токены. Пример
04/13/2023/ 19
Логин Пароль ID сессии - время
Webgoat Test123 65432ubphcfx
Aspect 987654qwer
ty
65432udfqtb
alice Alice ????
W – x e – f b – с g – h o – p a – b t – u = xfchpbu
A – b s – t p – q e – f с – d t – u = btqfdu
Предсказуемые токены. Пример
04/13/2023/ 20
Логин Пароль ID сессии - время
Webgoat Test123 65432ubphcfx
Aspect 987654qwer
ty
65432udfqtb
alice Alice
A – b l – m i – j c – d e – f = bmjdf
65432fdjmb
Предсказуемые токены. Пример
04/13/2023/ 21
Предсказуемые токены. Пример
04/13/2023/ 22
Burp - Sequencer
OWASP WebScarab SessionID Analyser
Сниффинг
Сниффинг – это атака направленная на перехват сетевых пакетов в сети используя сниффинг инструменты, снифферы. При этом злоумышленник и жертва должны находиться в одной подсети.
Как только пакет перехвачен, его содержимое может быть проанализировано. Таким образом, возможно перехватить ID сессий, передаваемые в URL или заголовке запроса.
04/13/2023/ 23
Сниффинг
Инструменты для перехвата сетевого трафика:
• Wireshark
• Microsoft Network Monitor
• CommView for WiFi
04/13/2023/ 24
Wireshark
Атака клиентской части
Злоумышленник может получить ID сессии используя вредоносный код или программу, которая будет выполнятся на стороне пользователя (жертвы).
Самый распространенный пример – Cross-Site Scripting (XSS) атака.
04/13/2023/ 25
Пример:<SCRIPT>alert(document.cookie);</SCRIPT>
Session Hijacking. Примеры
04/13/2023/ 26
Session Hijacking. Контрмеры
• Завершение сеанса (logout) и закрытие браузера должны закрывать сессию.
• Дополнительный токен: отпечаток браузера (хэшированный User-agent) или другой уникальный токен
• Дополнительный токен должен передаваться другим способом, чем ID сессии.
• Запретить одновременную работу под одной сессией с нескольких агентов
• Шифрование данных передаваемых по сети (https протокол).
• Генерировать ID сессий сложно предсказуемыми
04/13/2023/ 27
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 28
Session Fixation
Вместо того, чтобы воровать ID сессии пользователя, злоумышленник может зафиксировать ID сессии известный ему и передать его пользователю. Этот тип атаки называется фиксирование сессии.
04/13/2023/ 29
Инструменты для перехвата запросов:• OWASP WebScarab• Fiddler
Session Fixation. Примеры
04/13/2023/ 30
Session Fixation. Контрмеры
• Присваивать новый ID сессии после авторизации
• Проверять дополнительные параметры при авторизации пользователя, например IP или User-Agent
• Реализовать в приложении механизм Анти-фиксации сессии
• Запретить одновременную работу под одной сессией с нескольких агентов
• Запрашивать авторизацию при изменении уровня доступа пользователя
04/13/2023/ 31
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 32
Cross-Site Request Forgery
Подделка межсайтовых запросов (Cross-Site Request Forgery) занимает 8ое место среди TOP-10 уязвимостей по версии Open Web-Application Security Project (OWASP).
Атака является успешной, если жертва авторизована в приложении.
04/13/2023/ 33
CSRF. Примеры
04/13/2023/ 34
Добавление видео в watch-later списокhttps://player.vimeo.com/watch_later/ID?callback=cb&status=1
Выставлять рейтинги фильмамhttp://www.kinopoisk.ru/vote.php?film=FILM_ID&film_vote=VOTE_VALUE
Удаление презентации через GET запросhttp://www.slideshare.net/main/delete/PRESENTATIONID?ajax=false&redirect=mypage
Добавлять дополнительный e-mail в Facebookdocument.submit('<form method="post" action= "http://m.face-book.com/a/settings.php?refid=31&__ajax__&__m_async_page__"> <input type="hidden" name="email" value="[email protected]"/></form>')
CSRF. Контрмеры
Разработчикам:
• Использовать анти-CSRF токен
• Хранить и передавать анти-CSRF токен другим способом, чем ID сессии (скрытое поле формы, в теле POST запроса)
04/13/2023/ 35
POST https://www.facebook.com:443/ajax/timeline/nav_dropdown_menu/?profileid=100001537070731 HTTP/1.1
Host: www.facebook.com…
Cookie: datr=xL8hU29G1O2TCE2-E90mpjIO; lu=SgppRetPNnE8PasL9k-pF62A; fr=0adgb9NSy3JmTXAGc.AWWijC40TCnAprMHFxmeUZIW1DA.BTIb_Q.EK.FMh.AWUHMOUT; locale=en_US; c_user=100001537070731;
__user=100001537070731&__dyn=7n8a9EAMCBCFUSt2ugByVbGAFpaGEVF4WpUpBw&fb_dtsg=AQDrRHrN&ttstamp=2658168114827211478&__rev=1162685
CSRF. Контрмеры (cont.)
Разработчикам:
• Передавать команды (actions) и параметры для них через POST запрос, вместо GET запроса.
• Запрашивать дополнительную авторизацию / подтверждение или использовать CAPTCHA при выполнении важных действий.
04/13/2023/ 36
Confluence Wiki
http://wiki.itera.no/pages/ removepage.action?page Id=41779352
CSRF. Контрмеры (cont.)
Пользователям:
• Выходить из системы (logout) после окончания работы
• Не разрешать браузеру сохранять логин/пароль (функция «remember me»)
• Не использовать один и тот же браузер для доступа к рабочей системе и личным сайтам
04/13/2023/ 37
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 38
Phishing
04/13/2023/ 39
Phishing - это способ получения личной информации пользователя, такой как логин, пароль, номер кредитной карты и т.д., когда злоумышленник выдает себя за изначальный ресурс (веб-приложение, сайт и т.д.).
Залогом успешной фишинг атаки всегда будет неосторожный пользователь.
Инструменты: • OWASP Xenotix – инструмент
автоматически создает дубликат страницы указанного веб-сайта.
• SpearPhisher – инструмент для генерации e-mail сообщений
Phishing. Контрмеры
• Персональное фото или личное сообщение на странице с важной транзакцией.
• Использование механизма двойной аутентификации со случайно сгенерированным одноразовым паролем.
04/13/2023/ 40
Phishing. Контрмеры (cont.)
• Логирование сайтов, с которых пользователь перешел на текущий сайт (Referer website).
• Использование Google Safe Browsing API для проверки является ли заданный сайт безопасным или нет.
• Иcпользование плагинов браузеров для определения фишинг сайтов.
04/13/2023/ 41
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 42
Инструменты
Перечень инструментов, которые могут понадобиться при тестировании веб-сессий:
• Плагины в браузерах для работы с cookies– CookiesManager+ (FireFox)– Cookie Manager (Chrome)
• Перехватчики– OWASP WebScarab, Burp Suite– Fiddler– Wireshark, CommView for WiFi
• Анализаторы session tokens– Burp– OWASP WebScarab – Session ID Analysis module
• Анти-фишинг инструменты– Netcraft Toolbar / Netcraft Extension (Firefox / Chrome)– FB Phishing Protector (Firefox) – проверяет только Facebook– Anti-Phishing & Authenticity Checker (Chrome) – проверяет Facebook, Twitter,
Youtube and Google
04/13/2023/ 43
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-Site Request Forgery (Подделка межсайтовых запросов)
5. Phishing (Фишинг)
6. Инструменты
7. Что дальше?
04/13/2023/ 44
Что дальше?
04/13/2023/ 45
Книги • O
pen Web Application Security Testing Guide
• Web Security Testing Cookbook
Интернет ресурсы:• O
WASP сообщество
• Mozilla security check-list
Интерактивные учебные курсы:• O
WASP WebGoat
• OWASP Hackademic Challenge
Сертификаты:• I
STQB Security Testing – Expert level (анонсирован на 2015 год)
• Certified Information Systems Professional (CISSP)
• Certified Ethical Hacker (CEH)