Веб-атака gesture jacking похожа на кликджекинг, но надежнее

Веб-атака gesture jacking похожа на кликджекинг, но надежнее

Веб-атака gesture jacking похожа на кликджекинг, но надежнее

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

Новый вектор атаки, по сути, представляет собой вариант кликджекинга, он же UI redress (переадресация интерфейса). Обнаруживший его эксперт Amazon назвал свою находку cross window forgery (дословно: межоконный подлог). Ознакомившись с новой угрозой, Эрик Лоуренс (Eric Lawrence) из Microsoft решил, что gesture jacking (перехват жеста) будет точнее.

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

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

Добиться от посетителя нужного жеста можно с помощью встроенного интерактивного элемента, который выводит, к примеру, такое сообщение: «Нажмите и удерживайте клавишу ввода, чтобы продолжить».

 

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

 

«Атака gesture-jacking более надежна [в сравнении с кликджекингом], так как при этом не нужно тщательно позиционировать окна, рассчитывать время клика и учитывать особенности настройки дисплея пользователя», — отметил в своем блоге Лоуренс.

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

Разработчики браузеров пытаются бороться с этой неистребимой проблемой. Компания Google, например, ввела опцию принудительной загрузки страниц без фокуса на указанных в URL фрагментах. В Mozilla обсуждают такую возможность, но пока обходятся патчами (CVE-2023-34414, CVE-2023-6206), хотя это вряд ли уязвимость — скорее фича.

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

Хорошо помогает запрет демонстрации страниц в фреймах через настройки Content Security Policy. Использование опции frame-ancestors позволит контролировать список URL прямых родителей по DOM, которым разрешено использовать контейнеры <frame>, <iframe>, <object>, <embed>. Как вариант, можно организовать спецпроверки (размер окна при загрузке контента, длительность подачи запроса через клавиатурный ввод) и активировать элементы интерфейса на страницах лишь по сигналу об отсутствии угрозы.

Подпишитесь на новости

Обновите Telegram для Android: версия 13.2.2 закрыла опасную уязвимость

Telegram исправил уязвимость в HTML-виджетах, которые мессенджер открыл для ботов 9 ноября. Через ошибку скрипт из обычного сообщения мог выйти за пределы песочницы и выполнить машинный код на устройстве. Проблема находилась в движке JavaScript QuickJS, который Telegram использует в собственном форке QuickJS-ng.

Патч описан в журнале изменений песочницы виджетов Telegram на GitHub. Парсер QuickJS принимал конструкцию await using в заголовке цикла даже внутри обычных, неасинхронных функций.

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

О проблеме сообщили применительно к Telegram для Android 13.2.1, но, по данным Telegram, она затрагивала все платформы, где собирается форк движка. Исправление внесли 10 ноября: теперь парсер выдает синтаксическую ошибку на такую конструкцию. В тот же день вышла версия Telegram для Android 13.2.2.

Уязвимый код попал в основную ветку QuickJS-ng 16 мая вместе с поддержкой явного управления ресурсами. Ошибку описал разработчик Андреас Рёсдал.

9 ноября он опубликовал в репозитории QuickJS-ng аудит безопасности всего движка, проведенный с помощью модели Claude от Anthropic. В отчете 27 находок, уязвимость с await using в нем третья, с высоким уровнем опасности.

RSS: Новости на портале Anti-Malware.ru