Каждое расширение браузера имеет логотип - маленькую иконку на панели инструментов, визуальный символ доверия. Пользователь видит знакомое изображение и не задумывается о том, что скрывается внутри этого файла. На этой психологической особенности и строится новая кампания под кодовым названием GhostPoster, которая использует технику стеганографии для сокрытия вредоносного кода.
Описание
Исследователи кибербезопасности из Koidex обнаружили аномальное поведение в расширении для Firefox под названием Free VPN Forever. Внутренний механизм анализа угроз Wings зафиксировал, что расширение не просто отображает свой логотип "logo.png", а проводит необычные операции с его байтами. При детальном изучении кода была выявлена скрытая процедура извлечения. Расширение искало в данных изображения специальный маркер из трёх знаков равенства ("==="). Всё, что находилось после этого маркера, не являлось графической информацией. Это был скрытый на виду JavaScript-код.
Эта техника, известная как стеганография, позволяет прятать информацию внутри безобидных на вид файлов. Сканеры безопасности, проверяющие JavaScript-файлы расширения, не обнаруживают вредоносную нагрузку (payload). Код остаётся невидимым для рецензентов, а логотип нормально отображается в браузере. Однако при каждой загрузке расширения скрытый код извлекается и исполняется.
Free VPN Forever доступен в официальном магазине дополнений Firefox с сентября 2025 года и имеет более 16 000 установок. По данным на момент публикации отчёта, он всё ещё активен. Это лишь часть кампании, которая охватывает 17 расширений для Firefox с совокупным числом установок более 50 000. Помимо VPN, злоумышленники используют приманки в виде инструментов для перевода, блокировщиков рекламы и прогнозов погоды. Реальная цель - внедрение многоступенчатого вредоносного ПО, которое отслеживает всю активность в браузере, ослабляет его защиту и создаёт бэкдор для удалённого выполнения кода.
Многоступенчатая атака
Первая ступень - это сам логотип со скрытым кодом-загрузчиком (loader). Его задача - связаться с командным сервером (C&C, Command and Control). Используются два домена: "www.liveupdt[.]com" (основной) и "www.dealctr[.]com" (резервный). Загрузчик проявляет хитроумное терпение: он выходит на связь лишь раз в 48 часов, и даже тогда загружает основную вредоносную полезную нагрузку только в 10% случаев. Такое нерегулярное поведение затрудняет обнаружение для систем мониторинга сетевого трафика.
Когда нагрузка с сервера всё же поступает, она оказывается закодированной. Злоумышленники применяют простую, но нестандартную схему: меняют регистр букв, заменяют цифры 8 на 9 и наоборот, а затем декодируют данные из Base64. Полученный код дополнительно шифруется с помощью операции XOR с ключом, производным от уникального идентификатора расширения, и сохраняется в хранилище браузера для обеспечения постоянства (persistence).
Финальная вредоносная функциональность
Расшифрованная конечная нагрузка превращает браузер жертвы в инструмент для скрытого заработка. Во-первых, происходит перехват партнёрских (affiliate) ссылок на крупных платформах, таких как Taobao или JD.com. Пользователь переходит по ссылке и совершает покупку, но комиссия уходит не законному партнёру, а операторам GhostPoster. Для пользователя этот процесс полностью невидим.
Во-вторых, на каждую посещаемую страницу внедряется код отслеживания Google Analytics (ID: UA-60144933-8). Собираются данные о дате установки расширения, длительности заражения, посещаемых сайтах и уникальный идентификатор браузера. Кроме того, вредоносное ПО активно удаляет важные заголовки безопасности из HTTP-ответов, такие как "Content-Security-Policy" и "X-Frame-Options", что ослабляет защиту от межсайтового скриптинга и кликджекинга.
Для обхода систем защиты расширение использует несколько методов байпаса CAPTCHA, включая создание невидимых overlays и загрузку внешнего решателя. Эта функция нужна, чтобы скрытые операции, например, внедрение невидимых iframe для кликового мошенничества, не блокировались системами обнаружения ботов. Эти iframe загружают контент с контролируемых злоумышленниками серверов и удаляются через 15 секунд, не оставляя явных следов.
Тактика уклонения и масштабы кампании
Эффективность GhostPoster заключается не в одной технологии, а в их комбинации. Стеганография скрывает начальный код, поэтапная загрузка означает, что основное вредоносное ПО никогда не существует как файл, а получается во время выполнения. Нестандартное кодирование и случайные задержки делают поведение непредсказуемым. Кроме того, активация некоторых функций откладывается на 6 и более дней после установки, что позволяет избежать проверок в первоначальный период.
Free VPN Forever - не единственное расширение в этой сети. Исследователи обнаружили 16 других дополнений для Firefox, которые связываются с той же инфраструктурой C&C. Они используют разные приманки и варианты доставки вредоносного кода, что указывает на эксперименты злоумышленников с целью найти наиболее живучие и прибыльные методы.
Эта история вписывается в тревожный тренд. Ранее уже были выявлены случаи, когда расширения, предлагающие бесплатный VPN, занимались скрытым сбором данных. Например, расширение Urban VPN Proxy с 8 миллионами пользователей тайно собирало диалоги с ИИ-ассистентами, а FreeVPN.One делал скриншоты всей активности пользователей, включая доступ к банковским счетам. Обещание приватности в обмен на бесплатную услугу всё чаще оборачивается тотальной слежкой. Пользователям рекомендуется с осторожностью относиться к бесплатным расширениям, особенно VPN, и регулярно проверять список установленных дополнений в браузере.
Индикаторы компрометации
Domains
- mitarchive.info
- refeuficn.github.io
- www.dealctr.com
- www.liveupdt.com
Extensions
- free-vpn-forever
- screenshot-saved-easy
- weather-best-forecast
- crxmouse-gesture
- cache-fast-site-loader
- freemp3downloader
- google-translate-right-clicks
- google-traductor-esp
- world-wide-vpn
- dark-reader-for-ff
- translator-gbbd
- i-like-weather
- google-translate-pro-extension
- 谷歌-翻译
- libretv-watch-free-videos
- ad-stop
- right-click-google-translate
File Indicators
- Steganography marker in logo.png: === (0x3D 0x3D 0x3D)
- Storage keys: dipLstCd667, dipLstSig667, dipLstLd667
Google Analytics ID
- UA-60144933-8