SYN ataka

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką
Normali sesija: vartotojas ir serveris apsikeičia SYN, SYN-ACK ir ACK signalais, sukurdami TCP jungtį.
SYN ataka. Viršuje – puolanti pusė siunčia daug SYN paketų, į kuriuos serveris atsako patvirtinimais. Apačioje – perkrautas serveris nebeatsako į SYN paketą teisėtam vartotojui.

SYN ataka (angl. SYN flood, SYN attack) yra paplitusi Interneto serverio atakų, kuria galima rimtai sutrikdyti jo darbą, neleidžiant prisijungti teisėtiems vartotojams. Tai viena labiausiai paplitusių TCP protokolo atakų, paplitusi po 1996 metų, kai keli žurnalai išspausdino jos aprašymus su atakuojančio kodo pavyzdžiais[1]. SYN ataka yra DoS (angl. denial of service) ataka ir jos rengimas (išskyrus prieš savo paties severį studijų ar tyrimų tikslais) daugelyje šalių uždraustas įstatymu. Ataka pradedama siunčiant TCP paketą SYN, kurio įprastinis tikslas yra pradėti TCP sesiją.

Atakos variantai[taisyti | redaguoti kodą]

Paprasčiausias puolimo būdas yra tiesiog siųsti daugelį SYN paketų, bandant sukurti tiek TCP jungčių jog serveriui nebelieka resursų jų visų palaikyti. Tačiau nuo tokios atakos palyginus nesunku apsiginti nustatant ugniasienėje protingą skaičių jungčių vienam IP adresui. Be to, administratoriui nesunku nustatyti puolančios pusės IP adresą ir tiesiog jį blokuoti.

Sudėtingesniame atakos variante puolėjas SYN pakete vietoj savo adreso įrašo kitą pasirinktą reikšmę. Tačiau tinklo administratoriams nėra labai sudėtinga nustatyti tikrąjį puolančios pusės adresą. Jei atgalinis IP adresas padirbtas ir aiškiai neteisingas, tokį paketą gali atmesti jau atakuotojo Interneto paslaugos teikėjas kuriam žinomi visi galimi vartotojų IP adresai.

Apsauga[taisyti | redaguoti kodą]

Vienas paprasčiausių gynybos būdų yra tiesiog padidinti leistiną galimų jungčių skaičių. Tai padeda jei atakuotojo resursai irgi riboti. Jei SYN paketo IP adresas nepadirbtas ar bent jau pastovus, naudojamas jungčių skaičiaus vienam adresui ribojimas, o adresą nustačius – jo blokavimas.

Užuot naudojęs savo atmintį, serveris taip pat gali specialiai parinkti 32 bitų SYN-ACK paketo sekos numerį taip, jog ten būtų visa sesijai tęsti reikalinga informacija kuri su atsakomuoju ACK paketu (sekos numeris tiesiog vienetu didesnis) po to grįžta atgal (angl. syn cookies). Taip galima priimti daug daugiau SYN paketų į kuriuos vėliau neatsakoma. Tačiau negavęs atsakymo tokio vienąkart pasiųsto SYN-ACK patvirtinimo serveris dar sykį pakartoti nebegali, tuo formaliai pažeisdamas TCP protokolą.

Daugiau paketų galima priimti ir jei serverio duomenų struktūra informacijai apie gautus SYN paketus įsiminti yra kuo mažesnė, be jokių buferių kurie, kai reikia sukuriami vėliau, o juos sauganti aibė optimizuota greitai paieškai (angl. syn cache). Serverį galima taip pat apsaugoti papildomu ugniasienės kompiuteriu kuris perduoda toliau tik jau sukurtas jungtis. Yra firmų, teikiančių tokios apsaugos paslaugas. Sudėtingiausia gintis jei atakoje dalyvauja ne vienas o labai daug (šimtai ar tūkstančiai) puolančių kompiuterių. Tačiau tokią ataką sudėtinga parengti.

Nuorodos[taisyti | redaguoti kodą]

  1. SYN atakos aprašymas CISCO tinklalapyje