Как атакующие туда попали

Точка входа — известная уязвимость в другом плагине, UpdraftPlus, через которую атакующие добрались до сервера с маркетинговым сайтом Awesome Motive. Там они нашли API-ключ от CDN и с его помощью подменили SDK-файлы, которые CDN раздаёт клиентским сайтам. Дальше цепочка сработала сама: любой сайт, подключавший скрипт с CDN, получал заражённую версию.

Вредоносный код был активен по расписанию: OptinMonster и TrustPulse раздавали заражённый скрипт в пятницу с 22:17 до 22:42 UTC, PushEngage — до 19:02 UTC в субботу.

Что делал вредоносный код

Скрипт ждал захода залогиненного администратора на сайт, затем создавал скрытый бэкдор-аккаунт с правами администратора и устанавливал самоскрывающийся бэкдор-плагин. Новые учётные данные отправлялись на tidio.cc — домен, специально похожий на легитимный tidio.com, чтобы не привлекать внимание при беглом просмотре логов.

Awesome Motive, обнаружив подмену, откатила файлы, очистила кэш CDN, сменила скомпрометированный ключ и связанные с ним учётные данные и перенесла маркетинговый сайт на новую инфраструктуру.

Что проверить, если у вас установлен один из этих плагинов

Список пользователей WordPress — на предмет администраторов, которых вы не создавали. Список установленных плагинов — на предмет незнакомого самоскрывающегося плагина (стандартный интерфейс списка плагинов может его не показывать). После проверки — сменить все пароли, ключи и соли (AUTH_KEY, SECRET_KEY и остальные в wp-config.php), даже если явных следов взлома не нашли.

Почему это важно

Стандартный совет «вовремя обновляйте плагины» здесь не сработал бы — атакованные сайты были обновлены до последней версии, проблема лежала выше, на стороне вендора и его CDN. Это частный случай более широкого риска: чем больше стороннего кода грузится с внешних доменов (CDN-скрипты, аналитика, виджеты), тем больше точек, которые не под вашим контролем, но напрямую влияют на безопасность сайта. Для сайтов с админкой, принимающей заявки и платежи, разумно периодически ревизировать весь список подключаемых внешних скриптов, а не только устанавленные плагины.