XSS-уязвимости часто игнорируются разработчиками и сотрудниками служб безопасности, что приводит к катастрофическим последствиям.
В блоге компании High-Tech Bridge был опубликован отчет об XSS-уязвимостях, в котором сотрудники фирмы утверждают, что этот вид брешей считается наиболее распространенным среди web-приложений. Тем не менее, web-разработчики до сих пор недооценивают как сами XSS-уязвимости, так и их последствия. Частично этот факт подтверждается тем, что в открытом web-архиве XSS-уязвимостей XSSPosed.org в настоящее время хранятся данные о более чем 6 тысячах неисправленных брешей на одних из самых популярных web-ресурсов, включая правительственные и медиаресурсы.
XSS-уязвимости активно эксплуатируются киберпреступниками больше десяти лет. Проект OWASP описывает их как наиболее распространенные виды брешей в web-приложениях, и многие фирмы неоднократно упоминали XSS-уязвимости в своих бюллетенях и отчетах. Так, с 1 квартала 2012 года High-Tech Bridge выпустила 169 бюллетеней безопасности, касающихся работы 161 программного продукта. В 56% из них (91 бюллетень) содержалась информация о XSS-уязвимостях.
XSS-уязвимость можно эксплуатировать, заставив жертву зайти на любой сайт, где хакер может разместить XSS-эксплоит. К примеру, AJAX-функции позволяют злоумышленникам похищать файлы cookies, используя любой web-сайт, который находится под контролем киберпреступников. Естественно, злоумышленникам понадобится иметь права доступа к данному сайту, но в настоящее время взлом того или иного ресурса зачастую оказывается не такой уж и сложной задачей. Подобные XSS-атаки становятся очень опасными, поскольку от пользователя не требуется никаких действий и в большинстве случаев жертвы даже не догадываются о произошедшем. Достаточно сделать одно небольшое изменение на главной странице уязвимого ресурса, и атаки станут таргетированными – к примеру, если жертва зайдет на сайт из определенной подсети (например, принадлежащей какой-то организации или банку), все его страницы будут содержать XSS-эксплоит.
В других случаях XSS-уязвимости используются для загрузки вредоносного ПО на компьютеры жертвы. Перейдя по якобы подлинной ссылке, пользователь компрометирует свои же данные, а его устройство оказывается инфицированным.
Крупные компании обычно устанавливают дорогие межсетевые экраны для web-приложений (WAF) и регулярно выполняют проверки своих главных ресурсов. В то же время ряд фирм забывает о безопасности своих поддоменов, при этом не учитывая, что в большинстве случаев файлы cookie с основного сайта будут действительны на всех поддоменах. Это значит, что XSS-уязвимость на поддомене ставит под угрозу безопасность всего ресурса. Более того, в современных реалиях одного WAF оказывается недостаточно для обеспечения безопасности сайтов, поскольку web-приложения очень быстро развиваются, постоянно получая новый функционал. Так, более 70% существующих наборов правил для WAF можно обойти с помощью обфускации. К тому же, для обхода защиты сайтов хакеры используют JavaScript, который не проверяется WAF-решениями.
Отметим, что XSS-уязвимости полностью подрывают все механизмы защиты от межсайтовой подделки запросов (CSRF). Большинство web-приложений дают администраторам почти неограниченные привилегии, позволяя им исполнять произвольные SQL-запросы, команды и программный код, а также загружать файлы. Административный интерфейс зачастую не содержит большого количества механизмов безопасности, поскольку администраторы считаются доверенными лицами. Как результат, единичной XSS-уязвимости достаточно для того, чтобы обойти защиту от CSRF и позволить хакеру похищать важные данные, а также получить привилегии администратора уязвимого web-ресурса.
Никаких овечек — только отборные научные факты