Сайт взломали: пошаговый план действий
Практика3 минРедакция Innovialabs
Коротко
Если сайт взломали, не удаляйте всё в панике: сначала ограничьте ущерб и сохраните копию для анализа, затем найдите, как злоумышленник попал внутрь, восстановите сайт из чистой копии, смените все пароли и ключи, при необходимости уведомите пользователей и попросите поисковики перепроверить сайт.
Главное: действовать по порядку
Признаки взлома бывают разными: редирект на чужие сайты, странные страницы в поиске, предупреждение браузера, спам с вашего домена, новые администраторы, резкий рост нагрузки. Первое желание — срочно всё удалить и переустановить. Это ошибка: так теряются улики, а дыра, через которую зашли, остаётся открытой, и сайт взломают снова.
Порядок действий:
- Изолировать.
- Сохранить улики.
- Найти точку входа.
- Очистить и восстановить.
- Сменить все доступы.
- Уведомить, если нужно.
- Снять предупреждения поисковиков.
1. Изолировать
Цель — остановить ущерб для посетителей и данных.
- Включите режим обслуживания или временно отдайте статичную страницу.
- Если сервер рассылает спам или атакует других, ограничьте исходящий трафик или отключите сервер от сети через панель провайдера.
- Не выключайте сервер полностью без необходимости: в памяти и временных файлах могут быть следы.
- Сообщите хостинг-провайдеру — у него могут быть логи и инструменты.
2. Сохранить улики
Перед любой очисткой сделайте полную копию: файлы сайта, дамп базы данных, логи веб-сервера, логи входа (SSH, панель управления, админка CMS). Если сервер облачный, сделайте снимок диска.
Храните копию отдельно и не восстанавливайте из неё сайт — она заражена. Она нужна, чтобы понять, что произошло, и, возможно, для обращения в правоохранительные органы.
3. Найти точку входа
Без этого шага восстановление бесполезно. Где искать:
- Логи веб-сервера — необычные POST-запросы к отдельным файлам, обращения к загруженным PHP-файлам.
- Изменённые файлы — сравните с чистой копией или оригинальным дистрибутивом CMS; ищите недавно изменённые файлы и PHP в папках загрузок.
- Учётные записи — новые администраторы в CMS, новые пользователи и ключи на сервере.
- Устаревшие компоненты — плагины, темы, библиотеки с известными уязвимостями.
- Утёкшие пароли — входы под настоящими аккаунтами в нерабочее время или с необычных адресов.
Частые точки входа: уязвимый плагин, украденный пароль администратора или FTP, открытая админка без 2FA, ключи в публичном репозитории.
4. Очистить и восстановить
Надёжнее всего восстановить, а не лечить:
- Разверните сайт на чистом сервере или в чистом окружении.
- Возьмите код из репозитория или свежего дистрибутива CMS, а не с заражённого сервера.
- Восстановите базу из бэкапа, сделанного до взлома. Если такого нет — проверьте её вручную на вредоносные вставки и лишних пользователей.
- Перенесите загруженные файлы, убедившись, что среди них нет исполняемого кода.
- Закройте точку входа: обновите компонент, удалите уязвимый плагин, исправьте код.
- Обновите всё остальное и включите мониторинг изменений файлов.
5. Сменить все доступы
Считайте скомпрометированным всё, что хранилось на сервере или было доступно с него:
- пароли администраторов CMS, хостинга, FTP/SFTP, базы данных;
- SSH-ключи и токены доступа;
- API-ключи платёжных систем, почтовых сервисов, мессенджеров;
- секретные ключи приложения (например, для подписи сессий) — это разлогинит пользователей, и это нормально.
Включите двухфакторную аутентификацию везде, где она есть.
6. Уведомить, если требуется
Если могли утечь персональные данные — имена, телефоны, почта, пароли, данные заказов — проверьте требования законов, которые к вам применимы: законодательство вашей страны о персональных данных, а при работе с жителями ЕС — GDPR, который устанавливает срок уведомления надзорного органа в 72 часа. Здесь полезна консультация юриста.
Пользователям стоит честно сообщить, что произошло, какие данные затронуты и что им сделать — например, сменить пароль, если он использовался на других сайтах.
7. Снять предупреждения поисковиков
Если браузеры или поиск показывают «сайт может быть опасен»:
- в Google Search Console откройте отчёт о проблемах безопасности, устраните их и отправьте запрос на проверку;
- в Яндекс Вебмастере проверьте раздел о безопасности и нарушениях и запросите перепроверку;
- удалите спам-страницы и проверьте, что в sitemap не осталось лишних адресов.
Проверка занимает некоторое время, поэтому подавайте запрос только когда уверены, что сайт чист.