Платим блогерам
Редакция
Новости Software jMeirou

реклама

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

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

реклама

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

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

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

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

"Как минимум, атакующий обладает полным контролем до тех пор, пока пользователь оставляет однажды поражённый сайт открытым у себя в браузере; в связи с распространением портативных компьютеров пользователи часто оставляют один часто используемый сайт открытым в течение недель, - пишет Залевски. - В этот период владелец сайта не может сделать ничего - и, на самом деле, надёжного способа проверить, является ли сайт всё ещё скомпрометированным [на стороне клиента], просто нет".

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

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

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

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

Закрытие браузера в теории должно прекращать подобные атаки. Однако теперь существуют возможности обойти и это, используя такие технологии как локальное хранилище HTML5 или Web Workers - специальный API, предназначенный для исполнения кода JavaScript в фоновом режиме.

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

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

Показать комментарии (1)

Популярные статьи

Сейчас обсуждают