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.
БЕЗОПАСНОСТЬ СЕССИЙ
В ВЕБ-ПРИЛОЖЕНИИ
Катерина Овеченко
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-...
Что такое веб-сессия?
“HTTP - это протокол без состояний. Сессии решают эту проблему.”
Веб-сессия – это структура данных к...
Передача ID сессии
11/4/2014 / 4
• http://www.example.com/index.php?PHPSESSID=a2pdlk7jre
ml0u1m3bccd12551
• http://www.exa...
Хранение ID сессии
11/4/2014 / 5
В cookies
браузера
Скрытое поле
(HTML код)
• ID сессии может храниться в исходном коде са...
Когда тестировать сессии?
Приложение с веб доступом
Приложение используется большим количеством
пользователей (внутренних ...
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-...
Session Hijacking
Есть несколько способов получения уникального идентификатора
сессии:
• Предсказание идентификатора
• Сни...
Session Hijacking. Примеры
11/4/2014 / 9
Session Hijacking. Контрмеры
• Завершение сеанса (logout) и закрытие браузера должны закрывать
сессию.
• Дополнительный то...
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-...
Session Fixation
Вместо того, чтобы воровать ID сессии
пользователя, злоумышленник может
зафиксировать ID сессии известный...
Session Fixation. Примеры
11/4/2014/ 13
Session Fixation. Контрмеры
• Присваивать новый ID сессии после авторизации
• Проверять дополнительные параметры при автор...
Содержание
1. Теория веб-сессий
2. Session Hijacking (Перехват сессии)
3. Session Fixation (Фиксирование сессии)
4. Cross-...
Cross-Site Request Forgery
Подделка межсайтовых
запросов (Cross-Site
Request Forgery) занимает
8ое место среди TOP-10
уязв...
CSRF. Примеры
11/4/2014/ 17
Добавление видео в watch-later список
https://player.vimeo.com/watch_later/ID?callback=cb&
sta...
CSRF. Контрмеры
Разработчикам:
• Использовать анти-CSRF токен
• Хранить и передавать анти-CSRF токен другим способом, чем ...
CSRF. Контрмеры (cont.)
Разработчикам:
• Передавать команды (actions) и параметры для них через POST
запрос, вместо GET за...
CSRF. Контрмеры (cont.)
Пользователям:
• Выходить из системы (logout) после
окончания работы
• Не разрешать браузеру сохра...
Контакты
kateryna.ovechenko@iteraconsulting.com
11/4/2014/ 23
kateryna.ovechenko
Ekaterina Ovechenko
kateryna.ovechenko@ow...
Upcoming SlideShare
Loading in …5
×

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

1,058 views

Published on

"86% всех сайтов имеют хотя бы одну серьезную уязвимость" WhiteHat Security
Уязвимости приложений относящиеся к управлению сессиями занимают 2ое место в десятке самых распространенных уязвимостей. Уязвимые к атаке сессии позволяют злоумышленнику перехватить сессию пользователя, получить его логин-пароль , тем самым полностью завладеть данными пользователя в веб-приложении. •рассмотрим, как вообще устроена сессия в веб-приложении
•на живых примерах изучим распространенные в уязвимости веб-сессий
•разберем рекоммендации по устранению данных уязвимостей
•рассмотрим несколько инструменты необходимых при тестировании безопасности веб-сессий
Будут рассмотрены следующие уязвимости: Session Fixation, Session Hijacking, Cross-Site Request Forgery.
Данный доклад позволит вам не только ознакомиться с теорией, как тестировать безопасность веб-сессии, но и даст "стартовые" знания для того, чтобы попробовать это тестирование на своем проекте.

Published in: Technology
  • Be the first to comment

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

  1. 1. БЕЗОПАСНОСТЬ СЕССИЙ В ВЕБ-ПРИЛОЖЕНИИ Катерина Овеченко
  2. 2. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 11/4/2014 / 2
  3. 3. Что такое веб-сессия? “HTTP - это протокол без состояний. Сессии решают эту проблему.” Веб-сессия – это структура данных конкретного пользователя, которую приложение использует для хранения временных данных, полезных только в течение того времени, которое пользователь взаимодействует с приложением. Атрибуты сессии: • ID сессии Например: PHPSESSID=a2pdlk7jreml0u1m3bccd12551; • Время действия (Expiry date) Например: EXPIRES 18.03.2014 16:52:22 11/4/2014 / 3
  4. 4. Передача ID сессии 11/4/2014 / 4 • 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 запроса
  5. 5. Хранение ID сессии 11/4/2014 / 5 В cookies браузера Скрытое поле (HTML код) • ID сессии может храниться в исходном коде самого приложения на клиентской стороне во время работы пользователя с приложением. В самом приложении <form method="post" action="url"> <input type="hidden" name="sessionid" value="1111"> ... <input type="submit"> </form>
  6. 6. Когда тестировать сессии? Приложение с веб доступом Приложение используется большим количеством пользователей (внутренних и/или внешних) Приложение содержит важные персональные данные пользователей Пользователи в приложении имеет разные уровни доступа Приложение интегрируется с системой, которая содержит критические данные 11/4/2014 / 6
  7. 7. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 11/4/2014 / 7
  8. 8. Session Hijacking Есть несколько способов получения уникального идентификатора сессии: • Предсказание идентификатора • Сниффинг (Sniffing); • Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc); 11/4/2014 / 8
  9. 9. Session Hijacking. Примеры 11/4/2014 / 9
  10. 10. Session Hijacking. Контрмеры • Завершение сеанса (logout) и закрытие браузера должны закрывать сессию. • Дополнительный токен: отпечаток браузера (хэшированный User-agent) или другой уникальный токен • Дополнительный токен должен передаваться другим способом, чем ID сессии. • Запретить одновременную работу под одной сессией с нескольких агентов • Шифрование данных передаваемых по сети (https протокол). • Генерировать ID сессий сложно предсказуемыми 11/4/2014/ 10
  11. 11. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 11/4/2014/ 11
  12. 12. Session Fixation Вместо того, чтобы воровать ID сессии пользователя, злоумышленник может зафиксировать ID сессии известный ему и передать его пользователю. Этот тип атаки называется фиксирование сессии. 11/4/2014/ 12 Инструменты для перехвата запросов: • OWASP WebScarab • Fiddler
  13. 13. Session Fixation. Примеры 11/4/2014/ 13
  14. 14. Session Fixation. Контрмеры • Присваивать новый ID сессии после авторизации • Проверять дополнительные параметры при авторизации пользователя, например IP или User-Agent • Реализовать в приложении механизм Анти-фиксации сессии • Запретить одновременную работу под одной сессией с нескольких агентов • Запрашивать авторизацию при изменении уровня доступа пользователя 11/4/2014/ 14
  15. 15. Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 11/4/2014/ 15
  16. 16. Cross-Site Request Forgery Подделка межсайтовых запросов (Cross-Site Request Forgery) занимает 8ое место среди TOP-10 уязвимостей по версии Open Web-Application Security Project (OWASP). Атака является успешной, если жертва авторизована в приложении. 11/4/2014/ 16
  17. 17. CSRF. Примеры 11/4/2014/ 17 Добавление видео в 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>')
  18. 18. CSRF. Контрмеры Разработчикам: • Использовать анти-CSRF токен • Хранить и передавать анти-CSRF токен другим способом, чем ID сессии (скрытое поле формы, в теле POST запроса) 11/4/2014/ 18 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=AQDr RHrN&ttstamp=2658168114827211478&__rev=1162685
  19. 19. CSRF. Контрмеры (cont.) Разработчикам: • Передавать команды (actions) и параметры для них через POST запрос, вместо GET запроса. • Запрашивать дополнительную авторизацию / подтверждение или использовать CAPTCHA при выполнении важных действий. 11/4/2014/ 19 Confluence Wiki http://wiki.itera.no/pages/ removepage.action?page Id=41779352
  20. 20. CSRF. Контрмеры (cont.) Пользователям: • Выходить из системы (logout) после окончания работы • Не разрешать браузеру сохранять логин/пароль (функция «remember me») • Не использовать один и тот же браузер для доступа к рабочей системе и личным сайтам 11/4/2014/ 20
  21. 21. Контакты kateryna.ovechenko@iteraconsulting.com 11/4/2014/ 23 kateryna.ovechenko Ekaterina Ovechenko kateryna.ovechenko@owasp.org

×