Уязвимость менеджеров паролей в браузерах позволяет атаковать через кликджекинг

Уязвимость браузерных менеджеров паролей: кликджекинг атакует через интерфейс дополнений

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

Суть атаки заключается в использовании технологии кликджекинга: пользователь вводится в заблуждение и нажимает на невидимые элементы интерфейса, которые были подставлены злоумышленником. Основная проблема кроется в том, что многие расширения менеджеров паролей, такие как 1Password, Bitwarden, LastPass, NordPass, ProtonPass, Keeper и KeePassXC-Browser, внедряют свои интерфейсные элементы — например, диалоги автозаполнения — непосредственно в структуру DOM просматриваемых страниц. Это делает их уязвимыми к внешнему вмешательству, если на сайте имеется уязвимость типа XSS (межсайтовый скриптинг).

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

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

Кроме кражи логинов и паролей, атака также может быть направлена на извлечение персональных данных и информации о банковских картах. В случаях, когда автозаполнение осуществляется на основе типа поля формы (например, адрес, номер карты или ФИО), а не домена, злоумышленнику достаточно заманить жертву на специально подготовленную страницу на своём сайте. Менеджер паролей, не видя в этом угрозы, может подставить реальные данные пользователя, включая номер карты, срок её действия и CVV-код.

Исследование охватило 11 популярных расширений, суммарно установленных более чем на 39,7 миллиона устройств. Все они оказались подвержены описанному методу атаки. Некоторые разработчики уже отреагировали и выпустили обновления, которые частично блокируют возможность проведения подобных атак. Обновления получили NordPass, ProtonPass, RoboForm, Dashlane, Keeper, Enpass и Bitwarden. Однако такие решения, как 1Password, LastPass, KeePassXC-Browser и iCloud Passwords, пока не получили защиту от данной уязвимости.

Разработчики 1Password прокомментировали ситуацию, заявив, что проблема носит системный характер и не может быть надёжно устранена только на уровне расширения. По их мнению, эффективное решение должно быть реализовано на уровне браузера или через обязательное подтверждение пользователя перед автозаполнением.

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

В качестве демонстрации был приведён пример на сайте issuetracker.google.com, где имелась XSS-уязвимость. Злоумышленнику было достаточно отправить жертве ссылку, активирующую вредоносный скрипт, и стимулировать три последовательных клика — каждый из которых выглядел безобидно: якобы принятие cookie, согласие на персонализацию и подтверждение политики конфиденциальности. На самом деле каждый клик активировал скрытые действия, включая автозаполнение полей менеджером паролей.

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

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

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

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

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

3. Ограничить автозаполнение по домену — в настройках некоторых менеджеров можно запретить подстановку данных на поддоменах или неизвестных сайтах.

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

5. Использовать аппаратные токены и отдельные приложения 2FA — для двухфакторной аутентификации лучше использовать отдельные устройства или мобильные приложения, а не менеджеры паролей.

6. Избегать подозрительных ссылок — не переходите по незнакомым URL, особенно если они ведут на поддомены известных сервисов.

Будущее защиты: кто должен действовать?

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

Заключение

Кликджекинг на расширениях менеджеров паролей — это не просто теоретическая угроза, а реальный вектор атаки, активно исследуемый специалистами. Он объединяет сразу несколько уязвимостей: недостатки в архитектуре расширений, доверие к DOM-элементам страницы и поведение пользователей. Пока не найдено универсального решения, пользователям следует быть особенно осторожными при использовании автозаполнения и внимательно относиться к обновлениям используемых инструментов.

Прокрутить вверх