Arhivă etichetă integer overflow

dehackeradvisor™

Detectarea Integer Overflow in Site-urile Web

Ce inseamna detectarea Integer Overflow?

 

Integer Overflow este un tip de atac care dateaza inca de pe vremea primelor limbaje de programare, bazat pe limitele de intreg și pe design-ul numerelor. Limbajele de programare iau decizii bazate pe modul in care pot stoca diferite tipuri de informatii. Datele integer, spre exemplu, sunt adesea depozitate într-un anumit numar predefinit de biti și octeti. Mergand mai jos, catre codul binar, imaginați-va că aveți doar 4 biți pentru a stoca codul, din 0000 (0) 1111 (15). In cazul în care un program a folosit 15 pentru anumite date, iar apoi a adăugat un 1 pentru a obține 16, binar ar arata ca 10000. Cu toate acestea, limbajul de programare verifica numai la ultimele 4 cifre binare, astfel incât programul vede 0000 – zero!

 

In realitate, gama de cifre necesare pentru a produce un astfel de efect, este mult, mult mai mare. De multe ori, intervalul nu este format numai din numere pozitive, dar si numerele negative de asemenea. Astfel, cand o serie de numere se „rastoarna” aaa cum se vede mai sus, s-ar merge la cel mai mic număr, care poate fi negativ sau zero.

 

Imaginați-va un scenariu de atac în cazul în care un site cere unui utilizator sa faca o plata pentru o anumita suma de bani. Atacatorul stie ca site-ul va scadea valoarea platii din balanta pentru a obtine valoarea finala. Un atacator ar putea crea un numar special, care va profita de aceasta rasturnare, pentru a crea o balanta negativa, fara sa plateasca nimic!

 

In aplicatie utilizatorul introduce valori integer pentru a initia anumite actiuni, cum ar fi citirea si scrierea memoriei pe un sistem. Totodata, daca site-ul dumneavoastra trimite valori integer definite de catre utilizator catre un sistem de operare, acel program ar putea fi vulnerabil catre aceste tipuri de atacuri integer, care pot duce la comprimiterea sistemului, si ar trebui evitate cu atentie.

 

Cum afecteaza asta securitatea mea ?

 

Integer Overflows sunt mult mai greu de exploatat decat alte vulnerabilitati scanate pe site-ul dvs.

Totusi, sunt alte vulnerabilitati mult mai serioase, care pot fi folosite pentru compromite intregul sistemul sau chiar modificarea datelor intr-un mod nedorit.

 

Prevenirea Integer Overflow

 

Multe limbaje web sunt securizate impotriva integer overflow. Ele se comportă asa cum te-ai aștepta – returnarea valorii maxime a unui intreg în cazul în care suma este prea mare, in locul unui roll over. Cel mai bun mod de a preveni aceste tipuri de atacuri este de a menține biblioteca software actualizata.

 

Daca acest lucru nu este posibil, și o scanare a site-ului returneaza vulnerabilitati integer overflow, atunci ar trebui să analizeze cu atenție atat intrarile primite de la utilizator cat și operațiunile relizate pe el. Definirea unei valori maxime și minime care ar avea sens pentru site-ul dumneavoastră este prim pas. In cazul platilor, nici o plată de mai mare de o mie de lei nu este acceptată, și nimic nu sub 0. Prevenirea ca utilizatorii sa nu introduca alte valori integer in sistem ar impiedica orice atac de tip integer overflow asupra datelor utilizatorului.

 

Resurse Suplimentare