Шпионские расширения браузера — как хакеры воруют куки и токены

Шпионские расширения браузера — как хакеры воруют куки и токены

Шпионские расширения браузера — как хакеры воруют куки и токены

Ни одна современная программа не собирает столько приватных мелочей о повседневной жизни, сколько веб-обозреватель. Логины к корпоративным сервисам, JWT из облачных панелей, авторизационные маркеры к почте, история платежей в банке — всё лежит буквально на расстоянии пары JavaScript-вызовов. Расширения обещают «тёмную тему», «удаление рекламы», «экономию батареи», и мы привычно кликаем «Установить». Тот же единственный клик открывает злоумышленнику тихий тоннель к сеансу пользователя. Уже летом 2025 года специалисты Malwarebytes обнаружили восемнадцать таких надстроек в официальных магазинах Chrome и Edge; суммарно их скачали свыше двух миллионов человек, не подозревавших, что каждое открытое окно перебрасывает данные на удалённый сервер.

Класс атаки, при которой плагин перехватывает cookie и токены, не нов — первые вспышки фиксировали ещё во времена Manifest V1. Однако именно нынешний год показал, что масштабы способны расти экспоненциально: другая кампания затронула уже 36 популярных расширений, поставив под удар 2,6 млн аккаунтов. При этом половина жертв работала в корпоративных доменах, а это означает прямой проход к корп-почте, Google Workspace, AWS Console и прочим «золотым жилам» любой внутренней инфраструктуры.

Почему браузерная надстройка обладает таким могуществом? Ответ в архитектуре веб-песочницы. После установки расширение получает манифест, где перечисляет права: доступ к chrome.cookies API, webRequest, tabs и, в отдельных случаях, к devtools. Именно chrome.cookies.getAll() или browser.cookies.getAll() отдаёт JSON-список с именами, доменами и флагами Secure/HttpOnly. Если плагин дополнительно запрашивает storage, он может сохранить эти куки в локальном хранилище, а потом — незаметно отправить через XMLHttpRequest или fetch в C2. Дальше дело техники: атакующий импортирует cookie в свой профиль, подменяет User-Agent, и сервер принимает грабителя за легитимного пользователя.

В плане токенов ситуация лишь сложнее. OAuth-маркеры, обновляющие 90-дневные сеансы к GitLab или облачному Jira, лежат либо в localStorage, либо в IndexedDB. Расширению достаточно права на "*://*/" в манифесте, чтобы открыть произвольный фрейм с доменом жертвы и выполнить скрипт из контента-скрипта, который прочитает токен и передаст его в фоновой странице. Эта техника стала основой атаки «GreedyBear» по линии Firefox: 150 ложных кошельков MetaMask и TronLink внедряли код именно таким методом, а после обновления версии добавляли стелс-механизм вывода средств.

Критики могут возразить: «Но же Chrome перевёл экосистему на Manifest V3, где запрещён фоновый persistent page». Увы, переход оказался не таким линейным. Политика ExtensionManifestV2Availability позволяет администраторам продлить жизнь плагинам старого формата до июня 2025, и многие корпоративные парки ею воспользовались. А пока расширение остаётся на V2, оно спокойно держит долговечный бекграунд, где прослушивает куки-события и синхронизирует логи при каждом обновлении.

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

Дальше вступает в силу классический kill-chain браузерного шпиона: установка → сбор сессионных артефактов → сжатие → эксфильтрация. Последний этап часто маскируется под легальный транспорт: C2 публикуется в облачный объект-стораж, видимый лишь авторизованным ключом, или и того проще — файлы бросаются в Telegram-бота под видом картинок. В кампании Cyberhaven, описанной Darktrace, плагин передавал токены в базу Firebase, где правила доступа специально ослабляли CORS-контроль.

Откуда же пользователь получает такую «подарочную мину»? Каналов несколько. Чаще всего расширение присутствует в официальном магазине, но снабжено поддельными отзывами, купленными через бот-ферму, и значком «Работает офлайн». Второй путь — принудительная установка через групповые политики: атакующий предварительно компрометирует AD-узел или CI/CD и подменяет файл Registry.pol. Третий формат особенно популярен в финтехе: сотрудники загружают локальные dev-билды плагинов для теста, а внутри архива скрывается PowerShell-скрипт, который после запуска открывает браузер в режиме --load-extension.

Компании, столкнувшиеся с утечкой, отмечают, что расследование усложняется переносимостью куков. Инцидент-респондер видит только сетевой след к облачному C2 и пару десятков POST-запросов, после чего киберпреступники авторизуются в VPN уже с реального IP сотрудника. ES-Tire в июне сообщила: эксплойт-команда потратила три минуты, чтобы переключиться с украденной куки на имитацию рабочих запросов, обойдя MFA, поскольку маркер Refresh всё ещё действовал.

Что поможет не попасть в эту ловушку? Во-первых, минимум прав: любое расширение, запрашивающее cookies и универсальную маску URL, заслуживает недоверия. Во-вторых, собственный репозиторий плагинов: пересобирайте open-source-надстройки, подписывайте их V3-ключом и раскатывайте через MDM. В-третьих, облачный контроль SaaS-сеансов: Security Command Center или аналог проверит, если токен вдруг авторизовался из нового ASN через минуту после клика по рекламе.

Модернизация браузеров тоже идёт в нужную сторону. Manifest V3 уже запрещает cookies.getAll без интерактивности, а права host_permissions вынесены в runtime-диалог. Firefox следует похожей дороге, добавляя optional_permissions и квоты на сетевые обращения. Но пока миграция не завершена, корпорациям придётся самим «затянуть гайки» и отключить неизвестные расширения через ExtensionInstallBlocklist.

Наконец, одна из самых недооценённых рекомендаций — ротация токенов. Если backend перенастроен так, что Refresh-маркеры живут 30 дней, а cookie — всего час, грабителю придётся мгновенно действовать после заливки, что резко повышает шансы детектирования аномалий по SIEM.

Вывод. Расширения, украшающие интерфейс или «ускоряющие VPN», остаются удобнейшей вратой внутрь любого профиля. Пока магазины расширений гонятся за количеством, атакующие будут прятать шпионский код под личиной фоторедакторов и генераторов скидочных купонов. Пользователю такой «пластырь» обходится дороже любого zero-day: здесь не нужна RCE — достаточно украденной cookie, чтобы мгновенно переселиться в чужой облачный кабинет. Значит, главный вывод прост: перечисляйте доступы, считайте API-вызовы и не доверяйте плагинам, которые хотят «всего лишь чуть-чуть» посмотреть ваши данные.

вредоносные расширения браузер куки токены кража сессий
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Конференция RoadShow SearchInform 2025. Технологии будущего: трансформация ИБ.

30 сентября – 20 ноября | 27 городов РФ и СНГ | 5000 участников

Эксперты расскажут, как нормативные требования и новые технологии меняют ИБ сегодня.

Реклама. 18+, ООО "СЕРЧИНФОРМ", ИНН 7704306397


Дэни Хайперосов

Блог об OSINT, электронике и различных хакерских инструментах