Вредоносные скрипты и черви (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)
- Регулярно делайте резервные копии и проверяйте их целостность
Следуя этим советам, вы значительно снизите риск заражения вашего сайта вредоносными скриптами и червями.