Microsoft удалила из магазина Edge Add-ons сразу 119 браузерных расширений и заблокировала более 90 аккаунтов разработчиков. Все они были частью одной схемы под названием StegoAd — названной так от слияния слов «стеганография» и «adware». Операция работала как минимум с 2021 года и успела набрать до 2,6 миллиона установок.
Расширения маскировались под обычные утилиты: блокировщики рекламы, VPN-клиенты, переводчики, загрузчики видео. Они реально работали по назначению, получали живые отзывы от пользователей и ничем не выдавали себя при первом взгляде. Вредоносный код не активировался сразу: в ряде вариантов действовала задержка в несколько дней, а в некоторых случаях полезная нагрузка вообще не срабатывала у 90% установивших — есть данные о том, что 10-процентный порог исполнения был намеренным. Перед активацией расширение проходило проверку на стороне сервера.
Главная техническая особенность StegoAd в том, как именно прятали код. Первый слой использовал PNG-файлы: JavaScript дописывался прямо после маркера IEND, то есть после официального конца изображения. Картинка открывалась и отображалась нормально, статические сканеры ничего не находили. Когда этот метод начали обнаруживать, операция переключилась на WebP-изображения. Третий этап — уже шрифты формата WOFF2: код прятали в диапазонах глифов, отображавшихся как азиатские символы, и в метаданных самого шрифта. Microsoft отдельно отметила, что стеганография такого масштаба в экосистеме браузерных расширений встречается крайне редко.
Инфраструктура управления и контроля (C2) была выстроена с серьёзным запасом устойчивости. Более десяти C2-доменов с автоматическим переключением при отказе, трафик проксировался через Cloudflare Workers, а в роли маяков использовались страницы на GitHub Pages. Когда исследователи безопасности пытались напрямую обратиться к C2-серверу, тот возвращал пустые подставные ответы — система проверяла отпечаток браузера и User-Agent. Мало того: расширения следили за тем, открыты ли у пользователя инструменты разработчика, и если да — продлевали период спячки. Для скрытой телеметрии операторы использовали 7 идентификаторов Google Analytics.
Что касается того, что именно делали расширения после активации — здесь два уровня атаки. Видимый: внедрение рекламы, перехват партнёрских комиссий на Amazon, eBay и AliExpress, перенаправление поисковых запросов. Скрытый: удалённое выполнение произвольного JavaScript с сервера, кража учётных данных Google и кодов двухфакторной аутентификации прямо в момент входа, сбор логинов администраторов WordPress, массовая кража cookie для перехвата сессий.
Полиморфный фреймворк, на котором работала схема, охватывал порядка 66 расширений с 15 и более вариантами именования. Авторы успели перейти с Manifest V2 на Manifest V3, адаптируясь к изменениям платформы Chrome. Домен для эксфильтрации учётных данных — .
Атрибуция пока неполная. Microsoft официально не называет ответственных, однако компания Koi Security в декабре связала StegoAd с китайской операцией DarkSpectre. Общие черты: скрытие кода внутри иконок расширений, пересечение с кампаниями ShadyPanda и GhostPoster, совпадение конкретных названий расширений — в частности, «Ads Block Ultimate». По данным Microsoft, группа до сих пор активна.
Проверить, не затронут ли конкретный браузер, можно через сверив список установленных расширений с опубликованными Microsoft 119 идентификаторами. Индикаторы компрометации (IoC) применимы не только к Edge, но и к Chrome, Firefox и другим браузерам на движке Chromium. Если какое-либо из расширений числилось установленным, пароли от Google, WordPress, банковских аккаунтов стоит сменить и проверить историю входов. Вместо SMS-кодов для двухфакторной аутентификации Microsoft рекомендует аппаратные ключи безопасности.
Расширения маскировались под обычные утилиты: блокировщики рекламы, VPN-клиенты, переводчики, загрузчики видео. Они реально работали по назначению, получали живые отзывы от пользователей и ничем не выдавали себя при первом взгляде. Вредоносный код не активировался сразу: в ряде вариантов действовала задержка в несколько дней, а в некоторых случаях полезная нагрузка вообще не срабатывала у 90% установивших — есть данные о том, что 10-процентный порог исполнения был намеренным. Перед активацией расширение проходило проверку на стороне сервера.
Главная техническая особенность StegoAd в том, как именно прятали код. Первый слой использовал PNG-файлы: JavaScript дописывался прямо после маркера IEND, то есть после официального конца изображения. Картинка открывалась и отображалась нормально, статические сканеры ничего не находили. Когда этот метод начали обнаруживать, операция переключилась на WebP-изображения. Третий этап — уже шрифты формата WOFF2: код прятали в диапазонах глифов, отображавшихся как азиатские символы, и в метаданных самого шрифта. Microsoft отдельно отметила, что стеганография такого масштаба в экосистеме браузерных расширений встречается крайне редко.
Инфраструктура управления и контроля (C2) была выстроена с серьёзным запасом устойчивости. Более десяти C2-доменов с автоматическим переключением при отказе, трафик проксировался через Cloudflare Workers, а в роли маяков использовались страницы на GitHub Pages. Когда исследователи безопасности пытались напрямую обратиться к C2-серверу, тот возвращал пустые подставные ответы — система проверяла отпечаток браузера и User-Agent. Мало того: расширения следили за тем, открыты ли у пользователя инструменты разработчика, и если да — продлевали период спячки. Для скрытой телеметрии операторы использовали 7 идентификаторов Google Analytics.
Что касается того, что именно делали расширения после активации — здесь два уровня атаки. Видимый: внедрение рекламы, перехват партнёрских комиссий на Amazon, eBay и AliExpress, перенаправление поисковых запросов. Скрытый: удалённое выполнение произвольного JavaScript с сервера, кража учётных данных Google и кодов двухфакторной аутентификации прямо в момент входа, сбор логинов администраторов WordPress, массовая кража cookie для перехвата сессий.
Полиморфный фреймворк, на котором работала схема, охватывал порядка 66 расширений с 15 и более вариантами именования. Авторы успели перейти с Manifest V2 на Manifest V3, адаптируясь к изменениям платформы Chrome. Домен для эксфильтрации учётных данных — .
Атрибуция пока неполная. Microsoft официально не называет ответственных, однако компания Koi Security в декабре связала StegoAd с китайской операцией DarkSpectre. Общие черты: скрытие кода внутри иконок расширений, пересечение с кампаниями ShadyPanda и GhostPoster, совпадение конкретных названий расширений — в частности, «Ads Block Ultimate». По данным Microsoft, группа до сих пор активна.
Проверить, не затронут ли конкретный браузер, можно через сверив список установленных расширений с опубликованными Microsoft 119 идентификаторами. Индикаторы компрометации (IoC) применимы не только к Edge, но и к Chrome, Firefox и другим браузерам на движке Chromium. Если какое-либо из расширений числилось установленным, пароли от Google, WordPress, банковских аккаунтов стоит сменить и проверить историю входов. Вместо SMS-кодов для двухфакторной аутентификации Microsoft рекомендует аппаратные ключи безопасности.