TCP SYN-flood

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

Порядок установления TCP-соединения подразумевает процесс «трёхкратного рукопожатия»:

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

 Только после этого соединение считается установленным. Принцип атаки заключается в том, что сервер не получает от клиента подтверждение на готовность установить соединение (шаг 3). В результате сервер какое-то время держит соединения, инициируемые злоумышленником, в полуоткрытом состоянии и ожидает подтверждения.

syn-flood

Реализовать данную атаку можно двумя вариантами. Первый вариант — генерировать SYN-запросы, при этом игнорировать SYN+ACK пакеты от жертвы (шаг 3). Второй вариант-  подделывать пакеты таким образом, чтобы SYN+ACK отправлялся на несуществующий IP-адрес (Spoofing).

Цель злоумышленника — поддерживать полуоткрытые соединения, ожидающие подтверждения, чтобы не допустить установления легитимных соединений.

Ввиду такой атаки, конечные пользователи не смогут установить связь с сервером, либо все-таки установят, но с некоторой задержкой. Все зависит от нагрузки сервера и мощности атаки.

Для того чтобы проверить свой ресурс, данную атаку легко сгенерировать путем утилиты hping или scapy, например:

#hping3 -i u1 -S dstIP -a srcIP -L 0 --flood

Либо,

#scapy

>>>send(IP(dst=" dstIP ")/TCP(dport=80,flags="S"),loop=1)

<strong>Купить\Заказать услугу AntiDDOS можно <a href="http://netwild.ru/buy/">здесь</a>.</strong>