CSS Bomb: как стили в письме превращаются в кейлоггер для кражи паролей

Исследователь PortSwigger Гарет Хейс (Gareth Heyes) описал новый класс атак на веб-почту, получивший название «CSS bomb». Метод использует обычный код CSS в HTML-письмах, чтобы превратить интерфейс почтового клиента в кейлоггер, который перехватывает нажатия клавиш и крадет пароли в реальном времени — без JavaScript и традиционного вредоносного ПО.

Как работает атака

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

Атакующие используют особенности CSS: мутацию, селекторы атрибутов и псевдоэлементы :before, :after, :has() и :checked. С их помощью можно манипулировать выпадающими списками select, имитируя поля для ввода пароля. Когда жертва печатает в таком «окне входа», каждое нажатие клавиши запускает уникальное CSS-правило, которое отправляет фоновый запрос на сервер атакующего. Так каждый символ незаметно передается злоумышленнику.

Почему это работает там, где не работали старые методы

Ранее концепция CSS-кейлоггеров считалась в основном теоретической: браузеры не обновляют HTML-атрибуты, когда пользователь вводит текст в реальное поле ввода. Новое исследование обходит это ограничение, перехватывая элементы select и HTML-метки label. Это создает полностью работоспособный механизм кражи паролей, который действует даже в почтовых сервисах со строгими санитайзерами, такими как DOMPurify.

Пострадавшие сервисы и демонстрационные эксплойты

Гарет Хейс продемонстрировал работающие эксплойты в нескольких крупных почтовых сервисах:

  • Outlook — баг CSS «gadget» позволил выйти за пределы окна письма и подделать убедительный экран входа в Microsoft.
  • Fastmail — техника CSS hotwiring позволила перехватывать клики на странице для запуска нежелательных действий, а отдельные баги давали возможность скрыто отслеживать факт открытия письма.
  • Gmail и ProtonMail — найдены обходы прокси для изображений.
  • В одной из proof-of-concept атак исследователь объединил уязвимость Gmail с инъекцией промптов в ИИ-браузер, чтобы похитить токены аутентификации Slack через ИИ-почтового ассистента.

Статус исправлений и рекомендации

Атаки полагаются исключительно на CSS и HTML, поэтому могут обходить антивирусы, спам-фильтры и защиты от скриптов, ориентированные на JavaScript. Некоторые из найденных уязвимостей уже исправлены после раскрытий через программы bug bounty, включая исправления от Fastmail. Однако некоторые проблемы, например баг с перехватом меток в Outlook, по сообщениям, остаются нерешенными.

Эксперты рекомендуют почтовым провайдерам:

  • отображать недоверенный контент писем в песочнице (sandboxed iframe);
  • блокировать автоматическую загрузку изображений;
  • запрещать опасные CSS-селекторы, такие как :has() и :checked;
  • ограничивать пользовательские HTML-атрибуты, которые могут использоваться для обхода санитайзеров.

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

Частые вопросы

Какие почтовые сервисы уязвимы к CSS bomb?

Исследование охватило Gmail, Outlook, Yahoo Mail, AOL Mail, Fastmail и ProtonMail. Уязвимости были найдены в большинстве из них, включая обходы прокси для изображений в Gmail и ProtonMail.

Чем CSS bomb отличается от обычного фишинга?

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

Как защититься от CSS bomb?

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

Какие уязвимости уже исправлены?

Fastmail выпустила исправления после раскрытий через bug bounty. Проблема с перехватом меток в Outlook, по данным исследователя, пока остается нерешенной.

Почему CSS-кейлоггеры не работали раньше?

Браузеры не обновляют HTML-атрибуты при вводе текста в реальное поле ввода. Новый метод обходит это ограничение, используя элементы select и HTML-метки label вместо полей ввода.

Что такое CSS hotwiring?

Это техника, продемонстрированная в Fastmail, которая позволяет перехватывать клики на странице и запускать нежелательные действия вместо ожидаемых пользователем.

Может ли CSS bomb украсть данные из других приложений?

В одной из демонстраций исследователь объединил уязвимость Gmail с инъекцией промптов в ИИ-браузер и похитил токены аутентификации Slack через ИИ-почтового ассистента. Это показывает, что атака может выходить за пределы почтового интерфейса.

Атаки с использованием CSS и HTML — не единственная угроза, исходящая от доверенных компонентов. Ранее исследователи показали, как вредонос на Windows крадет синхронизированные passkeys Google, а также как инъекция промптов в Atlassian Rovo уводит данные Jira и Confluence.

Источник: cybersecuritynews.com