Agnitum Security Insight Межсайтовый скриптинг как скрытая Интернет-угроза

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

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

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

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

Что такое межсайтовый скриптинг
Скрипт – это набор команд, написанных на языке программирования, который исполняется на стороне пользователя или удаленном веб сервере. Уязвимости межсайтового скриптинга, или XSS (от англ. Сross Site Sсriрting) возникают в тех случаях, когда скрипт (обычно зловредный), находящийся на одном сайте, получает возможность взаимодействия с содержимым, размещенным на другом сайте или локальной HTML-странице, отсюда и термин – «межсайтовый». В отличие от других типов атак, злоумышленники используют сервера, уязвимые к XSS, как посредника для осуществления атак на посетителей пораженных сайтов, заставляя браузеры будущих жертв исполнять скрипты, заранее помещенные на них злоумышленниками.

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

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

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

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

Для того чтобы лучше представить масштабы проблемы, связанной с эксплуатацией XSS, можно привести несколько говорящих цифр: по разным оценкам, не менее половины всех веб-сайтов имеют дыры для XSS атак, при том как уязвимость XSS-типа составляет по меньшей мере 80 процентов от всех документированных веб-уязвимостей. Почти каждый веб-портал когда-либо в своей истории становился жертвой XSS; и такие гранды, как Google, MSN и Facebook ощутили влияние XSS уязвимостей на своем собственном опыте. Уже спал ажиотаж от обнаружения XSS-уязвимостей сервиса «Одноклассники.ру» в конце 2007 года, а летом 2008 года такие уязвимости обнаружили и проэксплуатировали в сервисах Вконтакте (в июне – в сервисе «Приложения») и BestPersons (атака на сервис доступа к популярным социальным сетям произошла 21 июля).

Виды XSS
На текущий момент различается три вида XSS уязвимостей:
Локальная, или XSS нулевого типа, когда проблема возникает в клиентской части скрипта на веб-странице. Для эксплуатации такой уязвимости, атакующий создает веб-страницу с вредоносным JavaScript-кодом внутри и посылает будущей жертве ссылку на нее (используя разные способы, включая e-mail, чат, форум и т.д.). После того, как пользователь переходит по заданной ссылке, выполняется удаленный скрипт, который создает на компьютере пользователя уязвимую HTML-страницу, содержащую JavaScript-код. Этот код будет выполнятся с правами текущего пользователя (в основном все пользователи зарегистрированы как Администраторы). После проведения всех этих действий, атакующий получает доступ на локальный компьютер жертвы и имеет возможность просматривать файлы и получать другую значимую информацию.
Неустойчивый, или XSS первого типа. Этот вид уязвимости является самым распространенным из трех и затрагивает уязвимости работы серверных скриптов, которые в недостаточной мере проверяют отсылаемую клиентом информацию. XSS первого типа возникают, когда пользователь получает ссылку на зловредный скрипт, будучи уже «залогиненным» на определенный веб-сайт. После того, как ссылка активируется и скрипт запускается, он забирает контроль над текущей веб-сессией на себя и скрытно управляет действиями активной веб-страницы. Такой вид вторжения может иметь место только в текущей пользовательской сессии.
Устойчивый тип, или, XSS второго типа – является самой нарочитой и опасной уязвимостью, поскольку может затронуть сразу большое число пользователей без особого применения приемов социального инжиниринга. Как и во втором случае, уязвимость существует на стороне серверных скриптов, но присутствует на них на протяжении длительного времени, обеспечивая таким образом более мощный поражающий эффект. Уязвимость возникает, когда легитимный сервер содержит на своих ресурсах фрагменты зловредных скриптов, помещенных на него злоумышленником, а потом отдает такие объекты на исполнение клиентским браузерам.

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

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

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

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

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

