A SYN flood - это форма атаки отказа в обслуживании, в которой злоумышленник быстро инициирует соединение с сервером, не завершая соединение. Сервер должен тратить ресурсы на ожидание полуоткрытых соединений, которые могут потреблять достаточно ресурсов, чтобы система перестала отвечать на законный трафик.
пакет, который отправляет злоумышленник, является SYN
пакет, часть TCP трехстороннего рукопожатия, используемого для установления соединения.
Когда клиент пытается запустить соединение TCP с сервер клиент и сервер обмениваются серией сообщений, которая обычно выполняется следующим образом:
SYN
(синхронизировать) сообщение на сервер.SYN-ACK
обратно клиенту.ACK
, и соединение установлено.Это называется трехстороннее рукопожатие TCP и является основой для каждого установления соединения. хранится с использованием протокола TCP.
Атака SYN-флуда работает, не отвечая серверу ожидаемым кодом ACK
. Злоумышленник может либо просто не отправлять ожидаемый ACK
, либо подделать исходный IP-адрес в SYN
, что приведет к тому, что сервер для отправки SYN-ACK
на поддельный IP-адрес, который не будет отправлять ACK
, потому что он «знает», что никогда не отправлял SYN
.
. Сервер будет подождите некоторое время подтверждения, поскольку простая перегрузка сети также может быть причиной отсутствия ACK
. Однако при атаке полуоткрытые соединения, созданные злонамеренным клиентом, связывают ресурсы на сервере и в конечном итоге могут превышать ресурсы, доступные на сервере. В этот момент сервер не может подключиться ни к каким клиентам, законным или нет. Это фактически отказывает в обслуживании законным клиентам. Некоторые системы могут также работать со сбоями или давать сбой, когда другие функции операционной системы испытывают нехватку ресурсов таким образом.
Существует ряд хорошо известных контрмер, перечисленных в RFC 4987, включая: