Если сайт взломали, первая реакция обычно простая — паника. Магазин не открывается, хостинг шлет письма, в Google вдруг вылезает «Этот сайт может быть опасен». Знакомо? Самое противное тут не сам факт взлома, а то, что люди часто теряют часы на хаос. Начинают тыкать все подряд, обновлять плагины, удалять файлы наугад. Плохая идея.
В первые 24 часа вам не нужна геройская импровизация. Нужен порядок. Спокойно, по шагам. Ниже — что реально делать, если у вас WordPress-сайт малого бизнеса, лендинг, сайт услуг или интернет-магазин.
Сначала — не чините вслепую
Самая частая ошибка — зайти в админку и начать «чистить». А вы вообще уверены, что у вас еще есть доступ только у вас? Если на сайте сидит бэкдор, злоумышленник может видеть ваши действия, создавать новых админов и возвращать малварь хоть десять раз.
Так вот, первая цель — не «починить побыстрее», а остановить ущерб. Пока сайт заражен, он может:
- раздавать вирусы посетителям
- воровать заявки из форм
- слать спам с вашего домена
- перенаправлять людей на казино, фишинг или совсем левый мусор
- ломать репутацию бизнеса — а это потом чинится дольше всего
Если сайт приносит заявки или продажи каждый день, один день простоя — это неприятно. Но неделя работы во взломанном состоянии обычно выходит дороже.
Первые 30-60 минут: изолируйте сайт
Смотрите, тут логика простая. Сайт надо либо временно выключить, либо закрыть от посетителей. Не навсегда. Просто чтобы зараза не жила дальше.
Что делать:
- Поставьте техническую заглушку или включите maintenance mode. Если не получается — попросите хостинг временно отключить сайт.
- Смените пароли от хостинга, FTP/SFTP, базы данных, админки WordPress, почты на домене.
- Разлогиньте всех пользователей, если есть такая опция у плагина безопасности.
- Проверьте, не появились ли новые админы в WordPress.
- Сделайте копию текущего состояния сайта до любых правок.
Вот этот последний пункт люди пропускают, а зря. Даже зараженная копия полезна — потом по ней можно понять, как именно залезли. И да, если у вас есть нормальное обслуживание, вроде надежного обслуживания WordPress, такие вещи обычно уже настроены заранее — бэкапы, мониторинг, базовая защита. Тогда 24 часа превращаются не в кошмар, а в рабочую задачу.
Не удаляйте все подряд
Честно говоря, желание снести полсайта понятно. Видите странный PHP-файл — рука тянется удалить. Но взлом редко живет в одном месте. Часто там пачка мусора: внедренный код в functions.php, левый админ, подмена .htaccess, вредный cron, зараженный плагин, плюс что-то в базе данных. Удалили один файл — а сайт через час снова заражен. Видел такое не раз.
Если не понимаете, что именно нашли — лучше ничего не трогать руками в продакшене. Сначала собрать инфу.
Час 1-3: понять масштаб проблемы
Теперь надо выяснить три вещи: куда залезли, что поменяли, и есть ли чистый бэкап.
Минимальная проверка выглядит так:
- посмотрите список пользователей WordPress — нет ли незнакомых админов
- проверьте дату изменения файлов на сервере
- откройте wp-config.php, .htaccess, functions.php активной темы
- посмотрите папки uploads — там часто прячут PHP-файлы, хотя их там быть не должно
- сравните список плагинов с тем, что вы реально ставили
- проверьте логи хостинга: входы, POST-запросы, подозрительные IP
Если есть сканер безопасности — прогоните его. Но без иллюзий: сканер не волшебник. Он может найти известную малварь, сигнатуры, подозрительные изменения. А может и не найти свежий кусок кода, замаскированный под что-то «нормальное».
Кстати, если сайт уже явно заражен и нужна не теория, а быстрое восстановление, то логичнее сразу идти в помощь после взлома сайта. Особенно если это WooCommerce и каждые два часа простоя — это потерянные заказы.
Бэкап — ваш лучший друг. Но не любой
Вот где начинается самое интересное. «У нас есть бэкап» еще не значит, что все хорошо. Надо понять, чистый ли он. Если сайт взломали неделю назад, а вы это заметили только сегодня, вчерашний бэкап может уже быть заражен. И позавчерашний тоже.
Нормальный подход такой:
— найти несколько точек восстановления
— взять копию до подозрительной даты
— проверить ее отдельно, не на живом сайте
— только потом разворачивать
Если бэкапы у вас только у хостинга раз в сутки — уже что-то. Если их нет вообще… ну, короче, после этого случая настройте обязательно. Для малого бизнеса это стоит копейки по сравнению с восстановлением сайта вручную. Обычно резервное копирование в платном сервисе или у хостинга стоит от 3 до 15 евро в месяц. А ручная чистка после взлома — уже сильно дороже.
Час 3-8: закрыть дыру, через которую вошли
Многие восстанавливают сайт из бэкапа и думают: все, победа. Не-а. Если причина взлома осталась, вас просто взломают снова. Иногда в тот же день.
Типичные входные двери:
- старый плагин без апдейтов
- тема, скачанная «бесплатно» с левого сайта
- слабый пароль админа
- PHP 7.4 или еще древнее на хостинге
- взломанная почта владельца сайта
- уязвимость в хостинг-аккаунте или соседнем сайте
Надо не просто обновить все кнопкой. Надо понять, что именно было уязвимо. Если плагин заброшен — удаляйте и меняйте на живой аналог. Если тема пиратская — выкидывайте без разговоров. Если пароль был «Admin123» — ну тут даже комментировать нечего.
Очень помогает заранее читать материалы по теме и держать базовую гигиену. Например, вот тут могла бы быть ссылка на статью про базовую защиту WordPress, а еще одна — про бэкапы и восстановление, если бы они уже были опубликованы. Пока статей нет, но смысл вы поняли: без рутины безопасность не держится.
Час 8-16: восстановить сайт аккуратно
Если нашли чистый бэкап — разворачивайте его в безопасном порядке. Лучше сначала на тестовом поддомене или staging-копии. Это занимает от 30 минут до пары часов, зависит от хостинга и веса сайта. Маленький сайт услуг можно поднять быстро. Магазин на 12 000 товаров — уже другая песня.
После восстановления:
- обновите WordPress, темы, плагины
- удалите все неиспользуемое
- смените все пароли еще раз
- включите 2FA хотя бы для админов
- поставьте файрвол и защиту входа
- проверьте права доступа к файлам
- пересохраните постоянные ссылки и проверьте .htaccess
И да, проверьте формы, корзину, письма, оплату, заявки, интеграции с CRM. После взлома сайт может «открываться», но бизнес-функции при этом молча лежат. А это еще хуже — вы думаете, что все нормально, а лиды не приходят.
Час 16-24: уведомления, репутация и контроль
Когда сайт уже более-менее чистый, не расслабляйтесь. Надо проверить внешние последствия.
Если сайт пометил Google Safe Browsing — подайте запрос на повторную проверку в Search Console. Если спам шел с доменной почты — проверьте репутацию домена и почтовые ящики. Если были клиенты с аккаунтами и заказами, подумайте, не затронуты ли их данные. Иногда лучше честно предупредить людей, чем делать вид что ничего не случилось.
И обязательно смотрите логи в ближайшие дни. Взлом не всегда заканчивается в момент очистки. Иногда атакующий возвращается тем же способом, иногда другим. Особенно если уже понял, что сайт живой и приносит деньги.
Что стоит сделать сразу после инцидента
Вот короткий список того, что реально снижает шанс повторения:
- настроить ежедневные бэкапы и хранить их отдельно от сайта
- включить мониторинг доступности и изменения файлов
- убрать лишних админов и старые аккаунты сотрудников
- держать 5-10 нужных плагинов вместо 47 случайных
- обновлять WordPress хотя бы раз в неделю
- не экономить на хостинге совсем уж до смешного
Для маленького бизнеса не нужен космический SOC, SIEM и прочие страшные слова. Серьезно. В большинстве случаев хватает нормального хостинга, бэкапов, апдейтов, 2FA и вменяемого мониторинга. Все. Остальное — уже по ситуации.
Если совсем коротко
Первые 24 часа после взлома — это не про «поскорее вернуть сайт». Это про четыре вещи: остановить ущерб, сохранить копию, найти причину, восстановить чистую версию. В таком порядке. Не наоборот.
И еще одно. Если вы не технарь, не надо стыдиться звать помощь в первые же часы. На самом деле это часто самый дешевый вариант. Потому что один неверный «апдейт на авось» легко добивает то, что еще можно было спасти.
Короче — без паники. Но и без самодеятельности. Тут это обычнои и решает, потеряете вы день или две недели.