Skip to content

Всё для WordPress, веб-разработки — и не только

🔍 Как проверить сайт на WordPress на вирусы и вредоносный код

🔍 Как проверить сайт на WordPress на вирусы и вредоносный код

Вы заходите утром в админку, а там, редирект на фишинговый сайт. Или Google помечает всю выдачу красным «сайт может быть взломан». Или хостинг присылает письмо о превышении нагрузки: чей-то скрипт рассылает спам с вашего сервера.

Вредоносный код в WordPress редко заявляет о себе громко. Месяцами он тихо собирает пароли, встраивает скрытые ссылки, майнит крипту на чужих процессорах. По данным исследований безопасности WordPress, 96% уязвимостей в экосистеме WordPress приходится на плагины и темы, а среднее время между обнаружением уязвимости и началом её эксплуатации сократилось до 48 часов. Без регулярного сканирования вы узнаете о проблеме последним, когда поисковики уже забанили домен, а хостинг заблокировал аккаунт.

Хорошая новость: проверить сайт на вирусы и подозрительный код может любой администратор, без deep-экспертизы в кибербезопасности. Достаточно правильного плагина и 15 минут. Ниже, три основных инструмента, которые закрывают эту задачу, и пошаговый план действий, если заражение уже подтвердилось.

💡 Быстрый обзор:

  • Установите Sucuri Scanner для быстрой проверки целостности файлов и мониторинга изменений, он сравнивает текущее состояние ядра и плагинов с официальным репозиторием.
  • Запустите Wordfence для глубокого сканирования: бэкдоры, вредоносные URL, известные сигнатуры заражений, и встроенный файрвол на уровне приложений.
  • Используйте Anti-Malware Security (GOTMLS) для комплексной проверки всех папок и файлов, включая.htaccess и скрытые директории, с ручной верификацией находок.
  • При обнаружении вирусов: смените пароли → сделайте бэкап → запустите профессиональную очистку или действуйте по чек-листу из последнего раздела.

Признаки того, что сайт WordPress пора сканировать

Лучшее время для первого сканирования, прямо сейчас. Большинство владельцев сайтов откладывают установку сканера «на потом», а вредоносный код тем временем делает своё дело. Регулярная проверка раз в неделю, базовая гигиена, как бэкапы или обновления.

Но есть индикаторы, требующие немедленного запуска полного скана:

  • Google Search Console шлёт предупреждения о вредоносном контенте или фишинговых страницах, которые вы не публиковали.
  • Резкий скачок нагрузки на сервер без роста трафика: чужой скрипт майнит криптовалюту или рассылает спам.
  • Незнакомые администраторы в разделе Users, особенно с правами, которые вы не выдавали.
  • Самопроизвольные редиректы на посторонние сайты, особенно у посетителей с поисковиков.
  • Подозрительные файлы в корне сайта или папке /wp-content/uploads/ с нестандартными расширениями вроде .php среди картинок.
  • Изменённые файлы ядра, которые вы не трогали: WordPress сам уведомит об этом при попытке обновления.

Даже если ни одного признака нет, еженедельное сканирование ловит угрозу на этапе внедрения, пока она не нанесла урон репутации и позициям в поиске.

1. Sucuri Security, аудит целостности и мониторинг изменений

Дашборд плагина Sucuri Security с результатами сканирования WordPress

Sucuri, один из самых авторитетных инструментов в экосистеме WordPress-безопасности. Бесплатная версия плагина закрывает три ключевые задачи: мониторинг целостности файлов (сравнивает хеши с эталоном из репозитория), обнаружение подозрительного кода и жёсткую блокировку ряда векторов атаки через security hardening.

Плагин сканирует ядро, темы и плагины на предмет расхождений с официальными версиями. Если файл изменён, вы видите конкретную строку и можете принять решение: легитимная правка или инъекция. Sucuri также проверяет наличие скрытых iframe, вредоносных ссылок в контенте и аномальной активности в логах доступа.

Плюсы:

  • Бесплатное сканирование целостности и мониторинг изменений без ограничений.
  • Платные тарифы включают DNS-файрвол, который блокирует атаку ещё до того, как она достигнет сервера, это эффективнее файрволов уровня приложений.
  • В платные планы входит ручная очистка сайта специалистами Sucuri без дополнительной оплаты, критично для бизнеса.

