Межсайтовый скриптинг (XSS) - что это, как работает и есть ли защита?

erid: 2SDnjdrQMcW
Межсайтовый скриптинг (XSS) - что это, как работает и есть ли защита?
Межсайтовый скриптинг (XSS) - что это, как работает и есть ли защита?
16.01.2023

Оглавление

  1. Как работает cross-site scripting
  2. Насколько часто встречаются XSS-уязвимости
  3. Межсайтовый скриптинг и хактивизм
  4. Как защититься от межсайтового скриптинга
  5. Заключение

Cross-site scripting (XSS), или межсайтовый скриптинг – это вид атаки, в рамках которого вредоносные скрипты внедряются в контент веб-сайта. Это позволяет хакеру использовать доверенный для пользователя сайт в своих целях, от кражи данных до показа рекламы.

В зависимости от конфигурации и задач злоумышленника, с помощью межсайтового скриптинга можно перехватывать управление сессией, перенаправлять пользователя на вредоносные сайты, «доставлять» ВПО или просто следить за деятельностью пользователя.

В этой статье будут разобраны основные техники скриптинга, причина «популярности» эксплуатации XSS-уязвимостей у хакеров, способы защиты со стороны пользователя и потенциальный ущерб, который может нанести хакер в ходе XSS-атаки.

Как работает cross-site scripting

Межсетевой скриптинг как техника атаки построен на наличии в любом публичном сервисе уязвимостей, которые можно использовать для внедрения вредоносного кода (скрипта). При этом, как правило, обнаруживаются такие «вставки» уже постфактум, когда первые пользователи понесли издержки из-за взаимодействия с зараженным сайтом и «поделились» этой информацией с технической поддержкой ресурса.

Александр Черняков

Ведущий аналитик информационной безопасности Центра противодействия киберугрозам Innostage CyberART

Наиболее уязвимыми или опасными с точки зрения межсайтового скриптинга можно считать сайты, на которых используется язык JavaScript, и, так или иначе, присутствуют пользовательские поля, где пользователь может сам вводить какие-либо данные. Имея ввиду все вышеперечисленное, можно сделать вывод, что довольно большая часть веб-сайтов в сети интернет может быть потенциально уязвима к атакам типа XSS.

Чем больше на сайте полей, с которыми может взаимодействовать пользователь, тем больше вероятность того, что данный сайт может быть опасен с точки зрения межсайтового скриптинга. Сюда можно отнести различные форумы и онлайн-чаты, где каждый желающий может оставить свое сообщение или написать топик.

Ярким примером можно считать ситуацию с чатом популярного среди геймеров видеостримингового сервиса Twitch. На одной из трансляций пользователь под ником Hexxyr обнаружил, что на стороне веб-приложения Twitch нет проверки пользовательского ввода того, что пишется в чат. Тем самым, чат трансляции в какой-то момент превратился в настоящую вакханалию, где каждый из сотен зрителей мог написать небольшой JS-код в сообщении и получить его вывод на экран всех пользователей трансляции. Хорошо, что данная акция не имела катастрофических последствий. Однако если крупные игроки, как Twitch, допускают подобные ошибки, что же стоит говорить о других разработчиках?

Можно выделить два основных вида скриптинга:

1) Постоянный или хранимый XSS. С одной стороны, этот вид скриптинга встречается реже, поскольку требует от взломщика бОльшего количества навыков. С другой стороны – он гораздо опаснее, поскольку злоумышленник получает возможность внедрить вредоносный код на сервер сайта, и скрипт будет активироваться при каждом запросе к странице.

2) Непостоянный или отраженный XSS. Он встречается гораздо чаще и менее «требователен» к навыкам атакующего. Однако, для реализации этого вида скриптинга пользователь должен посетить специально сформированную ссылку, которую злоумышленнику нужно распространить.

Также, ряд специалистов выделяет в отдельную группу XSS-инъекции в DOM-модели, поскольку они не отражаются в HTML и детектировать их сложнее, но реализуется эта уязвимость на стороне клиента, следовательно – практически неприменима для массового распространения.

Евгений Кравцов

Senior Frontend Developer, SberDevices

