Бизнес · 7 мин чтения

Лечение сайта от вирусов: порядок работ и от чего зависит цена

Лечение сайта от вирусов начинается не с поиска вредоносного кода в файлах, а с диагностики: нужно понять, что случилось, насколько глубоко проблема сидит и что кроме файлов сайта могла задеть - базу данных, задания cron, репутацию домена в поисковике. Если браузер показывает предупреждение о небезопасном сайте, хостинг прислал письмо о вредоносной активности, а в выдаче появилась пометка про угрозу безопасности, разбираться самостоятельно методом проб и ошибок обычно выходит дороже, чем сразу отдать это специалисту. Дальше расскажу, как я строю работу по чистке сайта и от чего в итоге складывается цена.

Как понять, что сайт заражён

Проблему редко находят по чистой случайности - обычно её показывают внешние сигналы, а не собственные наблюдения владельца сайта.

  • браузер при заходе на сайт выдаёт предупреждение о небезопасном ресурсе (Google Safe Browsing и похожие списки);
  • в выдаче Яндекса или Google рядом с адресом сайта появляется пометка о возможной угрозе безопасности;
  • хостинг присылает письмо о вредоносной активности, обычно с именем конкретного файла, и иногда сам приостанавливает сайт до выяснения;
  • на страницах появились чужие рекламные блоки, баннеры или всплывающие окна, которых вы не размещали;
  • в списке пользователей появились администраторы, которых вы не заводили, с непонятными адресами почты;
  • часть посетителей вместо вашего сайта попадает на сторонние ресурсы, при этом с вашего компьютера всё выглядит нормально;
  • в индексе поисковика находятся чужие страницы, которых вы не создавали, часто про товары и услуги, никак не связанные с вашей тематикой;
  • в админке перестало работать то, что работало вчера: не открывается редактор записи, зависает страница, отваливаются кнопки сохранения;
  • резко выросла нагрузка на хостинг или расход трафика без реального роста посещаемости;
  • с формы обратной связи приходят письма, которые никто не отправлял;
  • сайт уже чистили, а через пару недель всё вернулось в том же виде.

Важная оговорка из практики: не каждый признак из этого списка означает вредоносный код в файлах, и диагноз здесь меняет и лечение, и его стоимость.

На одном оптовом сайте появились рекламные баннеры, которые владелец не ставил. Вредоносного кода там не было вообще: рекламу подключил человек с доступом в админку, а жил этот код в базе данных, а не в файлах. Первая чистка прошлась по файлам, ничего не нашла, и через три недели реклама вернулась одним нажатием кнопки в панели управления.

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

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

Где обычно сидит проблема на разных платформах

Причина почти всегда одна из двух: устаревший компонент с известной дырой или доступ к админке, который получили посторонние. А вот выглядит это по-разному в зависимости от системы.

WordPress

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

OpenCart

Здесь особенно часто источник живёт не в файлах, а в базе: модификации, правки шаблонов, сделанные из админки, и настройки, куда можно дописать посторонний код в хвост к коду счётчика аналитики. Отсюда типичная ситуация, когда сайт почистили по файлам, а через пару недель всё вернулось: достаточно было одной кнопки в панели управления. Вторая частая находка - забытый в корне сайта файловый менеджер или панель работы с базой, доступные из интернета без пароля.

1С-Битрикс

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

Самописные сайты на PHP

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

Порядок работ по лечению сайта от вирусов

Работа строится последовательно, и пропускать шаги здесь не стоит - иначе через пару недель всё повторится.

  1. Диагностика и снятие копии. Перед любым вмешательством я делаю копию сайта и базы в текущем состоянии - если что-то пойдёт не так, всегда есть точка возврата.
  2. Определение уровня заражения. Проверяю файлы, базу данных, задания cron и настройки, чтобы понять масштаб: одна папка или весь сайт, задета ли база, остались ли скрытые точки, через которые заражение вернётся.
  3. Чистка. Убираю посторонний код и файлы, восстанавливаю изменённые системные данные до исходного состояния.
  4. Восстановление работоспособности. Проверяю, что сайт открывается, формы работают, оплата и интеграции не сломаны после чистки.
  5. Закрытие точки входа. Обновляю CMS, плагины и модули до актуальных версий, меняю пароли и ограничиваю доступ там, где он был избыточным.
  6. Снятие санкций поисковиков и предупреждения браузера. Отправляю сайт на повторную проверку в Google Safe Browsing и в панели вебмастера, чтобы пометка о угрозе снялась.
  7. Отчёт по итогам. Фиксирую, что было найдено, что сделано и что стоит поменять в организации доступа на будущее.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

По срокам ориентир такой: точечная чистка занимает от 3 часов, а если задета база, задания cron или нужно восстанавливать удалённый контент, работа растягивается на несколько дней.

От чего зависит цена лечения сайта от вирусов

Базовая цена на лечение сайта от вирусов и восстановление после заражения - от 15 000 ₽. Дальше сумма растёт в зависимости от объёма работы, а не от того, на какой платформе стоит сайт.

Фактор Как влияет на цену
Сколько файлов задето Точечное заражение чистится быстрее, чем сайт, где посторонний код внедрён в десятки файлов и шаблонов
Затронута ли база данных и задания cron Если вредоносный код или задачи прописаны в базе и в cron, диагностика и чистка занимают заметно больше времени
Есть ли рабочий бэкап Чистая резервная копия ускоряет восстановление и снижает риск пропустить скрытую точку входа
Насколько устарела CMS и можно ли её обновить Древнюю версию системы иногда нельзя обновить без риска сломать сайт, тогда чистка совмещается с частичным переносом
Нужно ли восстанавливать удалённый контент Если часть страниц, товаров или файлов была удалена или испорчена, добавляется отдельный этап восстановления
Срочность Первоочередная задача до вечера или выходных требует перестройки моего графика, что тоже закладывается в цену

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

По моему опыту сайт с точечным заражением на актуальной версии CMS и с рабочим бэкапом обходится ближе к базовой цене. А вот заброшенный сайт пятилетней давности без обновлений, где заражена база и часть контента пропала, требует времени в разы больше - иногда дешевле обсудить с владельцем, не выгоднее ли ему заказать разработку сайта заново, чем latать старую систему до бесконечности.

Профилактика после лечения

После чистки я обычно советую несколько простых вещей, которые снижают риск повторного заражения:

  • регулярные автоматические бэкапы, отдельные от хостинга, на котором лежит сайт;
  • обновление CMS, тем и плагинов по расписанию, а не по факту проблемы;
  • ограничение доступа в админку по IP или хотя бы двухфакторная авторизация;
  • для конструкторов - контроль за тем, кто имеет доступ к аккаунту, и периодическая проверка вставленных сторонних скриптов.

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

Частые вопросы

Сколько времени занимает лечение сайта от вирусов?

От 3 часов до нескольких дней. Точечная проблема на одной странице решается за несколько часов, а заражённая база, задания cron и удалённый контент требуют нескольких дней работы.

Можно ли вылечить сайт без бэкапа?

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

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

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

Как быстро снимается предупреждение браузера или пометка в поиске?

После чистки сайт отправляется на повторную проверку в Google Safe Browsing и панели вебмастера. Срок снятия пометки зависит от самого поисковика и от того, насколько быстро он перепроверит сайт, а не только от скорости лечения.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно