Первые 15 минут: остановить кровотечение

Самая частая ошибка — начинать разбираться, «как это случилось». Потом. Сейчас задача одна: минимизировать ущерб.

Шаг 1. Закройте сайт от посетителей.

Зайдите в панель хостинга и поставьте заглушку (режим обслуживания). Если не знаете как — просто переименуйте `index.php` в `index_backup.php` и создайте новый `index.php` с текстом «Сайт временно недоступен, ведутся технические работы». Это займёт 2 минуты, но спасёт ваших клиентов от вредоносных редиректов и сохранит репутацию домена в поисковиках.

Почему это критично: Яндекс и Google умеют очень быстро помечать заражённые сайты. Если ваш сайт раздаёт малварь хотя бы сутки — вы получите плашку «Сайт может угрожать безопасности» в выдаче. Снять её потом — отдельный квест на несколько недель.

Шаг 2. Смените все пароли. Все.

Буквально всё:

  • пароль от хостинг-панели (ISPmanager, cPanel, Beget, TimeWeb — что у вас)
  • FTP/SFTP-доступы
  • пароль администратора WordPress (или другой CMS)
  • пароль от базы данных MySQL
  • пароль от почты, привязанной к домену и хостингу

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

Шаг 3. Свяжитесь с хостингом.

Напишите в поддержку хостинга прямо сейчас. Не стесняйтесь, они видят такое каждый день. Попросите:

  • проверить, не были ли скомпрометированы другие сайты на вашем аккаунте
  • предоставить логи доступа за последние 30 дней
  • сделать снапшот текущего состояния (он понадобится для анализа)

У хороших хостингов вроде TimeWeb, Beget, REG.RU есть штатные инструменты проверки на вирусы — попросите запустить сканирование со стороны хостера.

Разбираемся, что произошло

Окей, сайт закрыт, пароли сменены, хостер в курсе. Теперь можно выдохнуть и начать расследование.

Как понять, что именно сломали

В 2025–2026 годах самые частые сценарии взлома бизнес-сайтов выглядят так:

Вредоносный редирект — посетитель заходит на ваш сайт и его перебрасывает на сторонний ресурс. Обычно казино, фарма-сайт или фишинговая страница. Код редиректа чаще всего сидит в `.htaccess`, `wp-config.php` или в JavaScript-файлах темы.

Скрытый SEO-спам (японский дорвей) — на сайте появляются тысячи страниц на японском или китайском с ссылками на сторонние магазины. Вы их не видите, потому что они отдаются только поисковым ботам. Проверить легко: забейте в Яндексе `site:вашсайт.ru` и посмотрите, нет ли чужих страниц в индексе.

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

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

Где искать следы

Начните с логов. Попросите у хостера или найдите самостоятельно `access.log` и `error.log`. Ищите подозрительные POST-запросы к файлам вроде `wp-login.php`, `xmlrpc.php`, `admin-ajax.php`. Если видите сотни запросов с одного IP — это, скорее всего, брутфорс.

Проверьте даты изменения файлов. Через SSH это делается командой:

find /path/to/site -mtime -7 -type f

Она покажет все файлы, которые менялись за последние 7 дней. Если среди них есть файлы ядра WordPress, которые вы точно не трогали — вот они, следы взлома.

Лечение сайта: что делается на практике

Вариант А: есть чистый бэкап

Если есть резервная копия, сделанная до момента взлома — это лучший сценарий.

  1. Разверните чистый бэкап в отдельную директорию на сервере
  2. Сравните файлы бэкапа с текущей заражённой версией — используйте `diff` или WinMerge, чтобы увидеть все изменения
  3. Восстановите сайт из бэкапа
  4. Сразу обновите WordPress, все плагины и тему до актуальных версий
  5. Проверьте базу данных — вредоносный код часто прячется в `wp_options` (поля `siteurl`, `home`) или в контенте записей

Но просто откатить бэкап недостаточно. Если не закрыть дыру, через которую вломились — взломают повторно. Иногда в тот же день.

