Contacte

Atacuri de inundații Syn. Protejarea unui server Linux de inundațiile SYN: elemente de bază și metode. Dacă toate celelalte nu reușesc

Spoofed SYN este un atac în care anteturile de pachete sunt falsificate în așa fel încât o adresă IP arbitrară sau inexistentă să ia locul expeditorului real.

Deoarece SYN este în esență un instrument frecvent " competitie intensa„și - în același timp - majoritatea soluțiilor de atenuare DDoS arată o eficiență impresionantă asupra acestui tip de atac, apoi vom începe cu SYN-flood, considerând tipul de atac falsificat ca fiind cel mai redutabil dintre ele.

Declinări de responsabilitate

Disclaimer # 1
Tot ceea ce este descris în acest subiect și în subiectele ulterioare nu este de fapt un know-how. Toate metodele sunt deschise, iar la un moment dat sau altul (unele - din 2003) au fost publicate în surse deschise. M-am chinuit doar să le reunesc și să descriu „ strategie globală»Protecția axată pe administratori de sistem servind proiecte mici situate pe servere dedicate (strategia descrisă poate fi aplicată în proiecte partajate, dar implementarea va fi așa prohibitiv groaznic că nu există dorința de a scrie despre asta)
Declinare de responsabilitate # 2
În subiect nu este considerat soluții de securitate hardware - în primul rând, sunt considerate perfect în numeroase articole de către producătorii acestor soluții, în al doilea rând, proiectele cu un singur server nu le pot permite adesea (aproximativ vorbind, prețul soluțiilor de lucru începe de la 20 de mii de euro), în al treilea rând - autorul nu are suficiente date și experiență în lucrul cu astfel de hardware specializat pentru a trage concluzii globale despre metodele și eficacitatea unei astfel de protecții - aproape nimeni nu este interesat de o imagine de ansamblu a soluțiilor de la doi furnizori dintr-o duzină, care nu sunt susținute de statistici serioase de lucru de folosirea lor. Dar este demn de remarcat faptul că ambele soluții hardware pe care le-am folosit sunt de obicei foarte eficiente împotriva atacurilor SYN. sub anumite conditii.
Declinare de responsabilitate # 3
În subiect nu este considerat Furnizori de protecție DDoS - Inginerii de servicii ai acestor organizații vor putea descrie metodele lor de lucru mai bine și mai detaliat. Probabil ar merita să facem o privire de ansamblu asupra furnizorilor înșiși ca atare - din punctul de vedere al clientului (în diferite momente, proiectele la care am participat erau clienți ai Dragonara, Blacklotus, Gigenet, Vistnet (în acest moment), Prolexic ( în prezent) și o serie de vânzători de servicii ai companiilor de mai sus), dar acest lucru nu intră în sfera subiectului, vom încerca să vorbim despre asta mai târziu. Din nou, este demn de remarcat faptul că toți furnizorii de securitate cu care lucrează sau au lucrat proiectele autorului fac față problemei atacurilor SYN, demonstrând o eficiență bună.

Un pic de mecanică și wikipedia

Nu aș vrea să transform subiectul într-o aparență de RFC și să citez adevărurile deja binecunoscute, așa că ne vom limita la ceea ce este interesant pentru TCP din punctul de vedere al unui atac SYN și vom trece peste.

În primul rând, TCP este unul dintre cele mai utilizate protocoale de transport, pe lângă care se află majoritatea protocoalelor de aplicație. În al doilea rând, are o serie de caracteristici speciale (începutul și sfârșitul verificabile în mod explicit al unei conexiuni, controlul fluxului etc.) - care fac implementarea sa relativ complexă și intensivă în resurse.

În contextul articolului, este interesant să se ia în considerare mecanismul pentru stabilirea unei conexiuni TCP - o strângere de mână în trei direcții. Ca o primă aproximare la nivelul client-server, arată astfel: clientul trimite un pachet SYN către server, la care răspunde cu SYN + ACK. Clientul trimite un ACK la SYN-ul serverului, iar conexiunea intră în statul stabilit.

