Laborator 5

Tematica laboratorului

Exemple de atacuri asupra TCP bazate pe injectare de pachete la nivel transport

Resetarea conexiunii - atac RST

Reamintim sumar mecanismul de actualizare a numarului de secventa in traficul TCP prin urmatorul exemplu:

	[SEQ: 0 ]		A ----- SYN ----> B
				A <---SYN/ACK---- B	[SEQ: 0 ACK: 1]
	[SEQ: 1 ACK: 1]		A ----- ACK ----> B
				A <---DATA 20B--- B     [SEQ: 1 ACK: 1]
	[SEQ: 1 ACK:21]		A ----- ACK ----> B
	[SEQ: 1 ACK:21]		A ----DATA 11B--> B	
				A <---- ACK ----- B     [SEQ:21 ACK:12 WND:1024]
				A <---DATA 34B--- B	[SEQ:21 ACK:12]
	[SEQ:12 ACK:55]		A ----- ACK ----> B
	[SEQ:12 ACK:55]		A ----DATA 30B--> B
	[SEQ:42 ACK:55]		A ----DATA 20B--> B
				A <---- ACK ----- B 	[SEQ:55 ACK:62]

Primele numere de secventa pentru cei doi participanti la conexiune (considerate mai sus 0 pentru claritate), au valori aleatoare intr-un spatiu de 32 biti. Headerul TCP contine un camp ce specifica dimensiunea unei "ferestre". Pe baza acestei valori primite un capat al conexiunii poate transmite date in limita respectivei ferestre fara a primi confirmare (a se vedea ultima parte a secventei de mai sus). Dimensiunea ferestrei se poate modifica pe baza mecansimului de control al fluxului si al congestiei.

Pe scurt atacul asupra unei conexiuni TCP cu scopul de resetare (inchidere) al acesteia ar putea fi descris ca bazat pe injectarea de pachete TCP, avand bitul RST setat, in cadrul conexiunii. In cazul primirii unui astfel de pachet, capatul respectiv va termina conexiunea instant. In mod similar cu atacul bazat pe ICMP descris intr-un laborator precedent, pentru succesul unui astfel de atac, pachetele trebuie sa contina in cadrul headerelor IP si TCP 4-uplul (adresa IP sursa, adresa IP destinatie, port sursa, port destinatie) corespunzator respectivei conexiuni.
Ca si in cazul atacului bazat pe ICMP, si atacul curent poate fi aplicat usor daca exista acces la interceptarea traficului de pe respectiva conexiune - se pot afla toate datele necesare din pachetele vehiculate in retea, dar si in mod "orb", fara acces direct la traficul pe conexiunea respectiva. Vom considera in cele ce urmeaza mai in detaliu un atac in mod "orb" din considerente de generalitate.
In mod obisnuit, chiar daca e vorba de mod "orb", in cazul unor astfel de atacuri adresele IP sunt cunoscute, precum si un port, mai exact cel al serverului (atacatorul intentioneaza terminarea unei conexiuni de a carei existenta stie). Pentru portul asociat clientului pot fi scoase din discutie asa numitele porturi "well-known": 0-1023. Pentru mai multe informatii legate de serviciile existente ce utilizeaza aceste porturi se poate consulta linkul: Lista porturi

Din cele ramase (inclusiv sectiunea "registered") in mod normal, portul asociat clientului ar trebui sa fie asignat aleator. In functie de sistemul de operare aceasta asignare insa prezinta diferite particularitati. Uneori spatiul de porturi este mai restrans sau asignarea nealeatoare (ex: incrementarea numarului de port cu o valoare).
Pe langa 4-uplul specificat, pentru succesul atacului si numarul de secventa din cadrul headerului TCP trebuie sa se incadreze in valorile acceptate de destinatie conform dimensiunii ferestrei. De exemplu, in cadrul pasilor descrisi mai sus pentru traficul TCP intre A si B, daca ar fi injectat un pachet falsificat RST (ce nu contine date ci doar headerul TCP) inainte de ultimul ACK, acesta nu ar trebui sa depaseasca un numar de secventa mai mare de 12+1024 (ultimul numar confirmat + dimensiunea ferestrei). In caz contrar pachetul RST este ignorat.
Un astfel de atac poate fi simulat folosind tool-ul 78 din Netwag. Un script alternativ folosind Scapy este exemplificat aici.

Dimensiunea ferestrei joaca un rol important in sansele de succes ale unui atac de acest gen. Practic, daca dimensiunea ferestrei este 1, spatiul de numere de secventa ce trebuie incercat de atacator este de 2^32-1 = 4294967295. Efectiv insa dimensiunea ferestrei utilizate este mai mare din motive evidente de eficienta a ratei de transfer. Astfel, la o dimensiune maxima a ferestrei de 65535, spatiul de numere de secventa ce ar trebui incercat de atacator este de 4294967295/65535 = 65537.
Pe langa solutii dedicate, ce implica autentificarea traficului, printre masurile de protectie impotriva acestui tip de atac se numara filtrarea traficului la nivel de hopuri intermediare (RFC 2827), precum si alterarea dimensiunii ferestrei (posibila la nivel de sistem de operare).

© 2026 Emanuel Onica. Parts of design by W3Layouts