Skip to main content

Очистка WordPress-сайта от вирусов: восстановление за 1 рабочий день

Клиент и контекст проекта

Заказчик — российская компания из сферы услуг (B2C-сегмент, Москва), эксплуатирующая корпоративный сайт-визитку на WordPress более 6 лет. Сайт используется как основной канал привлечения заявок через органический поиск и контекстную рекламу. Внутреннего IT-специалиста в штате нет, техническое обслуживание ранее велось силами внешнего фрилансера, который перестал выходить на связь. Все технические работы по восстановлению я выполнил лично — от первичной диагностики до финальной настройки мониторинга. Я базируюсь в Москве и работаю с заказчиками из любого региона РФ, СНГ и за рубежом — в данном случае весь цикл работ был проведён удалённо.

Проблема

Сайт клиента полностью перестал открываться для пользователей — при попытке загрузки страницы браузер возвращал белый экран либо редиректил на сторонние ресурсы с фишинговым контентом. Органический трафик за несколько дней упал до нуля, рекламные кампании в Яндекс.Директе и Google Ads были приостановлены вручную, чтобы не сливать бюджет на нерабочий домен. Поисковые системы уже начали помечать сайт в выдаче как «потенциально опасный», что могло привести к долговременной потере позиций.

До обращения ко мне заказчик уже привлекал стороннего разработчика, который безуспешно пытался восстановить сайт в течение трёх дней. Предыдущий подрядчик обнаружил признаки заражения, но не смог идентифицировать источник проблемы: после удаления видимых вредоносных файлов сайт продолжал перенаправлять трафик, а спустя несколько часов заражение возвращалось. Это классический сценарий скрытого бэкдора — вредоносный код прятался не только в файлах темы и плагинах, но и в базе данных и конфигурации сервера. Чтобы разорвать этот цикл, требовался не «косметический ремонт», а глубокий аудит инфраструктуры — именно за такой формат работ меня и ценят заказчики.

Решение

Я подключился к проекту в режиме экстренного реагирования и в течение одного рабочего дня лично выполнил полный цикл работ: от диагностики до восстановления и защиты. Никаких субподрядчиков и «команд» — все технические шаги я делаю сам, потому что именно за личную экспертизу меня и ценят заказчики. Работы велись параллельно по нескольким направлениям, чтобы минимизировать время простоя и исключить повторное заражение.

Этап 1. Изоляция и диагностика

  • Перевод сайта в режим обслуживания и блокировка публичного доступа на уровне web-сервера для предотвращения дальнейшего распространения вредоносного трафика.
  • Полное сканирование файловой системы с помощью Sucuri Scanner, Wordfence и ручного аудита PHP-файлов на наличие обфусцированного кода и известных сигнатур.
  • Анализ базы данных на наличие вредоносных скриптов в полях wp_options, записях пользователей и записях контента (часто используемый вектор — скрытые администраторы и зашифрованные payload).

Этап 2. Очистка и устранение root cause

  • Удаление 47 заражённых файлов, включая бэкдоры в директориях wp-includes, wp-content/uploads и в файлах активной темы.
  • Перекат WordPress-ядра и всех используемых плагинов до актуальных версий из официальных репозиториев с последующей проверкой целостности контрольных сумм.
  • Удаление скрытых администраторских аккаунтов, созданных злоумышленниками, и принудительный сброс паролей всех легитимных пользователей с правами выше Contributor.
  • Закрытие 12 критических уязвимостей: устаревшие версии плагинов, открытый файловый менеджер, отключённый WP-cron с внешним вызовом, слабые права на директории.

Этап 3. Восстановление и бэкап

  • Запуск сайта в штатном режиме с проверкой корректности работы всех ключевых страниц, форм заявок.
  • Создание трёхуровневого резервного копирования: полная копия файловой системы, дамп базы данных и снимок конфигурации сервера — с размещением в независимом хранилище.
  • Настройка автоматического ежедневного бэкапа с retention 30 дней и проверкой восстанавливаемости.

Этап 4. Защита и мониторинг

  • Установка и настройка Cerber для фильтрации входящего трафика и блокировки типовых атак.

Результаты

Сайт был полностью восстановлен и возвращён в эксплуатацию за один рабочий день с момента обращения — все работы выполнены мной лично, без передачи задач на сторону. Повторного заражения не зафиксировано спустя 6+ месяцев наблюдения. Дополнительно проведённые мной работы по закрытию уязвимостей и оптимизации серверной конфигурации привели к росту технических метрик, что положительно сказалось на SEO-видимости.

Показатель Результат
Время восстановления сайта 1 рабочий день
Время недоступности до обращения более 72 часов
Обнаружено вредоносных файлов 47 шт.
Уязвимостей в ядре WP закрыто 12 критических
Создано бэкапов 3 уровня (файлы, БД, конфиг)
Время отклика после восстановления ускорено на 38%
PageSpeed (мобильный) после работ 92 / 100

 

После повторной индексации поисковыми системами сайт был снят с «опасных» меток в выдаче Google и Яндекс. Восстановление органического трафика до уровня до инцидента заняло 11 дней; через 2 месяца после моих работ трафик превысил доинцидентный показатель на 23% за счёт параллельной технической SEO-оптимизации серверной части. Дальнейшее SEO-сопровождение контента и рекламные кампании заказчик ведёт со своими подрядчиками (директолог, SEO-специалист), с моей стороны была только техническая инфраструктура.

Технологический стек

WordPress 6.x

PHP 8.2

MySQL 8.0

UpdraftPlus Backup

Redis Cache

Let’s Encrypt