28.07.2026

Расширения StegoAd для Edge прятали вредоносный код в картинках и шрифтах

Microsoft предупредила о вредоносной кампании StegoAd, в которой злоумышленники распространяли малварь через официальный магазин расширений Microsoft Edge. Под подозрение попали 119 расширений, опубликованных от имени более чем 90 аккаунтов разработчиков. На первый взгляд они выглядели как обычные полезные инструменты: блокировщики рекламы, VPN, переводчики, утилиты для скачивания видео и другие аддоны, которые действительно выполняли заявленные функции.

Главная опасность кампании заключалась в доверии к официальному магазину расширений. Пользователь устанавливал аддон не с неизвестного сайта, а из легитимного каталога Microsoft Edge Add-ons. Расширение имело понятное описание, рабочую функцию, положительные отзывы и некоторое время не проявляло подозрительной активности. Именно это делало StegoAd особенно эффективной схемой: вредоносная часть была скрыта глубоко внутри, а внешне продукт выглядел нормальным.

Название StegoAd связано со стеганографией — методом сокрытия информации внутри обычных файлов. В первых версиях кампании вредоносный JavaScript прятался прямо в PNG-иконках расширений. Код дописывался после маркера IEND, который обозначает конец PNG-файла. Изображение при этом продолжало открываться как обычная картинка, а многие средства проверки не замечали лишние данные после завершения файла.

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

Позднее операторы StegoAd усложнили технику сокрытия. Они начали использовать не только PNG, но и WebP, а также файлы шрифтов WOFF2. Вредоносные данные маскировались под азиатские символы, служебные метаданные и обычные элементы файлов. Это позволяло снизить вероятность обнаружения при поверхностной проверке. Расширение загружало внешне безобидный ресурс, а затем извлекало и расшифровывало из него полезную нагрузку.

Механизм расшифровки был многоступенчатым. Вредоносный код мог восстанавливаться через смену регистра символов, подмену цифр, Base64 и XOR. После этого расширение сверяло полученный результат с сигнатурой и только при успешной проверке запускало код. Такая архитектура нужна не только для маскировки, но и для устойчивости: если защитник видит отдельный файл, он не сразу понимает, что внутри находится исполняемая логика.

StegoAd также применяла задержку перед активацией. Некоторые расширения начинали вредоносную работу только через несколько дней после установки. Это важный прием обхода анализа. Автоматические проверки магазинов и песочницы часто наблюдают расширение ограниченное время. Если в первые часы аддон ведет себя нормально, он может пройти проверку. А реальная вредоносная активность начинается уже потом, когда пользователь давно привык к расширению.

В Microsoft подчеркивают, что суммарное число установок составляло примерно 2,6 млн, но это не равно точному количеству пострадавших пользователей. Некоторые варианты вредоноса активировались только на части устройств, например примерно на 10% установок. Кроме того, перед запуском полезной нагрузки расширения проходили серверную проверку и выдерживали паузу. Это значит, что операторы кампании старались выбирать цели и не раскрывать малварь на каждом устройстве.

Серверная проверка была еще одним способом избежать обнаружения. Управляющие серверы отдавали нужные файлы только запросам с подходящим фингерпринтом и User-Agent. Если исследователь или автоматическая система обращались к инфраструктуре напрямую, сервер мог вернуть пустую заглушку. В результате аналитик видел безобидный ответ и мог решить, что расширение не связано с активной малварью.

Расширения также проверяли, открыты ли инструменты разработчика в браузере. Если пользователь или исследователь пытался изучить поведение аддона через DevTools, вредоносная часть могла перейти в спящий режим. Это типичная антианалитическая техника: малварь пытается понять, наблюдают ли за ней, и временно отключает опасное поведение. Для защитников это усложняет динамический анализ, потому что при обычной проверке вредонос может притворяться чистым.

Основная финансовая цель StegoAd была связана с рекламным мошенничеством. Расширения подменяли поисковую выдачу, внедряли рекламу и перехватывали партнерские ссылки на Amazon, eBay и AliExpress, чтобы получать комиссию. Для пользователя это могло выглядеть как раздражающая реклама, странные переходы, измененные результаты поиска или непонятные редиректы. Но за этим стояла организованная схема монетизации огромного числа установок.

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

Некоторые варианты малвари могли перехватывать учетные данные Google и коды двухфакторной аутентификации. Это особенно опасно, потому что Google-аккаунт часто связан с почтой, облачным хранилищем, документами, браузерной синхронизацией, Android-устройствами, YouTube, рекламными кабинетами и другими сервисами. Если атакующий получает доступ к такому аккаунту, он может восстановить пароли от других сервисов, читать переписку и закрепиться глубже.