Atac SYN - trimiterea unei mase de pachete SYN către un port deschis al serverului, care nu duce la stabilirea unei conexiuni reale dintr-un motiv sau altul, ceea ce presupune crearea de „conexiuni pe jumătate deschise” care depășesc coada de conectare , forțând serverul să refuze serviciul către următorii clienți. În plus, TCP RFC obligă serverul să răspundă la fiecare SYN de intrare, care atinge în plus atât resursele serverului, cât și canalul de transmisie a datelor. În alte chestiuni, dacă ați întâlnit deja - de fapt - vreunul Atacuri DDoS- știi cele de mai sus fără mine. Să trecem la recomandări specifice.

Singur pe teren

Folosește ceea ce este la îndemână și nu căuta altceva pentru tine - ce poți face, fiind unul la unu cu atacul? Sincer, nu mult, dar se întâmplă că acest lucru este suficient. În cele ce urmează este descris ce trebuie făcut cu FreeBSD, deoarece în proiectele noastre, în 90% din cazuri, este utilizat acest sistem. Cu toate acestea, diferența de la SO la OS va fi mică - principiile sunt aceleași.

Primul- este necesar să obțineți acces la server (da, acest lucru poate fi, de asemenea, dificil, mai ales dacă atacul este pe scară largă și / sau prelungit - serverul a selectat pur și simplu toate bufferele sau are o încărcare de 100% CPU). De obicei, pentru aceasta, este suficient să închideți serviciul atacat cu un firewall sau pur și simplu să îl opriți - serviciul (totuși, dacă este detectat un atac, acest lucru trebuie făcut în orice caz, cel puțin pentru a putea face altceva pe server).

Al doilea- obțineți primele informații despre atac. Dacă ați făcut deja monitorizarea traficului de intrare - minunat, dacă nu - deschideți paravanul de protecție / ridicați serviciul și folosiți vechile tcpdump și netstat pentru a afla ce anume este atacat și ce dimensiune a atacului în pachete pe secundă. Pe parcurs, puteți vizualiza rapid rețelele din care provin cereri masive - indiferent dacă fac parte dintr-un public tipic pentru serviciul dvs. Toate acestea vor fi utile în viitor.

Al treilea- numai una ar trebui să rămână pe interfața unde se află adresa IP atacată. Fiecare alias va degrada performanța sistemului. Aceasta se exprimă în numere diferite pentru diferite sisteme, dar aceste numere sunt serioase, fiecare alias poate costa încă 2-3 mii de pachete pe secundă.

Al patrulea- dacă utilizați orice firewall pentru traficul de intrare către adresa atacată - toate regulile, cu excepția blocării, ar trebui să fie dezactivate - de exemplu, cu un atac SYN fals, probabilitatea ca SYN-proxy de la PF să vă ajute tinde la zero și CPU va lua foarte în serios.

a cincea- am configurat sistemul. Nu vor exista miracole, au nevoie de un pian în tufișuri sub formă de șoferi pregătiți și achiziționați special carduri de rețea, și singurele două recomandări generale care afectează grav capacitatea de a primi un atac SYN sunt de mult cunoscute de toată lumea:
- Manipularea întreruperilor de smudge între procesoare de server;
- Activați cookie-urile de sincronizare și dezactivați cache-ul de sincronizare.

Restul reglării sistemului va ajuta la stoarcerea a încă 5-10 mii de pachete, ceea ce este puțin probabil să fie decisiv într-un atac. În cazul în care este util pentru cineva, iată cea mai generală configurare (fără a include opțiuni care necesită reconstruirea nucleului sau a driverelor specializate):

Net.isr.direct = 1 kern.ipc.nmbclusters = 400000 net.inet.tcp.nolocaltimewait = 1 net.inet.tcp.recvspace = 16384 net.inet.tcp.sendspace = 32768 net.inet.tcp.msl = 5000 net.inet.tcp.blackhole = 1 net.inet.ip.intr_queue_maxlen = 3000 net.inet.tcp.blackhole = 2 net.inet.udp.blackhole = 1 net.inet.icmp.log_redirect = 1 net.inet.ip .redirect = 0 net.inet.icmp.maskrepl = 1 net.inet.tcp.syncookies_only = 1 net.route.netisr_maxqlen = 4096 kern.ipc.maxsockbuf = 83886080 net.inet.ip.intr_queue_maxlen = 10240
Un sistem la nivel de desktop configurat conform acestor linii directoare:

Primul # netstat -w1 -h -d intrare (Total) pachete de ieșire eroare idrops octeți pachete erori octeți colls scade 260K 0 0 15M 230K 0 13M 0 0
Un IBM System x3630 M3 configurat conform acestor reguli:

Al doilea # netstat -w1 -h -d intrare (Total) pachete de ieșire erori idrops octeți pachete erori octeți colls scade 477K 0 0 36M 457K 0 25M 0 0
Configurații detaliate ale sistemului de operare și ale mașinilor și, de fapt, modul în care am ajuns la ele - Voi încerca să vă spun în următorul subiect.

Facem un lucru

Ce să faci în afară de reglarea sistemului Practic, sunt multe de făcut.

Merită să faceți o mică divagare aici - majoritatea companiilor de găzduire vor fi extrem de reticente în a ajuta în lupta împotriva unui atac, dacă ajută deloc, și este dificil să le învinuiți pentru acest lucru. Dar cel puțin ei vor furniza date despre atac - dacă trebuie să lucrați cu furnizorii de securitate, acest lucru, împreună cu informațiile pe care le-ați colectat în timpul atacului, vă vor face viața mult mai ușoară.

Dacă gazda este surprinsă înțelegând (care într-adevăr foarte rar) - apoi lucrăm conform următorului algoritm - paralel și bloc, bloc și paralel:
Dacă avem mai multe plăci de rețea (dacă nu, vă rugăm să instalați) - activați-le în modul LACP (pentru aceasta va trebui să activați opțiuni similare pe comutatorul gazdei) - acest lucru va da de fapt o creștere a performanței de un an și jumătate (vom ia în considerare câteva subtilități ale procesului mai târziu - să îmbrățișezi imensitatea în cadrul subiectului nu funcționează în niciun fel) Am ieșit aici la această performanță:

Al doilea # netstat -w1 -h -d intrare (Total) pachete de ieșire erori idrops octeți pachete erori octeți colls scade 1.2M 16K 0 65M 1.1M 0 59M 0 0
Vă rugăm să blocați toate porturile și protocoalele neutilizate - un atac SYN poate fi ușor înlocuit cu un atac UDP.
Practic orice companie de găzduire este capabilă de aceste acțiuni. Dar dacă aveți norocul de a lucra cu o companie serioasă - cereți să blocați traficul dintr-o regiune în care nu locuiește cea mai mare parte a audienței proiectului dvs. (de exemplu, China) - de obicei, aceasta înseamnă un anunț de gaură neagră pentru rețeaua dvs. pentru furnizorii de coloane vertebrale ale unei anumite regiuni. De regulă, un atac SYN se desfășoară din Asia, datorită caracterului său ieftin și de masă și, prin urmare, un astfel de anunț poate ajuta serios în lupta împotriva unui atac sau chiar exclude cu totul posibilitatea acestuia.

În plus față de măsurile de mai sus, este posibil să vă sfătuim să utilizați un serviciu asemănător GeoDNS - în anumite condiții (un atac este efectuat asupra unui domeniu, de exemplu), acesta va funcționa similar cu anunțarea unui orificiu negru pentru anumite rețele.

In cele din urma

Sper că acest articol vă va ajuta să faceți față inundațiilor SYN fără a depăși bugetul anual al unei țări africane. Desigur, aici sunt oferite doar cele mai generale recomandări, dar credeți-mă - în 90% din cazuri sunt suficiente. Și cel mai important - nu vă panicați!

UPD. O continuare este în stadiul de scriere și în curând va fi postată aici. Stai cu noi!

11.11.2012

Sub potop Acest lucru implică un flux uriaș de date sub formă de mesaje, care sunt trimise pentru postare pe tot felul de forumuri și chat-uri. Din punct de vedere tehnic, potop este una dintre cele mai frecvente tipuri de atacuri computerizate, iar scopul său este de a trimite un astfel de număr de cereri pe care echipamentul serverului va fi obligat să le îndeplinească negarea serviciului servicii pentru utilizatori. Dacă atac computerizat efectuate de la un număr mare de computere, atunci aveți de-a face cu.

Există mai multe tipuri de atacuri DDoS de inundații, principalele sunt enumerate mai jos:

  • Potop SYN-ACK
  • Potop HTTP
  • Potop ICMP
  • Inundația UDP

Potop SYN-ACK