Вариант Б: бэкапа нет

Тяжёлый случай, но решаемый. Порядок действий:

  1. Скачайте чистое ядро WordPress с wordpress.org той же версии, что стоит на сайте
  2. Полностью замените директории `wp-admin` и `wp-includes` чистыми файлами
  3. Проверьте корневую директорию — `wp-config.php`, `.htaccess`, `index.php` и другие файлы в корне сравните с эталонными
  4. В папке `wp-content` проверьте каждый плагин и тему вручную. Удалите всё, что не используется
  5. Ищите файлы с подозрительными именами: `wp-tmp.php`, `class-wp-cache.php`, `db-safe.php` — если не знаете, для чего файл, почти наверняка он не ваш
  6. Прогоните базу данных на наличие вставок `<script>`, `eval(`, `base64_decode(`, `str_rot13(`

Полезный приём — поиск строк, типичных для бэкдоров:

grep -r "eval(" wp-content/ --include="*.php"
grep -r "base64_decode" wp-content/ --include="*.php"
grep -r "str_rot13" wp-content/ --include="*.php"
grep -r "gzinflate" wp-content/ --include="*.php"

Не каждый `eval()` — это вредоносный код, но каждый стоит проверить.

Бесплатные инструменты для проверки

  • Yandex Вебмастер → раздел «Безопасность и нарушения». Яндекс покажет, обнаружены ли на сайте вредоносные элементы
  • Google Search Console → «Проблемы безопасности». Аналогично — Google расскажет, если нашёл что-то плохое
  • Sucuri SiteCheck (sitecheck.sucuri.net) — внешний сканер, проверяет сайт со стороны. Бесплатно
  • Wordfence (плагин WordPress) — сканирует файлы на сервере, сравнивает с эталонными. Бесплатная версия вполне рабочая
  • AI-BOLIT — скрипт от Revisium, одно из лучших решений для поиска вредоносного кода на PHP-сайтах. Актуален и в 2026 году

После лечения: как вернуть позиции в поисковиках

Сайт вылечен. Но если Яндекс или Google успели пометить его как опасный — трафик не вернётся сам по себе.

Действия для Яндекса

Зайдите в Яндекс Вебмастер, перейдите в раздел «Безопасность и нарушения». Если там висит предупреждение — после устранения проблемы нажмите «Я всё исправил». Яндекс перепроверит сайт в течение нескольких дней. Обычно от 3 до 14 дней.

Действия для Google

В Google Search Console зайдите в «Проблемы безопасности», изучите детали и запросите повторную проверку. Google обычно реагирует быстрее — от 1 до 5 дней.

Что делать с потерянными позициями

Плохая новость: даже после снятия пометки позиции могут просесть. Поисковики теряют доверие к сайту, который раздавал вирусы. Хорошая новость: это временно. Если сайт был «здоров» до взлома и всё быстро починили — позиции восстанавливаются в течение 2–6 недель. Главное — не дёргать сайт лишний раз, не менять структуру URL и продолжать обычную работу.

Почему WordPress ломают чаще всего

WordPress — не плохая система. Но по разным оценкам, WordPress стоит на 40%+ всех сайтов в интернете. Это делает его главной мишенью.

Основные точки входа, которые встречаются снова и снова:

Устаревшие плагины. Это причина номер один. Не ядро WordPress, не тема — именно плагины. Разработчик забросил плагин, перестал выпускать обновления, а уязвимость в нём уже в публичных базах. Боты сканируют миллионы сайтов и находят ваш за минуты.

Nulled-темы и плагины. Скачали «бесплатно» премиум-тему с пиратского сайта? С вероятностью 80% внутри уже встроен бэкдор. Экономия 50 долларов оборачивается потерей сайта.

Слабые пароли. admin/admin123 — до сих пор встречается в 2026 году. Без комментариев.

Открытый xmlrpc.php. Этот файл позволяет массово перебирать пароли, обходя стандартную защиту формы логина. Многие даже не знают о его существовании.