Сайты, которые недостаточно проверяют входящие данные и не имеют надежных механизмов защиты от межсайтового скриптинга (XSS), являются наиболее уязвимыми. Примеры таких сайтов могут включать:

1. Социальные сети, такие как Facebook и Twitter, где пользователи могут вводить свои собственные данные и делиться ссылками.
2. Форумы и блоги, где пользователи могут размещать свои собственные сообщения и комментарии.
3. Сайты с динамическим контентом, такие как новостные сайты или интернет-магазины, где пользователи могут вводить информацию в формы и размещать объявления.

Важно отметить, что даже крупные и известные сайты могут быть уязвимы к атакам XSS, так как это одна из самых распространенных уязвимостей в Интернете.

С помощью эксплуатации XSS злоумышленник может:

  • перенаправлять пользователя на вредоносные сайты;
  • похитить куки-файлы и другие данные;
  • отслеживать действия пользователя (например, с помощью кейлоггера);
  • украсть токен сеанса и перехватить контроль над сессией;
  • заразить устройство пользователя.

Потенциальные возможности злоумышленника, который реализует XSS-атаку, достаточно обширны. Весомое преимущество этого вида атаки заключается в том, что она может быть использована в массовых атаках, что особенно привлекательно для хактивистов.

Насколько часто встречаются XSS-уязвимости

Важно понимать, что ни один публичный ресурс не может быть на сто процентов защищен от межсайтового скриптинга. При этом, существует множество способов существенно снизить количество XSS-уязвимостей, первейший из которых – это внедрение цикла безопасной разработки.

Александр Зубриков

Генеральный директор ITGLOBAL.COM Security

XSS довольно часто встречаются на просторах Интернета. Эта уязвимость ежегодно входит в OWASP Top 10. Он регулярно обновляется, чтобы постоянно отображать 10 наиболее серьезных рисков, с которыми сталкиваются организации. Наряду с другими инъекциями, XSS располагается на 3-ем месте. Также можно обратиться за статистикой к HackerOne. Например, из отчета за 2020 год следует, что около 23% всех найденных уязвимостей приходится на XSS.

Что касается сложности реализации, то здесь очень большой разброс. Встречаются как сложные решения, с большим количеством ограничений при эксплуатации, так и простейшие, которые эксплуатируются «как по учебнику». Но если попытаться усреднить, то реализовать XSS несложно.

В рамках классического цикла разработки ключевым «мерилом» успешности работы разработчика принято считать эффективность. Чем быстрее, стабильнее и оптимизированнее работает приложение – тем оно лучше. Как правило, разработчики «страхуют» сервис от каких-то «случайных» действий пользователя и редко закладывают риск, что сайт привлечет внимание «юного любителя кинуть скобку» или же настоящих хакеров.

Однако, с ростом осознания киберрисков все больше компаний приходят к пониманию того, что кибербезопасность критически важна для бизнес-процессов. В некоторых отраслях отыскать XSS-уязвимость на порядок труднее просто потому что они всегда были вероятной целью для хакеров. В качестве примера можно привести банковскую сферу и финсектор в целом.

Межсайтовый скриптинг и хактивизм

В прошедшем году хактивизм приобрел массовый характер. Многие исследователи отметили, что хакеры-активисты, за целый год практики, «прибавили» в своих навыках и, с большой долей вероятности, будут в новом году осваивать новые векторы атак и инструменты.

В этом контексте межсетевой скриптинг привлекателен сразу по нескольким причинам:

1. Массовость. В рамках скриптинга можно привлечь большое количество людей для поиска и изучения целей.

2. Элементы автоматизации. Существуют программы-анализаторы (например XSStrike) которые позволяют находить «в один клик» типовые уязвимости. Также, есть и готовое ПО для их эксплуатации (BeEF), в том числе – в виде эксплоитов, которыми могут «поделиться более опытные коллеги».

3. Относительная простота. Отраженный XSS вполне подходит для массового освоения людьми с «непрофильными» навыками, которые только начинают свой путь в хакинге.

4. Возможности для демонстрации. Те ресурсы, которые не интересны «коммерческим» хакерам, поскольку их взлом плохо монетизируется, вполне подойдут хактивистам для политических заявлений и демонстрации своих идей на более широкую аудиторию.

