БЕЗОПАСНОСТЬ СЕССИЙ В ВЕБ- ПРИЛОЖЕНИИ: ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ Автор: Катерина Овеченко
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 2
Что такое веб-сессия? • Определение веб-сесиии • Ее основное назначение “HTTP is a stateless protocol. Sessions make it stateful.” 06.02.2018 / 3
Атрибуты сессии 06.02.2018 / 4 • GET http://linzmarket.com.ua:80/linza-contaktnie.html HTTP/1.1 • Host : linzmarket.com.ua • User-Agent : Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0 • Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 • Accept-Language : en-US,en;q=0.5 • Accept-Encoding : gzip, deflate • Referer : http://linzmarket.com.ua/index.php?user_details=yes • Cookie : PHPSESSID=a2pdlk7jreml0u1m3bccd12551 ; __utma=146251049.781661005.1386340773.1386340773.1386340773.1; __utmb=146251049.4.10.1386340773; __utmc=146251049; __utmz=146251049.1386340773.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none) • Connection : keep-alive
Сессия vs куки • Разница между cookies и session, какую информацию хранит каждый из них 06.02.2018 / 5
Механизмы сессии Перевод таблички 06.02.2018 / 6
Немного статистики… • Статистика по уязвимостям веб-приложений • Статистика по уязвимостям в веб-сессиях 06.02.2018 / 7
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 8
Session Hijacking 06.02.2018 / 9 Есть несколько способов получения уникального идентификатора сессии: • Предсказание идентификатора • Атака «Man in the middle» («Человек посередине»); • Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc);
Session Hijacking. Предсказуемые токены • Описание нескольких возможностей предсказания уникальных идентификаторов сессии и как обнаружить, что идентификаторы вашей сессии могут быть предугаданы (инструменты анализа). 06.02.2018 / 10
Атака ‘Man in the middle’ • Принцип атаки • Когда используется • Необходимые условия для успешной атаки 06.02.2018 / 11
Атака клиентской части • XSS (кратно) • Необходимые условия успешной атаки • К чему приводит 06.02.2018 / 12
Session Hijacking. Примеры • Видео ИЛИ • Демонстрация примеры на мастер-классе 06.02.2018 / 13
Session Hijacking. Контрмеры • Logout and close the browser should expire session • Use cookie to store session ID instead of GET request data • Additional identifier: browser fingerprint (hashed user-agent) or unique token • Additional identifiers should be propagated in another way than session ID • Disable simultaneous logon Текст будет переведен на русский 06.02.2018 / 14
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 15
Session Fixation • Apart from stealing a user's session id, the attacker may fix a session id known to him. This is called session fixation. Текст будет переведен на русский 06.02.2018 / 16
Session Fixation. Примеры 06.02.2018 / 17 • Видео ИЛИ • Демонстрация примеры на мастер-классе
Session Fixation. Контрмеры • Assign new session ID after login • Check user-specific properties in the session (IP or User-agent) • Hard-predictable session IDs • Request authentication when user's privilege level changes • Disable simultaneous logon Текст будет переведен на русский 06.02.2018 / 18
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 19
Cross-Site Request Forgery 06.02.2018 / 20 Cross-Site Request Forgery (CSRF) is #8 in OWASP top-10 vulnerabilities. The attack succeeds if and only if the user is authenticated. Текст будет переведен на русский
CSRF. Примеры 06.02.2018 / 21 • Видео ИЛИ • Демонстрация примеры на мастер-классе
CSRF. Контрмеры • Use POST instead of GET • Request authentication for critical actions • Using anti-CSRF token Текст будет переведен на русский 06.02.2018 / 22
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 23
Phishing Принцип атаки Необходимые условия для успешной атаки Инструменты, которые можно использовать 06.02.2018 / 24
Phishing. Примеры 06.02.2018 / 25 • Видео ИЛИ • Демонстрация примеры на мастер-классе
Phishing. Контрмеры Способы избежать атаки 06.02.2018 / 26
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 27
Инструменты Перечень инструментов, которые могут понадобиться при тестировании веб-сессиий: Плагины в браузерах для работы с cookies Перехватчики (WebScarab, Fiddler) Анализаторы session tokens (Burp) Инструменты для Фишинг атаки 06.02.2018 / 28
Содержание 1. Теория веб-сессий 2. Session Hijacking (Перехват сессии) 3. Session Fixation (Фиксирование сессии) 4. Cross-Site Request Forgery (Подделка межсайтовых запросов) 5. Phishing (Фишинг) 6. Инструменты 7. Заключение 06.02.2018 / 29
Заключение • Что узнали - Summary • Следующие шаги (что почитать, где попробовать) 06.02.2018 / 30