Исследователь 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