Пошаговая инструкция по поиску и удалению вирусов на сайте. Проверка файлов и базы данных, использование антивирусных сканеров, работа с предупреждениями Яндекса. Как найти скрытые ссылки, фишинговые страницы и шеллы.
Введение
Однажды вы открываете сайт и видите вместо привычной главной страницы рекламу казино. Или заходите в Яндекс.Вебмастер, а там предупреждение: «Сайт заражён, может угрожать безопасности пользователей». Или, что ещё хуже, ничего не видите — а поисковый трафик тихо умирает, потому что Яндекс пометил сайт как вредоносный и убрал из выдачи. Вирусы на сайтах — не миф из нулевых, а вполне реальная угроза в 2026 году. Меняются только методы: сегодня вредоносный код маскируется под системные файлы CMS, прячется в базе данных, прописывается в .htaccess и действует скрытно. В этой статье — практическое руководство по поиску и удалению вредоносного кода с сайта: с чего начать, куда смотреть, чем сканировать и как не допустить повторного заражения.
Как понять, что сайт заражён
Вирусы не всегда проявляют себя явно. Вот список симптомов, которые должны насторожить владельца сайта. Первое и самое очевидное: предупреждение в Яндекс.Вебмастере. Зайдите в раздел «Безопасность и нарушения» — если там есть сообщение о вредоносном коде, действовать нужно немедленно. Второе: метка в поисковой выдаче. Рядом с URL вашего сайта в Яндексе может появиться пометка «Сайт может угрожать безопасности вашего устройства». После такой пометки кликабельность падает почти до нуля. Третье: редирект на сторонний ресурс. Пользователи жалуются, что при заходе на сайт их перебрасывает на другой сайт. Четвёртое: появление чужих страниц. В индексе обнаруживаются страницы, которых вы не создавали — обычно с рекламой казино, фармацевтики или товаров сомнительного содержания. Пятое: скрытые ссылки в футере или теле страниц. Внешне не видны, но в исходном коде есть ссылки на сторонние ресурсы. Шестое: резкое падение трафика без видимых причин. Яндекс исключил заражённые страницы из индекса, а вы ещё не знаете о проблеме. Седьмое: подозрительная
активность на сервере — резкий рост нагрузки, появление неизвестных файлов, отправка спама с вашего домена.
Первые действия при обнаружении заражения
Если вы обнаружили признаки вируса, не паникуйте и действуйте по протоколу. Первое: переведите сайт в режим обслуживания. Это остановит заражение пользователей и даст вам время на диагностику. Второе: смените все пароли — от хостинга, FTP, админки сайта, базы данных. Третье: сделайте полный бэкап текущего состояния, включая заражённые файлы. Это нужно для анализа — позже вы сравните заражённую версию с чистой. Четвёртое: проверьте, нет ли незнакомых пользователей в админке сайта. Злоумышленники часто создают учётные записи с правами администратора. Пятое: проверьте файл .htaccess. Вирусы любят прописывать в него редиректы и правила, скрывающие вредоносный код от владельца. Шестое: свяжитесь с хостером. Сообщите о подозрении на взлом — возможно, проблема не только в вашем сайте, но и в серверном окружении.
Где прячется вредоносный код
Чтобы найти вирус, нужно знать излюбленные места его обитания. Место первое: файлы темы и плагинов. Злоумышленники внедряют код в function.php активной темы, в файлы плагинов, особенно устаревших версий. Место второе: загрузочные директории. Папки uploads, images, media — туда можно загрузить PHP-файл под видом картинки. Место третье: файлы в корне сайта — index.php, wp-config.php и аналоги. Место четвёртое: база данных. Вредоносный код может быть вставлен в тело страниц (таблица posts), в виджеты, в настройки темы. Место пятое: .htaccess. Помимо редиректов, сюда прописывают правила, блокирующие доступ к антивирусным плагинам или поисковым ботам. Место шестое: wp-cron и запланированные задачи. Вирус может восстанавливать себя после удаления через скрытые cron-задачи. Место седьмое: левые файлы с нестандартными именами — gecko.php, about.phtml, config.bak и подобные. Если видите файл, который вы не создавали и не устанавливали — это подозрительно.
Ручная проверка: на что смотреть в коде
Автоматические сканеры не всегда находят всё. Полезно уметь выявлять вредоносный код глазами. Характерные признаки. Функции eval, base64_decode, gzinflate, str_rot13 — сами по себе не вредоносны, но вирусы их обожают для обфускации кода. Длинные зашифрованные строки, особенно в начале PHP-файлов. Вызовы curl_exec или file_get_contents с URL внешних сайтов. Вставки javascript, открывающие скрытые iframe или выполняющие редирект. Функции, меняющие заголовки ответа сервера. Код, который срабатывает только для определённых User-Agent (например, только для поисковых ботов, но не для обычных пользователей). Проверять нужно все PHP-файлы в теме, плагинах и корне сайта. Но не сверяйте каждый файл вручную — используйте поиск по содержимому файлов через консоль хостинга или FTP-клиент с функцией поиска. Ищите по ключевым словам: eval, base64, shell_exec, passthru, system. Найденные совпадения анализируйте — некоторые из них могут быть легитимным кодом плагинов.
Сканеры и антивирусные инструменты
Ручная проверка хороша, но сканеры быстрее и покрывают больше сигнатур. Для российских сайтов доступны следующие инструменты. Первый: встроенная проверка в Яндекс.Вебмастере. В разделе «Безопасность» Яндекс сам сканирует сайт на наличие вредоносного кода и сообщает о находках. Это бесплатно и авторитетно, но не мгновенно — проверка занимает время. Второй: антивирусные плагины для CMS. Для WordPress это бесплатные решения, которые проверяют целостность файлов ядра, тем и плагинов, сравнивая их с оригинальными версиями из репозитория. Третий: онлайн-сканеры, которые анализируют сайт по URL, не требуя установки. Четвёртый: консольные утилиты на сервере — ClamAV, Linux Malware Detect (LMD). Установка требует прав root, но если у вас VPS, это самый мощный инструмент. Сканер находит шеллы, бэкдоры, фишинговые страницы по сигнатурам. Важно: ни один сканер не даёт 100 процентов гарантии. Используйте комбинацию: автоматический сканер плюс ручная проверка подозрительных находок.
Как удалить вирус и восстановить сайт
Сканер нашёл заражённые файлы. Что дальше? Не удаляйте их сразу — сначала разберитесь, что это за файл. Если это левый файл, которого нет в оригинальной CMS — удаляйте без колебаний. Если заражён системный файл (например, wp-config.php) — не удаляйте, а замените на оригинал из свежего дистрибутива CMS. Если заражён файл темы или плагина — замените тему или плагин целиком на чистую версию. После удаления проверьте базу данных. Вредоносный код в базе можно найти поиском по тем же ключевым словам: eval, base64, script, iframe. Нашли — удаляйте записи или заменяйте на чистый контент из бэкапа. Отдельная история — скрытые пользователи админки. Удалите всех незнакомых пользователей, особенно с правами администратора. Проверьте файлы на наличие бэкдоров — скриптов, которые позволяют злоумышленнику восстановить доступ даже после смены паролей. Бэкдоры часто маскируются под системные файлы и содержат код, принимающий команды извне. После полной очистки обновите CMS, тему и все плагины до последних версий. Устаревшее ПО — главная причина взломов.
Как снять пометку о вредоносном сайте в Яндексе
После очистки сайта нужно убрать предупреждение в поиске. Зайдите в Яндекс.Вебмастер, раздел «Безопасность и нарушения». Если проблема устранена, нажмите кнопку «Я всё исправил». Яндекс запустит повторную проверку. Она может занять от нескольких часов до нескольких дней. В это время важно, чтобы сайт оставался чистым. Если робот при повторной проверке снова найдёт вредоносный код, предупреждение останется, а доверие к сайту упадёт ещё сильнее. Пока проверка не пройдена, трафик из Яндекса будет минимальным — пользователи видят предупреждение и не переходят. Чтобы ускорить процесс, после нажатия кнопки отправьте главную страницу и ключевые разделы на переобход через инструмент «Проверить URL». Это заставит робота быстрее дойти до вашего сайта и убедиться в его безопасности. О других инструментах Вебмастера для управления индексацией читайте в статье Яндекс.Вебмастер для индексации: полный обзор инструментов.
Профилактика: как не допустить повторного заражения
Удалить вирус — полдела. Важно закрыть дыры, через которые он проник. Вот обязательный минимум. Первое: автообновление CMS и плагинов. Настройте автоматическое обновление или проверяйте наличие обновлений еженедельно. Второе: удалите неиспользуемые плагины и темы. Каждый лишний плагин — потенциальная точка входа. Третье: используйте сложные пароли и двухфакторную аутентификацию для входа в админку. Четвёртое: ограничьте доступ к админке по IP. Если у вас статический IP, разрешите вход только с него. Пятое: регулярное резервное копирование. Свежий бэкап позволяет восстановить сайт за минуты. Шестое: мониторинг целостности файлов. Настройте плагин или скрипт, который оповещает вас о появлении новых или изменении существующих файлов. Седьмое: используйте защиту от брутфорса — ограничение количества попыток входа. О комплексной безопасности сайта у нас есть отдельная статья: DDoS-защита и HTTPS: как обезопасить сайт от атак.
Часто задаваемые вопросы
Может ли сайт заразиться, если я ничего не устанавливал? Да. Взлом через уязвимость в CMS или плагине не требует ваших действий — злоумышленник использует автоматический эксплойт. Также заражение может произойти через скомпрометированный компьютер, с которого вы заходите на FTP, или через уязвимость на соседнем сайте на shared-хостинге.
Как часто нужно сканировать сайт на вирусы? Минимум раз в месяц — автоматическим сканером. После установки нового плагина или темы — сразу проверьте, что они не содержат вредоносного кода. При появлении любых подозрительных симптомов — немедленно.
Поможет ли смена хостинга избавиться от вируса? Если вирус только в файлах сайта — нет, вы перенесёте его вместе с файлами. Если заражён сервер хостера — да, смена хостинга решит проблему. Сначала очистите сайт, потом меняйте хостинг, если старый скомпрометирован.
Вредоносный код на сайте — это всегда вирус? Не всегда. Иногда это результат действий недобросовестного разработчика, который вставил скрытые ссылки или рекламный код. Технически это не вирус, но для поисковика разницы нет — это вредоносный код, и сайт будет пессимизирован.
Можно ли восстановить позиции после снятия пометки о вирусе? Да, но не мгновенно. После снятия предупреждения трафик восстанавливается постепенно в течение 2-4 недель. Если сайт долго был под фильтром, часть позиций может не восстановиться полностью — потребуется дополнительная работа по улучшению качества сайта и ссылочного профиля.