14 февраля 2024, 11:23. Интернет-магазин подарков готовится к пиковому дню продаж. Трафик в 3 раза выше обычного. В 11:36 всё изменится.
Этот материал — детальная реконструкция инцидента, который мы расследовали для клиента. Показываем происходящее с обеих сторон: что видел атакующий и как работала защита.
Разведка: за 48 часов до атаки
Большинство атак начинаются с разведки. Атакующий изучает цель: определяет IP-адреса, хостинг-провайдера, наличие защиты.
В нашем случае разведка показала критические уязвимости:
flowchart TB
subgraph RECON[Разведка]
R1[DNS lookup] --> R2[Определение IP]
R2 --> R3[Сканирование портов]
R3 --> R4[Проверка WAF/CDN]
end
subgraph ANALYSIS[Анализ]
A1[Оценка пропускной способности] --> A2[Поиск уязвимых endpoint]
A2 --> A3[Выбор вектора атаки]
end
subgraph RESULT[Вывод]
V1[Цель уязвима]
V2[Рекомендуемый вектор: L7 HTTP Flood]
end
RECON --> ANALYSIS --> RESULT
Удар: первые 15 минут
HTTP Flood: 127,000 запросов в секунду
Ботнет генерирует тысячи HTTP-запросов, имитируя реальных пользователей с валидными заголовками.
Каждый запрос проходит через веб-сервер → приложение → базу данных. CPU и RAM растут.
Приложение перестаёт отвечать. 502/503 для всех пользователей. Бизнес теряет деньги.
Поведенческий анализ, JS-challenge и rate limiting фильтруют ботов от людей.
Потерянное время: 11 минут без реакции
С момента начала атаки до первой реакции прошло 11 минут. За это время:
- 340+ посетителей увидели ошибку и ушли
- 47 заказов не были оформлены
- 3 корпоративных клиента не смогли войти в личный кабинет
Причина задержки — отсутствие автоматических алертов. Единственный канал уведомлений — email, который проверяют раз в час.
Подключение команды защиты
В 11:52 клиент связался с нашей командой. Время реакции — 4 минуты до начала активных действий.
Первичная диагностика показала:
- Атака типа HTTP Flood (L7)
- Источники — ботнет из 8,400 IP-адресов
- География — преимущественно Юго-Восточная Азия
- Паттерн — запросы к каталогу товаров с рандомными параметрами
flowchart LR
subgraph ATTACK[Атакующий трафик]
BOT[Ботнет 8.4K IP]
end
subgraph FILTER[Инфраструктура фильтрации]
EDGE[Edge-сервер] --> JS{JS Challenge}
JS --> |Не прошёл| BLOCK[Заблокировано]
JS --> |Прошёл| RL{Rate Limit}
RL --> |Превышен| BLOCK
RL --> |OK| GEO{GeoIP}
GEO --> |Подозрительный| BLOCK
GEO --> |Чистый| PASS[Пропущено]
end
subgraph ORIGIN[Сервер клиента]
PASS --> WEB[Nginx]
end
BOT --> EDGE
Финансовые последствия
Косвенные потери
- Падение позиций в поисковой выдаче на 8 позиций (восстановление заняло 2 недели)
- 11 негативных отзывов в первые сутки
- Потеря доверия B2B-клиентов — 2 запросили SLA-гарантии
Если бы защиты не было
Атака продолжалась 2 часа. При полном простое потери составили бы 1.2+ млн рублей только в прямой выручке, не считая репутационного ущерба.
Что изменили после инцидента
После инцидента мы провели полный аудит инфраструктуры и внедрили комплекс мер: