Tcp syn-flood

Старий добрий TCP SYN-flood простий в реалізації, але може доставити багато проблем. Давайте розберемося, як працює дана атака, і подивимося способи генерації для тестування свого обладнання.

Порядок встановлення TCP-з'єднання на увазі процес «триразового рукостискання»:

  1. Клієнт посилає серверу пакет із запитом на з'єднання з встановленим прапором SYN (synchronize);
  2. Сервер, в свою чергу відповідає клієнту, що готовий встановити з'єднання, посилаючи відповідь з комбінацією прапорів SYN + ACK (acknowledges);
  3. Клієнт підтверджує готовність встановити з'єднання з сервером, посилаючи пакет з прапором ACK.

Тільки після цього з'єднання вважається встановленим. Принцип атаки полягає в тому, що сервер не отримує від клієнта підтвердження на готовність встановити з'єднання (крок 3). В результаті сервер якийсь час тримає з'єднання, ініційовані зловмисником, в напіввідкритому стані і очікує підтвердження.

Tcp syn-flood

Мета зловмисника - підтримувати напіввідкриті з'єднання, які очікують підтвердження, щоб не допустити встановлення легітимних з'єднань.

Зважаючи на таку атаки, кінцеві користувачі не зможуть встановити зв'язок з сервером, або все-таки встановлять, але з деякою затримкою. Все залежить від навантаження сервера і потужності атаки.

Для того щоб перевірити свій ресурс, дану атаку легко згенерувати шляхом утиліти hping або scapy, наприклад: