2. - 82% web-приложений
уязвимы к XSS (2013)
Page 2
Коротенько о фактах
- 7 из 10 web-приложений
уязвимы к XSS (2014)
- 60% web-приложений
уязвимы к XSS (2013)
- №3 в OWASP TOP-10
(2013)
3. • Что такое XSS
• XSS – Cross-Site Scripting
• Атака на пользователя уязвимого web-приложения
Page 3
Поприветствуйте – XSS!
• Цель
• Выполнить код (JavaScript) в браузере «жертвы» в контексте уязвимого
приложения
4. Page 4
Так как же оно работает?
Ссылка со скрытым кодом
WWW.SUPERBANK.ORG
5. • По вектору
- Отраженные либо пассивные XSS (Type 1)
- Сохраненные или активные XSS (Type 2)
- DOM XSS (Type 0)
Page 5
Типы XSS
• По каналам внедрения
- Ошибки в браузерах
- Отсутствие проверки вводимых данных
- Подмена кодировки страницы
8. • Web-страницы изменяющие DOM (Document Object Model)
• Тяжело обнаружить
Page 8
DOM XSS
<body>
<script>document.write(location.href);</script>
</body>
Простейшее HTML DOM-дерево Пример простейшей уязвимой HTML
Как использовать?
http://site.com/test.html#<script>alert(‘xss’);</script>
DOM XSS WiKi
9. • Кража COOKIES
- Кража сессий
- Кража персональных данных
- Неавторизированный доступ к web- приложению
- Потеря репутации
Page 9
Как XSS может быть использована
• Кража данных из форм
- Кража персональных данных
- Неавторизированный доступ к web-приложению
- Потеря репутации
• DDoS-атаки
- Потеря репутации
• XSS-черви
- Кража персональных данных
- Неавторизированный доступ к web- приложению
- Потеря репутации
10. XENOTIX
- Проект OWASP
- Активно разрабатывается
- Много-браузерное тестирование
- Много-много всего...
- Freeware
Page 10
Чем искать?
XSSF
- Metasploit модуль
- Консольная утилита
- Присутствует web-интерфейс
- Создает коммуникационный канал с тестируемым приложением
- Freeware
BeEF
- Мощная среда для тестирования безопасности
- Консольная утилита
- Присутствует web-интерфейс
- Простое иширокое API
- Freeware
DOMinatorPro
- Автоматизация сканирования
- Автоматическая проверка на возможность
использования найденных уязвимостей
- Shareware
11. • Проверка на стороне сервера:
• Проверять входящие данные – НЕ ДОВЕРЯТЬ ни чему, что пришло от пользователя (даже Cookies)
• Использовать HttpOnly флаг
• Использовать SSL
• Не хранить конфиденциальные данные в Cookies
• Кодировать HTML-символы, JavaScript, CSS и ссылки.
• Использовать функции фильтрации ( filter_sanitize_encoded, htmlentities,
filter_sanitize_magic_quotes, и др.) для фильтрации входящих данных
• Использовать различные библиотеки для кодирования входящих данных (HTML Purifier or Htmlawed,
PHP Anti-XSS Class, AntiSamy API, XSS-HTML-Filter)
Page 11
Как предотвратить?
• Проверка на стороне клиента
– Использование различных модулей для браузеров (NoScript для FireFox and NotScripts
Opera для Chrome)
Спасибо, что присоединились…
Как раз отличное время поспать после обеденного перерыва (регламентированное время около часа – как раз выспитесь… )
Почему именно об ХСС
1) атака, которая помогла нам провернуть взлом в нашем первом проекте
2) на первый взгляд она кажется плевой задачкой, однако копнув глубже, понимаешь – не все так просто….
3) XSS – весьма специфическая атака требующая выполнения определенных условий
3) ну и количество веб-приложений (сайтов), уязвимых к этой атаке пугающе велико…
Trustware – одна из компаний-лидеров на рынке безопасности ИТ. Имеет громадное количество клиентов, как в гос секторах, военных организациях, так и в коммерческом секторе. Только за прошлый год – около 9 млн проверенных вэб приложений и 2 млн. сетей.
WhiteHat Secotury – Калифорнийская компания, организована в 2001м, около 600 клиентов в США (финансовый сектор, банки страхование)
Сenzic – секурити компания, которая обслуживает практически все компании из списка Fortune 1000 companies (AT&T, Apple, Wal-Mart Stores, General Motors…) C 2014 – часть Trustware
OWASP – международное сообщество
Х поставили, чтобы не путать название атаки с технологией CSS
Почему атака – потому что один и тот же код уязвим к разным типам атак
В чем суть?
1) из далека - HTML в браузере представляется как раз в виде ДОМ
2) из JavaScript есть возможность манипулирования структурой и данными
3) А раз так, то иногда, когда не ведется фильтрация данных, мы, модифицируя
ДОМ сайта можем добиться выполнение JavaScripta в контексте уязвимого сайта