SYN flood je oblíbený druh DDoS útoku, který neútočí objemem přenesených dat, ale počtem paketů. Vhodně navržený SYN flood dokáže velmi rychle přetížit webserver.
TCP, SYN a SYN-ACK
Nejběžnější spojení mezi uživatelem a serverem se navazuje přes TCP (Transmission Control Protocol). Přes TCP navštěvujete internetové stránky, stahujete emaily anebo nahráváte soubory. Jinými slovy jedná se o nejpoužívanější formu výměny dat mezi uživatelem a serverem.
Na začátku je třeba navázat komunikaci. To probíhá tak, že uživatel pošle na server SYN (synchronize) paket. Je to žádost o navázání komunikace. Server mu pošle zpět SYN-ACK (acknowledges) paket. To je potvrzení pro synchronizaci. Uživatel pak ještě serveru pošle zpět ACK paket, jako že rozumí. A je hotovo komunikace mezi uživatelem a serverem byla navázána. Tento proces se nazývá TCP three-way handshake (trojstranné potřesení rukou).
Teorie jednoduchého útoku
Teď když víme jak funguje komunikace, můžeme se podívat i na útok. Webserver nepředpokládá, že bychom měli zlé úmysly, proto také na každý SYN paket odpovídá pomocí SYN-ACK a dává nám čas na zaslání ACK paketu. Tím jsou blokovány nějaké systémové prostředky protože spojení je napůl otevřené. Webserver má jen určité omezené množství takto otevřených spojení. Pokud tedy neodpovídáme, v podstatě blokujeme provoz.
Stačí tedy poslat dostatečné množství SYN paketů a nechat server ať má napůl otevřené všechny spojení. Skutečný uživatel se na server nebude moct dostat, protože server bude jeho SYN pakety odmítat. Jinými slovy zaplavíte server SYN pakety a právě od toho je název SYN flood – SYN potopa.
Každé webserver má nastavené omezené množství spojení, pokud by neměl, tak mu dojde paměť a prostě spadne.
Pokročilejší útoky
Pokročilejší útoky využívají podvrženou IP adresu. Pošlou SYN paket na jeden cíl a nechají ať odpoví SYN-ACK na další, který se nachází právě na podvržené IP adrese. Oba dva cíle tak musí vynaložit prostředky na řešení zbytečného paketu. Jestliže server obdrží SYN-ACK o kterém nic neví, vrátí zpět RST paket (reset) a tím upozorní, že se jedná o chybu. Ovšem pokud cíl dva neodpoví cíli jedna, tak jednička má i navíc otevřené spojení.
Ve skutečnosti je však běžné, že po obdržení SYN paketu, se pokusí server odeslat několik SYN-ACK paketů, pokud nedostal odpověď, než spojení zavře. Předpokládá, že se paket někde ztratil. V podstatě tak může útočník znásobí útok. Z jednoho paketu jich udělá několik.
Tento článek byl byl přečten 4986 krát