Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

5 892 vues

Publié le

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

Publié dans : Formation
  • Soyez le premier à commenter

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

  1. 1. Безопасность сессий в веб- приложении: практическое применение Катерина Овеченко. Itera Consulting
  2. 2. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014 / 2
  3. 3. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014 / 4
  4. 4. Что такое веб-сессия? “HTTP - это протокол без состояний. Сессии решают эту проблему.” Веб-сессия – это структура данных конкретного пользователя, которую приложение использует для хранения временных данных, полезных только в течение того времени, которое пользователь взаимодействует с приложением. 4/20/2014 / 5
  5. 5. Атрибуты сессии • ID сессии – это уникальный ID, используемый для идентификации пользователя при обмене запросами между клиентом и сервером. Например: PHPSESSID=a2pdlk7jreml0u1m3bccd12551; • Время действия (Expiry date) – это время окончания сессии. Может иметь такие параметры:  Фиксированное время после авторизации  Фиксированное время после каждого нового запроса  Закрытие браузера  Выход из приложения (logout)  Никогда  Дополнительная авторизация на какое-то действие Например: EXPIRES 18.03.2014 16:52:22 4/20/2014 / 6
  6. 6. Передача ID сессии 4/20/2014 / 7 • 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 запроса
  7. 7. Хранение ID сессии 4/20/2014 / 8 В cookies браузера Скрытое поле (HTML код) • ID сессии может храниться в исходном коде самого приложения на клиентской стороне во время работы пользователя с приложением. В самом приложении <form method="post" action="url"> <input type="hidden" name="sessionid" value="1111"> ... <input type="submit"> </form>
  8. 8. Немного статистики… • "64% разработчиков не уверены в безопасности приложений, которые они создают“. (Microsoft Developer Research) • "60% всех атак в Интернете направлены на взлом веб-приложений“. (Gartner) • "Атаки на сессии пользователей и обход системы аутентификации занимают 2ое место в TOP-10 уязвимостей." (OWASP) 4/20/2014 / 9
  9. 9. Когда тестировать сессии? Приложение с веб доступом Приложение используется большим количеством пользователей (внутренних и/или внешних) Приложение содержит важные персональные данные пользователей Пользователи в приложении имеет разные уровни доступа Приложение интегрируется с системой, которая содержит критические данные 4/20/2014/ 10
  10. 10. Последствия Последствия удачной атаки напрямую зависят от того уровня доступа и данных, которыми обладает жертва в веб-приложении. 4/20/2014/ 11 Финансовые убытки Нарушение конфиденциальности Разрушение репутации
  11. 11. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 12
  12. 12. Session Hijacking Есть несколько способов получения уникального идентификатора сессии: • Предсказание идентификатора • Сниффинг (Sniffing); • Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc); 4/20/2014/ 13
  13. 13. Предсказуемые токены Анализ ID сессии на предсказуемость можно делать вручную или с помощью специальных инструментов. На что обратить внимание: • Имя пользователя / логин • Пароль • IP адрес • Время авторизации 4/20/2014/ 14
  14. 14. Инструменты анализа Инструменты анализа ID сессии: • Burp Sequencer анализирует распредление ID сесиий для определния уровня случайности. • SessionID Analysis - модуль WebScarab, позволяющий определить уровень случайности сгенерированных ID сессий. • Crowbar - инструмент для брут-форса ID сессий. 4/20/2014/ 15
  15. 15. Предсказуемые токены. Пример 4/20/2014/ 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 ????
  16. 16. Предсказуемые токены. Пример 4/20/2014/ 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 ????
  17. 17. Предсказуемые токены. Пример 4/20/2014/ 18 Логин Пароль ID сессии - время Webgoat Test123 65432ubphcfx Aspect 987654qwerty 65432udfqtb alice Alice ????
  18. 18. Предсказуемые токены. Пример 4/20/2014/ 19 Логин Пароль ID сессии - время Webgoat Test123 65432ubphcfx Aspect 987654qwerty 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
  19. 19. Предсказуемые токены. Пример 4/20/2014/ 20 Логин Пароль ID сессии - время Webgoat Test123 65432ubphcfx Aspect 987654qwerty 65432udfqtb alice Alice A – b l – m i – j c – d e – f = bmjdf 65432fdjmb
  20. 20. Предсказуемые токены. Пример 4/20/2014/ 21
  21. 21. Предсказуемые токены. Пример 4/20/2014/ 22 Burp - Sequencer OWASP WebScarab SessionID Analyser
  22. 22. Сниффинг Сниффинг – это атака направленная на перехват сетевых пакетов в сети используя сниффинг инструменты, снифферы. При этом злоумышленник и жертва должны находиться в одной подсети. Как только пакет перехвачен, его содержимое может быть проанализировано. Таким образом, возможно перехватить ID сессий, передаваемые в URL или заголовке запроса. 4/20/2014/ 23
  23. 23. Сниффинг Инструменты для перехвата сетевого трафика: • Wireshark • Microsoft Network Monitor • CommView for WiFi 4/20/2014/ 24 Wireshark
  24. 24. Атака клиентской части Злоумышленник может получить ID сессии используя вредоносный код или программу, которая будет выполнятся на стороне пользователя (жертвы). Самый распространенный пример – Cross-Site Scripting (XSS) атака. 4/20/2014/ 25 Пример: <SCRIPT>alert(document.cookie);</SCRIPT>
  25. 25. Session Hijacking. Примеры 4/20/2014/ 26
  26. 26. Session Hijacking. Контрмеры • Завершение сеанса (logout) и закрытие браузера должны закрывать сессию. • Дополнительный токен: отпечаток браузера (хэшированный User-agent) или другой уникальный токен • Дополнительный токен должен передаваться другим способом, чем ID сессии. • Запретить одновременную работу под одной сессией с нескольких агентов • Шифрование данных передаваемых по сети (https протокол). • Генерировать ID сессий сложно предсказуемыми 4/20/2014/ 27
  27. 27. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 28
  28. 28. Session Fixation Вместо того, чтобы воровать ID сессии пользователя, злоумышленник может зафиксировать ID сессии известный ему и передать его пользователю. Этот тип атаки называется фиксирование сессии. 4/20/2014/ 29 Инструменты для перехвата запросов: • OWASP WebScarab • Fiddler
  29. 29. Session Fixation. Примеры 4/20/2014/ 30
  30. 30. Session Fixation. Контрмеры • Присваивать новый ID сессии после авторизации • Проверять дополнительные параметры при авторизации пользователя, например IP или User-Agent • Реализовать в приложении механизм Анти-фиксации сессии • Запретить одновременную работу под одной сессией с нескольких агентов • Запрашивать авторизацию при изменении уровня доступа пользователя 4/20/2014/ 31
  31. 31. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 32
  32. 32. Cross-Site Request Forgery Подделка межсайтовых запросов (Cross-Site Request Forgery) занимает 8ое место среди TOP-10 уязвимостей по версии Open Web-Application Security Project (OWASP). Атака является успешной, если жертва авторизована в приложении. 4/20/2014/ 33
  33. 33. CSRF. Примеры 4/20/2014/ 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/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>')
  34. 34. CSRF. Контрмеры Разработчикам: • Использовать анти-CSRF токен • Хранить и передавать анти-CSRF токен другим способом, чем ID сессии (скрытое поле формы, в теле POST запроса) 4/20/2014/ 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&tt stamp=2658168114827211478&__rev=1162685
  35. 35. CSRF. Контрмеры (cont.) Разработчикам: • Передавать команды (actions) и параметры для них через POST запрос, вместо GET запроса. • Запрашивать дополнительную авторизацию / подтверждение или использовать CAPTCHA при выполнении важных действий. 4/20/2014/ 36 Confluence Wiki http://wiki.itera.no/pages/ removepage.action?page Id=41779352
  36. 36. CSRF. Контрмеры (cont.) Пользователям: • Выходить из системы (logout) после окончания работы • Не разрешать браузеру сохранять логин/пароль (функция «remember me») • Не использовать один и тот же браузер для доступа к рабочей системе и личным сайтам 4/20/2014/ 37
  37. 37. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 38
  38. 38. Phishing 4/20/2014/ 39 Phishing - это способ получения личной информации пользователя, такой как логин, пароль, номер кредитной карты и т.д., когда злоумышленник выдает себя за изначальный ресурс (веб-приложение, сайт и т.д.). Залогом успешной фишинг атаки всегда будет неосторожный пользователь. Инструменты: • OWASP Xenotix – инструмент автоматически создает дубликат страницы указанного веб-сайта. • SpearPhisher – инструмент для генерации e-mail сообщений
  39. 39. Phishing. Контрмеры • Персональное фото или личное сообщение на странице с важной транзакцией. • Использование механизма двойной аутентификации со случайно сгенерированным одноразовым паролем. 4/20/2014/ 40
  40. 40. Phishing. Контрмеры (cont.) • Логирование сайтов, с которых пользователь перешел на текущий сайт (Referer website). • Использование Google Safe Browsing API для проверки является ли заданный сайт безопасным или нет. • Иcпользование плагинов браузеров для определения фишинг сайтов. 4/20/2014/ 41
  41. 41. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 42
  42. 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 4/20/2014/ 43
  43. 43. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Что дальше? 4/20/2014/ 44
  44. 44. Что дальше? 4/20/2014/ 45 Книги 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)
  45. 45. Контакты kateryna.ovechenko@iteraconsulting.com 4/20/2014/ 46 kateryna.ovechenko Ekaterina Ovechenko kateryna.ovechenko@owasp.org

×