Безопасность сессий в веб-приложениях: практическое...

Post on 16-Jun-2015

3.049 Views

Category:

Education

19 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад Екатерины Овеченко на SQA Days-15. 18-19 апреля, 2014, Москва. www.sqadays.com

TRANSCRIPT

Безопасность сессий в веб-приложении: практическое применение

Катерина Овеченко. 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>

Kateryna Ovechenko
Поменять анимацию

Немного статистики…

• "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="test@example.com"/></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)

Контакты

kateryna.ovechenko@iteraconsulting.com

04/13/2023/ 46

kateryna.ovechenko

Ekaterina Ovechenko

kateryna.ovechenko@owasp.org

top related