Типи DDoS-атак та способи захисту від них
10:11, 07.07.2021
DDoS-атака - це поширена загроза кібербезпеці, від якої жоден веб-сайт не захищений без застосування спеціальних заходів. Хоча DDoS-атаки зазвичай позначають цим єдиним терміном, насправді вони включають численні типи і десятки варіацій, кожна з яких потребує особливого підходу. Хоча грамотний DDoS-захист налаштований на розпізнавання та пом'якшення всіх поширених типів DDoS-атак, що ми також гарантуємо зі свого боку, не буде зайвим мати уявлення про те, з чим нам доводиться мати справу. Давайте розглянемо деякі найпоширеніші DDoS-атаки, а також методи захисту від них.
Які існують різновиди DDoS-атак
Найзагальніша класифікація DDoS-атак базується на тому, яка частина серверної інфраструктури, на яку покладається ваш сайт, є об'єктом атаки. Ці типи включають: волюметричні, назва яких вказує на те, що вони використовують чистий обсяг трафіку для перевантаження вашої системи; протокольні, назва яких вказує на те, що вони зловживають ІТ-протоколами; а також атаки на додатки, де зловмисники використовують вразливості у ваших додатках. Давайте розглянемо кожен тип, а також підтипи кожного типу.
Волюметричні атаки
Волюметричні DDoS-атаки мають на меті перевантажити ваш сервер трафіком через будь-який можливий канал. Ці атаки поглинають максимальну кількість доступної пропускної здатності та ресурсів, що призводить до різкого зниження продуктивності аж до простою.
UDP-флуди
UPD флуд-атаки - це тип атаки, який зловживає тим, як працює протокол User Datagram Protocol (протокол користувацьких дейтаграм). Особливістю цього протоколу є те, що він не вимагає обміну даними, як у випадку з TCP (протокол управління передачею). Сервер, який отримує UPD-пакет, повинен перевірити наявність відповідного додатку, що у випадку справжнього UPD-трафіку супроводжується численними автоматичними процесами на сервері. UPD-флуд - це просто масивні потоки UPD-пакетів, які не мають нічого спільного з програмами на сервері і змушують сервер обробляти їх, витрачаючи таким чином свої ресурси.
Для виконання UPD-флуду зловмисники використовують IP-адресу сервера і будь-який відкритий порт.
Підтипом UDP-флуду є UDP-фрагментаційний флуд, коли надсилаються більші та фрагментовані пакети, змушуючи сервер марно намагатися їх зібрати.
Специфічні атаки з посиленням UDP надсилають UDP-запит на декілька серверів, змушуючи їх відповідати на IP-адресу жертви і, таким чином, поглинаючи її пропускну здатність і мережеві ресурси.
CharGEN флуд
CharGEN (Character Generator) флуд - це тип UDP-атаки, що використовує протокол генератора символів (CharGEN), який працює на 19-му порту UDP. Початковою метою служби CharGEN була генерація символів, переважно ASCII-символів, для відповіді на різні запити клієнтів з метою тестування, налагодження та вимірювань.
Зловмисники використовують IP-адресу жертви для надсилання запитів на численні пристрої, підключені до інтернету. Пристрої відповідають на запити на цільовий сервер, тим самим перевантажуючи його.
ICMP (Ping) флуд
ICMP (Internet Control Message Protocol) - це протокол, який використовується для діагностики та управління в IP-мережах. З його допомогою мережеві пристрої обмінюються специфічними повідомленнями про помилки та інформаційними командами.
Спочатку зловмисники генерують та надсилають велику кількість ICMP ехо-запитів до мережі жертви, що призводить до перевантаження мережі.
Оскільки протокол ICMP не має стану, немає необхідності встановлювати з'єднання між відправником і одержувачем, тому значний обсяг ICMP-пакетів може бути згенерований без потреби в значних ресурсах.
Фрагментаційний потік ICMP
Фрагментація ICMP - це підтип атаки ICMP flood, де використовуються фрагментовані ICMP-пакети, що також змушує цільовий сервер намагатися «розібратися» в них.
Атаки на основі протоколів
Протокольні DDoS-атаки націлені на певні протоколи мережевого або транспортного рівня, а не просто на об'єм, таким чином націлені на дуже специфічний ресурс.
Експлуатація протоколу IP Null
В атаці IP Null зловмисники використовують вразливість у стеку Інтернет-протоколу (IP) цільової системи, надсилаючи IP-пакети з полем IP-протоколу, встановленим на 0, що здебільшого є недійсним або невикористовуваним номером протоколу. В результаті сервер намагається з'ясувати, що робити з усіма цими пакетами, і перевантажується.
Флуд протоколу TCP
Протокол управління передачею регулює зв'язок між різними пристроями в мережі. Існує декілька різновидів переповнення протоколу TCP:
- SYN-флуд: В атаці SYN флуд зловмисник використовує TCP SYN (синхронізаційні) пакети, відправляючи їх на сервер жертви і роблячи вигляд, що ініціює з'єднання. Зловмисник не надсилає фінальний пакет ACK, тим самим не даючи завершити процес обміну рукостискання, тому відкладені пакети накопичуються і врешті-решт перевантажують сервер.
- ACK Flood (флуд ACK): На відміну від попереднього підходу, при ACK-флуді зловмисники надсилають надмірну кількість підроблених ACK-пакетів, які сервер намагається зіставити з неіснуючими SYN-ACK-пакетами.
- SYN-ACK флуд: Зловмисник використовує SYN-ACK-пакети, змушуючи сервер намагатися зіставити їх з неіснуючими SYN-пакетами.
- Фрагментаційний потік ACK: Підтип ACK-флуду - зловмисник надсилає фрагментовані ACK-пакети, що переповнюють пам'ять сервера, який намагається їх реконструювати.
- RST/FIN флуд: Схожим чином зловмисники використовують RST або FIN-пакети, змушуючи сервер безпорадно намагатися зіставити їх з TCP-сесіями.
- Множинний потік підроблених ACK-сесій: У випадку цього типу атаки зловмисник комбінує пакети ACK з пакетами RST або FIN, щоб імітувати справжній трафік і обійти механізми захисту. Той самий принцип застосовується в множинному підробленому потоці SYN-ACK, де зловмисник використовує як ACK, так і SYN-пакети.
- Синонімічна IP-атака: Підтип SYN-атаки, де зловмисник призначає однакові IP-адреси для джерела і призначення SYN-пакета, створюючи плутанину, так що сервер або намагається відповісти сам, або з'ясувати, що не так.
Сеансові атаки
Сеансові DDoS-атаки - це атаки, які перевантажують можливості сервера або програми з обробки сеансів. Зловмисники бомбардують певний веб-додаток шкідливими HTTP-запитами, кожен з яких призначений для створення нового сеансу або споживання серверних ресурсів, пов'язаних з управлінням сеансами, що в кінцевому підсумку вичерпує можливості системи обробляти завдання, пов'язані з сеансами.
Непомітне виснаження з'єднання або Slowloris
Атаки Slowloris - це тип DDoS-атак, які націлені на веб-сервери, використовуючи слабкі місця в тому, як веб-сервери обробляють вхідні з'єднання. Зловмисники встановлюють якомога більше з'єднань з цільовим сервером, для чого часто використовують HTTP GET-запити. Після встановлення з'єднання зловмисники уникають надсилання повного HTTP-запиту одним пакетом. Замість цього вони надсилають пакети, розділені на невеликі фрагменти і на мінімальній швидкості, щоб ціль не могла розірвати з'єднання через їхню неактивність, а вони продовжували займати його і споживати доступні ресурси.
Смурф-атака
Smurf-атака - це різновид DDoS-атаки, що використовує протокол керуючих інтернет-повідомлень (ICMP). Це атака посилення відображення. Зловмисник надсилає підроблені пакети ехо-запитів ICMP на кілька комп'ютерів у мережі з підробленою IP-адресою мережі жертви.
Fraggle-атака
Атаки Fraggle - це інший тип атаки Smurf, де замість ICMP-трафіку використовується UPD-трафік.
Атака "Пінг смерті"
Ще одна атака на основі протоколу, яка має на меті переповнити доступну пам'ять, Ping of Death, використовує максимальну довжину IP-пакету 65 535 байт. Хоча типовий максимальний розмір фрагмента даних, що надсилається через мережу Ethernet, становить близько 1500 байт, зловмисники надсилають фрагментовані пакети, які разом перевищують розмір 65 535 байт і переповнюють пам'ять
Низькоорбітальна іонна система (LOIC)
Low Orbit Ion Cannon - це програмне забезпечення з відкритим вихідним кодом, яке спочатку було розроблене для тестування стійкості пристрою до навантаження шляхом надсилання великої кількості пакетів. На жаль, зловмисники навчилися використовувати його для проведення DDoS-атак шляхом розгортання в ботнетах.
Високоорбітальна іонна система (HOIC)
Більш просунутий варіант LOIC, Високоорбітальна іонна система, є інструментом, який був спеціально розроблений для здійснення DDoS-атак, з більшою кількістю функцій і можливостей, що дозволяє здійснювати подібні до LOIC, але більш руйнівні і небезпечні DDoS-атаки.
Атаки на рівні додатків: Націленість на сервіси
DDoS-атаки на рівні додатків використовують уразливості в програмному забезпеченні, що в першу чергу призводить до відмови в роботі програми, але також потенційно впливає на інші програми та весь пристрій, перевантажуючи пропускну здатність, процесор і пам'ять.
HTTP-флуд: Перевантаження веб-служб
HTTP флуд атаки - це атаки на рівні додатків, які зловживають командами HTTP. До поширених типів відносяться:
GET-атаки: Зловмисники створюють величезну кількість паралельних GET-запитів, щоб отримати ресурси з сервера. Вони особливо небезпечні для веб-серверів.
POST-флуд: POST-атаки складаються з численних HTTP POST-запитів, які спочатку призначені для відправки даних. Ці атаки можуть бути навіть більш шкідливими, оскільки надсилання даних часто вимагає більше ресурсів.
Low-and-Slow POST-атаки - це підтип POST-флуд-атак, коли після запиту на відправку великого обсягу даних, дані надсилаються маленькими шматочками і з надзвичайно низькою швидкістю. З одного боку, це блокує ресурси сервера, а з іншого - дозволяє обійти механізми захисту від DDoS-атак, які очікують великі фрагменти даних.
Атака на один сеанс або один запит: Ще один спосіб обійти звичайні механізми захисту від DDoS, які пристосовані для виявлення великої кількості пакетів, цей тип атаки упаковує кілька різних запитів в один HTTP-пакет.
Фрагментований HTTP-флуд: Той самий принцип фрагментації застосовується до атак HTTP-флуду. Пакети фрагментуються і надсилаються з надзвичайно низькою швидкістю, щоб заблокувати ресурси сервера.
Рекурсивний GET-флуд: Різновид GET-флуду, коли один і той самий ресурс запитується багаторазово, поки сервер не буде перевантажений.
Випадковий рекурсивний GET-флуд: Підтип попереднього типу, тепер сторінки запитуються рекурсивно у випадковому порядку, щоб уникнути виявлення механізмами захисту.
ReDoS: Загроза виснаження ресурсів
Регулярні формати (regex) - це шаблони, які використовуються для зіставлення комбінацій символів у рядках, широко застосовуються у мовах програмування, веб-додатках і системах мережевої безпеки для таких завдань, як перевірка вхідних даних, синтаксичний аналіз і зіставлення шаблонів.
Атаки на відмову в обслуговуванні за допомогою регулярних виразів (ReDoS) використовують вразливі шаблони regex, які демонструють експоненціальну або суперлінійну часову складність при обробці певних вхідних даних. Зловмисник надсилає на цільову систему спеціально створені вхідні рядки, призначені для запуску вразливого шаблону регулярного виразу і змушує механізм регулярних виразів перейти в стан надмірного зворотного відстеження або рекурсії.
Дослідження додаткових тактик DDoS
Окрім трьох основних типів, а саме атак на об'єм, протоколів та додатків, існують деякі менш поширені типи атак, які не вписуються в загальну класифікацію.
Advanced Persistent DoS (APDoS)
Advanced Persistent DoS (APDoS) - це підхід до DDoS-атак, а не окремий їх тип. APDoS передбачає атаку, яка виконується багаторазово і безперервно протягом тривалого періоду часу, поєднуючи і чергуючи різні підходи, які були описані вище. Зазвичай вони організовуються великими організаціями хакерів, щоб серйозно порушити інфраструктуру певної організації.
Багатовекторні DDoS-атаки
Багатовекторні атаки передбачають одночасне розгортання різних типів DDoS-атак. Іноді вони виконуються в синергії з іншими атаками і спрямовані на те, щоб завдати більшої шкоди або мати більше шансів на успіх у випадку, якщо одна з атак буде заблокована захистом.
DDoS-атаки нульового дня
Термін «DDoS-атака нульового дня» означає DDoS-атаку, яка використовує ще невідому вразливість у програмному забезпеченні, протоколах або системах, яка навіть не мала шансів бути виправленою.
Висновок
Як бачите, типи DDoS-атак надзвичайно різноманітні і здатні вражати ваш сервер на різних рівнях, тому кваліфікований DDoS-захист - це єдиний спосіб не турбуватися про цей тип кіберзагроз.