Potop SYN-ACK- unul dintre tipuri atacuri de rețea care se bazează pe trimiterea unui număr mare de solicitări SYN pe unitate de timp. Rezultatul va fi dezactivarea serviciului, a cărui activitate s-a bazat pe protocolul TCP. În primul rând, clientul trimite către server un pachet care conține semnalizatorul SYN, a cărui prezență indică faptul că clientul dorește să stabilească o conexiune. La rândul său, serverul trimite un pachet de răspuns. În plus față de semnalizatorul SYN, acesta conține și un semnalizator ACK, care atrage atenția clientului asupra faptului că cererea a fost acceptată și o confirmare a conexiunii este așteptată de la client. El răspunde cu un pachet cu un steag ACK despre o conexiune reușită. Serverul stochează toate cererile de „conexiune” de la clienți într-o coadă de o anumită dimensiune. Solicitările sunt păstrate într-o coadă până când se returnează un semn ACK de la client. Un atac SYN se bazează pe trimiterea pachetelor către un server dintr-o sursă inexistentă care sunt mai mari decât dimensiunea cozii. Serverul pur și simplu nu va putea răspunde la pachet la o adresă fictivă. Coada nu va scădea și serviciul nu va mai funcționa.

Potop HTTP

Potop HTTP- se aplică în cazul serviciului de lucru cu Bază de date... Atacul vizează fie server web, sau un script care funcționează cu baza de date. Indreptandu-ma o cantitate mare GET solicitări pe portul 80, astfel încât serverul web să nu poată acorda atenția cuvenită altor tipuri de solicitări. Fișierele jurnal cresc și lucrul cu baza de date devine imposibil.

Potop ICMP

Potop ICMP- calea ușoară scade debitulși mărirea încărcăturilor pe stivă prin trimiterea aceluiași tip de cereri ICMP PING. Periculos în caz de mică atenție firewall-uriîntrucât un server care răspunde la nesfârșite cereri ECHO este condamnat. Deci, în cazul aceleiași cantități de trafic de intrare și de ieșire, trebuie doar să scrieți regulile în iptables.

Inundația UDP

Inundația UDP- altă cale aglomerând lățimea de bandă bazat pe lucrul cu un protocol care nu necesită sincronizare înainte de a trimite date. Atacul se rezumă la simpla trimitere a unui pachet la portul UDP al serverului. După primirea pachetului, serverul începe să-l proceseze intens. Clientul trimite apoi pachetele Udp de conținut nevalid unul câte unul. Ca urmare, porturile nu vor mai funcționa și sistemul se va prăbuși.

În principiu, a determina tip de atac DDoS de multe ori nu este necesar să petreci mult timp. Este suficient să cunoașteți câteva semne. Dacă semnificativ mărirea mărimii fișierelor jurnal- Ai de-a face cu Potop HTTP... Dacă acces limitat la serviciu ca urmare a depășirii numărului de conexiuni permise - acesta este Potop SYN-ACK... Dacă traficul de ieșire și de intrare sunt aproximativ egale- Ai de-a face cu Potop ICMP... Principalul lucru nu este să uităm de întreținere securitatea serverului dvs. de la DDoS și acordați-i atenția cuvenită. Cel mai bun lucru este să ai grijă

O inundație SYN este o formă de atac de respingere a serviciului în care un atacator trimite o progresie a cererilor SYN către cadrul unui obiectiv încercând să consume suficiente active de server pentru a face cadrul inert pentru activitatea autentică.

Strângere de mână în trei direcții TCP

De obicei, atunci când un client începe o conexiune TCP cu un server, clientul și serverul tranzacționează o progresie a mesajelor care rulează în mod regulat în acest fel:

1) Clientul solicită o conexiune prin trimiterea unui mesaj SYN (sincronizare) către server.

2) Serverul recunoaște această cerere prin trimiterea SYN-ACK înapoi către client.

3) Clientul reacționează cu un ACK, iar conexiunea este construită.

Aceasta este cunoscută sub numele de strângere de mână în trei direcții TCP și este stabilirea pentru fiecare conexiune configurată utilizând protocolul TCP.

Funcționarea atacului de inundații SYN

Un atac de inundație SYN funcționează neacționând la server cu codul ACK normal. Clientul periculos poate fie să nu trimită ACK-ul normal, fie satirizând adresa IP sursă în SYN, aducând serverul să trimită SYN-ACK la o adresă IP distorsionată - care nu va trimite un ACK pe motiv că „știe” că nu a trimis niciodată un SYN.

