Вредоносный код в WordPress может привести к заражению сайта вирусами, появлению скрытых ссылок, переадресациям пользователей на сторонние ресурсы, рассылке спама, потере данных и даже полной блокировке сайта поисковыми системами. Чем раньше обнаружена проблема, тем проще восстановить безопасность проекта. В этом руководстве подробно рассмотрим способы поиска вредоносного кода в WordPress, проверку файлов и базы данных, использование WP-CLI, анализ подозрительных функций PHP и лучшие методы защиты сайта.

Признаки заражения WordPress

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

Создайте резервную копию

Перед любыми изменениями обязательно сохраните:
  • все файлы сайта;
  • базу данных;
  • конфигурационные файлы;
  • журналы ошибок.

Как найти вредоносный код в WordPress

Проверьте последние измененные файлы

На Linux можно найти недавно измененные PHP-файлы:
find . -type f -name "*.php" -mtime -7
Если заражение произошло недавно, подозрительные файлы окажутся в этом списке.

Поиск опасных PHP-функций

Вредоносный код часто использует функции для выполнения произвольного кода.
grep -R "eval(" .
grep -R "base64_decode" .
grep -R "gzinflate" .
grep -R "str_rot13" .
grep -R "assert(" .
grep -R "shell_exec" .
grep -R "system(" .
Использование этих функций не всегда означает наличие вируса, однако требует внимательной проверки.

Поиск длинных закодированных строк

Многие вирусы скрывают код в Base64.
grep -R "base64_decode" wp-content
Пример подозрительного кода:
eval(base64_decode('ZXZhbCgkX1BPU1RbJ2NtZCddKTs='));
Подобные конструкции практически всегда требуют проверки.

Проверка недавно созданных файлов

find wp-content -type f -mtime -3
Особое внимание уделите каталогам:
  • uploads;
  • plugins;
  • themes;
  • mu-plugins.

Поиск PHP-файлов в uploads

В большинстве случаев каталог загрузок не должен содержать PHP-файлы.
find wp-content/uploads -name "*.php"
Если команда вернула результат, каждый файл необходимо проверить.

Проверка файла .htaccess

Откройте файл:
.htaccess
Подозрительными являются:
  • неизвестные RewriteRule;
  • редиректы на сторонние сайты;
  • вызовы неизвестных PHP-файлов.

Проверка wp-config.php

Убедитесь, что файл содержит только стандартные настройки. Подозрительными являются:
  • вызовы eval();
  • include неизвестных файлов;
  • base64_decode;
  • длинные строки из случайных символов.

Проверка базы данных

Иногда вредоносный код хранится в таблицах WordPress. Например, выполните SQL-запрос:
SELECT option_name FROM wp_options WHERE option_value LIKE '%iframe%';
Проверьте также наличие JavaScript:
SELECT option_name FROM wp_options WHERE option_value LIKE '%script%';

Проверка пользователей

Неизвестные администраторы могут свидетельствовать о взломе. Через WP-CLI:
wp user list
Удалите подозрительные учетные записи.

Проверка целостности WordPress

WP-CLI позволяет проверить файлы ядра.
wp core verify-checksums
Если имеются изменения в системных файлах, команда сообщит об этом.

Переустановка ядра WordPress

Если ядро было изменено, выполните:
wp core download --force
Команда заменит только системные файлы без удаления контента.

Проверка установленных плагинов

Выведите список:
wp plugin list
Удалите:
  • неиспользуемые плагины;
  • неизвестные расширения;
  • устаревшие версии.

Проверка тем оформления

Просмотрите каталог:
wp-content/themes
Удалите старые и неиспользуемые темы.

Использование антивирусных плагинов

Для автоматической проверки можно использовать:
  • Wordfence Security;
  • Sucuri Security;
  • MalCare;
  • Anti-Malware Security;
  • Cerber Security.

Проверка прав доступа

Для файлов:
644
Для каталогов:
755
Излишне широкие права доступа повышают риск заражения.

Поиск скрытых include

Некоторые вирусы подключают сторонние файлы.
grep -R "include" wp-content
grep -R "require" wp-content
Проверьте все неизвестные пути подключения.

Смена всех паролей

После очистки сайта обязательно смените:
  • пароль администратора WordPress;
  • пароль FTP;
  • пароль SSH;
  • пароль панели управления хостингом;
  • пароль базы данных MySQL.

Обновление секретных ключей WordPress

В файле wp-config.php замените значения:
AUTH_KEY SECURE_AUTH_KEY LOGGED_IN_KEY NONCE_KEY AUTH_SALT SECURE_AUTH_SALT LOGGED_IN_SALT NONCE_SALT
Это завершит все активные пользовательские сеансы.

Как защитить сайт от повторного заражения

  • регулярно обновляйте WordPress;
  • используйте только проверенные темы и плагины;
  • удаляйте неиспользуемые расширения;
  • включите двухфакторную аутентификацию;
  • ограничьте число попыток входа;
  • регулярно выполняйте резервное копирование;
  • используйте веб-фаервол (WAF);
  • проводите автоматическое сканирование сайта.

Часто задаваемые вопросы

Можно ли удалить вирус вручную?

Да, если точно известен зараженный файл и вы понимаете, какие изменения были внесены. В противном случае безопаснее восстановить файлы из резервной копии или заменить измененные файлы оригинальными версиями WordPress, темы или плагина.

Почему вирус появляется снова?

Наиболее частые причины — неустраненная уязвимость, наличие скрытого бэкдора, слабые пароли или использование устаревших плагинов и тем.

Можно ли доверять бесплатным темам?

Следует использовать темы и плагины только из официального каталога WordPress или от проверенных разработчиков. Загрузка программного обеспечения с сомнительных сайтов значительно увеличивает риск заражения. Поиск вредоносного кода в WordPress требует комплексного подхода. Необходимо проверить системные файлы, каталог wp-content, базу данных, пользователей, права доступа и журналы ошибок. Дополнительную безопасность обеспечивают регулярные обновления, резервное копирование, использование антивирусных плагинов и проверка целостности файлов с помощью WP-CLI. Регулярный аудит безопасности поможет своевременно обнаружить угрозы и защитить сайт от повторных атак.

Метки: ,