O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
БЕЗОПАСНОСТЬ СЕССИЙ
В ВЕБ-ПРИЛОЖЕНИИ
Катерина Овеченко
Содержание
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...
Próximos SlideShares
Carregando em…5
×

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

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

  • Entre para ver os comentários

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

×