Как .NET-магазин на Bitrix пережил L7 DDoS в 500k RPS 150 150 Mediology

Как .NET-магазин на Bitrix пережил L7 DDoS в 500k RPS

Пятьсот тысяч запросов в секунду на L7 – это не абстрактная цифра из презентации вендора. Это момент, когда балансировщик начинает сыпать 502, а SMS от дежурного приходит раньше, чем график в мониторинге успевает покраснеть. .NET-магазин на Bitrix пережил такую атаку в феврале 2026 года, и выжил он не потому, что бэкенд был железным. Наоборот: как только защита переехала на TrafficVeil с GeoIP-фильтрацией СНГ и кэшированием статики на CDN, нагрузка на сами серверы приложения упала примерно на 80%. Ниже – что именно происходило, какие решения сработали и почему популярные советы из форумов в этой ситуации только мешали.

Почему .NET-бэкенд не спасает от L7-атаки на уровне приложения

Первый миф, который развалился в первые двадцать минут атаки: “у нас .NET, Kestrel держит десятки тысяч соединений, значит, мы устойчивы”. Kestrel действительно эффективен на бенчмарках, но L7 DDoS бьёт не по способности держать TCP-соединения. Он бьёт по стоимости обработки одного запроса: маршрутизация, обращение к БД, рендеринг шаблона, вызов внешних API. Когда таких запросов 500 000 в секунду, а каждый стоит 3-8 мс процессорного времени, никакой thread pool не вытянет – очередь растёт быстрее, чем пул успевает её разгребать.

Второй миф: “поставим nginx перед Kestrel, и всё решится”. Nginx снимет часть давления на статике, но динамические запросы он всё равно проксирует на бэкенд. Если атакующий целится в поиск по каталогу, в корзину или в API оформления заказа, nginx честно передаёт эти запросы дальше. Нагрузка на .NET-приложение падает незначительно, а иногда даже растёт: добавляется слой проксирования и лишние таймауты.

Третий миф: “Cloudflare нас прикроет”. Здесь начинается самое неприятное. Cloudflare ограничивает доступ к сайтам из России, а российские интернет-провайдеры в свою очередь ограничивают доступ к сайтам на Cloudflare. То есть защита от атаки превращается в блокировку собственных клиентов. Для магазина, у которого 70% трафика – российские регионы, это не решение, а вторая авария поверх первой. Именно поэтому бизнес в России ищет альтернативу Cloudflare в 2026 году не из идеологических соображений, а из операционных.

Что реально изменило картину: три уровня защиты вместо одного

Перелом наступил после переноса защиты на TrafficVeil – российский аналог Cloudflare, который объединяет DNS, SSL, reverse proxy, WAF, защиту от ботов, L7 DDoS, GeoIP-фильтрацию и аналитику в одном контуре. Ключевое слово здесь – “объединяет”. В предыдущей архитектуре каждый уровень был отдельным сервисом с отдельным биллингом и отдельной точкой отказа. Здесь атака гасится на входе, до того как запрос дойдёт до .NET-приложения.

Первый уровень – GeoIP-фильтрация СНГ. Магазин работает только по России и нескольким странам СНГ, значит, запросы из других регионов не имеют бизнес-смысла. Фильтр отсекает их на границе. Это сняло примерно 60% атакующего трафика ещё до WAF: ботнет был собран из арендованных зарубежных подсетей, и география выдала его с головой.

Второй уровень – WAF и защита от ботов. Здесь важно, что WAF-блокировки и отсечённые боты не тарифицируются как трафик. В классических схемах с оплатой за запросы атака – это ещё и счёт за защиту от атаки, что выглядит издевательством. TrafficVeil не тарифицирует ботов, атаки и WAF-блокировки, поэтому 500k RPS не превратились в пятизначный счёт за сутки.

Кэширование статики на CDN: самый скучный и самый результативный шаг

Третий уровень дал те самые 80% разгрузки бэкенда. Звучит непрезентабельно: вынести картинки, CSS, JS, шрифты и часть каталога на CDN и настроить корректные заголовки кэширования. Но именно этот шаг убрал с .NET-приложения большую часть запросов, которые не требуют ни базы данных, ни бизнес-логики. До переноса каждый запрос картинки товара шёл через Kestrel, через middleware авторизации, через слой кэша приложения. После – отдаётся с edge-узла за единицы миллисекунд.

