2. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 2
3.
4. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 4
5. Безопасность
инфраструктуры
Безопасность
приложений
Безопасность
организации
• Тесты на проникновение в
сеть
• Мониторинг уязвимостей
инфраструктуры
• Оценка беспроводного
соединения (Wi-Fi)
• Оценка файрволов
• Оценка VPN соединения
• Тестирование веб и десктоп
приложений
• Тестирование безопасности
облаков
• Тестирование мобильных
приложений
• Анализ исходного кода
• Моделирование атак
• Тестирование бизнес логики
• Тренинги по безопасности
• Политики безопасности
• Управление рисками
• Социальная инженерия
• План реагирования на
инциденты
Области безопасности
12/22/2015/ 5
6. 1) Инъекции
2) Некорректная
аутентификация и
управление сессиями
3) Межсайтовое выполнение
сценариев (XSS)
4) Небезопасные прямые
ссылки на объекты
5) Небезопасная конфигурация
окружения
6) Утечка критичных данных
7) Отсутствие контроля доступа
к функциональному уровню
8) Подделка межсайтовых
запросов (CSRF)
9) Использование компонентов
с известными уязвимостями
10) Невалидируемые
перенаправления
9. Анализ рисков безопасности
Уязвимость != Риску безопасности
Величина риска = вероятность * последствия
Факторы при оценке рисков (по OWASP)
Вероятность
• Уровень взломщика
• Мотивация
• Размер группы
• Возможность обнаружения
• Простота обнаружения
• И др.
Последствия
• Финансовые убытки
• Репутационные убытки
• Личные данные
• Потеря данных
• Потеря конфиденциальности
• И др.
12/22/2015/ 9
10. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 10
11. Что такое веб-сессия?
“HTTP - это протокол без состояний. Сессии решают эту проблему.”
Веб-сессия – это структура данных конкретного пользователя, которую
приложение использует для хранения временных данных, полезных
только в течение того времени, которое пользователь взаимодействует с
приложением.
12/22/2015/ 11
12. Атрибуты сессии
• ID сессии – это уникальный ID, используемый для идентификации
пользователя при обмене запросами между клиентом и сервером.
Например: PHPSESSID=a2pdlk7jreml0u1m3bccd12551;
• Время действия (Expiry date) – это время окончания сессии.
Может иметь такие параметры:
Фиксированное время после авторизации
Фиксированное время после каждого нового запроса
Закрытие браузера
Выход из приложения (logout)
Никогда
Дополнительная авторизация на какое-то действие
Например: EXPIRES 18.03.2014 16:52:22
12/22/2015/ 12
13. Передача 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
запроса
14. Хранение ID сессии
12/22/2015/ 14
В cookies
браузера
Скрытое поле
(HTML код)
• ID сессии может храниться в исходном коде самого
приложения на клиентской стороне во время работы
пользователя с приложением.
В самом
приложении
<form method="post" action="url">
<input type="hidden" name="sessionid" value="1111">
...
<input type="submit">
</form>
15. Немного статистики…
• "64% разработчиков не уверены в безопасности приложений, которые
они создают“. (Microsoft Developer Research)
• "60% всех атак в Интернете направлены на взлом веб-приложений“.
(Gartner)
• "Атаки на сессии пользователей и обход системы аутентификации
занимают 2ое место в TOP-10 уязвимостей." (OWASP)
12/22/2015/ 15
16. Когда тестировать сессии?
Приложение с веб доступом
Приложение используется большим количеством
пользователей (внутренних и/или внешних)
Приложение содержит важные персональные данные
пользователей
Пользователи в приложении имеет разные уровни доступа
Комплексное решение с большим количеством интеграций
на разных уровнях
Приложение интегрируется с системой, которая содержит
критические данные
12/22/2015/ 16
17. Последствия
Последствия удачной атаки напрямую зависят от того уровня доступа и
данных, которыми обладает жертва в веб-приложении.
12/22/2015/ 17
Финансовые убытки
Нарушение конфиденциальности
Разрушение репутации
18. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 18
19. Session Hijacking
Есть несколько способов получения уникального идентификатора
сессии:
• Предсказание идентификатора
• Сниффинг (Sniffing);
• Атака клиентской части (XSS, вредоносный JavaScript код, трояны, etc);
12/22/2015/ 19
20. Предсказуемые токены
Анализ ID сессии на предсказуемость можно делать вручную или с
помощью специальных инструментов.
На что обратить внимание:
• Имя пользователя / логин
• Пароль
• IP адрес
• Время авторизации
12/22/2015/ 20
21. Инструменты анализа
Инструменты анализа ID сессии:
• Burp Sequencer анализирует распредление ID сесиий для определния
уровня случайности.
• SessionID Analysis - модуль WebScarab, позволяющий определить
уровень случайности сгенерированных ID сессий.
• Crowbar - инструмент для брут-форса ID сессий.
12/22/2015/ 21
22. Предсказуемые токены. Пример
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 ????
23. Предсказуемые токены. Пример
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 ????
24. Предсказуемые токены. Пример
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 ????
25. Предсказуемые токены. Пример
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
28. Сниффинг
Сниффинг – это атака направленная на перехват сетевых пакетов в сети
используя сниффинг инструменты, снифферы. При этом злоумышленник
и жертва должны находиться в одной подсети.
Как только пакет перехвачен, его содержимое может быть
проанализировано. Таким образом, возможно перехватить ID сессий,
передаваемые в URL или заголовке запроса.
12/22/2015/ 28
29. Сниффинг
Инструменты для перехвата сетевого трафика:
• Wireshark
• Microsoft Network Monitor
• CommView for WiFi
12/22/2015/ 29
Wireshark
30. Атака клиентской части
Злоумышленник может получить ID сессии используя вредоносный код
или программу, которая будет выполнятся на стороне пользователя
(жертвы).
Самый распространенный пример – Cross-Site Scripting (XSS) атака.
12/22/2015/ 30
Пример:
<SCRIPT>alert(document.cookie);</SCRIPT>
31. Session Hijacking. Контрмеры
• Завершение сеанса (logout) и закрытие браузера должны закрывать
сессию.
• Дополнительный токен: отпечаток браузера (хэшированный User-agent)
или другой уникальный токен
• Дополнительный токен должен передаваться другим способом, чем ID
сессии.
• Запретить одновременную работу под одной сессией с нескольких
агентов
• Шифрование данных передаваемых по сети (https протокол).
• Генерировать ID сессий сложно предсказуемыми
12/22/2015/ 31
32. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 32
33. Session Fixation
Вместо того, чтобы воровать ID сессии
пользователя, злоумышленник может
зафиксировать ID сессии известный
ему и передать его пользователю.
Этот тип атаки называется
фиксирование сессии.
12/22/2015/ 33
Инструменты для
перехвата запросов:
• OWASP WebScarab
• Fiddler
34. Session Fixation. Контрмеры
• Присваивать новый ID сессии после авторизации
• Проверять дополнительные параметры при авторизации пользователя,
например IP или User-Agent
• Реализовать в приложении механизм Анти-фиксации сессии
• Запретить одновременную работу под одной сессией с нескольких
агентов
• Запрашивать авторизацию при изменении уровня доступа
пользователя
12/22/2015/ 34
35. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 35
36. Cross-Site Request Forgery
Подделка межсайтовых
запросов (Cross-Site
Request Forgery) занимает
8ое место среди TOP-10
уязвимостей по версии
Open Web-Application
Security Project (OWASP).
Атака является успешной,
если жертва авторизована в
приложении.
12/22/2015/ 36
37. 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>')
38. 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
39. CSRF. Контрмеры (cont.)
Разработчикам:
• Передавать команды (actions) и параметры для них через POST
запрос, вместо GET запроса.
• Запрашивать дополнительную авторизацию / подтверждение или
использовать CAPTCHA при выполнении важных действий.
12/22/2015/ 39
Confluence Wiki
http://wiki.itera.no/pages/
removepage.action?page
Id=41779352
40. CSRF. Контрмеры (cont.)
Пользователям:
• Выходить из системы (logout) после
окончания работы
• Не разрешать браузеру сохранять
логин/пароль (функция «remember me»)
• Не использовать один и тот же браузер для
доступа к рабочей системе и личным сайтам
12/22/2015/ 40
41. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 41
42. Phishing
12/22/2015/ 42
Phishing - это способ получения личной информации пользователя, такой
как логин, пароль, номер кредитной карты и т.д., когда злоумышленник
выдает себя за изначальный ресурс (веб-приложение, сайт и т.д.).
Залогом успешной фишинг атаки всегда будет неосторожный
пользователь.
Инструменты:
• OWASP Xenotix – инструмент
автоматически создает дубликат
страницы указанного веб-сайта.
• SpearPhisher – инструмент для
генерации e-mail сообщений
43. Phishing. Контрмеры
• Персональное фото или личное сообщение на странице с важной
транзакцией.
• Использование механизма двойной аутентификации со случайно
сгенерированным одноразовым паролем.
12/22/2015/ 43
44. Phishing. Контрмеры (cont.)
• Логирование сайтов, с которых пользователь перешел на текущий сайт
(Referer website).
• Использование Google Safe Browsing API для проверки является ли
заданный сайт безопасным или нет.
• Иcпользование плагинов браузеров для определения фишинг сайтов.
12/22/2015/ 44
45. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 45
46. 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
47. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 47
48. Инструменты
Перечень инструментов, которые могут понадобиться при тестировании
веб-сессий:
• Плагины в браузерах для работы с 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
49. Содержание
1. Введение в тестирование безопасности
2. Тестирование сессий
• Теория веб-сессий
• Session Hijacking (Перехват сессии)
• Session Fixation (Фиксирование сессии)
• Cross-Site Request Forgery
• Phishing (Фишинг)
3. Практическая часть
• Задание А
• Задание В
4. Инструменты
5. Что дальше?
12/22/2015/ 49
50. Что дальше?
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)
Представиться
Что вы ожидаете от этого мастер класса?
Мы живем в эпоху технологий, вокруг нас существует огромное количество сервисов, которые облегчают нашу жизнь: все от социальных сетей до облачных хранилищ данных или электронной коммерции. Однако это не секрет, что мир, построенных на технологиях, имеет ряд серьезных проблем, проблем с безопасностью, проблем с конфиденциальностью данных.
Летом 2015 года, самая купная атака этого года
Завладели данными 22 миллионов не рядовых граждан
Номера соц страхования, военные документы, досье и адреса чиновников
19,7 мил человек, подаваших заявление на работу, 1,1 отпечатков пальцев
Любой человек за послдение 15 лет стал жертвой
Атака происхоила в два этапа: апрель (4,2 мил), затем наняли экспертов за $133 мил, затем новый взлом (еще 19 мил записей)
Скомпрометированые креденшелы одного из подрядчиков
Вина: Китай?
Финансовые потери: след несколько лет, номера соц страхования, тайные агенты, программы защиты свидетелей, военные операции
Безопасность – топ приоритет, цена ошибки может быть высока, до угрозы безопансости и жизни людей.
Комплексный подход
Первая покрывается ИТ отделом, вторая – разработчиками, третья – security officers
Что такое OWASP?
Подходы. Идеи, чем оно отличаетс ято обычного тестирования?
Кто из вас знает, что такое сессия?
Кто когда-то тестировал сессии?
Назовите основную особенность протокола HTTP?
Корзина заказов
Подходы реализации: 1 – в каждом запросе логин-пароль, 2 – логин/pass вначале, потом специальный идентификатор
ID – пара имя-значение. Названия разные
Время действия: заканчиваетя по истечении каокго-то времени или по выполнении какого-то условия. Срок действия истек – ID нельзя использовать
Разница между GET и POST?
Cookies. Set-cookies, cookies – фрагменты данных, хранящихся в браузере пока пользователь на сайте. ID вычитывается из них при след запросе, Почистить cookies
Скрытое поле – ID вместе с другими параметрами в теле POST запроса
Разарботчики часто создают свои механизмы упарвления сессиями. Небезопасны в таких функциях как logout, управление паролями, время действия сессий, remember me
64% не уверены
Сессии – 2 место по OWASP (анализ 500 000 сайтов)
Sony Playstation
Привелигированные аккаунты
FoxNews
LinkedIn
Пока что все понятно? Вопросы?
В феврале 2013 глобальные man-in-the-middle атаки (Белоруссия, Исландия)
Фин и гос учреждения Америки, Чехии, Германии, Ирана и Ливии
В марте прекратилась, не нашли
HTTPS трафик
logout. Нельзя работать из другого устройства или браузера
Никогда не доверяй информации, приходящей с клиента
https. Норвежские газеты (197 компаний, 9 прошли)
All now are fixed
Web page personalization
One simple feature that can be built is to make it harder for people to impersonate a site. One way to achieve this is to personalize the web application for the users. Web sites can use two pages to authenticate the users. The first page can ask the user to provide only the user name. On receiving a valid username the user is given a personalized page for entering password. The second page can be personalized based on some user provided phrase or a user chosen image etc. It would be difficult for a fake site to provide the second page.
Personalization of web pages can also be achieved in other ways. Client side persistent cookies can be used to present a personalized login page to the user. When the user logs in for the first time, the application can set a cookie with a simple personal but non-confidential string (e.g. user's first name). Next time the user comes back, the applications can greet the user with this string before he logs in. A Phishing site will not be able to read the cookie containing the string if it is limited to the right domain. As a result, the user will not see the greeting string and would get tipped off that the site is not genuine. The success of these options again depends a lot on the alertness of the end user.
Two factor authentication = something you know + something you have