Восстановление сайтов после заражения: очистка, защита и работа с поисковыми системами
Взлом · Вредоносный код · Восстановление · Защита · Мониторинг · Яндекс.Вебмастер · Search Console
Восстановление сайтов после заражения: очистка, защита и работа с поисковыми системами
Два сайта клиента на общем хостинге — назовём их Сайт 1 и Сайт 2 — оказались заражены вредоносным кодом и параллельно использовались для скрытой накрутки чужих страниц в поисковой выдаче через robots.txt.
Работа охватила диагностику, очистку файлов, восстановление, защиту от повторного заражения, настройку мониторинга и приведение в порядок данных в Яндекс.Вебмастере и Google Search Console.
Что обнаружено
Вредоносные файлы
На обоих сайтах найдены посторонние файлы, не относящиеся к дистрибутиву CMS.
Заражённые плагины
Часть установленных плагинов оказалась подозрительной, часть — модифицированной версией официальных.
Пять посторонних sitemap
В robots.txt заражённой версии Сайта 1 прописаны пять чужих карт сайта по 3001 ссылке в каждой — настоящая sitemap_index.xml не указана вовсе.
Чужое подтверждение прав
В Google Search Console обнаружен файл подтверждения прав, не принадлежащий владельцу сайта.
Что сделано
-
Очистка
На обоих сайтах найдены и удалены вредоносные файлы. Подозрительные плагины убраны, остальные заменены официальными версиями из репозитория. Перед любыми изменениями исходные файлы и база данных сохранены в резервных копиях.
Вредоносный код · Плагины · Backup -
Восстановление и защита
Очищенные файлы загружены обратно на сервер. Включён принудительный переход на защищённое HTTPS-соединение, усилены настройки безопасности, завершены все старые сеансы входа в административные панели. Чужой файл подтверждения прав Google удалён, файл владельца сайта сохранён без изменений.
HTTPS · Права доступа · Сессии -
Мониторинг
Установлен скрипт контроля новых и изменённых файлов, запускается каждые 5 минут через планировщик задач в панели хостинга. Отслеживаются новые файлы и изменение mtime, размера, inode или типа у существующих — включая символические ссылки, хотя их цели скрипт не обходит. Изображения, видео, музыка, CSS и TXT исключены из проверки, чтобы не заваливать уведомлениями по мелочам.

Отчёты уходят во внешнюю систему мониторинга; токен авторизации не передаётся в аргументах команды. Первый отчёт принят: в базовый снимок вошло 9568 файлов на обоих сайтах, очередь неподтверждённых отчётов пуста. Если изменений нет, очередной запуск ничего не отправляет.
Cron · Контроль файлов · Уведомления -
Работа с Яндекс.Вебмастером
robots.txt заменён на корректный: закрыта от обхода служебная часть админки, единственной картой сайта указана sitemap_index.xml. Файлы посторонних карт удалены с сервера — проверкой подтверждено, что все пять отдают 404, а штатная карта отвечает корректно.
В интерфейсе Вебмастера старые карты пока показаны со статусом «ок» и датой последнего скачивания — это данные предыдущего обхода, не текущее состояние. Их обновление ожидается после того, как робот повторно обратится к robots.txt и старым адресам; точный срок Вебмастер не публикует.
robots.txt · Sitemap · Яндекс.Вебмастер -
Работа с Google Search Console
Посторонние карты сайта проверены, для дальнейшего обхода роботом указана штатная sitemap_index.xml. Чужой файл подтверждения прав удалён, файл владельца сайта сохранён. Обновление поисковых данных наступит после повторного обхода сайта — само по себе удаление посторонних карт не убирает из индекса страницы, которые туда уже попали.
Search Console · Sitemap · Индексация
Причина заражения
Установить точный способ, которым сайты были заражены, не удалось: журналы доступа веб-сервера отсутствовали, логирование на сервере было отключено ещё до начала работ.
Без журналов нельзя доказательно назвать конкретную уязвимость, скомпрометированный пароль или заброшенный плагин, через который произошло заражение — версия «наверное, вот через это» осталась бы гипотезой, выданной за факт. Вместо гадания закрыты все найденные точки, через которые заражение могло повториться, и включён мониторинг файлов, который заменяет отсутствующие журналы контролем на будущее.
Текущий статус
Сайт 1
Работает в штатном режиме, под контролем мониторинга файлов.
Сайт 2
Файлы очищены, но для полноценного восстановления не хватает базы данных — её резервной копии на сервере не оказалось, и без неё сайт не поднять.
Что использовано
Результат
Сайт 1 очищен, защищён и работает в штатном режиме под контролем мониторинга файлов. Сайт 2 очищен от вредоносного кода, но ждёт от владельца недостающую базу данных, без которой сайт не восстановить. В обеих поисковых системах убраны посторонние карты сайта и чужие файлы подтверждения прав, вместо них указана штатная sitemap_index.xml и сохранён файл владельца; дальнейшее обновление данных в выдаче зависит от сроков очередного обхода робота, а не от подрядчика.
Очистка от вирусов · Восстановление после взлома · robots.txt · sitemap.xml · Яндекс.Вебмастер · Google Search Console · Мониторинг файлов · HTTPS · Безопасность
