Автоматическое удаление вредоносных скриптов и червей в WordPress

Вредоносные скрипты и черви (malware worms) – одна из серьезных угроз для сайтов на WordPress. Они могут заразить файлы, базу данных, замедлить работу сайта и привести к компрометации данных. В этой статье мы подробно разберем, как обнаружить и автоматически удалить вредоносные скрипты и черви из WordPress с помощью плагинов и кастомных решений на PHP.

Что такое вредоносные черви и как они проникают в WordPress

Черви — это тип вредоносного ПО, который распространяется без участия пользователя, обычно через уязвимости в плагинах, темах или ядре WordPress. Они могут внедрять вредоносный код в PHP-файлы, создавать свои копии, заражать базу данных через SQL-инъекции или добавлять вредоносный JavaScript в контент.

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

Распознать заражение можно по следующим признакам:

  • Необычные и новые файлы в корне или wp-content
  • Подозрительные скрипты в темах и плагинах (например, base64_decode, eval, gzinflate)
  • Медленная работа сайта и частые ошибки 500
  • Неожиданные редиректы и всплывающие окна
  • Сообщения от антивирусных сервисов и Google Safe Browsing

Лучшие плагины для автоматического сканирования и удаления вредоносного кода

Для автоматизации поиска и удаления вредоносных скриптов в WordPress существуют проверенные плагины:

Wordfence Security

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

Особенности:

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

Sucuri Security

Плагин от известного сервиса Sucuri, который предлагает сканирование, удаление вредоносного кода и мониторинг целостности файлов.

Плюсы:

  • Обнаружение вредоносных скриптов, червей и backdoor
  • Удаление зараженных файлов и очистка базы
  • Интеграция с облачными WAF для защиты от повторных атак

Anti-Malware Security and Brute-Force Firewall

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

Функции:

  • Постоянные обновления базы сигнатур вредоносного кода
  • Автоматическое удаление зараженных скриптов
  • Возможность ручного анализа и исключения ложных срабатываний

Как написать собственный скрипт для обнаружения и удаления вредоносных функций

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

Пример функции, которая ищет подозрительный PHP-код и удаляет его из файлов в каталоге темы:

function wp_pro_remove_malicious_code($dir) {
    $dangerous_patterns = [
        '/eval\((.*?)\)/is',
        '/base64_decode\((.*?)\)/is',
        '/gzinflate\((.*?)\)/is',
        '/shell_exec\((.*?)\)/is',
        '/system\((.*?)\)/is'
    ];
    $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));

    foreach ($files as $file) {
        if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $content = file_get_contents($file->getRealPath());
            $cleaned = $content;

            foreach ($dangerous_patterns as $pattern) {
                $cleaned = preg_replace($pattern, '', $cleaned);
            }

            if ($cleaned !== $content) {
                file_put_contents($file->getRealPath(), $cleaned);
                error_log('Removed malicious code from: ' . $file->getRealPath());
            }
        }
    }
}

Вызывайте эту функцию, передавая путь к каталогу с темой или плагином, например:

wp_pro_remove_malicious_code(get_template_directory());

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

Использование WP-Cron для регулярной проверки и очистки файлов

Для автоматизации запуска очистки можно использовать встроенную систему планировщика задач WP-Cron. Пример создания задачи, которая запускает наш скрипт каждую неделю:

function wp_pro_schedule_cleanup() {
    if (!wp_next_scheduled('wp_pro_weekly_cleanup')) {
        wp_schedule_event(time(), 'weekly', 'wp_pro_weekly_cleanup');
    }
}
add_action('wp', 'wp_pro_schedule_cleanup');

function wp_pro_do_cleanup() {
    wp_pro_remove_malicious_code(get_template_directory());
    wp_pro_remove_malicious_code(WP_PLUGIN_DIR);
}
add_action('wp_pro_weekly_cleanup', 'wp_pro_do_cleanup');

Таким образом, очистка будет запускаться автоматически без вашего участия.

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

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

  • Регулярно обновляйте ядро WordPress, плагины и темы
  • Используйте только проверенные плагины из официального репозитория
  • Настройте правильные права доступа на файлы и папки (обычно 644 для файлов и 755 для каталогов)
  • Ограничьте права пользователей и используйте двухфакторную аутентификацию
  • Установите плагин безопасности (например, Wordfence, Clearfy Pro с https://wpshop.ru/clearfy-pro/?utm_source=wp-pro.ru&utm_medium=article&utm_campaign=udalit-avtomaticheskie-chervi-v-wordpress)
  • Регулярно делайте резервные копии и проверяйте их целостность

Следуя этим советам, вы значительно снизите риск заражения вашего сайта вредоносными скриптами и червями.

Как автоматизировать создание резервной копии WordPress
03.12.2025
Удаление пустых HTML-тегов в WordPress: эффективное решение без ущерба SEO
31.01.2026
Как использовать выборку данных в WordPress с помощью WP_Query
21.11.2025
Создание динамического файлового каталога в WordPress: практическое руководство
24.02.2026
Как создать автоматический каталог файлов в WordPress
08.02.2026