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

Какую проблему решаем

Речь идёт о критической уязвимости в плагине Funnel Builder для WordPress. По данным исследователей, она уже используется в атаках и затрагивает версии до 3.15.0.3. Плагин стоит более чем на 40 000 WooCommerce-магазинов, так что масштаб проблемы далеко не теоретический.

Схема простая и неприятная. Злоумышленник подсовывает на страницу оплаты вредоносный JavaScript, который выглядит как обычный код аналитики, а затем незаметно снимает номера карт, CVV и платёжные данные покупателей. Для владельца магазина это не только утечка, но и удар по доверию и риски разбирательств.

Подобные случаи хорошо показывают, почему одной защиты периметра мало. Ошибки в расширениях и темах бьют по бизнесу не слабее, чем взлом сервера. Похожий принцип атак мы уже разбирали в материале Pwn2Own Berlin показал, где ломаются Windows 11 и Edge: уязвимость часто живёт не там, где её ждут.

Что подготовить

Перед проверкой сайта нужен доступ к панели WordPress и к настройкам Funnel Builder. Если магазином занимается подрядчик, попросите его сразу проверить версию плагина и журнал изменений.

Полезно заранее подготовить:

  • резервную копию сайта и базы данных;
  • список администраторов и тех, у кого есть доступ к плагинам;
  • доступ к хостингу или панели управления сервером;
  • время на просмотр настроек Checkout и External Scripts.

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

Пошаговые действия

1. Обновите Funnel Builder

Первое действие — поставить версию 3.15.0.3 или новее. Именно в этом выпуске разработчик закрыл дыру, через которую атакующие могли внедрять код без авторизации.

Не откладывайте обновление до вечера или выходных. Для таких плагинов промедление часто означает, что магазин уже открыт для атаки.

2. Проверьте External Scripts

Откройте Settings > Checkout > External Scripts и внимательно просмотрите всё, что там указано. Ищите любые записи, которые вы не добавляли сами, особенно если они маскируются под Google Tag Manager, аналитику или служебные скрипты.

Именно такие подмены чаще всего проходят незамеченными: название выглядит знакомо, а внутри сидит загрузчик скиммера. Если видите лишний фрагмент кода, удаляйте его сразу и фиксируйте, когда он появился.

3. Сверьте список администраторов и логи

Проверьте, не появлялись ли в последнее время новые учётные записи с правами администратора. Посмотрите логи входов, изменения настроек и установку плагинов.

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

4. Осмотрите страницу оплаты вручную

Откройте страницу чекаута в браузере и посмотрите исходный код, список подключённых скриптов и сетевые запросы. Вас должны насторожить сторонние домены, странные WebSocket-соединения и коды, которые подгружаются не с вашего сервера.

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

5. Уберите лишнее и поставьте контроль

Удалите подозрительные скрипты, обновите плагин и сразу после этого смените пароли для админов. Затем включите двухфакторную аутентификацию для всех, кто управляет магазином.

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

Как проверить себя

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

  • версия Funnel Builder — 3.15.0.3 или новее;
  • в External Scripts нет неизвестных записей;
  • в коде чекаута нет сторонних доменов без вашего ведома;
  • у администраторов включена 2FA;
  • резервная копия свежая и проверена;
  • пароли у тех, кто управляет магазином, не повторяются на других сервисах.

Если хотя бы один пункт вызывает сомнение, считайте, что защита не закончена.

Что делать, если не получилось

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

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

Чек-лист на сейчас

  • Обновить Funnel Builder до 3.15.0.3 или новее.
  • Проверить Settings > Checkout > External Scripts.
  • Удалить неизвестные скрипты и записи.
  • Посмотреть логи входов и список администраторов.
  • Включить 2FA для всех, кто управляет магазином.
  • Сменить пароли после любой подозрительной правки.
  • Проверить, нет ли сторонних доменов в коде чекаута.
  • Убедиться, что свежая резервная копия уже лежит отдельно.
Поделиться: