TCP SYN-flood
Старый добрый TCP SYN-flood прост в реализации, но может доставить много проблем. Давайте разберемся, как работает данная атака, и посмотрим способы генерации для тестирования своего оборудования.
Порядок установления TCP-соединения подразумевает процесс «трёхкратного рукопожатия»:
- Клиент посылает серверу пакет с запросом на соединение с установленным флагом SYN (synchronize);
- Сервер, в свою очередь отвечает клиенту, что готов установить соединение, посылая ответ с комбинацией флагов SYN+ACK (acknowledges);
- Клиент подтверждает готовность установить соединение с сервером, посылая пакет с флагом ACK.
Только после этого соединение считается установленным. Принцип атаки заключается в том, что сервер не получает от клиента подтверждение на готовность установить соединение (шаг 3). В результате сервер какое-то время держит соединения, инициируемые злоумышленником, в полуоткрытом состоянии и ожидает подтверждения.
Реализовать данную атаку можно двумя вариантами. Первый вариант — генерировать 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>