Ситуация
Интернет-магазин на WooCommerce создавала другая команда. Он принимает заказы и хранит данные клиентов. Магазин взломали в феврале и повторно в марте 2026 года, и оба раза взлом обнаружили через несколько недель после того, как он произошёл.
Бэкапы хостинга охватывали только 14 дней, поэтому каждая точка восстановления уже содержала скрытый доступ злоумышленника. К тому же они хранились в том же аккаунте, что и сайт, и исчезли бы вместе с ним.
Первая линия защиты
Нас позвали уже после атаки, и работы начались сразу, посреди ночи:
Что скомпрометировано
Первым делом установлено, что именно скомпрометировал злоумышленник и как далеко он зашёл.
Доступ возвращён
Контроль над сайтом возвращён. Найден бэкдор, оставленный злоумышленником: файл, замаскированный под обычный файл WordPress. Он удалён.
Ущерб найден, магазин восстановлен
Определено, что пострадало, и магазин возвращён в чистое рабочее состояние.
Аудит и отчёт
После экстренных работ последовал глубокий аудит. Как именно злоумышленник проник на сайт, достоверно установить уже было нельзя, поэтому были закрыты все вероятные пути и внедрены меры безопасности, соответствующие магазину такого масштаба и трафика. Клиент получил полный отчёт: что и когда найдено, что удалено, слабые места и план действий.
Принятые меры
Зашифрованные бэкапы вне сервера
База данных ежедневно, файлы еженедельно, в Backblaze B2, в дата-центре в ЕС. Данные шифруются ещё до того, как покидают сервер, поэтому хранилище видит только непрозрачные файлы и не может прочитать данные клиентов.
Бэкап, который злоумышленник не может уничтожить
Ключ хранилища на сервере может добавлять и скрывать бэкапы, но не имеет права удалять их. Даже тот, кто полностью контролирует сервер, не сможет стереть резервные копии. Это проверено: попытка удаления отклоняется.
Проверенное восстановление
Весь сайт, база данных и файлы, был восстановлен на тестовой копии с проверкой корзины, оформления заказа, страниц товаров и заказов. Бэкап считается надёжным только после проверки целостности: неудачная выгрузка может молча создать пустой файл, который выглядит нормально.
Регламент
Ежемесячные проверки целостности, ежеквартальные тесты полного восстановления и письменная история решений, например кто хранит ключ шифрования.
Сервер магазина
база данных ежедневно, файлы еженедельно
Шифрование на сервере
до того, как данные покинут сервер
Отдельное хранилище в ЕС
ключ сервера может только добавлять, но не удалять
Злоумышленник с доступом к серверу
попытка удаления отклоняется
Проверенное восстановление
на тестовой копии, с проверкой корзины и заказов
Как ведётся работа с магазином клиента
- Каждое обновление проходит через бэкап, тестовую копию и проверку и только потом попадает на рабочий магазин.
- Именные аккаунты администраторов, минимальные права и двухфакторная аутентификация.
- Инструкция на случай инцидента, одностраничный документ с архитектурой и доступами и ежемесячная записка о том, что было выполнено.
- Договор определяет, кто за что отвечает. Данные клиентов обрабатываются только по инструкциям, в роли обработчика (GDPR, ст. 28).
Результат
Магазин вернулся в чистое состояние, а клиент точно знает, что произошло и почему. Новая атака больше не означает недели потерянных данных или восстановление магазина с нуля: есть проверенный, защищённый от саботажа путь назад к чистому состоянию.