Serverul va rămâne strâns pentru afirmare pentru o vreme, deoarece blocarea simplă a sistemului ar putea fi, de asemenea, motivul lipsei ACK. În orice caz, într-un atac, conexiunile pe jumătate deschise făcute de clientul periculos leagă resursele de pe server și pot depăși pe termen lung resursele accesibile pe server. Până atunci, serverul nu mai poate fi accesat de niciun client.

Securitate împotriva atacurilor de inundații SYN

Există diferite contramăsuri cu siguranță înțelese, inclusiv:

1) Filtrare

2) Cresterea restantei

3) TCP întredeschis: Termenul semi-deschis face aluzie la asociațiile TCP a căror stare nu este sincronizată între cele două, din cauza unui accident pe o parte. O conexiune care este înființată se numește altfel o conexiune embrionară. Absența sincronizării ar putea fi din cauza unui scop malign. O conexiune TCP este menționată ca întredeschisă când gazda către o parte a asociației TCP a trântit sau a evacuat în general atașamentul fără a informa partea inversă. În cazul în care restul sfârșitului este inert, asociația poate rămâne în starea pe jumătate deschisă pentru perioade de timp nelimitate. În aceste zile, termenul de asociere pe jumătate deschis este folosit în mod regulat pentru a descrie o conexiune embrionară, adică o conexiune TCP care este în curs de configurare.

Convenția TCP are un cadru cu trei stări pentru deschiderea unei conexiuni. Pentru început, punctul final de început (A) trimite un pachet SYN la destinație (B). A se află în prezent într-o stare embrionară (în special, SYN_SENT) și anticipează o reacție. B își reproiectează acum datele porțiunilor pentru a demonstra conexiunea care se apropie de la A și transmite o cerere de deschidere a unui canal înapoi (pachetul SYN / ACK). Acum, B se află în plus într-o stare embrionară (în special, SYN_RCVD). Rețineți că B a fost pus în această stare de către o altă mașină, în afara controlului lui B.

În condiții tipice (a se vedea atacul de îmbrăcăminte administrativă pentru cazurile de dezamăgire conștientă), A va primi SYN / ACK de la B, își va revizui tabelele (care au acum suficiente date pentru ca A să fie trimise și obținute) și să trimită un ultim ACK înapoi la B. Când B primește acest ultim ACK, acesta are în plus date adecvate pentru corespondența în două sensuri, iar conexiunea este complet deschisă. Ambele puncte finale se află în prezent într-o stare stabilită.

4) Firewall-uri și proxy-uri

5) Reducerea temporizatorului SYN-RECEIVED

6) Cache SYN

7) Reciclarea celui mai vechi TCP semi-deschis

8) Abordări hibride

9) Cookie-uri SYN: Cookie-ul SYN este o strategie utilizată pentru a se opune atacurilor de supratensiune SYN. Daniel J. Bernstein, creatorul esențial al procedurii, caracterizează tratările SYN ca „decizii specifice privind începutul numerelor de aranjamente TCP de către serverele TCP”. Utilizarea tratamentelor SYN permite unui server să se abțină de la renunțarea la asocieri atunci când linia SYN se completează. Mai degrabă, serverul continuă ca și cum linia SYN ar fi fost amplificată. Serverul trimite înapoi reacția potrivită SYN + ACK către client, dar elimină secțiunea de linie SYN. În cazul în care serverul primește o reacție ACK rezultată de la client, serverul poate reproduce secțiunea de linie SYN utilizând date codificate ca parte a numărului succesiunii TCP.

Dacă aveți nevoie de asistență suplimentară, vă rugăm să contactați departamentul nostru de asistență.

Chiar crezi că știi totul despre DoS? Atunci citeste-l!

Atacurile de refuz de serviciu (DoS) au devenit mai periculoase și mai ușoare. DoS este o variantă
atacuri de rețea (de la viermi la inundații SYN), al căror scop este de a face serverul inaccesibil utilizatorilor. „Reflecția distribuită” este un nou tip de atac DoS folosind inundația SYN. ​​Particularitatea sa este că milioane de pachete SYN nu sunt trimise la serverul atacat, sunt trimise la router sau server și răspunsul este trimis la serverul țintă. DAR
Există milioane de routere!

Pentru a înțelege cum funcționează totul și de ce este atât de important
să ne amintim ceva ... O conexiune TCP este recunoscută prin schimbul a trei pachete între două
calculatoare, așa-numita strângere de mână. Iată o diagramă brută:

  • Client SYN (browser web, client ftp, etc.) se conectează la server prin trimiterea unui pachet SYN.
  • SYN / ACK: Când se recepționează o cerere de conectare (pachet SYN) port deschis server, confirmă conexiunea prin trimiterea unui pachet SYN / ACK către client.
  • ACK: Când clientul primește un pachet SYN / ACK de confirmare a serverului pentru conexiunea așteptată, acesta răspunde cu un pachet ACK.

Ce se întâmplă?

Atacurile tradiționale „SYN flooding DoS” funcționează în două moduri:

  • o mașină „unu-la-unu” trimite suficiente pachete SYN pentru a bloca accesul la server.
  • „multe-la-unu” multe programe zombie,
    instalate pe diferite servere atacă mașina țintă cu pachete SYN.

Pachetele sunt trimise folosind „reflex inundații SYN”
dar cu adresa IP sursă îndreptată către mașina țintă. O conexiune TCP care utilizează aceste trei pachete necesită orice serviciu TCP care primește un pachet SYN pentru a răspunde cu un pachet SYN / ACK. Serverul sau routerul care primește aceste pachete SYN false trimite răspunsuri SYN / ACK la mașina indicată de pachetele SYN cu adresa originală
IP. Protocol și infrastructură Internet de bază
rețelele sunt folosite împotriva lor!

In detalii

Orice comunicare TCP cu un server de uz general poate fi utilizată pentru a „reflecta” pachetele SYN. Aici
o listă scurtă a celor mai populare porturi TCP:
22 (Secure Shell), 23 (Telnet), 53 (DNS) și 80 (HTTP / web). Și, de fapt, routerele întregului Internet vor recunoaște conexiunea TCP activată
179 spre port. Să evaluăm potențialul acestui atac:

  • Folosește protocolul fundamental de comunicații pe Internet;
  • Există milioane de mașini care folosesc acest protocol;
  • Atacul „pachet SYN” este extrem de ușor
    reflectoare '.

O listă poate fi construită destul de ușor,
care va lista routerele și
servere care răspund la pachetele SYN. Având
o listă mare de „reflectoare” SYN, fiecare
hackerul poate distribui SYN-uri false
pachete uniform pe întregul set
routere / servere din listă. Niciunul dintre „reflectorii” inocenți nu va experimenta
încărcare semnificativă a rețelei. Routerele nu salvează în general rapoarte despre pachete cu solicitări de
pre-join, asta face
urmărirea unui atac este extrem de dificilă.

„Reflectoarele” (routere și servere) vor trimite de trei sau patru ori cantitate mare Pachete SYN / ACK decât numărul de pachete SYN pe care le
o sa primeasca. Conexiune TCP care primește comanda
SYN, așteaptă un răspuns ACK de la mașina către care a trimis
Pachetul SYN / ACK, deci mai multe răspunsuri SYN / ACK sunt trimise la computer după câteva minute. Această caracteristică a protocolului TCP înmulțește, în esență, numărul de pachete rău intenționate SYN / ACK trimise către mașina țintă cu trei sau patru. Aceasta înseamnă, de asemenea, că inundați SYN / ACK
pachetele vor continua să atace serverul țintă timp de un minut sau
două chiar și după ce atacatorul a retras atacul.

Atacul de inundație SYN este o formă de atac de refuz de serviciu în care un atacator trimite un număr mare de solicitări SYN către serviciile unui sistem țintă care utilizează protocolul TCP. Acest lucru consumă resursele serverului pentru ca sistemul să nu răspundă nici măcar traficului legitim. Acest atac poate apărea asupra oricăror servicii care utilizează protocolul TCP, dar în principal pe serviciul web. În acest tutorial, vom trece prin elementele de bază ale atacurilor de inundații SYN și pașii de atenuare în detaliu.

Atacul SYN Flood exploatează o caracteristică de implementare a Protocolului de control al transmisiei (TCP), care se numește strângere de mână cu 3 căi. Următorii sunt pașii care apar într-o strângere de mână normală cu 3 căi:

1. Clientul solicită o conexiune prin trimiterea unui mesaj SYN (sincronizare) către server.
2. Serverul acceptă această solicitare prin trimiterea SYN-ACK înapoi la client.
3. Clientul răspunde cu un ACK, iar conexiunea este stabilită.

Un atac de inundație SYN funcționează prin faptul că nu răspunde la server cu codul ACK așteptat. Prin aceste conexiuni pe jumătate deschise, restanțele TCP ale mașinilor țintă se vor umple și, prin urmare, toate conexiunile noi pot fi ignorate. Acest lucru va face ca utilizatorii legitimi să fie, de asemenea, ignorați.

Acest atac poate avea loc în două moduri:

1. Atac direct

În acest tip de atac, atacatorii trimit rapid segmente SYN fără a falsifica adresa sursă IP. Când este detectat, acest tip de atac este foarte ușor de apărat, deoarece putem adăuga o regulă simplă de firewall pentru a bloca pachetele cu adresa IP sursă a atacatorului care va ataca.

2. Utilizarea Spoofing-ului de adresă IP

Aceasta este o formă de atac mai complexă decât atacul direct. În această metodă, mașina rău intenționată va trimite inundații de solicitări SYN către mașina țintă de la adrese IP falsificate, determinând serverul să trimită SYN-ACK la o adresă IP falsificată - care nu va trimite un ACK deoarece „știe” că niciodată a trimis un SYN.

Detectarea atacului de inundație SYN

Simptomul generic al atacului SYN Flood către un vizitator al site-ului web este că un site durează mult timp pentru a încărca sau încărca unele elemente ale unei pagini, dar nu altele. Dacă bănuiți un atac SYN Flood asupra unui server web, puteți utiliza pentru a verifica solicitările de conectare la serverul web care se află în starea „SYN_RECEIVED”.

netstat -tuna | grep: 80 | grep SYN_RECV

Dacă prezintă numeroase conexiuni cu această stare, serverul ar putea fi sub atac SYN Flood. Dacă atacul este direct cu un număr mare de pachete SYN_RECV de la o singură adresă IP, puteți opri acest atac adăugând acea adresă IP în firewall. Dacă aveți instalat APF sau firewall pe serverul dvs., puteți realiza acest lucru executând următoarea comandă:

apf –d IPADDRESS
csf –d IPADDRESS

Apărarea SYN Flood Attack

Utilizarea cookie-urilor SYN

Aceasta este cea mai eficientă metodă de apărare împotriva atacului SYN Flood. Utilizarea cookie-urilor SYN permite unui server să evite renunțarea la conexiuni atunci când coada SYN se umple. În schimb, serverul se comportă ca și cum coada SYN ar fi fost mărită. Serverul trimite înapoi răspunsul SYN + ACK corespunzător către client, dar renunță la intrarea în coada SYN. Dacă serverul primește apoi un răspuns ACK de la client, este capabil să reconstruiască intrarea de coadă SYN folosind informațiile codificate în numărul secvenței TCP.

Cookie-urile SYN pot fi activate adăugând următoarele la /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1

După modificarea fișierului de configurare sysctl, trebuie să executați următoarea comandă pentru a încărca setările sysctl din fișierul /etc/sysctl.conf

Creșterea cozii de întârziere SYN

O tehnică de apărare opțională este creșterea dimensiunii cozii restante SYS. Dimensiunea implicită este 1024. Acest lucru se poate face adăugând următoarele la /etc/sysctl.conf

net.ipv4.tcp_max_syn_backlog = 2048

Se reduc încercările SYN_ACK

Modificarea parametrului kernel tcp_synack_retries face ca nucleul să închidă mai devreme conexiunile de stare SYN_RECV. Valoarea implicită este 5.

net.ipv4.tcp_synack_retries = 3

Setarea expirării SYN_RECV

Reducerea valorii de expirare pentru SYN_RECV va ajuta la reducerea atacului de inundație SYN. Valoarea implicită este 60 și o putem reduce la 40 sau 45. Acest lucru se poate face adăugând următoarea linie la sysctl.conf.

net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 45

Prevenirea falsificării IP

Următorul parametru sysctl va ajuta la protejarea împotriva falsificării IP care este utilizată pentru atacurile de inundații SYN.

net.ipv4.conf.all.rp_filter = 1

Multe companii de găzduire oferă protecție împotriva atacului SYN prin desfășurarea de firewall-uri care utilizează apărarea împotriva inundațiilor SYN, cum ar fi Netscreen sau Appsafe.



Ți-a plăcut articolul? Împărtășește-l