Сайт взломали: пошаговый план действий и предотвращения повторения
Признаки взлома сайта
Прежде чем паниковать, убедитесь, что сайт действительно взломан. Основные признаки:
Явные признаки
- Дефейс — главная страница заменена на сообщение хакера
- Редиректы — посетители перенаправляются на чужие сайты
- Спам-контент — на сайте появились страницы с фармацевтикой, казино, порно
- Блокировка Google — предупреждение «Этот сайт может нанести вред вашему компьютеру»
- Уведомление от хостинга — провайдер заблокировал аккаунт
Неявные признаки
- Падение трафика — резкое снижение посещаемости
- Неизвестные пользователи — новые администраторы в CMS
- Изменённые файлы — модификация без вашего ведома
- Подозрительные процессы — высокая нагрузка на сервер
- Спам от вашего домена — жалобы на рассылку
- Утечка данных — данные клиентов появились в сети
Первые 24 часа: экстренные меры
Час 1-2: Изоляция и фиксация
1. Не выключайте сервер!
Первый инстинкт — выключить всё. Не делайте этого: вы потеряете оперативную память с артефактами атаки. Вместо этого:
2. Задокументируйте всё, что видите
- Скриншоты дефейса, спам-страниц, ошибок
- Время обнаружения
- Кто и как обнаружил
- Текущее состояние сайта
3. Создайте форензик-копию
# Снимите образ диска (если есть доступ к серверу)
dd if=/dev/sda of=/backup/forensic_image.img bs=4M
# Или как минимум сохраните логи
tar czf /backup/logs_$(date +%Y%m%d).tar.gz /var/log/
4. Изолируйте сервер от сети
- Закройте все порты кроме SSH (для администрирования)
- Отключите сайт через nginx/Apache (maintenance page)
- НЕ удаляйте и не модифицируйте файлы
Час 2-4: Оценка масштаба
5. Определите вектор атаки
Проверьте логи:
# Подозрительные POST-запросы
grep "POST" /var/log/nginx/access.log | grep -v "known_paths"
# Ошибки PHP
tail -n 1000 /var/log/php-fpm/error.log
# Входы по SSH
grep "Accepted" /var/log/auth.log
# Изменённые файлы за последние 7 дней
find /var/www -mtime -7 -type f
6. Определите, что скомпрометировано
- Есть ли доступ к базе данных?
- Утекли ли персональные данные?
- Есть ли бэкдоры в файловой системе?
- Скомпрометированы ли другие сайты на том же сервере?
7. Смените все пароли
- Пароли администраторов CMS
- FTP/SSH-доступы
- Пароли к базе данных
- API-ключи и токены
- Пароли к панели хостинга
Час 4-24: Восстановление
8. Очистите сайт от вредоносного кода
Варианты по приоритету:
- Восстановление из бэкапа — самый надёжный способ, если бэкап чистый
- Ручная очистка — если бэкапа нет или он тоже заражён
При восстановлении из бэкапа:
- Убедитесь, что бэкап создан до взлома
- Восстановите файлы и базу данных
- Обновите все пароли
- Установите все обновления безопасности
При ручной очистке:
- Удалите все неизвестные файлы
- Проверьте файлы на вредоносный код (base64_decode, eval, exec, system)
- Проверьте .htaccess на редиректы
- Проверьте cron-задачи на подозрительные записи
- Проверьте базу данных на внедрённый код
9. Устраните уязвимость
- Обновите CMS до последней версии
- Обновите все плагины и темы
- Удалите неиспользуемые плагины
- Закройте эксплуатированную уязвимость
10. Проверьте результат
- Просканируйте сайт на вредоносный код
- Проверьте работоспособность всех функций
- Проверьте заголовки безопасности
В течение 72 часов: уведомления и расследование
Юридические обязательства
Уведомление РКН (если утекли персональные данные)
Согласно 152-ФЗ, оператор персональных данных обязан:
- В течение 24 часов — уведомить Роскомнадзор о факте утечки
- В течение 72 часов — предоставить результаты внутреннего расследования
Уведомление подаётся через портал pd.rkn.gov.ru и должно содержать:
- Описание инцидента
- Предполагаемый объём затронутых данных
- Меры по минимизации последствий
- Контакты ответственного лица
Уведомление субъектов ПДн
Если утечка затронула персональные данные клиентов, их необходимо уведомить о:
- Факте утечки
- Типе скомпрометированных данных
- Рекомендациях по защите (смена паролей)
- Контактах для вопросов
Уведомление Google (если сайт заблокирован)
Если Google показывает предупреждение:
- Зарегистрируйтесь в Google Search Console
- Перейдите в раздел Проблемы безопасности
- Запросите повторную проверку после очистки
Внутреннее расследование
Что определить:
- Когда произошёл взлом (не когда обнаружен, а когда случился)
- Как — вектор атаки (уязвимость, брутфорс, утечка паролей)
- Что было скомпрометировано (файлы, БД, учётные данные)
- Кто ещё мог пострадать (партнёры, клиенты)
- Какие данные утекли
Превентивные меры
Технические меры
Регулярные обновления
- Обновляйте CMS, плагины и ПО в течение 24-48 часов после выхода патчей
- Подпишитесь на рассылки безопасности используемого стека
- Автоматизируйте обновления некритичных компонентов
Защита доступа
- Многофакторная аутентификация для всех админ-панелей
- Ограничение доступа по IP к административным интерфейсам
- Запрет прямого root-логина по SSH
- Использование SSH-ключей вместо паролей
Мониторинг
- Настройте file integrity monitoring (FIM)
- Мониторьте логи на подозрительную активность
- Используйте WAF для фильтрации атак
- Настройте алерты на изменение файлов
Бэкапы
- Ежедневные автоматические бэкапы
- Хранение минимум 30 дней истории
- Бэкапы на отдельном сервере/облаке
- Регулярная проверка восстановления из бэкапа
Заголовки безопасности
- Настройте CSP, HSTS, X-Frame-Options
- Проверьте конфигурацию: проверка заголовков
Организационные меры
Политики безопасности
- Парольная политика (минимум 12 символов, уникальность)
- Процедура реагирования на инциденты
- Регулярный аудит доступов
- Обучение сотрудников
Мониторинг внешней поверхности
Регулярно проверяйте то, что видит злоумышленник:
- SSL-сертификаты и конфигурацию
- Открытые порты и сервисы
- DNS и email-аутентификацию
- Утечки данных
- Устаревшее ПО
Периметр обеспечивает непрерывный мониторинг внешней поверхности атаки с более чем 80 проверками безопасности. Это позволяет обнаружить уязвимости до того, как ими воспользуется злоумышленник.
Регулярные проверки
- Обновление CMS и плагинов — еженедельно
- Проверка бэкапов — ежемесячно
- Аудит доступов — ежеквартально
- Сканирование уязвимостей — непрерывно (EASM)
- Пентест — 1-2 раза в год
- Обучение сотрудников — ежеквартально
Чек-лист после взлома
Экстренные меры
- Задокументировать признаки взлома
- Сохранить логи и создать форензик-копию
- Изолировать сервер
- Сменить все пароли
- Определить вектор атаки
Восстановление
- Очистить или восстановить из бэкапа
- Обновить CMS, плагины, ПО
- Проверить на остаточный вредоносный код
- Проверить заголовки безопасности
- Просканировать сайт
Уведомления
- РКН (если утекли ПДн) — в течение 24 часов
- Затронутые пользователи
- Google Search Console (если заблокирован)
- Хостинг-провайдер
Превентивные меры
- Настроить MFA
- Настроить автоматические бэкапы
- Настроить мониторинг (EASM)
- Настроить WAF
- Обучить команду
Главное: действуйте по плану
Взлом сайта — стрессовая ситуация, но чёткий план действий позволяет минимизировать ущерб. Главное:
- Не паникуйте — действуйте по плану
- Сохраните доказательства — перед любой очисткой
- Устраните причину — не только последствия
- Уведомите — РКН, пользователей, партнёров
- Предотвратите повторение — мониторинг, обновления, MFA
Лучшая защита от взлома — превентивный мониторинг. Начните с проверки безопасности вашего сайта на perimeter-scan.ru.
Похожие статьи
Защита бренда от фишинга: как обнаружить и заблокировать поддельные домены
Полное руководство по защите бренда от фишинга: виды угроз, методы обнаружения поддельных доменов, CT logs, DNS-мониторинг, процедура takedown.
Поиск утечек корпоративных данных: инструменты и методы обнаружения
Полное руководство по обнаружению утечек корпоративных данных: типы утечек, где искать, инструменты мониторинга, автоматизация и план реагирования.
Пентест или автоматическое сканирование: что выбрать для защиты бизнеса
Детальное сравнение пентеста и автоматического сканирования: стоимость, глубина, частота, когда что использовать и как комбинировать.