Отдельно упоминается кража логинов и паролей администраторов WordPress. Для владельцев сайтов это критический риск. Если вредоносное расширение перехватывает данные входа в админ-панель, злоумышленник может получить контроль над сайтом, добавить вредоносный JavaScript, создать новых пользователей, изменить темы и плагины, разместить фишинговые страницы или использовать сайт для дальнейших атак. Один зараженный браузер администратора может привести к компрометации всего сайта.

Массовая кража файлов cookie делает StegoAd еще опаснее. Cookies часто содержат сессионные данные, которые позволяют оставаться авторизованным без повторного ввода пароля. Если атакующий похищает такие файлы, он может попытаться захватить активную сессию и обойти обычную парольную защиту. Двухфакторная аутентификация помогает, но не всегда полностью защищает от кражи уже выданной сессии, особенно если сервис слабо проверяет устройство и контекст входа.

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

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

Инфраструктура StegoAd была достаточно продуманной. Исследователи нашли более десяти C&C-доменов с автоматическим переключением. Для перенаправления трафика использовались Cloudflare Workers, а GitHub Pages применялись для размещения маяков. Такой набор показывает, что операторы кампании использовали легитимные облачные и веб-сервисы как элементы маскировки и устойчивости.

Cloudflare Workers удобны злоумышленникам тем, что позволяют быстро менять логику обработки запросов, скрывать конечные серверы и использовать инфраструктуру известного провайдера. GitHub Pages тоже выглядит относительно доверенным сервисом и может не вызывать мгновенной блокировки. Для защитников это создает проблему: нельзя просто блокировать все популярные платформы, потому что они массово используются легитимно. Нужно смотреть на контекст и поведение.

Операторы StegoAd даже мигрировали с Manifest V2 на Manifest V3. Это важный момент, потому что Manifest V3 создавался в том числе как более безопасная модель расширений. Но сама по себе новая версия манифеста не делает расширение безопасным, если злоумышленники находят способы сохранять вредоносную логику, использовать удаленные ресурсы, скрытые полезные нагрузки и обходные техники. Безопасность расширений зависит не только от формата манифеста, но и от проверки поведения.

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

Даже положительные отзывы не являются надежной гарантией. Расширение может сначала работать честно, собирать рейтинг, накапливать установки, а затем получить вредоносное обновление или активировать скрытую функцию. Кроме того, отзывы могут быть накручены. Пользователь видит хороший рейтинг и большое число установок, но это не означает, что код безопасен. StegoAd как раз использовала репутацию и нормальную функциональность как маскировку.

Для Microsoft этот инцидент стал серьезным вызовом. Все 119 расширений уже удалены из официального магазина, а связанные аккаунты разработчиков заблокированы. Но сам факт их присутствия в магазине показывает, что проверка расширений должна учитывать не только статический код и заявленные разрешения, но и скрытые данные в медиафайлах, шрифтах, отложенную активацию, серверную проверку, антианализ и поведение после нескольких дней работы.

Пользователям Edge нужно проверить список установленных расширений на странице edge://extensions. Если браузер автоматически удалил одно из расширений StegoAd или в списке есть неизвестные аддоны, которые пользователь не помнит, их нужно удалить и считать браузер потенциально скомпрометированным. Простое удаление расширения снижает дальнейший риск, но не отменяет того, что данные уже могли быть украдены раньше.

После возможной компрометации нужно сменить пароли в важных аккаунтах. В первую очередь это Google, почта, банковские сервисы, WordPress, аккаунты маркетплейсов, облачные хранилища, рабочие сервисы и любые панели администрирования. Пароли нужно менять с чистого устройства или как минимум из браузера без подозрительных расширений. Если менять пароль в том же зараженном браузере до удаления аддона, новый пароль тоже может быть перехвачен.

Также нужно проверить историю входов. Многие сервисы показывают последние устройства, IP-адреса, географию и активные сессии. Если есть неизвестные входы, их нужно завершить. Для Google-аккаунта, почты, WordPress и банковских кабинетов это особенно важно. Если сессии уже украдены через cookies, смена пароля может быть недостаточной без принудительного выхода со всех устройств.

Двухфакторную аутентификацию стоит включить везде, где это возможно. Но лучше использовать не SMS, а приложение-аутентификатор или аппаратный ключ безопасности. В случае StegoAd часть малвари могла перехватывать коды двухфакторной аутентификации, поэтому более устойчивые методы защиты особенно важны. Аппаратный ключ снижает риск фишинга и захвата сессий, хотя не отменяет необходимость чистого браузера.

Администраторам WordPress после такого инцидента нужно проверить не только пароль, но и сам сайт. Если учетные данные могли быть украдены, нужно посмотреть список администраторов, активные сессии, установленные плагины и темы, изменения файлов, неизвестные JavaScript-вставки, новые задачи cron, подозрительные страницы и логи входов. Вредоносное расширение могло дать атакующему доступ к панели, а дальше уже сайт мог быть изменен независимо от браузера.

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

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

