SYN flood
Úvod
Záplava pakety SYN neboli SYN-flood je druh útoku označovaný jako Denial of Service. Útočník pošle posloupnost paketů s příznakem SYN cílovému počítači, ale již dále neodpovídá.
Pokud se klient pokouší navázat spojení se serverem protokolem TCP, klient a server si za normálních okolností vymění tři TCP pakety:
- Klient pošle na server paket s příznakem SYN (synchronizovat)
- Server uzná (acknowledge) žádost o synchronizaci a pošle paket s příznaky SYN a ACK
- Klient pošle paket s příznakem ACK
Toto se nazývá třícestné navázání spojení (three-way handshake) a jedná se o základ navazování spojení protokolem TCP.
Způsob útoku
SYN-flood je známý způsob útoku, ale v moderních sítích je obvykle neúspěšný. Funguje jedině tehdy, pokud server alokuje prostředky pro nové spojení ihned po obdržení paketu SYN, ještě před tím, než obdržel paket ACK.
Jsou dva způsoby, jak zařídit, aby se server nedočkal paketu ACK. Záludný klient buď může zaslání paketu ACK opomenout. Nebo může poslat paket SYN se špatně uvedenou IP adresou, čímž se dostáváme k tzv. IP-spoofingu, kdy klient nastrčí jako svoji IP-adresu nějakou jinou adresu a server pošle paket SYN-ACK úplně někam jinam a samozřejmě se paketu ACK nedočká.
Pokud server přiděluje prostředky těmto napůl otevřeným spojením (například si informace ukládá do fronty a odtud je odebírá, když přijde paket ACK) a je zaplaven (flooded) podvodnými pakety, zanedlouho jsou prostředky vyčerpány. To může způsobovat problémy jako například zpomalení serveru, ale třeba i zhroucení systému a počítač pak musí být lokálně restartován.
Často užívaná technologie pro částečně navázaná TCP spojení používá frontu, která často bývá velmi krátká (třeba 8 prvků). Každý prvek je vyhozen, když je spojení dokončeno nebo pokud vyprší jeho platnost (například po třech minutách). Když je fronta plná, další spojení selhávají. (Například po osmi paketech po dobu tří minut je server zdánlivě mimo provoz. Pokud každé tři minuty útočník vyšle osm paketů, bude server nedostupný téměř neustále.)
Obrana
Doporučovaným způsobem obrany jsou SYN cookies nebo omezení počtu nových spojení z určitého zdroje po dobu nějakého časového rámce (například server přijme maximálně pět takových paketů za sekundu). Moderní zásobníky TCP/IP nemají toto zúžení a rozdíl mezi SYN-flood-útokem a jiným útokem založeným na zneužití omezenosti kapacity linky může být nepatrný.
Místo klientského počítače může být k útoku zneužit i tzv. router-reflektor.
Reference
RFC 4987 TCP SYN Flooding Attacks and Common Mitigations