Що таке DDoS насправді і чому це не «злом сайту»
У світі спостерігається щорічне зростання кількості DDoS-атак, а також збільшення їхньої тривалості та максимальних значень швидкості й обсягу генерованого трафіку. Цьому сприяє розвиток ІТ-інфраструктури та перехід DDoS у категорію популярних послуг на чорному ринку (DDoS as a Service). Знання особливостей її «роботи» та зовнішніх ознак прояву допоможе краще підготуватися та зменшити рівень потенційних втрат для свого веб-сайту в разі проведення атаки.
Що таке DoS і DDoS
DoS (Denial of Service) — це атака на комп’ютерну систему з метою довести її до стану, коли робота в штатному режимі стає неможливою через перевантаження, що виникло на одному або декількох рівнях її функціонування.
Це досягається шляхом генерування з одного джерела надмірної кількості трафіку та/або підроблених запитів до системи, що атакується, наприклад, VPS-сервера, на якому розгорнуто веб-сайт. В результаті сайт стає повністю або частково непрацездатним через перевантаження сервера, що повністю відповідає назві такого виду атаки – «відмова в обслуговуванні».
DDoS (Distributed Denial of Service) — це та сама DoS-атака, але здійснена з безлічі джерел, тобто розподілена DoS. На малюнку 1 представлено схему взаємодії елементів розподіленої системи під час «штурму».
Розглянемо призначення основних елементів, зображених на схемі.
Attacker machine – комп'ютер зловмисника або спамера, на якому встановлено керуючу програму.
Compromised – скомпрометовані цифрові пристрої або «зомбі» з встановленим ПЗ, якими керує спамер. До складу такого ПЗ зазвичай входять «трояни», програмні інструменти для віддаленого керування ПК, маскувальники від ОС. Такі набори ПЗ зазвичай називають ботами. Сукупність ботів утворює мережу під назвою ботнет, яка використовується для збільшення кількості запитів, що надсилаються. Чим більший розмір ботнету, тим більший масштаб атаки. Крім того, використання ботів дозволяє приховати IP-адресу комп'ютера спамера, що ускладнює зупинку атаки, яка вже почалася.
Targeted Server – цільовий комп'ютер, який піддається нападу.

Малюнок 1. Схема взаємодії елементів розподіленої системи під час DDoS-атаки.
Керування ботами здійснюється за допомогою команд, які спамер надсилає через центральний C&C-сервер або децентралізовану P2P-мережу.
Головний принцип: виснаження ресурсів
Особливістю DDoS-атак є використання ними стандартних засобів доступу до веб-ресурсу, наприклад, звичайних http-запитів до сервера, які зливаються з користувацьким трафіком. Однак кількість таких запитів за одиницю часу може зашкалювати, змушуючи сервер віддавати всю свою виробничу потужність на їх обробку. В результаті перевантажується канал зв'язку, RAM-пам'ять, вичерпуються ресурси CPU, після чого сервер переходить у режим «відмова в обслуговуванні».
Таким чином, головна мета проведення атаки – вичерпати ресурси сервера та вивести його зі штатного режиму роботи.
Чому сервер може працювати, а сайт — ні
Дії DDoS-атаки «вписуються» у стандартний цикл обробки запитів, що надходять, не викликаючи при цьому «підозр» з боку антивіруса та/або брандмауера. Тобто сервер продовжуватиме працювати й надалі, але в дуже повільному темпі. Настільки повільному, що завантаження веб-сторінок, розміщених на ньому сайтів, може тривати годинами (!), що на практиці унеможливлює їх перегляд та повноцінне використання.
Чому «витримує 10 тисяч користувачів» ≠ «витримає атаку»
Виникає резонне питання – який із серверів зможе «витримати» DDoS-штурм, не виходячи зі штатного режиму обробки запитів, а який ні. Все залежить від кількості серверних ресурсів та інтенсивності атаки, яка може вимірюватися в питомих одиницях обсягу генерованого трафіку або кількості TCP-пакетів, що надходять (визначається типом атаки). Саме співвідношення цих показників визначає, як довго сервер зможе «протриматися».
У разі, якщо «атаці» піддався VPS-сервер із мінімальним тарифним планом, він «вийде з ладу» вже в перші секунди.
Для «виділеного» сервера з максимальними значеннями основних технічних характеристик (RAM, CPU) ситуація може бути іншою. У разі атаки з мінімальною інтенсивністю він може якийсь час протриматися і навіть не «впасти». Але якщо інтенсивність DDoS-атаки значна, він, швидше за все, «впаде».
Сервер може «витримувати» кілька тисяч хостів, однак DDoS-атака критичного рівня інтенсивності «зламає» його за одну хвилину.
Це неодноразово підтверджувалося на практиці. Наприклад, у 2012 році DDoS-атака інтенсивністю 65 Гбіт/с «повалила» сервери добре відомої хмарної платформи CloudFlare. Однак попередні атаки з меншою інтенсивністю не змогли завдати шкоди тій самій компанії.
Де саме відбувається «падіння»
DDoS-атака може здійснюватися на одному або декількох рівнях — мережі, балансувальника навантаження, додатків. Чим більше рівнів залучено, тим руйнівнішими можуть бути наслідки атаки.
Наприклад, для атак на рівні мережі характерні перевантаження каналу зв’язку та переповнення IO-портів. Тому затримки в роботі системи виникнуть саме на цих ділянках.
Атаки рівня додатків або, як кажуть, «повільні атаки» характеризуються невеликою інтенсивністю і мають прихований характер, що перешкоджає їх швидкому виявленню. Затримки можуть з'явитися на рівні RAM і CPU, сповільнюючи роботу циклу обробки запитів.
Висновок: DDoS — це питання масштабу, а не вразливості
Як уже зазначалося, DDoS-атака, як правило, відбувається одночасно зі стандартними запитами до сервера, не порушуючи при цьому периметр безпеки сайту, який захищається засобами CMS та брандмауера. Тобто, сайт може бути чудово захищений, але це не допоможе йому уникнути наслідків атаки, якщо її інтенсивність достатньо велика.
Іншими словами, можна констатувати, що DDoS «перемагає» масовістю, масштабуючи кількість запитів до неймовірних масштабів. Саме в цьому його «сила».