Резюме
Мы реагируем на инцидент безопасности, затрагивающий PushEngage. Злоумышленник получил доступ к учетным данным нашей сети доставки контента (CDN) и использовал их для предоставления измененной версии файла JavaScript, которую эти продукты доставляют на сайты клиентов. В течение ограниченного периода времени сайты, встраивающие наш скрипт, загружали этот измененный файл непосредственно из нашей CDN.
Вредоносный код активировался только для вошедших в систему администраторов WordPress. При выполнении на затронутом сайте он пытался создать скрытую учетную запись администратора и установить замаскированный плагин-бэкдор, а затем отправлял данные на сервер, контролируемый злоумышленником. Обычные посетители сайта не были целью, но поскольку код может передать злоумышленнику контроль над сайтом, любой затронутый сайт следует рассматривать как скомпрометированный.
Масштаб – что было затронуто, а что нет:
Наши серверы приложений, исходный код и системы, хранящие информацию о ваших учетных записях PushEngage, размещены отдельно и не были взломаны. У нас нет доказательств того, что данные учетных записей или личная информация, хранящаяся у нас, были доступны. Компрометация была ограничена сервером нашего маркетингового веб-сайта и, через ключ API CDN, хранящийся на нем, нашей учетной записью CDN. Важно отметить, что это не снижает срочность для владельцев затронутых сайтов: файл, доставленный на ваш сайт, был изменен, поэтому приведенные ниже шаги по-прежнему важны, если вы попали в окно воздействия.
Кому необходимо действовать сейчас: Если на вашем сайте был активен PushEngage и администратор был вошел в систему в течение окна воздействия, указанного ниже, пожалуйста, считайте ваш сайт скомпрометированным и немедленно следуйте инструкциям в разделе [Что проверить и сделать](#what-to-check-and-do). Наиболее надежные проверки выполняются на вашем сервере, а не в панели управления WordPress.
Окно воздействия
По данным журналов нашего поставщика CDN, несанкционированная конфигурация с измененными файлами действовала примерно несколько часов 12 июня 2026 г. (UTC). Для части пользователей она продолжала обслуживаться до 14 июня (UTC) из некоторых точек периферии CDN. Мы продолжаем уточнять точный период, в течение которого обслуживался затронутый контент, и обновим это уведомление по мере проверки дополнительных деталей.
Только сайты, которые загрузили затронутый скрипт с вошедшим в систему администратором в течение этого окна, могли быть скомпрометированы.
Затронутые файлы — это стандартные скрипты встраивания, обслуживаемые с:
- https://clientcdn.pushengage.com/sdks/pushengage-web-sdk.js (PushEngage)
- https://clientcdn.pushengage.com/sdks/pushengage-subscription.js (PushEngage)
Что произошло
Злоумышленник использовал известную уязвимость в стороннем плагине WordPress (UpdraftPlus) для получения доступа к серверу, на котором размещен наш маркетинговый веб-сайт. Этот сервер полностью отделен: другой хост, другая инфраструктура от серверов приложений, которые запускают PushEngage и хранят данные клиентов.
На маркетинговом сервере злоумышленник обнаружил ключ API для нашей учетной записи CDN. Используя этот ключ, им не пришлось вообще трогать наш исходный код приложения. Они изменили файлы, которые обслуживал наш CDN, поэтому измененный скрипт доставлялся на сайты, встраивающие его, в течение ограниченного периода времени, прежде чем мы обнаружили и отменили изменение.
С тех пор мы устранили уязвимости на маркетинговом сайте, перенесли его на новый сервер и сменили все учетные данные, включая ключ API CDN.
Что сделал вредоносный код
На затронутом сайте, когда вошедший в систему администратор загружал страницу, код пытался:
- Подтвердить, что он выполняется в контексте администратора WordPress, а затем собрать токены безопасности, необходимые для действий от имени этого администратора.
- Создать скрытую учетную запись администратора. Известные учетные записи включают developer_api1 ([email protected]) и случайные учетные записи вида dev_xxxxxx.
- Установить самоскрывающийся плагин-бэкдор, который скрывается от панели управления и предоставляет веб-шелл без аутентификации и конечную точку выполнения кода — фактически предоставляя полный контроль над сайтом.
- Отправить новые учетные данные и сведения о сайте на сервер, контролируемый злоумышленником.
Поскольку бэкдор скрывается от экранов администратора WordPress, одна только панель управления не покажет вам, затронуты ли вы. Надежные проверки выполняются в файловой системе сервера и с помощью серверного сканирования.
Что проверить и сделать
Если PushEngage работал на вашем веб-сайте И администратор вошел в вашу систему WordPress в течение окна воздействия, сделайте следующее как можно скорее. Если вы не уверены, был ли администратор в системе, безопаснее проверить.
- Удалите посторонние учетные записи администраторов. Ищите developer_api1 / [email protected] и любые неожиданные учетные записи dev_xxxxxx и удалите их.
- Проверьте файловую систему — не только панель управления — на наличие плагина-бэкдора. В разделе wp-content/plugins ищите content-delivery-helper («Content Delivery Helper») или database-optimizer («Database Optimizer»). Маскировка меняется, поэтому доверяйте тому, что находится на диске, а не тому, что показывает панель управления. Удалите все найденное.
- Запустите серверное сканирование на наличие вредоносного ПО. Поскольку полезная нагрузка выполнялась только для вошедших в систему администраторов, проверки через панель управления и на стороне клиента ненадежны; серверное сканирование — самый надежный способ найти бэкдор или любые другие изменения.
- Если вы обнаружите какой-либо из вышеперечисленных признаков, считайте, что произошла полная компрометация, и смените все: пароли администраторов, ключи приложений/API, учетные данные базы данных и ключи/соли WordPress в wp-config.php. Бэкдор позволял выполнять произвольный код, поэтому могут существовать дополнительные механизмы сохранения.
Если вы не обнаружите ни одного из этих признаков и во время окна воздействия ни один администратор не был в системе, ваш сайт, скорее всего, не затронут, и никаких действий, кроме стандартной гигиены (включение двухфакторной аутентификации, обновление программного обеспечения), не требуется.
Что мы сделали до сих пор
- Обнаружили подмену и немедленно отменили изменения в затронутых файлах CDN; очистили кэш CDN, чтобы обслуживались чистые файлы.
- Отозвали и сменили ключ API CDN и все связанные с ним учетные данные.
- Устранена уязвимость на скомпрометированном маркетинговом веб-сайте и выполнена его миграция на новый сервер в отдельной инфраструктуре.
- Подтверждено, что наши серверы приложений, исходный код и системы данных клиентов, находящиеся в отдельной инфраструктуре, не имеют признаков доступа.
- Привлечена наша команда по безопасности, и мы работаем с нашим CDN-провайдером для получения логов доставки.
Статус и текущий риск
Наша конфигурация CDN была исправлена, а измененные файлы удалены, затронутые учетные данные были сменены, и точка входа на нашем маркетинговом сервере была восстановлена.
Восстановление наших систем не очищает сайт, который уже был скомпрометирован. Если ваш сайт был затронут в течение окна воздействия, учетная запись злоумышленного администратора и скрытый плагин-бэкдор остаются на месте, пока вы не удалите их, выполнив указанные выше шаги. Мы рекомендуем действовать оперативно. Мы обновим эту страницу, если появится дополнительная соответствующая информация.
Признаки компрометации
Для владельцев сайтов и команд безопасности:
Учетные записи злоумышленников:
- developer_api1 / [email protected] (исправлена учетная запись оператора)
- dev_xxxxxx / [email protected] (случайные учетные записи)
Маскировка плагинов-бэкдоров (меняются; проверьте файловую систему):
- content-delivery-helper “Content Delivery Helper” v2.7.1
- database-optimizer “Database Optimizer” v2.9.4
Инфраструктура злоумышленника:
- tidio.cc (похожий домен — НЕ легитимный tidio.com)
Уникальные строки:
- jX9kM2nP4qR6sT8v (ключ шифрования, используемый вредоносным ПО)
- WPM File Manager & Shell (интерфейс оболочки бэкдора)
Контакты
Если у вас есть вопросы, вам нужна помощь в проверке вашего сайта или вы заметили что-то необычное, свяжитесь с нами по адресу [email protected]. Мы уделяем приоритетное внимание запросам, связанным с инцидентом, и будем обновлять эту страницу.
Защита наших клиентов является для нас приоритетом. Мы понимаем, что этот инцидент может вызывать беспокойство, и сожалеем о любых неудобствах, которые он вызвал. Информация выше отражает наше расследование на данный момент, и мы будем обновлять эту страницу по мере подтверждения дополнительной информации.