Финансовый риск
От 50 000 до 300 000 рублей в час из-за недоступности сайта для клиентов при атаке на прикладном уровне (L7), перерасхода ресурсов CPU/RAM хостинга.
Влияние на KPI
Снижение конверсии заказов. Медленный отклик сайта (TTFB) ухудшает поведенческие факторы и пессимизирует поисковый трафик из Google и Яндекса.
Уровень критичности
Высокий
Кому поручить
DevOps-инженер / Бэкенд-разработчик
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+ млн рублей только в прямой выручке, не считая репутационного ущерба.
Что изменили после инцидента
После инцидента мы провели полный аудит инфраструктуры и внедрили комплекс мер:
Скопируйте эти вопросы и отправьте вашему техническому директору (CTO) или руководителю разработки:
- Настроена ли WAF-фильтрация для отсечения ботов с помощью JS-челленджей без показа капчи реальным пользователям?
- Защищен ли веб-сервер от атак типа Slowloris путем оптимизации HTTP Keep-Alive таймаутов?
- Проверено ли наше приложение на защиту от атак типа HTTP Request Smuggling и отравления кэша?
Словарь по теме
Origin Server
Основной сервер, где хранится и обрабатывается контент. CDN кэширует контент с origin и раздаёт его пользователям.
Edge Server
Сервер на границе сети CDN, ближайший к пользователю. Отдаёт закэшированный контент без обращения к origin.
L7 атака
Атака на прикладном уровне (HTTP). Атакующий отправляет валидные HTTP-запросы, которые выглядят как обычные пользователи, но нагружают тяжёлые endpoint'ы.
Endpoint
URL-адрес, по которому доступен определённый ресурс или функция API. Например: /api/users, /login.
Latency
Время отклика — задержка между отправкой запроса и получением ответа. Измеряется в миллисекундах. Чем меньше — тем лучше.
nginx
Популярный веб-сервер и reverse proxy. Используется для раздачи статики, балансировки нагрузки, терминации SSL.
DDoS
Распределённая атака на отказ в обслуживании. Множество устройств одновременно отправляют запросы на сервер, перегружая его и делая недоступным для легитимных пользователей.
DNS
Система доменных имён — переводит доменные имена (example.com) в IP-адреса серверов. Атака на DNS может сделать сайт недоступным.