главное в кибербезопасности Читать в канале
Атаки и утечки 24 сентября 2026 5 мин

Вредоносное расширение Firefox крадет аккаунты Google через поддельный верификатор личности

Расширение Firefox крадет аккаунты Google

Вредоносное расширение для браузера Mozilla Firefox, известное как pdf-para-texto@extensao.local, эксплуатирует пользователей Google. Расширение маскируется под инструмент для проверки личности при работе с защищенными PDF-файлами. Оно было опубликовано в магазине дополнений Firefox 3 сентября 2026 года. Вредоносная функциональность появилась в версии 1.4 11 сентября 2026 года. Расширение нацелено на португало- и испаноязычных пользователей. По данным исследователей, оно не имеет значительной пользовательской базы, поэтому ожидаемый ущерб оценивается как низкий. Внимание привлек способ обхода обнаружения на всех этапах работы.

Атака использует удаленную загрузку вредоносного кода

Исходный код расширения, отправленный в магазин, не содержит вредоносной логики, целевых URL или конечных точек для эксфильтрации данных. После установки расширение загружает конфигурацию и полезную нагрузку с инфраструктуры злоумышленников. Затем оно внедряет скрипт для автоматизированного захвата аккаунта непосредственно на страницы accounts.google.com, которые посещает жертва. В результате злоумышленники получают сессионный cookie Google и, при запросе пароля, значение для сброса пароля, которое контролирует атакующий. Статический анализ выявил несколько необычных, но по отдельности некритичных деталей. Скрипты контента сопоставляются с URL *.google.com и .gusercontent.com при запуске документа. Запрашиваемые разрешения включают webRequest, storage и https://.google.com/. Скрипт content.js изменяет интерфейс PublicKeyCredential Web Authentication API (WebAuthn), чтобы проверки возможностей всегда сообщали о наличии платформенного аутентификатора или passkey. Расширение становится опасным только после получения вредоносной конфигурации. Загрузка вредоносной функциональности инициируется обработчиком события установки расширения. После срабатывания browser.runtime.onInstalled расширение открывает активную вкладку по адресу hxxps://pdf[.]gusercontent[.]com/oninstalled с задержкой в пять секунд. Домен gusercontent[.]com контролируется злоумышленниками и имитирует легитимный googleusercontent.com. Скрипт content.js внедряется на эту страницу, так как манифест также соответствует *.gusercontent.com. Он создает открытый мост сообщений между страницей и фоновым рабочим процессом расширения. Страница установки не содержит явной вредоносной функциональности, но загружает скрипт с инфраструктуры злоумышленников. Этот скрипт отправляет сообщение, которое запускает парсинг и сборку вредоносной логики внутри background.js. Обработчик сообщений background.js выполняет функцию _call, которая устанавливает локальное хранилище браузера и перезапускает инициализацию. Это повторно считывает конфигурацию и регистрирует слушатель webRequest.onCompleted с использованием предоставленных URL-фильтров, имен заголовков, правил сопоставления и целевого URL. Фоновый рабочий процесс background.js состоит из четырех частей. Первая — _call — является универсальным диспетчером, позволяющим вызывать функции по их именам и аргументам в виде строк. Логика внутри функции init() считывает конфигурацию из browser.storage.local и парсит объект конфигурации для построения реальной функциональности. Она использует диспетчер _call для выполнения функций. Наконец, определяются два обработчика событий. Первый обрабатывает события сообщений, обеспечивая канал связи между фоновым рабочим процессом и скриптом контента. Второй используется для запуска цепочки активации вредоносного ПО сразу после установки расширения. После установки страницы oninstalled скрипт вызывает postMessage, который записывает массив в browser.storage.local. Этот массив определяет параметры для перехвата сетевых запросов и инъекции кода. Разрешенное прослушивание отслеживает все ответы на *.google.com на наличие заголовка Set-Cookie с oauth_token и отправляет значение захваченного cookie вместе с идентификаторами жертвы на конечную точку эксфильтрации злоумышленника. Любая вкладка, идентифицированная как accounts.google.com, получает выполненный скрипт load-addon.js через executeScript. После установки background.js не изменяется, меняются только данные, на которых он работает.

Атака нацелена на пользователей Google

Скрипт страницы /oninstalled выполняет несколько шагов для настройки захвата аккаунта еще до отправки конфигурации в фоновый рабочий процесс. Он вызывает реальный API Federated Credential Management (FedCM) Google для бесшумной идентификации вошедшего в систему аккаунта Google жертвы, определяя leadId и email. Затем он сохраняет {leadId, email} в объект конфигурации, отправляемый в фоновый рабочий процесс. Скрипт загружает /loginSdk/load-addon.js, который позже будет внедрен в вкладки accounts.google.com, и передает его вместе с определенными идентификаторами жертвы в фоновый рабочий процесс через мост сообщений. После этого браузер перенаправляется на реальную страницу https://accounts.google.com/EmbeddedSetup?Email=, передавая управление собственному потоку входа в систему Google. Как только скрипт контента загружается на сопоставленной странице accounts.google.com, фоновый рабочий процесс внедряет загруженный load-addon.js непосредственно на реальную страницу Google через executeScript. С этого момента load-addon.js превращает аутентифицированную сессию браузера жертвы в удаленно управляемого бота для захвата аккаунта, работающего полностью в домене Google. Он создает полноэкранный оверлей «Validating your identity…» для сокрытия автоматизации от жертвы. Скрипт управляет реальным процессом входа в систему Google через URL, пропуская шаг ввода пароля, принудительно вызывая запрос passkey/security-key и обнаруживая страницы блокировки Google от ботов (errors/robot.png), перезагружаясь с инкрементируемым параметром cid. Если Google требует сброс пароля, скрипт генерирует случайный действительный пароль, устанавливает его через нативный сеттер значения HTMLInputElement и отправляет форму, бесшумно изменяя реальный пароль аккаунта Google жертвы на значение, которое злоумышленник записывает и контролирует. Параллельно, слушатель webRequest.onCompleted в background.js отслеживает все ответы https://.google.com/ на наличие заголовка Set-Cookie с oauth_token и передает захваченное значение cookie в конечную точку сбора злоумышленника. Он передает в реальном времени транскрипт — текст страницы и снимок интерактивных элементов пользовательского интерфейса — в конечную точку логирования злоумышленника примерно каждые 500 мс, предоставляя злоумышленнику видимость каждого угона в процессе. В конце жертва перенаправляется обратно на инфраструктуру злоумышленника. Это расширение предоставляет злоумышленнику два независимых пути к одному и тому же аккаунту Google.

Обновиться до версии 1.4.1 или удалить расширение

Пользователям рекомендуется обновить расширение pdf-para-texto@extensao.local до версии 1.4.1, если она доступна, или удалить его из браузера Firefox. Необходимо проверить список установленных расширений и удалить любые подозрительные или неизвестные программы. Для защиты аккаунтов Google рекомендуется использовать двухфакторную аутентификацию и регулярно проверять историю входов и активные сессии. Следует проявлять осторожность при установке новых расширений для браузера, обращая внимание на запрашиваемые разрешения и отзывы других пользователей. В случае обнаружения подозрительной активности, связанной с аккаунтом Google, следует немедленно сменить пароль и проверить настройки безопасности.

Источник: Socket