Основной момент, на который следует обратить внимание, это запрет исполнения браузером программного кода, находящегося на недоверенных источниках. Пользователи Internet Explorer могут заблокировать исполнение скриптов, подняв «ползунок» уровня безопасности в настройках программы до уровня «высокий», запретив таким образом выполнение какого-либо кода. После проведения таких действий большинство веб-страниц будет отображаться неправильно, и чтобы этого избежать, следует в дальнейшем занести доверенные сайты в список исключений, которым все-таки будет дозволено запускать исполняемые скрипты. Пользователи Firefox могут воспользоваться дополнительно подключаемым модулем под названием NoScript, который действует подобно настройкам IE – блокирует любой исполняемый код, при этом разрешая его заданным доверенным сайтам. Полезно также будет поднять уровень защиты личных данных во вкладке «Конфиденциальность» настроек IE , что запретит хранение постоянных cookie-файлов на вашем компьютере.

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

Также немаловажно, чтобы ваш браузер и операционная система были постоянно обновлены, чтобы известные XSS-атаки на них были безуспешными.

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

И, конечно же, нельзя пренебрегать общими правилами безопасного поведения в Интернете – не открывать ссылки от незнакомых лиц и не доверять тем, кого вы не знаете.
30 июня 2017Продукты ESET детектируют Win32/Diskcoder.C Trojan, начиная с 14:30 по московскому времени 27 июня, а также защищают на сетевом уровне от эксплойт-атак с использованием EternalBlue. Профилактика шифратора...
29 мая 2017Специальные условия приобретения Microsoft Office 365 для компаний малого и среднего бизнеса До 30 июня 2017 года компании малого и среднего бизнеса могут получить скидки на Office 365 Бизнес и Office...
14 марта 2016- 70% сотрудников выносят из компании конфиденциальные данные. - 56% сотрудников уносят строго конфиденциальную информацию с собой на «флешке». - 37% респондентов оставляют корпоративные ноутбуки без...
12 января 2016Только до 16.03.16 при одновременном обновлении и добавлении нового модуля (для существующих клиентов), или одновременной покупке более одного модуля с линейки компании Raytheon|Websense (для новых пользователей), скидка на второй модуль 50%. Данная скидка распространяется при условии, что сумма второго модуля составит не более 70% от первого в счете.
5 января 2016В период с 14 декабря 2015 по 10 февраля 2016 года действуют специальные цены для предприятий рекламной индустрии: данные организации имеют право закупки коммерческих лицензий CorelDRAW Graphics Suite X7 со скидкой 30% от действующего прайс-листа.
5 января 2016Скидка 50% распространяется на годовые и многолетние лицензии программного обеспечения Autodesk. Акция действует во всех странах СНГ до 22 января 2016 года
Подписка на рассылку

Популярные продукты
SafeInspect контроль привилегированных пользователей
SafeInspect контроль привилегированных пользователей
Privileged Access Management (PAM) решение - Контроль привилегированных пользователей
DLP система WEBSENSE
DLP система WEBSENSE
Первый и единственный в отрасли поставщик комплексной системы защиты информации
Защита информации Endpoint Protector DLP
Защита информации Endpoint Protector DLP
Endpoint Protector DLP самая мощная система защита информации от утечек данных не только для Крупного но и для Малого и Среднего бизнеса
ArchiCAD 19
ArchiCAD 19
ARCHICAD 19 – Прорыв в BIM производительности. Программа №1 для архитекторов в мире.
1С Бухгалтерия 8
1С Бухгалтерия 8
1С Бухгалтерия 8 программа №1 для финансово-хозяйственной деятельности предприятий
CorelDRAW Graphics X7
CorelDRAW Graphics X7
CorelDRAW Graphics X7 это Самый полный комплект приложений для графического дизайна
Kaztoken
Kaztoken
USB-токены KAZTOKEN служит
для строгой двухфакторной аутентификации и защиты электронной цифровой подписи ЭЦП
Kerio Connect
Kerio Connect
Превосходя Exchange, лучшая альтернатива в 120 странах
Red Hat Enterprise Linux 7
Red Hat Enterprise Linux 7
Red Hat Enterprise Linux — самая высокопроизводительная операционная система вмире
Oracle Database
Oracle Database
Oracle Database 12c - самая популярная и востребованная база данных в мире.