SYN флуд е разновидност на Denial-of-service атаката, приложима на TCP/IP протокола, при която изпращаните пакети от атакуващия към жертвата са с вдигнат SYN флаг.

Начин на действие редактиране

При стандартна комуникация, базирана на TCP/IP протокола, само първият пакет, изпратен от клиента към сървъра е с вдигнат SYN флаг с цел инициализиране на конекция. След това, съгласно three-way handshake-а на TCP/IP, сървъра отговаря с пакет с вдигнати SYN-ACK флагове, последвано от ACK от клиента и установяване на връзката. Когато на всеки един пакет от изпращаните с голяма скорост (DDoS), а не само на първия бива вдигнат „изкуствено“ SYN флага, това води до много по-голяма натовареност на атакувания сървър, тъй като той разбира всеки един изпратен от атакуващия пакет като инициализация и начало на нова връзка, следователно отговаря както при получен първи пакет от нормална некомпрометирана TCP/IP комуникация. По този начин всеки един пакет с вдигнат SYN флаг натоварва атакуваната машина все едно е била установена нова връзка с нов клиент, поради това, че последният ACK флаг никога не бива изпратен от клиента. Така биват установени множество полу-отворени връзки, което затормозява машината-жертва.

Методи за защита редактиране

Един от най-разпространените варианти е използването на т.нар. SYN бисквитки – сесийни идентификатори, съдържащи се в частта за пореден номер (при липсата на SYN бисквитки се задава от TCP като произволна стойност) на SYN пакетите, които се формират от поредица от фактори по които се проверява дали пакета е легитимен, и дали не е част от поредица от подобни, целящи компрометиране на системата.
При Линукс сървърите за защита може да бъдат въведени няколко правила в iptables, които проверяват дали нови заявки към вече установените връзки до машината имат вдигнат SYN флаг, и ако това е така, трафика бива филтриран и не бива допуснат в същността си на ниво обработка. Въпреки това, остава вредата от стандартната DDoS атака.