Защита WordPress от повторного взлома: чеклист

Обновления — на автомат. Начиная с WordPress 5.6, минорные обновления безопасности ставятся автоматически. Убедитесь, что это не отключено. Мажорные обновления — ставьте вручную, но не затягивайте дольше недели.

Удалите всё лишнее. Неактивные плагины и темы — не просто отключите, а именно удалите. Неактивный плагин с уязвимостью всё ещё может быть вызван напрямую по URL.

Двухфакторная аутентификация. Поставьте любой плагин 2FA для входа в админку. Это одна из самых эффективных мер — даже если пароль утечёт, без второго фактора в админку не попадут.

Ограничьте попытки входа. Плагин Limit Login Attempts Reloaded или аналог. После 3–5 неудачных попыток — блокировка IP на час. Это остановит большинство брутфорс-атак.

Закройте xmlrpc.php. Добавьте в `.htaccess`:

<Files xmlrpc.php>
  Order Deny,Allow
  Deny from all
</Files>

Если не используете мобильное приложение WordPress или Jetpack — вы ничего не потеряете.

Смените префикс таблиц базы данных. Стандартный `wp_` — это первое, что пробуют при SQL-инъекциях. Да, на работающем сайте менять неудобно, но на этапе установки — обязательно ставьте кастомный префикс.

Регулярные бэкапы. Настройте автоматический бэкап раз в сутки с хранением минимум 30 дней. UpdraftPlus — бесплатная версия умеет отправлять копии на Google Drive или Яндекс Диск. Без бэкапа вы просто играете в рулетку.

Файрвол уровня приложения. Wordfence или Sucuri в бесплатных версиях дают базовую защиту. Если бюджет позволяет — подключите Cloudflare Pro с WAF-правилами.

Сколько стоит лечение сайта и когда звать специалиста

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

Фрилансер — от 5 000 до 30 000 рублей в зависимости от сложности. Адекватный специалист вылечит сайт за 1–2 дня, найдёт точку входа и закроет уязвимость. Ищите человека с отзывами именно по лечению сайтов — это специфическая задача.

Специализированные сервисы (Revisium, Sucuri) — от 10 000 рублей. Плюс — это их основная работа, у них отработанные процессы и гарантия от повторного заражения.

Если сайт приносит деньги — не экономьте на специалисте. Каждый день простоя — это потерянные заявки, клиенты и позиции в поиске. Час работы профессионала часто дешевле, чем день простоя бизнеса.

Чего точно НЕ надо делать

Не удаляйте сайт целиком в панике. Без файлов и логов невозможно понять, как вас взломали. А без понимания точки входа — взломают снова.

Не платите вымогателям. Если вам пишут «мы взломали ваш сайт, переведите N биткоинов» — в большинстве случаев это блеф. Даже если нет — оплата не гарантирует ничего.

Не ставьте 20 плагинов безопасности одновременно. Они конфликтуют друг с другом и могут положить сайт быстрее любого хакера. Один нормальный плагин безопасности — достаточно.

Не игнорируйте проблему. «Ну работает же» — это не аргумент. Если сайт взломали и вы не отреагировали, последствия нарастают: поисковики банят, хостинг блокирует, посетители уходят. С каждым днём восстановление обходится дороже.

Чеклист на экстренный случай

Если вы сейчас в ситуации «сайт взломали, что делать» — вот сжатый план действий. Сохраните его:

  1. Поставить заглушку — закрыть сайт от посетителей
  2. Сменить ВСЕ пароли с чистого устройства
  3. Написать хостеру — попросить логи и сканирование
  4. Сделать копию заражённого сайта (для анализа)
  5. Восстановить из чистого бэкапа или вылечить вручную
  6. Обновить CMS, плагины, тему
  7. Проверить сайт сканерами (Wordfence, AI-BOLIT, Sucuri SiteCheck)
  8. Запросить повторную проверку в Яндекс Вебмастере и Google Search Console
  9. Настроить защиту от повторного взлома
  10. Настроить автоматические бэкапы, если их не было