Минусы:

Sucuri на WordPress.org | Официальный сайт Sucuri

2. Wordfence, глубокое сканирование и файрвол на уровне приложений

Страница сканирования Wordfence с прогрессом проверки файлов WordPress

Wordfence установлен более чем на 4 миллиона сайтов и входит в пятёрку самых скачиваемых плагинов WordPress за всю историю. Его главное преимущество, комбинация глубокого сканера и endpoint-файрвола в одном бесплатном плагине.

Сканер Wordfence проверяет файлы ядра, тем и плагинов на соответствие официальному репозиторию, ищет известные сигнатуры вредоносного кода, бэкдоры (eval, base64_decode), подозрительные URL в контенте и комментариях. После завершения скана вы получаете отчёт с группировкой находок: критические, предупреждения, информационные.

Файрвол работает на уровне приложений: анализирует входящие запросы до их обработки WordPress, блокирует брутфорс-атаки, сканирование уязвимостей и попытки эксплуатации известных дыр в плагинах. В премиум-версии добавляются сигнатуры угроз в реальном времени (правила обновляются мгновенно, а не с задержкой в 30 дней).

Плюсы:

  • Глубокое сканирование и файрвол бесплатно, редкость для рынка.
  • Автоматическое исправление изменённых файлов ядра и плагинов: замена на оригинал из репозитория в один клик.
  • Детальные отчёты с рекомендациями по каждому пункту.

Минусы:

  • Бесплатная версия получает сигнатуры файрвола с задержкой в 30 дней, платные пользователи видят новые правила мгновенно.
  • Файрвол уровня приложений работает внутри WordPress: если сервер скомпрометирован на уровне хостинга, Wordfence не поможет.

Wordfence на WordPress.org | Сайт Wordfence

3. Anti-Malware Security (GOTMLS), комплексная проверка каждого файла

Интерфейс плагина Anti-Malware Security с настройками полного сканирования сайта

Anti-Malware Security от GOTMLS, менее известный, но чрезвычайно дотошный сканер. Он не ограничивается стандартными директориями WordPress: плагин проверяет вообще все файлы и папки в вашей инсталляции, включая .htaccess, скрытые директории и конфигурационные файлы сервера.

Алгоритм ищет известные шаблоны заражений, вредоносные скрипты, обфусцированный код, скрытые eval-инъекции и аномалии в структуре файлов. Автор активно обновляет базу определений: новые сигнатуры появляются по мере обнаружения свежих угроз в дикой природе.

Главный нюанс, высокая чувствительность. Плагин часто поднимает ложные срабатывания, особенно на кастомных темах и плагинах с нестандартной архитектурой. Каждую находку нужно вручную сравнивать с оригиналом, для этого потребуется определённый уровень технической подготовки и время.

Плюсы:

  • Сканирует все директории сервера, не только WordPress.
  • Активно обновляемые определения вредоносного кода, база живёт и пополняется еженедельно.
  • Включает опцию брандмауэра на уровне приложений в бесплатной версии.

Минусы:

  • Много ложных срабатываний: без ручной верификации находок не обойтись.
  • Интерфейс спартанский, отчёты менее детализированы, чем у Wordfence или Sucuri.
  • Требует от администратора понимания структуры WordPress-файлов.

Anti-Malware Security на WordPress.org

Что делать, если сканер нашёл вирусы: пошаговый план очистки

Процесс очистки взломанного WordPress-сайта через панель управления безопасностью

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

Шаг 1: Смените все пароли. Немедленно обновите учётные записи администраторов WordPress, доступ к хостинг-панели, FTP/SFTP и пароль базы данных. Если злоумышленник получил доступ через скомпрометированный пароль, этот шаг оборвёт его сессию.

Шаг 2: Сделайте полный бэкап. Снимите копию файлов через FTP и базы данных через phpMyAdmin, даже заражённую. Если что-то пойдёт не так при очистке, у вас будет точка восстановления. Бэкап делайте до начала любых манипуляций.

Шаг 3: Изолируйте сайт. Включите режим обслуживания через плагин или .maintenance. Если хостинг позволяет, временно закройте доступ к сайту по IP, оставив только ваш. Это остановит дальнейшее распространение заразы на посетителей.

Шаг 4: Запустите профессиональную очистку. Это не тот случай, где стоит экономить. Сервисы вроде Sucuri (в рамках платного тарифа) и Wordfence Care включают ручную очистку специалистами: они находят и удаляют все следы взлома, включая скрытые бэкдоры, которые любительский глаз пропустит. Цена вопроса: от $199 в год (Sucuri) до $490 в год (Wordfence Care), сопоставимо с днём-двумя простоя бизнеса.

Шаг 5: Самостоятельная очистка (если уверены в силах). Восстановите ядро WordPress из свежего дистрибутива, замените все плагины и темы на оригинальные версии из репозитория, вручную проверьте /wp-content/uploads/ на наличие PHP-файлов и удалите всё, чего там быть не должно. После очистки, повторное сканирование: сайт должен быть чист.

Шаг 6: Усильте защиту. Установите двухфакторную аутентификацию для всех администраторов, ограничьте количество попыток входа, закройте XML-RPC если он не нужен, и настройте автоматические обновления ядра и плагинов. Файрвол уровня DNS (Sucuri или Cloudflare) даст дополнительный рубеж обороны перед сервером.

⁉️🤔 Частые вопросы

Достаточно ли бесплатных плагинов для защиты, или обязательно покупать премиум?

Бесплатные версии Wordfence и Sucuri Scanner отлично справляются с обнаружением угроз, большинство заражений они находят. Но автоматическое удаление, файрвол реального времени и ручная очистка специалистами доступны только в платных тарифах. Если сайт приносит доход, премиум окупается первой же предотвращённой атакой.

Как часто нужно запускать сканирование?

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

Можно ли использовать два сканера одновременно?

Технически можно, но на практике файрволы двух плагинов могут конфликтовать, а двойное сканирование создаёт избыточную нагрузку на сервер. Оптимальная схема: один основной плагин с файрволом (Wordfence) и периодическая перепроверка вторым сканером (Sucuri Free или GOTMLS) раз в месяц для второго мнения.

Что делать, если вредоносный код появляется снова после очистки?

Повторное заражение после очистки, признак оставленного бэкдора. Проверьте wp-config.php на незнакомые константы, папку /wp-content/mu-plugins на скрытые must-use плагины и cron-задачи через WP-CLI (wp cron event list). Сбросьте все API-ключи и salts в wp-config.php. Если после этих шагов проблема возвращается, привлекайте специалистов Sucuri или Wordfence: самостоятельная охота на сложный бэкдор может занять дни.

Влияет ли плагин безопасности на скорость сайта?

Файрвол уровня DNS (Sucuri, Cloudflare) ускоряет сайт за счёт кеширования и CDN, запросы не доходят до сервера. Файрвол уровня приложений (Wordfence) добавляет 50-150 мс к обработке запроса на некешированных страницах. Сканирование по расписанию нагружает сервер только в момент работы, обычно ночью, на посетителях это не сказывается.

Стоит ли сканировать сайт вручную или довериться плагину?

Ручная проверка каждого PHP-файла на бэкдоры возможна, но бессмысленна: современный вредоносный код маскируется под легитимные конструкции, использует многоступенчатую обфускацию и прячется в base64-строках внутри медиафайлов. Плагин-сканер с активной базой сигнатур делает эту работу за секунды и не пропускает известные паттерны.

На практике оптимальный стек для большинства сайтов выглядит так: Wordfence как основной сканер и файрвол (глубокое сканирование, мгновенные уведомления, автоисправление файлов ядра бесплатно), плюс Sucuri Free для перекрёстной проверки целостности раз в месяц. Если бюджет позволяет, Sucuri Platform за $199/год снимает вообще все вопросы: DNS-файрвол, мониторинг, удаление вредоносного кода и CDN в одном пакете.

Запустите первое сканирование сегодня. Даже если сайт чист, вы получите baseline, точку отсчёта для всех будущих проверок. А если сканер найдёт проблему, вы узнаете о ней до того, как о ней узнает Google.