Atacuri XSS (Cross-site Scripting)

Articol postat de:

images_1326960126

Atacurile Cross-site Scripting sunt atacuri de tip injectie prin care script-urile rau-intentionate sunt injectate in codul sursa al unui site web “trusted”, care in mod obisnuit nu prezinta niciun pericol din punctul de vedere al securitatii. Slabiciunile care faciliteaza aceste atacuri sunt destul de raspandite si apar oriunde exista o aplicatie web care utilizeaza date de intrare de la un utilizator pentru generarea datelor de iesire fara ca acele informatii sa fie verificate sau codate.

Un atacator poate sa foloseasca un XSS pentru a trimite un script rau-intentionat unui utilizator, fara ca acesta sa-si dea seama. Browserul utilizatorului final nu va sti daca informatia respectiva este sau nu de incredere si va executa script-ul, crezand ca sursa acestuia este una sigura. Din acest motiv, soft-ul malware poate accesa orice cookie, token de sesiune sau alta informatie retinuta de catre browser si utilizata impreuna cu site-ul respectiv. Un astfel de script poate chiar sa rescrie continutul paginii HTML.

Atacurile de tip Cross-Site Scripting pot sa apara atunci cand:
1.Sursa datelor ce intra intr-o aplicatie web nu este verificata.
2.Datele sunt introduse intr-o secventa dinamica ce este trimisa utilizatorului web fara a fi examinata pentru detectare de malware.

Continutul atacului apare de obicei sub forma unui segment JavaScript, dar poate include si HTML, Flash sau un alt tip de cod sursa pe care browserul il poate executa. Diversitatea atacurilor de tip XSS este aproape nelimitata, insa de cele mai multe ori efectele sunt: transmiterea de date confidentiale catre atacator, redirectionarea victimei catre site-uri web controlate de acesta sau efectuarea altor operatii rau-intentionate pe terminalul utilizatorului.

Atacurile de tip XSS pot fi clasificate in doua categorii: “stocate” sau “reflectate”, in functie de modul de injectare al continutului malware. Atacurile care se incadreaza in prima categorie presupun stocarea permanenta a codului injectat pe serverul tinta (de exemplu intr-o baza de date, pe un forum sau intr-un camp de comentarii). Victima va prelua script-ul atacatorului de pe server atunci cand va accesa informatiile stocate.

In cazul atacurilor “reflectate”, codul injectat este reflectat de pe server (ca in cazul rezultatului unei cautari, a unui mesaj de eroare, sau a altui tip de raspuns care include o parte sau intregul continut al cererii initiale). Atacurile reflectate ajung la victima pe o alta cale, de exemplu printr-un e-mail sau printr-un alt sever web. Atunci cand victima este ademenita sa urmeze un link suspect sau o alta forma de transmitere/accesare de date special creata in acest scop, codul injectat va ajunge la serverul web vulnerabil, de unde atacul va fi reflectat inapoi catre browserul utilizatorului. Browserul va executa atunci script-ul considerand ca informatia provine de la un server de incredere (“trusted”).

Vulnerabilitatile la atacuri de tip XSS pot fi dificil de identificat si de eliminat dintr-o aplicatie web. Cel mai sigur mod de a depista slabiciunile presupune efectuarea unei analize de securitate asupra codului sursa al aplicatiei. Prin aceasta se va asigura imposibilitatea propagarii datelor de intrare a unei cereri de tip HTML-request la iesirea HTML. Exista unele tool-uri (de exeplu Nessus, Nikto) care ajuta la scanarea site-urilor web pentru aceste slabiciuni, insa permit doar o analiza generala, de suprafata a aplicatiilor.

O metoda buna de protectie impotriva atacurilor XSS presupune dezactivarea functiei “HTTP Trace” de pe toate serverele web. Un atacator poate sa sustraga informatii din cookie-uri prin JavaScript chiar si atunci cand functia “document.cookie” este dezactivata sau indisponibila pe terminalul clientului. Atunci cand victima acceseaza un link malware creat de atacator, este declansat un apel HTTP Trace prin care sunt colectate informatiile din cookie-uri si trimise catre un alt server, de unde atacatorul le poate prelua si utiliza in interes propriu. Aceasta situatie poate fi usor evitata prin dezactivarea HTTP Trace de pe toate serverele web.

Sursa: owasp.org



Add Comment Register



Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *


*

Poți folosi aceste etichete HTML și atribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>