Особенно важно ограничивать расширения, которым нужен доступ ко всем сайтам. Многие аддоны запрашивают разрешение читать и изменять данные на всех посещаемых страницах. Для блокировщика рекламы или переводчика это может быть технически объяснимо, но риск огромный. Если расширение с таким доступом становится вредоносным, оно видит почти всю работу пользователя в браузере. Поэтому разрешения должны быть минимальными и понятными.

Корпоративным командам безопасности полезно вести инвентаризацию расширений. Нужно знать, какие аддоны установлены у сотрудников, кто их использует, какие разрешения они имеют, когда обновлялись и кто их разработчик. Если появляется новость о вредоносной кампании, команда должна быстро понять, есть ли затронутые расширения в парке устройств. Без инвентаризации проверка превращается в ручной опрос пользователей.

EDR и сетевой мониторинг также могут помочь. Подозрительными признаками могут быть обращения расширений к C&C-доменам, использование Cloudflare Workers в необычном контексте, обращения к GitHub Pages как к маякам, загрузка картинок или шрифтов с последующей расшифровкой, странные редиректы поисковой выдачи, массовый доступ к cookies и изменение содержимого страниц. Но расширения работают внутри браузера, поэтому часть активности может быть сложнее увидеть обычными средствами.

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

Пользователям стоит регулярно удалять расширения, которыми они не пользуются. Каждый аддон — это дополнительный код с определенными правами. Даже если расширение когда-то было полезным и безопасным, оно может быть продано, заброшено, взломано или обновлено с вредоносной логикой. Чем меньше расширений установлено, тем меньше поверхность атаки. Особенно осторожно нужно относиться к VPN, загрузчикам видео, купонным расширениям и сомнительным блокировщикам рекламы.

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

Отдельная проблема — расширения для загрузки видео и бесплатные VPN. Такие категории часто привлекают злоумышленников, потому что пользователи активно ищут бесплатные инструменты и готовы давать им широкие разрешения. VPN-расширение, например, может видеть трафик и перенаправлять соединения, а загрузчик видео часто требует доступ к содержимому страниц. Если такой аддон вредоносен, ущерб может быть серьезным.

StegoAd также показывает, что стеганография снова становится практичным инструментом атак. Сокрытие данных в изображениях, шрифтах, метаданных и других медиафайлах помогает обойти проверки, которые ищут очевидный JavaScript или вредоносные строки. Защитным системам нужно анализировать не только исполняемые файлы, но и ресурсы, которые программа загружает и затем интерпретирует как код.

Для разработчиков магазинов расширений полезен урок об отложенной активации. Если проверка длится слишком мало, малварь может просто ждать. Поэтому нужны долговременные песочницы, имитация реального пользовательского поведения, разные User-Agent, проверка при открытых и закрытых DevTools, анализ запросов к серверам и попытки распаковать данные из медиафайлов. Злоумышленники уже адаптируются к простым проверкам, значит проверки тоже должны усложняться.

Для пользователей главный практический ориентир простой: расширение в официальном магазине не является автоматически безопасным. Магазин снижает риск, но не исключает его. Нужно устанавливать только действительно нужные аддоны, удалять лишние, следить за разрешениями и реагировать на автоматическое удаление расширения браузером. Если браузер сам удалил аддон как вредоносный, нужно считать, что данные могли быть скомпрометированы раньше.

После удаления подозрительного расширения полезно очистить cookies и перезайти в важные сервисы. Это неудобно, но снижает риск сохранения украденных или активных сессий. Также стоит проверить, не появились ли в браузере неизвестные поисковые системы, стартовые страницы, политики управления, прокси-настройки или другие расширения. Вредоносное расширение могло изменить настройки, которые продолжат работать после его удаления.

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

Главный вывод состоит в том, что кампания StegoAd использовала 119 расширений для Microsoft Edge, которые скрывали вредоносный код в PNG, WebP и WOFF2-файлах, активировались с задержкой, проверяли фингерпринт устройства, уходили в спящий режим при открытии DevTools и получали команды через инфраструктуру с C&C-доменами, Cloudflare Workers и GitHub Pages. Расширения занимались рекламным мошенничеством, подменяли выдачу, перехватывали партнерские ссылки, а часть полезных нагрузок могла красть учетные данные Google, коды двухфакторной аутентификации, логины WordPress, cookies и выполнять произвольный JavaScript в браузере жертвы. Все 119 расширений удалены из магазина Edge, а пользователям нужно проверить edge://extensions, удалить неизвестные аддоны, сменить пароли в важных сервисах, завершить активные сессии, проверить историю входов и включить двухфакторную аутентификацию.

Добавить комментарий