TCP atacurile de resetare

Introducere (partea mea preferată)

Hacker-ul a spus în repetate rânduri despre protocolul TCP,
astfel încât să se repete și să se răspândească peste copacul meu
mai ales nu voi. Îmi amintesc principalul
Protocolul de control al transmisiei este descris în RFC






793 și avantajul său este
fiabilitatea transferului de date de la o gazdă
la altul prin rețea. Aceasta înseamnă că TCP
asigură fiabilitatea transmisiei de date și
detecta automat ratat sau pierdut
pachete deteriorate. Pentru ce este important pentru noi
designul său?

În general, antetul pachetului TCP
arată astfel:

Programul trimite un tampon peste rețea
datele, TCP împarte datele în segmente
și apoi segmente de pachete în datagrame.
Datagramele formează deja pachete
sunt transmise prin rețea. Destinatarul
proces invers: pachetele sunt extrase
datagrame, segmente ale datagrame lor, segmente
sunt transferate în stivă TCP și verificate acolo,
apoi sunt colectate și transferate în program.

Datele sunt defalcate pe segmente
pachetele separate sunt trimise prin rețea
destinatar. Este posibil ca pachetele
ajungeți la destinație, nu în ordine.
Acest câmp este un număr pe 32 de biți care definește
numărul de segment în secvență, este
fiecare pachet crește și permite
colectați datele în ordinea corectă. În
sensul general al determinării valorii aparține
dacă pachetul este o sesiune activă sau nu.

TCP oferă, de asemenea, gazdei un mecanism
spuneți reciproc câte date doresc
obține. Acesta este câmpul Window, un număr de 16 biți
în antetul TCP. Odată stabilite,
le spune gazdei că va fi acceptată
cantitatea strict limitată de date și
restul va merge în pădure. Dacă coada de primire
va fi completă, gazda poate seta valoarea
în 0 și, astfel, spuneți partenerului
cum ar fi un dig este bun.

SYN, ACK, PSH, URG, RST și FIN, despre ele de mai multe ori
au spus, așa că nu mă voi repeta.

Respingerea atacului TCP

În această situație, desigur, cei mai vulnerabili
aplicații și protocoale de sprijin






conexiuni continue. De exemplu, BGP
(Border Protocol Protocol) de la Cisco (a se vedea RFC
1771), deoarece se bazează pe o constantă
Sesiune TCP între computere. Crash in
Protocolul poate duce la
"Rularea traseului",
un eveniment destul de neplăcut pentru
router.

Paul Watson, care a descoperit vulnerabilitatea,
explică faptul că, de fapt, un astfel de atac nu
atât de greu de organizat așa cum părea mai devreme.
Conform estimărilor anterioare, sa constatat că
atac de forță brute asupra numărului de secvență va necesita
căutarea tuturor numerelor de la 1 la 4.294.967.295. totuși
acest lucru nu este cazul. De exemplu, dacă stivă TCP este activată
Gazdă A este limitată la o fereastră în 16K, stiva ar trebui să fie
primiți toate pachetele din această "fereastră"
iar atacatorul nu trebuie să trimită
pachete cu RTS instalate în ansamblu
secvența SN, dar numai
orice fereastră posibilă, deoarece TCP va accepta
orice număr de secvență în unele
intervalul specificat de dimensiunea ferestrei. În acest fel
atacatorul trebuie să fie sortat 4.294.967.295 / 16.384 = 262.143
care ar intra în toate ferestrele disponibile.

Probabil 262 de mii pot părea
un număr mare, dar nu este. În primul rând,
cu o bună legătură, atacatorul este capabil
generează zeci de mii de pachete pe secundă.
În al doilea rând, atacul poate fi împărțit în
gazde multiple. De exemplu, pe un standard
Linile DSL pot produce 250 de pachete în
în al doilea rând, care va epuiza toate opțiunile pentru 17
minute, pe T1 este deja de 4.730 pachete și numai
60 de secunde.

În exemplu, un exemplu de fereastră în 16K,
Cu toate acestea, în conformitate cu RFC, acest câmp este de 16 biți, ceea ce oferă până la 64K.
Dacă se folosește dimensiunea completă, atunci
Atacatorul primește numai 65.537 pachete, 4 și
15 secunde, respectiv. Și trebuie
având în vedere faptul că acesta este timpul maxim, în medie
va fi jumătate la fel de mic (în practică
acest lucru este de 3 minute și 8 secunde). În ceea ce privește
descrise în vulnerabilitatea a 4 pachete, atunci
apare numai când utilizați scalarea ferestrelor,
Extensia TCP (a se vedea RFC
1323) unde mărimea "ferestrei" este mărită de la 16 la
30 biți (implementate, de exemplu, în cele descrise
peste BGP). În cazul dimensiunilor maxime
Atacatorul trebuie într-adevăr să trimită
doar 4 pachete pentru a implementa Resetarea TCP.

Resetarea atacului poate fi efectuată fără RST
biți. În schimb, puteți seta bitul SYN
efectuând exact același atac care a fost
este descris mai sus. La cele mai multe implementări ale TCP
stiva în caz de retransmisie a SYN
RST va fi trimis cu numărul de ordine. Dacă SYN este inclus în
"Fereastra" sesiunii curente, apoi în loc de RST
sesiunea va fi terminată, iar
probabil chiar repornit.

Blind injectarea de date

Ei bine, a treia versiune a dezvoltării evenimentelor.
Totul se face în același mod ca și în cele precedente
cazuri - alegem numărul de ordine,
Numai în loc să trimiteți SYN sau RST goale
pachete pe care le facem un pachet de date obișnuit.
Conectarea în acest caz nu va fi întreruptă, dar
asta este scopul utilizatorului
computer - o intrebare complet incomprehensibila.
Datele transmise vor fi catastrofale
deteriorat.

Distribuiți acest articol cu ​​prietenii dvs.:







Articole similare

Trimiteți-le prietenilor: