Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

544 views

Published on

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

Published in: Software
  • Be the first to comment

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

  1. 1. БЕЗОПАСНОСТЬ СЕССИЙ В ВЕБ-ПРИЛОЖЕНИИ Катерина Овеченко
  2. 2. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 2
  3. 3. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 4
  4. 4. Безопасность инфраструктуры Безопасность приложений Безопасность организации • Тесты на проникновение в сеть • Мониторинг уязвимостей инфраструктуры • Оценка беспроводного соединения (Wi-Fi) • Оценка файрволов • Оценка VPN соединения • Тестирование веб и десктоп приложений • Тестирование безопасности облаков • Тестирование мобильных приложений • Анализ исходного кода • Моделирование атак • Тестирование бизнес логики • Тренинги по безопасности • Политики безопасности • Управление рисками • Социальная инженерия • План реагирования на инциденты Области безопасности 12/22/2015/ 5
  5. 5. 1) Инъекции 2) Некорректная аутентификация и управление сессиями 3) Межсайтовое выполнение сценариев (XSS) 4) Небезопасные прямые ссылки на объекты 5) Небезопасная конфигурация окружения 6) Утечка критичных данных 7) Отсутствие контроля доступа к функциональному уровню 8) Подделка межсайтовых запросов (CSRF) 9) Использование компонентов с известными уязвимостями 10) Невалидируемые перенаправления
  6. 6. Черный ящик Белый ящик Серый ящик Подходы в тестировании безопасности 12/22/2015/ 7
  7. 7. Встроенное тестирование (built-in) Отдельное тестирование (stand-alone) Виды проектов 12/22/2015/ 8
  8. 8. Анализ рисков безопасности Уязвимость != Риску безопасности Величина риска = вероятность * последствия Факторы при оценке рисков (по OWASP) Вероятность • Уровень взломщика • Мотивация • Размер группы • Возможность обнаружения • Простота обнаружения • И др. Последствия • Финансовые убытки • Репутационные убытки • Личные данные • Потеря данных • Потеря конфиденциальности • И др. 12/22/2015/ 9
  9. 9. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 10
  10. 10. Что такое веб-сессия? “HTTP - это протокол без состояний. Сессии решают эту проблему.” Веб-сессия – это структура данных конкретного пользователя, которую приложение использует для хранения временных данных, полезных только в течение того времени, которое пользователь взаимодействует с приложением. 12/22/2015/ 11
  11. 11. Атрибуты сессии • ID сессии – это уникальный ID, используемый для идентификации пользователя при обмене запросами между клиентом и сервером. Например: PHPSESSID=a2pdlk7jreml0u1m3bccd12551; • Время действия (Expiry date) – это время окончания сессии. Может иметь такие параметры:  Фиксированное время после авторизации  Фиксированное время после каждого нового запроса  Закрытие браузера  Выход из приложения (logout)  Никогда  Дополнительная авторизация на какое-то действие Например: EXPIRES 18.03.2014 16:52:22 12/22/2015/ 12
  12. 12. Передача ID сессии 12/22/2015/ 13 • http://www.example.com/index.php?PHPSESSID=a2pdlk7jre ml0u1m3bccd12551 • http://www.example.com/s(lit3py55t21z5v55vlm 25s55)/orderform.aspx В URL адресе • Session-token: SID=lit3py55t21z5v55vlm25s55 • Cookies: PHPSESSID=a2pdlk7jreml0u13bccd12551 В поле заголовка запроса (header) • Login=Username&password=Password& SessionID=12345678 В теле POST запроса
  13. 13. Хранение ID сессии 12/22/2015/ 14 В cookies браузера Скрытое поле (HTML код) • ID сессии может храниться в исходном коде самого приложения на клиентской стороне во время работы пользователя с приложением. В самом приложении <form method="post" action="url"> <input type="hidden" name="sessionid" value="1111"> ... <input type="submit"> </form>
  14. 14. Немного статистики… • "64% разработчиков не уверены в безопасности приложений, которые они создают“. (Microsoft Developer Research) • "60% всех атак в Интернете направлены на взлом веб-приложений“. (Gartner) • "Атаки на сессии пользователей и обход системы аутентификации занимают 2ое место в TOP-10 уязвимостей." (OWASP) 12/22/2015/ 15
  15. 15. Когда тестировать сессии? Приложение с веб доступом Приложение используется большим количеством пользователей (внутренних и/или внешних) Приложение содержит важные персональные данные пользователей Пользователи в приложении имеет разные уровни доступа Комплексное решение с большим количеством интеграций на разных уровнях Приложение интегрируется с системой, которая содержит критические данные 12/22/2015/ 16
  16. 16. Последствия Последствия удачной атаки напрямую зависят от того уровня доступа и данных, которыми обладает жертва в веб-приложении. 12/22/2015/ 17 Финансовые убытки Нарушение конфиденциальности Разрушение репутации
  17. 17. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 18
  18. 18. Session Hijacking Есть несколько способов получения уникального идентификатора сессии: • Предсказание идентификатора • Сниффинг (Sniffing); • Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc); 12/22/2015/ 19
  19. 19. Предсказуемые токены Анализ ID сессии на предсказуемость можно делать вручную или с помощью специальных инструментов. На что обратить внимание: • Имя пользователя / логин • Пароль • IP адрес • Время авторизации 12/22/2015/ 20
  20. 20. Инструменты анализа Инструменты анализа ID сессии: • Burp Sequencer анализирует распредление ID сесиий для определния уровня случайности. • SessionID Analysis - модуль WebScarab, позволяющий определить уровень случайности сгенерированных ID сессий. • Crowbar - инструмент для брут-форса ID сессий. 12/22/2015/ 21
  21. 21. Предсказуемые токены. Пример 12/22/2015/ 22 Логин Пароль ID сессии - время Melany Test123 98w34_13-05-12-01-14-25_70ac 10/7/2005-10:10 98w34_13-05-12-01-14-25_70ac 10/7/2005-10:11 willy 987654qwerty 98w34_23-09-12-12-25_81ac 10/7/2005-10:12 98w34_23-09-12-12-25_81ac 10/7/2005-10:13 alice Alice ????
  22. 22. Предсказуемые токены. Пример 12/22/2015/ 23 Логин Пароль ID сессии - время Melany Test123 98w34_13-05-12-01-14-25_70ac 10/7/2005-10:10 98w34_13-05-12-01-14-25_70ac 10/7/2005-10:11 willy 987654qwerty 98w34_23-09-12-12-25_81ac 10/7/2005-10:12 98w34_23-09-12-12-25_81ac 10/7/2005-10:13 alice Alice ????
  23. 23. Предсказуемые токены. Пример 12/22/2015/ 24 M – 13 e – 5 l – 12 a – 1 n – 14 y – 25 _ sum(Melany) = 70 w – 23 i – 9 l – 12 l – 12 y – 25 _ sum(willy) = 81 Логин Пароль ID сессии - время Melany Test123 98w34_13-05-12-01-14-25_70ac willy 987654qwerty 98w34_23-09-12-12-25_81ac alice Alice ????
  24. 24. Предсказуемые токены. Пример 12/22/2015/ 25 A – 01 l – 12 i – 09 c – 03 e – 05 Логин Пароль ID сессии - время Melany Test123 98w34_13-05-12-01-14-25_70ac willy 987654qwerty 98w34_23-09-12-12-25_81ac alice Alice 98w34_01-12-09-03-05_30ac _ sum(alice) = 70
  25. 25. Предсказуемые токены. Пример 12/22/2015/ 26
  26. 26. Предсказуемые токены. Пример 12/22/2015/ 27 Burp - Sequencer OWASP WebScarab SessionID Analyser
  27. 27. Сниффинг Сниффинг – это атака направленная на перехват сетевых пакетов в сети используя сниффинг инструменты, снифферы. При этом злоумышленник и жертва должны находиться в одной подсети. Как только пакет перехвачен, его содержимое может быть проанализировано. Таким образом, возможно перехватить ID сессий, передаваемые в URL или заголовке запроса. 12/22/2015/ 28
  28. 28. Сниффинг Инструменты для перехвата сетевого трафика: • Wireshark • Microsoft Network Monitor • CommView for WiFi 12/22/2015/ 29 Wireshark
  29. 29. Атака клиентской части Злоумышленник может получить ID сессии используя вредоносный код или программу, которая будет выполнятся на стороне пользователя (жертвы). Самый распространенный пример – Cross-Site Scripting (XSS) атака. 12/22/2015/ 30 Пример: <SCRIPT>alert(document.cookie);</SCRIPT>
  30. 30. Session Hijacking. Контрмеры • Завершение сеанса (logout) и закрытие браузера должны закрывать сессию. • Дополнительный токен: отпечаток браузера (хэшированный User-agent) или другой уникальный токен • Дополнительный токен должен передаваться другим способом, чем ID сессии. • Запретить одновременную работу под одной сессией с нескольких агентов • Шифрование данных передаваемых по сети (https протокол). • Генерировать ID сессий сложно предсказуемыми 12/22/2015/ 31
  31. 31. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 32
  32. 32. Session Fixation Вместо того, чтобы воровать ID сессии пользователя, злоумышленник может зафиксировать ID сессии известный ему и передать его пользователю. Этот тип атаки называется фиксирование сессии. 12/22/2015/ 33 Инструменты для перехвата запросов: • OWASP WebScarab • Fiddler
  33. 33. Session Fixation. Контрмеры • Присваивать новый ID сессии после авторизации • Проверять дополнительные параметры при авторизации пользователя, например IP или User-Agent • Реализовать в приложении механизм Анти-фиксации сессии • Запретить одновременную работу под одной сессией с нескольких агентов • Запрашивать авторизацию при изменении уровня доступа пользователя 12/22/2015/ 34
  34. 34. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 35
  35. 35. Cross-Site Request Forgery Подделка межсайтовых запросов (Cross-Site Request Forgery) занимает 8ое место среди TOP-10 уязвимостей по версии Open Web-Application Security Project (OWASP). Атака является успешной, если жертва авторизована в приложении. 12/22/2015/ 36
  36. 36. CSRF. Примеры 12/22/2015/ 37 Добавление видео в 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/PRESENTATION ID?ajax=false&redirect=mypage Добавлять дополнительный e-mail в Facebook document.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>')
  37. 37. CSRF. Контрмеры Разработчикам: • Использовать анти-CSRF токен • Хранить и передавать анти-CSRF токен другим способом, чем ID сессии (скрытое поле формы, в теле POST запроса) 12/22/2015/ 38 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&tt stamp=2658168114827211478&__rev=1162685
  38. 38. CSRF. Контрмеры (cont.) Разработчикам: • Передавать команды (actions) и параметры для них через POST запрос, вместо GET запроса. • Запрашивать дополнительную авторизацию / подтверждение или использовать CAPTCHA при выполнении важных действий. 12/22/2015/ 39 Confluence Wiki http://wiki.itera.no/pages/ removepage.action?page Id=41779352
  39. 39. CSRF. Контрмеры (cont.) Пользователям: • Выходить из системы (logout) после окончания работы • Не разрешать браузеру сохранять логин/пароль (функция «remember me») • Не использовать один и тот же браузер для доступа к рабочей системе и личным сайтам 12/22/2015/ 40
  40. 40. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 41
  41. 41. Phishing 12/22/2015/ 42 Phishing - это способ получения личной информации пользователя, такой как логин, пароль, номер кредитной карты и т.д., когда злоумышленник выдает себя за изначальный ресурс (веб-приложение, сайт и т.д.). Залогом успешной фишинг атаки всегда будет неосторожный пользователь. Инструменты: • OWASP Xenotix – инструмент автоматически создает дубликат страницы указанного веб-сайта. • SpearPhisher – инструмент для генерации e-mail сообщений
  42. 42. Phishing. Контрмеры • Персональное фото или личное сообщение на странице с важной транзакцией. • Использование механизма двойной аутентификации со случайно сгенерированным одноразовым паролем. 12/22/2015/ 43
  43. 43. Phishing. Контрмеры (cont.) • Логирование сайтов, с которых пользователь перешел на текущий сайт (Referer website). • Использование Google Safe Browsing API для проверки является ли заданный сайт безопасным или нет. • Иcпользование плагинов браузеров для определения фишинг сайтов. 12/22/2015/ 44
  44. 44. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 45
  45. 45. 1. Разбиваемся на 3 группы WebGoat 2. Разбираем задания  • Группа А. Cross-Site Scripting (XSS): Cross Site Request Forgery (CSRF) • Группа B. Session Management Flaws: Spoofing an Authentication Cookie • Группа С. Session Management Flaws: Session Fixation
  46. 46. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 47
  47. 47. Инструменты Перечень инструментов, которые могут понадобиться при тестировании веб-сессий: • Плагины в браузерах для работы с cookies – CookiesManager+ (FireFox) – Cookie Manager (Chrome) • Перехватчики – OWASP ZAP – Fiddler – Burp – 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 12/22/2015/ 48
  48. 48. Содержание 1. Введение в тестирование безопасности 2. Тестирование сессий • Теория веб-сессий • Session Hijacking (Перехват сессии) • Session Fixation (Фиксирование сессии) • Cross-Site Request Forgery • Phishing (Фишинг) 3. Практическая часть • Задание А • Задание В 4. Инструменты 5. Что дальше? 12/22/2015/ 49
  49. 49. Что дальше? 12/22/2015/ 50 Книги • Open Web Application Security Testing Guide • Web Security Testing Cookbook Интернет ресурсы: • OWASP сообщество • Mozilla security check-list Интерактивные учебные курсы: • OWASP WebGoat • OWASP Hackademic Challenge Сертификаты: • ISTQB Security Testing – Expert level (анонсирован на 2015 год) – ха! • Certified Information Systems Professional (CISSP) • Certified Ethical Hacker (CEH)
  50. 50. Контакты kateryna.ovechenko@itera.no 12/22/2015/ 51 kateryna.ovechenko Ekaterina Ovechenko kateryna.ovechenko@owasp.org

×