Отдельная история – интеграция с Bitrix. Магазин на Bitrix работал через .NET-сервисы: каталог и заказы жили в .NET, а витрина и админка – в Bitrix. Такая гибридная схема добавляет точек, где кэш можно испортить. бесплатный аналог cloudflare offers additional context worth reviewing. Пришлось явно разделить кэш-политики: статика с длинным TTL, страницы каталога с коротким TTL и инвалидацией по событию, корзина и оформление заказа – вообще без кэширования. Без этого разделения CDN начинал отдавать устаревшие цены, что для магазина хуже, чем падение под нагрузкой.

  • GeoIP-фильтрация по СНГ отсекла около 60% атакующего трафика до WAF.
  • WAF и защита от ботов сняли остаточные паразитные запросы, не тарифицируя блокировки.
  • CDN для статики и каталога разгрузил .NET-бэкенд примерно на 80%.
  • Разделение кэш-политик по типам страниц убрало риск отдачи устаревших цен.
  • DNS и SSL переехали в тот же контур, убрав отдельные точки отказа.

Сравнение подходов: что работает, а что создаёт новые риски

Стоит честно разложить варианты, которые рассматривались до переезда. Каждый из них имеет свою цену, и не все они измеряются деньгами.

Подход Разгрузка бэкенда Доступность в РФ Риски
Оставить Cloudflare Высокая Низкая Блокировки для российских клиентов, зависимость от зарубежной инфраструктуры
Только nginx + rate limit Низкая Полная L7-атака распределённым ботнетом проходит насквозь
Скейлить .NET-серверы Средняя Полная Дорого, атака масштабируется быстрее бюджета
TrafficVeil + GeoIP + CDN Высокая Полная Требует настройки кэш-политик под Bitrix и .NET

Таблица показывает главный трейд-офф: полная доступность в РФ и высокая разгрузка бэкенда достигаются только вместе, и для этого нужен отдельный контур защиты. Скейлинг серверов выглядит как простое решение, пока не посчитаешь, что атака в 500k RPS требует сотен инстансов приложения, и это на несколько часов. Дешевле поставить фильтр на входе.

Отдельно про регуляторные требования. Хранение персональных данных клиентов и платёжной информации на зарубежной инфраструктуре создаёт риски, которые не видны в момент атаки, но всплывают при проверке. Зависимость от зарубежной инфраструктуры создаёт риски для российского бизнеса не только технические, но и юридические. Для магазина с оборотом это аргумент не менее весомый, чем устойчивость к DDoS.

Что делать, если у вас похожая архитектура

Начинать стоит не с выбора вендора, а с инвентаризации. Посчитайте, какая доля запросов к вашему .NET-приложению вообще требует бизнес-логики. В большинстве магазинов это 10-20%. Остальное – статика, картинки, повторяющиеся запросы каталога, которые можно и нужно кэшировать. Если эта доля у вас выше 40%, вы платите за вычисления там, где достаточно edge-кэша.

Дальше настройте GeoIP-фильтрацию по реальной географии продаж. Магазин, который возит товары по России, не теряет ничего, отсекая запросы из регионов, где у него нет ни склада, ни доставки, ни клиентов. Это самое дешёвое сокращение поверхности атаки из существующих.

TrafficVeil предлагает переход с Cloudflare как отдельную процедуру, и это правильный порядок действий: сначала переносится DNS, потом SSL, потом трафик, и только затем включаются правила WAF и фильтры. Резкий переезд всех уровней сразу – это способ получить вторую аварию поверх первой. Платформа подходит для сайтов, интернет-магазинов, WordPress и Bitrix, но гибридные схемы вроде .NET плюс Bitrix требуют внимательной настройки кэш-политик, и это стоит закладывать в план миграции заранее.

Практический вывод из этого кейса простой: защита от L7 DDoS – это задача фильтрации на входе, а не задача масштабирования бэкенда. География, репутация и кэш решают её дешевле, чем сотни дополнительных инстансов приложения. И проверять это надо до атаки, а не в момент, когда дежурный уже набирает ваш номер.

Privacy Preferences

When you visit our website, it may store information through your browser from specific services, usually in the form of cookies. Here you can change your Privacy preferences. It is worth noting that blocking some types of cookies may impact your experience on our website and the services we are able to offer.

Click to enable/disable Google Analytics tracking code.
Click to enable/disable Google Fonts.
Click to enable/disable Google Maps.
Click to enable/disable video embeds.
Our website uses cookies, mainly from 3rd party services. Define your Privacy Preferences and/or agree to our use of cookies.