XSS – это одна из наиболее вероятных техник, которую могут освоить хактивисты. Вероятно, в этом году можно ожидать появления «авторских» вредоносных скриптов от ведущих хактивистских сообществ.

Как защититься от межсайтового скриптинга

Сложность защиты с точки зрения владельца сайта обусловлена тем, что это далеко не всегда компания или коммерческий проект, соответственно и бюджета на обеспечением инфомрационной безопасности у такого сайта нет, хотя количество пользователей может быть большим.

Владимир Зуев

Руководитель коммерческого SOC МегаФона

Найти подходящий сайт для вредоносного воздействия можно достаточно легко, поэтому владельцам веб-приложений еще на уровне дизайна бизнес-процессов необходимо обращать внимание на контроль входящих данных и использовать наложенные средства защиты.

Минимизировать уязвимость сайтов можно с помощью сервиса МегаФона WAF (Web Application Firewall), который помогает фильтровать попытки воздействия на сайт, в том числе на уровне приложения. А пентест, проведенный профессиональной командой, позволяет проанализировать ресурс на разных уровнях, выявить уязвимости операционной системы, баз данных, приложений, а также сформировать подробный отчет по уровням выявленных уязвимостей и способах их устранения.

Продвинутым уровнем станет комплексный подход – комбинация мер на всех этапах жизненного цикла и применение практик безопасной разработки.

С точки зрения бизнеса, первейшие меры – это аудит исходного кода и внедрение SSDLC-практик. Для зрелых, с позиции ИБ, компаний, целесообразно использовать разные средства анализа защищенности, от пентеста до участия в bug bounty.Если же говорить о безопасности пользователя, то главные способы защиты – это осознанность и внимательность.

Сергей Нейронов

CIO AtreIdea

Пользователи могут обезопасить себя от атак с помощью межсайтового скриптинга следующими способами:

1. Использование надежного браузера. Большинство современных браузеров содержат функции безопасности, которые могут защитить от некоторых XSS.
2. Использование дополнений браузера. Дополнения браузера, такие как, например, NoScript, могут блокировать небезопасные скрипты и также защитить вас от XSS.
3. Обновление ПО. Важно убедиться, что ваш браузер своевременно обновляется, так как в свежих версиях постоянно совершенствуются механизмы защиты, в том числе, от подобных проблем.

Для пользователя рекомендации по защите от межсайтового скриптинга мало чем отличаются от стандартных правил цифровой гигиены, которые уже давно перестали быть рекомендацией, и стали обязательным требованием для безопасного использования интернета.

Заключение

Межсайтовый скриптинг и XSS-уязвимости не первый год держатся в топе по уровню опасности и актуальности, которые составляют ведущие компании отрасли и исследовательские агентства.

Главное средство защиты от скриптинга с точки зрения пользователя – это постоянная внимательность к ссылкам, поскольку столкнуться с ним можно даже на самом популярном и доверенном ресурсе.

Валерий Степанов

Руководитель направления Центра компетенций по информационной безопасности Т1 Интеграции

Один из простых способов обезопасить себя от атаки с помощью межсайтового скриптинга — тщательно проверять ссылки, на которые вы нажимаете при просмотре веб-страниц или в теле электронных писем. Нужно быть бдительным, например, если вы видите ссылку вида http://yandx-1.ru, весьма вероятно, что злоумышленник пытается убедить пользователя о переходе на известный сайт. 

В условиях набирающего популярность хактивизма риски, связанные с эксплуатацией XSS, становятся только выше. Сравнительная простота, наличие элементов автоматизации поиска и эксплуатации, а главное – наличие «точки приложения сил» для большого количества людей, позволяют предположить, что количество атак с использованием этой техники будет только расти.

При этом, XSS-атаки дают злоумышленнику широкий спектр возможностей, от показа нежелательного для пользователя контента до кражи данных, заражения ПК или получения контроля над учетной записью жертвы.

Итоги премии «Киберпросвет» 2024 Итоги премии «Киберпросвет» 2024

Комментарии 0