Аргентинский ИБ-эксперт Мануэль Кабальеро (Manuel Caballero) опубликовал интересное исследование: эксперт представил сценарий необычной JavaScript-атаки, которая позволяет показывать пользователя бесконечную череду всплывающих окон, даже если тот уже покинул вредоносный сайт. К счастью большинства пользователей, атака работает только против Internet Explorer 11. Впрочем, по данным NetMarketShare, IE11 сейчас занимает немалую долю рынка: браузер используют 10,46% юзеров, он уступает лишь Chrome 55 (37,27%).
В своем блоге Кабальеро описал метод создания «устойчивых popup’ов» в браузере, которые никуда не пропадают, даже после того как жертва покидает страницу, с которой изначально был загружен код. Исследователь пишет, что лимита на количество всплывающих сообщений нет, их может быть бесконечное множество. Единственный способ прервать атаку – закрыть вкладку, так как просто покинуть вредоносную страницу недостаточно.
Подобная атака может быть взята на вооружение операторами фальшивой техподдержки, недобросовестными рекламщиками или операторами scareware. Всплывающие окна могут содержать любые сообщения, «предупреждения» и ссылки. К примеру, если обычный пользователь попадет на сайт фальшивой технической поддержки, он может увидеть всплывающие сообщения, предупреждающие о найденных на его компьютере вирусах или проблемах. Даже если жертва потом перейдет на доверенный и явно легитимный сайт (Google, Wikipedia, Bing), сообщения не исчезнут, и пользователь может решить, что он действительно стал жертвой вируса и пора звонить по указанному телефону.
Эксперт отмечает, что атаку можно реализовать, используя iframe, то есть пользователь может спокойно читать статью на сайте Forbes, в это время на странице загрузится вредоносный рекламный баннер, сработает JavaScript, и появится popup, сообщающий, что компьютер заражен вирусом. При этом переход на другие сайты ничего не даст, сообщение не пропадет. Кабальеро также сумел избавиться от чекбокса внизу всплывающего окна, который в нормальных обстоятельствах позволяет пользователю IE11 запретить странице показывать popup’ы.
Однако всплывающие сообщения – это лишь верхушка айсберга. Основная проблема заключается в том, что IE11 гарантирует злоумышленникам устойчивое выполнение JavaScript-кода, даже если жертва покинула вредоносный сайт. Так что всплывающее сообщение можно заменить произвольным вредоносным кодом, что позволит атакующему делать все, что он пожелает.
«Скажем, обнаружена новая 0-day уязвимость, и атакующему нужно загрузить 5 Мб через браузер жертвы. Как ему удостовериться, что времени на загрузку хватит? С помощью такого устойчивого скрипта у атакующего будет время для чего угодно. С таким устойчивым скриптом можно создать сеть ботов, ничего и никому не устанавливая», — объясняет эксперт.
Кабальеро говорит, что подобная атака может использоваться мошенниками для реализации классических фродерских рекламных схем. К примеру, можно запустить вредоносную рекламную кампанию, которая загружает устойчивый скрипт и вынуждает браузер пользователя скрыто запрашивать рекламу. В итоге скрытая реклама крутится в браузере часами, пока жертва не закроет вкладку.
Исследователь объясняет, что данная проблема – логичное продолжение бага UXSS (universal cross-site scripting) и обхода Same Origin Policy (SOP) через компонент htmlFile/ActiveXObject. Этот баг Кабальеро описал в своем блоге еще две недели назад, но лишь теперь выяснил, что уязвимость может нанести куда больший вред.
Патча для данной проблемы пока нет, так как некоторое время назад Кабальеро вообще перестал сообщать разработчикам Microsoft об уязвимостях, после того как они игнорировали его предупреждения несколько раз.
Для демонстрации бага эксперт создал тестовую страницу, на которой бесконечную череду popup’ов можно пронаблюдать лично.