ГоловнаСтаттіКібербезпека

Візуалізатор DDoS Атак: Коли Черга Переповнюється

Модель M/M/1 черги для веб-сервера, чому наближення коефіцієнта завантаження до 1 призводить до розбіжності часу очікування, боти та ампліфікація, а також як обмеження швидкості, очищення трафіку та балансування навантаження відображаються в одному співвідношенні λ/μ.

mysimulator teamОновлено — червень 2026≈ 9 хв читання▶ Відкрити симуляцію

Один сервер, черга M/M/1

Веб-сервер, що обробляє запити, поводиться приблизно як типова черга M/M/1: запити надходять з середнім рівнем інтенсивності λ (за розподілом Пуассона), обслуговуються з середнім рівнем інтенсивності μ, та чекають у черзі за принципом FIFO, якщо сервер зайнятий. Уся поведінка черги стиснута в одну безрозмірну величину – коефіцієнт використання ρ = λ / μ:

ρ = λ / μ // коефіцієнт використання, повинен бути рівний 1, і L та W відхиляються експоненціально, а не лінійно демонстрація в реальному часі · запити ботнету, що перевантажують чергу до ρ = 1● LIVE Це відхилення є ключем до розуміння DDoS-атаки: час відповіді не знижується плавно при наближенні навантаження до межі здатності, він різко зростає. Сервер, що комфортно працює на 70% використання, з швидким середнім часом очікування, може бути перевантажений збільшенням трафіку на 99%, і в результаті черга стає фактично нескінченною – кожен легітимний запит чекає за списком за великою кількістю трафіку атаки.

rho = lambda / mu                    // utilisation, must stay < 1

L = rho / (1 - rho)                  // average number of requests in the system
W = L / lambda                       // average time a request waits (Little's law)

// as rho -> 1, both L and W diverge -- not linearly, but explosively
жива демонстрація · пов'язана симуляція● LIVE

Чому 'розподілений' має значення

Один атакувальний комп’ютер легко блокується за IP-адресою, а його власні обмеження пропускної здатності каналу також обмежують кількість лямбда (lambda), яку він може генерувати. Бонет з тисяч скомпрометованих або орендованих машин множить лямбда на кількість джерел і усуває блокування на основі IP-адрес, оскільки немає єдисної адреси для блокування. Атакувальники також використовують метод посилення: надсилають невелике запит з підробленою адресою джерела до відкритого DNS або NTP сервера, а сервер відповідає на нього значно більшим відповіддю безпосередньо жертві, перетворюючи скромний вихідний потік на потоп, вдесятикрат більший за його розмір, безкоштовно.

Карта пом’якшення безпосередньо відповідає черговому моделі

обмеження швидкості – обмежте лямбда від кожного джерела до того, як воно досягне сервера – це запобігає монопольній поведінці будь-якого одного джерела щодо мю, фільтрація трафіку – направляйте підозрілий трафік через шар фільтрації, який відкидає невідповідні або підроблені запити до того, як вони досягнуть реального сервісу – це зменшує ефективну лямбду, розподіл навантаження / розподіліть лямбда між багатьма серверами (багато мю), щоб anycast одна черга не відчувала повного обсягу атаки; anycast також дозволяє сусіднім маршрутизаторам поглинати навантаження локально. Усі ці методи математично є спробою або зменшити ефективну лямбду, яка впливає на будь-яку чергу, або збільшити ефективний мю, який її обслуговує – оскільки ρ = λ/μ є єдиним регулюючим елементом, а підтримка його нижче 1 є єдиним способом обмежити час відповіді.

rate limiting     cap lambda per source before it reaches the server
                  -- keeps any single source from monopolising mu

traffic scrubbing route suspicious traffic through a filtering layer
                  that drops malformed/spoofed requests before they
                  reach the real service -- reduces effective lambda

load balancing /  spread lambda across many servers (many mu's) so
anycast           no single queue sees the full attack volume; anycast
                  additionally lets nearby routers absorb load locally

Економіка атаки

Проблема вартості захисника є дзеркалом чергового завдання: підтримка rho комфортно нижче 1 проти пікової атаки означає забезпечення потужностей, які майже весь час простаюють, що дорого, тоді як оренда обсягу ботнету для здійснення атак порівняно дешева. Ця асиметрія є точно тому, чому існують сервіси очищення на рівні хмар та мережі Anycast – вони дозволяють багатьом захисникам ділитися великим пулом mu в Інтернеті замість того, щоб кожен перевантажував власне сервер для гіпотетичного найгіршого сценарію, який може ніколи не настати.

Часті запитання

Що таке черга M/M/1 і чому вона пояснює DDoS?

Це стандартна модель одного сервера, який обробляє прибуття по одному запиту: запити надходять з частотою лямбда, обслуговуються зі швидкістю мю, а використання ро = лямбда/мю визначає все. Коли ро наближається до 1, середній час очікування розбігається замість того, щоб поступово зменшуватися — що є механізмом, який лежить в основі атаки типу «злив», коли черга сервера наближається до нескінченності.

Чому DDoS-атаки розподілені, а не походять з одного джерела?

Трафік з одного джерела легко блокується за IP-адресою та обмежений його власною пропускною здатністю. Розповсюдження атаки на ботнет багатьох скомпрометованих машин множить досяжну частоту запитів, перемагає простий блокування за IP-адресою та, в поєднанні з віддзеркаленням/ампліфікацією через відкриті DNS або NTP-сервери, може генерувати набагато більше трафіку, ніж могли б відправити власні машини нападника.

Як обмеження швидкості насправді зупиняє атаку?

Воно обмежує лямбда з будь-якого одного джерела до того, як воно досягне захищеного сервера, що є тією ж змінною, яка визначає довжину черги в моделі M/M/1. Підтримуючи ефективну сукупну частоту прибуття нижче швидкості обслуговування мю, обмеження швидкості підтримує ро нижче 1 і обмежує час очікування для легітимних запитів.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте DDoS Attack Visualizer і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію DDoS Attack Visualizer

Що ви знайшли?

Додати кроки відтворення (опційно)