Защита от DOM‑clickjacking и безопасное использование автозаполнения

В 2023–2024 году была описана DOM‑ориентированная вариация кликджекинга, которая эксплуатирует поведение расширений менеджеров паролей: расширение автоматически заполняет поля формы, когда пользователь кликает или фокусирует их. Атакующий может незаметно наложить невидимую форму поверх обычной интерактивной области страницы (кнопки «Закрыть», баннеры с согласием cookie и т. п.), и при клике менеджер паролей вставит сохранённые учётные данные в эту невидимую форму. Пользователь при этом не увидит утечки.
Важно: этот материал объясняет природу уязвимости и даёт рекомендации по защите. Он не содержит пошаговых инструкций по созданию эксплойта.
Как работает атака
Ключевая идея проста и опирается на модель DOM и на поведение расширений:
- Пользователь открывает страницу под контролем атакующего. На странице находится легитимный видимый элемент, например баннер cookie или кнопка закрытия всплывающего окна.
- Скрипт страницы создаёт или перемещает в эту область невидимую форму (например, стили opacity:0; pointer-events:auto; position:absolute;). По виду она совпадает с кликабельной зоной.
- Пользователь кликает по зоне, но фактически кликает по невидимой форме. Расширение менеджера паролей, замечая фокус/клик по полю ввода, автоматически подставляет логин, пароль, TOTP или данные карты.
- Содержимое может быть прочитано скриптом страницы и отправлено злоумышленнику.
Атака может похищать разные типы данных, которые менеджер паролей автозаполняет: пароли, коды одноразовой двухфакторной аутентификации (если менеджер хранит такие поля), данные карт и другие секреты.
Почему это работает
Проблема частично связана с тем, как браузеры рендерят страницу и как расширения взаимодействуют с полями формы. Даже если расширение пытается проверять контекст, отличить «невидимую» форму, наложенную на другую область, непросто. Многие менеджеры паролей по умолчанию заполняют поля при клике/фокусе, что упрощает атаку.
Как отметили разработчики некоторых менеджеров паролей, фундаментальная проблема часто лежит в механике рендеринга и обработке событий в браузерах, поэтому полное исправление на стороне расширений может быть затруднено.
Когда атака не сработает (контрпримеры)
- Расширение требует явного подтверждения от пользователя (например, нажать кнопку в всплывающем окне расширения) перед заполнением — тогда автоматическая подстановка блокируется.
- Менеджер паролей не автозаполняет поля при простом фокусе/клике, а предоставляет только кнопку «вставить из менеджера».
- Используется настольное/мобильное приложение менеджера паролей, которое копирует значение в буфер обмена только по явному действию пользователя.
- Сайт применяет комплексные меры контроля контекста и защиты форм (например, динамическая валидация, CSP‑правила, согласованные с менеджерами паролей практики) — хотя это редкий случай.
Что нужно сделать сразу (пошаговая инструкция для пользователя)
- Обновите расширение менеджера паролей до последней версии. Многие вендоры уже выпустили улучшения, добавляющие подтверждение перед автозаполнением.
- Отключите автозаполнение в расширении (рекомендуется как временная мера).
- Настройте режим доступа расширения: «По клику» или «Только для выбранных сайтов».
- По возможности используйте настольное или мобильное приложение менеджера паролей и копируйте пароли вручную.
- Установите блокировщик скриптов для незнакомых сайтов (по умолчанию блокировать JavaScript и включать по мере необходимости).
- Включите надёжную двухфакторную аутентификацию или используйте аппаратный ключ/пасскей.
Отключение автозаполнения в расширении
Автозаполнение — главный функциональный вектор атаки. Отключите его, чтобы расширение не вставляло данные по простому фокусу.
Обычно это делается в настройках расширения в разделе с именем «Autofill and save», «Autofill» или аналогичном: найдите переключатель «Автозаполнение на фокус» и выключите его. После этого автозаполнение будет происходить только по явному нажатию кнопки расширения или по другой явной команде.
Важно: у разных менеджеров путь к опции может отличаться. Если вы не уверены, посмотрите справку вендора.
Настройка доступа расширений: «По клику» или «На конкретных сайтах»
Браузеры позволяют ограничить, где расширение может читать/взаимодействовать со страницей. Это снижает риск автоматической подстановки на сайтах, которым вы не доверяете.
- Откройте страницу расширений в вашем браузере.
- Найдите менеджер паролей и откройте «Детали» или «Права доступа».
- В разделе «Доступ к сайтам» выберите «По клику» или «Только для указанных сайтов».
При режиме «По клику» расширение активируется только после того, как вы нажмёте его иконку. В режиме «Только для указанных сайтов» расширение сможет работать только на заранее разрешённых доменах.
Используйте настольное или мобильное приложение менеджера паролей
Мобильные и настольные клиенты обычно требуют явных действий для копирования и вставки учётных данных. Это снижает вероятность автоматизированной кражи через веб‑страницу. Рабочий паттерн:
- На странице входа откройте приложение менеджера паролей;
- Найдите запись и нажмите «Копировать логин» / «Копировать пароль»;
- Вставьте вручную в поля на сайте.
Плюс: многие приложения предлагают защищённый буфер обмена, автоматическое очищение буфера и другие полезные функции.
Блокировщики скриптов как дополнительный барьер
Большинство таких атак зависят от скриптов на странице. Блокировка скриптов значительно затруднит эксплуатацию уязвимости. Рекомендуемые практики:
- Блокировать JavaScript по умолчанию на незнакомых сайтах.
- Разрешать скрипты только доверенным доменам.
NoScript и похожие расширения позволяют гибко управлять исполнением активного кода. Это снижает вероятность того, что скрытая форма будет создана или смещена так, чтобы вызывать автозаполнение.
Мини‑методология: как безопасно проверить свои настройки (без тестирования уязвимости)
- Проверьте, как ваше расширение ведёт себя на знакомых ресурсах: активируется ли автозаполнение сразу при фокусе? Отключите автозаполнение и повторите проверку.
- Убедитесь, что доступ расширения ограничён «по клику» или «на конкретных сайтах».
- Попробуйте копировать пароли из настольного приложения: насколько удобно и безопасно это происходит?
Не пытайтесь воспроизводить эксплойт на публичных ресурсах — это может нарушать правила использования и создать риски безопасности.
Роль‑ориентированные контрольные списки
Для обычного пользователя:
- Обновить расширение менеджера паролей.
- Отключить автозаполнение по фокусу.
- Перевести расширение в режим «По клику» или «Только для выбранных сайтов».
- Включить 2FA и использовать аппаратные ключи там, где возможно.
- Использовать блокировщик скриптов на незнакомых сайтах.
Для системного администратора / специалиста по безопасности:
- Проверить политику использования менеджеров паролей в корпоративной сети.
- Обучить сотрудников безопасному использованию менеджеров паролей (копирование из приложения, не использовать автозаполнение на общедоступных терминалах).
- Рассмотреть внедрение SSO и аппаратных ключей для критичных систем.
- Провести аудит расширений, разрешённых к использованию на корпоративных рабочих станциях.
План действий при подозрении на компрометацию учётной записи (SOP)
- Немедленно смените пароль на скомпрометированном сервисе с устройства, которому доверяете.
- Удалите старые сессии и выйдите из всех устройств, если сервис это поддерживает.
- Отозовите и перенастройте 2FA (особенно если были скомпрометированы кодовые устройства).
- Проверьте и, при необходимости, смените пароли на других сервисах, где использовался тот же пароль.
- Уведомите отдел безопасности вашей организации и провайдеров сервисов при подозрении на массовую утечку.
Ментальные модели и эвристики безопасности
- «Автозаполнение = потенциальная автоматизация: отключи автоматизацию там, где она не нужна.»
- «Расширение должно иметь минимальные права доступа.»
- «Копировать и вставлять вручную — немного медленнее, но значительно безопаснее на подозрительных сайтах.»
Критерии приёмки изменений конфигурации (что считать успешно выполненным)
- Автозаполнение по фокусу отключено в используемых менеджерах паролей.
- Доступ расширения ограничен по клику или по списку доверенных доменов.
- На корпоративных машинах внедрена политика по контролю установленных расширений и их прав.
- Сотрудники прошли краткий обучающий модуль по безопасному использованию менеджеров паролей.
Диаграмма принятия решений (Mermaid)
flowchart TD
A[Обнаружили уязвимость автозаполнения?] -->|Да| B{Расширение может требовать подтверждение}
B -->|Да| C[Оставить автозаполнение включённым, но следить за обновлениями]
B -->|Нет| D[Отключить автозаполнение]
D --> E{Использовать настольное приложение?}
E -->|Да| F[Перейти на ручное копирование из приложения]
E -->|Нет| G[Ограничить доступ расширения «По клику»]
C --> H[По возможности сообщить вендору и мониторить патчи]
G --> H
F --> H
Безопасность учётных записей: лучшие практики
- Используйте уникальные пароли для каждого сайта.
- Включайте двухфакторную аутентификацию. Предпочтительнее аппаратные ключи (FIDO2) или passkeys.
- Если используете TOTP, держите приложение‑аутентификатор на отдельном устройстве от основного рабочего устройства.
- Регулярно проверяйте список активных сессий и устройства в учетных записях.
Альтернативные подходы
- Хранение паролей в шифрованном менеджере без функции автозаполнения — даёт контроль, но увеличивает число ручных операций.
- Корпоративные SSO‑решения с централизацией доступа и аппаратными ключами — сокращают зависимость от сторонних расширений.
- Использование встроенных в браузер менеджеров паролей: они тоже могут быть уязвимы, но у некоторых браузеров есть дополнительные механизмы изоляции.
Примечания по конфиденциальности и соответствию (GDPR)
Если вы управляете корпоративной инфраструктурой, учтите, что компрометация учётных записей может повлечь утечку персональных данных. План реагирования должен включать оценку объёма утечки, уведомление пострадавших и, при необходимости, регулятора в соответствии с действующим законодательством.
Важно: если вы собираете логи активности или метаданные о попытках автозаполнения, убедитесь, что обработка этих данных соответствует вашей политике конфиденциальности.
Короткий глоссарий
- DOM: структура документа веб‑страницы, через которую скрипты управляют элементами.
- Clickjacking: приём, при котором пользователь вводит данные или выполняет действие на невидимой/замаскированной сущности.
- Autofill (автозаполнение): функция менеджера паролей, автоматически вставляющая сохранённые данные в поля формы.
- 2FA/TOTP: двухфакторная аутентификация; TOTP — временные одноразовые коды.
Заключение
DOM‑clickjacking использует легальную функциональность браузеров и менеджеров паролей, чтобы выманить учётные данные без видимого вмешательства. Основные меры защиты — снизить автоматизм: отключить автозаполнение или ограничить права расширения, использовать настольные/мобильные клиенты, блокировать скрипты на недоверенных сайтах и применять надёжные вторичные факторы аутентификации. Для организаций важно внедрить политику контроля расширений и обучить пользователей базовым практикам безопасности.
Важное: регулярные обновления плагинов и внимательность при взаимодействии с незнакомыми веб‑страницами остаются ключевыми превентивными мерами.
Краткое резюме ниже.
Краткое резюме:
- Отключите автозаполнение и ограничьте права расширения.
- Предпочитайте настольные/мобильные клиенты менеджеров паролей.
- Блокируйте скрипты на недоверенных сайтах.
- Используйте надёжную 2FA или аппаратные ключи.
Похожие материалы

Как просмотреть и удалить историю поиска в YouTube

Исправить ошибку Hueneme Negev — Black Ops 6

Защита от DOM‑clickjacking автозаполнения

Визуальный поиск: CamFind vs Blippar — тест

Блокировка сайтов на общем ПК — HomeGuard, Qustodio
