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