Ping of Death

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Ping of Death (abreviat POD) este un tip de Denial of Service atac care constă în trimiterea unui pachet IP malformat la un computer țintă pentru cauza tampon debordează cu blocarea consecutivă a serviciului sau, în cele mai grave cazuri, sistemul de accident .

Atacul a exploatat o vulnerabilitate în gestionarea protocolului IP pe computerele Windows , Unix , Mac și alte dispozitive conectabile la rețea, cum ar fi routerele și imprimantele .

Această vulnerabilitate a fost abordată pe majoritatea sistemelor între 1997 și 1998.

Informatii detaliate

Atacul a constat în utilizarea de mesaje IP fragmentate cu rea intenție, transmise de obicei sub formă de pachete de ping (interogare între computere pentru a verifica accesibilitatea reciprocă), de unde și numele, chiar dacă mecanismul de atac nu depinde de protocolul specific utilizat.

În general, un computer nu poate gestiona un pachet mai mare decât cel furnizat de standardul RFC 791 care prevede alocarea a 16 biți în antet pentru a indica lungimea maximă a pachetului, deci egală cu = 65535 octeți. Conținutul de informații mai mare este împărțit și transmis pe mai multe pachete IP.

La rândul său, pachetul IP este transmis prin stratul de legătură de date , care oferă o dimensiune maximă a cadrelor transmise la acest strat. În cazul legăturii de date în tehnologia Ethernet, această dimensiune maximă este de 1518 octeți. De asemenea, în acest caz, conținutul informațional de dimensiuni superioare este împărțit în fragmente compatibile cu dimensiunea maximă transmisibilă, pentru a fi apoi reasamblate de mașina primitoare pentru a reconstrui pachetul original cu un proces recursiv.

Pentru a permite o reconstrucție adecvată, fiecare fragment al unui mesaj IP trebuie să conțină informații despre porțiunea originală de pachet transportată. Aceste informații sunt conținute în câmpul de compensare a fragmentelor, prezent în antetul IP. Dimensiunea acestui câmp este de 13 biți, aceasta permite să se stabilească faptul că, în cazul transmiterii unui pachet de dimensiune maximă, ultimul pachet fragmentat poate avea un offset maxim de = 8191 (Decalajul din antetul IP este exprimat în unități de 8 octeți, deci cel maxim este egal cu 8191 * 8 = 65528 octeți), acest decalaj poate corespunde unui fragment util cu o lungime maximă egală cu 65535-65528 = 7 octeți.

Pachetul rău intenționat este construit prin generarea unui fragment IP cu o valoare de offset maximă, dar cu o cantitate de date asociată egală sau mai mare de opt octeți: acest lucru, în timpul fazei de reconstrucție a pachetului IP, conduce la obținerea unui cadru cu o dimensiune mai mare decât cea permisă. din stratul de rețea care este mai mare de 65535 octeți. Acest lucru poate determina supraîncărcarea bufferului utilizat de nodul de recepție pentru a conține pachetul (buffer overflow), cauzând blocarea serviciului. Prin urmare, vulnerabilitatea este legată de mecanismul de reasamblare a fragmentelor IP rău intenționate, care, teoretic, ar putea conține orice tip de protocol ( TCP , UDP , IGMP etc.) și nu doar mesaje ping .

Soluția la problemă este să adăugați controale în timpul procesului de reasamblare. Verificarea fiecărui fragment individual de intrare asigură faptul că suma câmpurilor de decalare și lungime totală nu depășește 65535 octeți. Dacă suma este mai mare, pachetul este recunoscut ca ilegal și aruncat.

Pe computerele în care această vulnerabilitate nu a fost remediată, această verificare se face de un firewall .

O soluție alternativă la problemă este extinderea bufferului pentru reasamblarea pachetelor, astfel încât primirea unui pachet rău intenționat sau malformat mai mare de 65535 octeți să nu provoace revărsarea bufferului și astfel să evite blocarea serviciului. Această soluție nu încalcă standardul, deoarece pachetele mai mari decât maximul permis, dacă sunt primite, sunt încă aruncate.

Elemente conexe

linkuri externe