Revista si suplimente
MarketWatch
Inapoi Inainte

Aplicatiile web – castig sau amenintare?

13 Iulie 2005



Pentru a-si atinge obiectivele de business, tot mai multe companii au integrat mediile si tehnologiile web in strategii si procese de afaceri. Astfel, fie ca este vorba de promovare comerciala – brosuri, site-uri de prezentare - sau de aplicatii complexe ce utilizeaza baze de date, disponibilitatea si securitatea acestor servicii este esentiala, deoarece intreruperea sau compromiterea lor afecteaza direct imaginea, credibilitatea sau chiar desfasurarea activitatii organizatiei.


In contextul politicilor si arhitecturilor de securitate existente, majoritatea companiilor aloca o importanta sporita securitatii perimetrului retelei, neglijand aspecte ale securitatii aplicatiilor web accesibile atat din zona publica, cat si din interiorul organizatiei. Acesta este si motivul pentru care azi, peste 70% din atacuri vizeaza vulnerabilitati prezente in aplicatii ( www.sans.org ).


Termenul de securitate a unei aplicatii poate parea vag. Conceptual, este o combinatie intre profesionalismul programatorului, practici recomandate, controlul strict al calitatii si indeplinirea cerintelor functionale ale utilizatorului.


Principalele cauze ale vulnerabilitatilor prezente in aplicatiile web pot fi structurate astfel :
-Strategia de a livra aplicatii cat mai repede si la un pret cat mai mic;
-Adaptarea si obisnuinta consumatorului cu sistemul de patch-uri frecvente;
-Lipsa unui control intern al calitatii codului si testarea (superficiala sau deloc) aplicatiilor inainte de a le da in utilizare;
-Slaba pregatire in aspecte de securitate a echipelor de dezvoltare;
-Subcontractarea proiectelor software fara a asigura un control riguros al calitatii codului livrat.


Exemple de vulnerabilitati des intalnite


1.Validarea input-ului trimis de catre utilizator
Utilizatorul interactioneaza cu aplicatia web folosind browser-ul si, astfel, se trimit catre serverul web atat cereri, cat si parametri prin intermediul comenzilor GET sau POST. Un atacator poate construi parametri si cereri speciale in intentia de a exploata modul in care aplicatia trateaza intern acesti parametri.
Recomandarile aplicabile pentru validarea datelor trimise de utilizator sunt :
-Verificarea sintactica si semantica a tuturor parametrilor inainte de a fi utilizati in aplicatie;
-Efectuarea tuturor verificarilor server-side; trebuie evitate verificarile client-side folosind limbaje script ( JavaScript si VBScript), deoarece aceste filtre pot fi modificate de catre atacator.
2.Controlul defectuos al accesului
Controlul accesului, numit si autorizare, reprezinta procesul prin care o aplicatie acorda sau nu acces unui utilizator la anumite resurse protejate. Acest tip de vulnerabilitati se intalneste cu precadere in cadrul sectiunilor de administrare a aplicatiilor web. In multe cazuri, site-urile ofera mai multe profile/ niveluri de administrare, iar odata autentificat, un atacator poate forta o escaladare a privilegiilor.
Cea mai eficienta metoda de prevenire a exploatarii acestor vulnerabilitati consta in definirea clara a unei matrici de profile de utilizatori si acces la resurse. Aceasta matrice este o componenta fundamentala a politicii de securitate a aplicatiei si va fi utilizataa in testarea escaladarii privilegiilor.
3.Eludarea metodelor de autentificare
Autentificarea este procesul prin care este verificata identitatea unui utilizator in cadrul aplicatiei si are ca rezultat crearea unei sesiuni de lucru. Eludarea autentificarii si exploatarea sesiunilor pot induce incidente majore, cea mai importanta fiind furtul identitatii utilizatorilor. Metoda recomandata de prevenire a acestor incidente este definirea si implementarea in cadrul aplicatiei a unei politici clare de management a identitatii utilizatorilor si a sesiunilor . Aceasta politica trebuie sa cuprinda, printre altele :
-Cerinte legate de complexitatea parolelor utilizate, precum si de reinnoirea lor;
-Metode de control al utilizarii parolelor, cum ar fi blocarea contului sau notificarea administratorului in cazul introducerii repetate a unei parole gresite;
-Protectia datelor de autentificare prin utilizarea comunicatiei criptate, cum ar fi SSL;
-Managementul identificatorilor de sesiune (session ID);
-Evitarea stocarii datelor de autentificare in cache-ul browser-ului.
4.Cross Site Scripting (XSS)
Cross Site Scripting (XSS) reprezinta o metoda de a forta executia de cod arbitrar (JavaScript) in browser-ul unui utilizator, in contextul unei aplicatii web pe care acesta o foloseste. Aceasta vulnerabilitate permite transmiterea catre terti a unor informatii stocate in browser-ul oricarui utilizator al aplicatiei vulnerabile. Deoarece aceste informatii includ elemente de autentificare stocate sub forma unor cookies, XSS poate fi folosit la furtul identitatii utilizatorilor. Cea mai eficienta metoda de prevenire a exploatarii acestor vulnerabilitati este verificarea riguroasa a datelor trimise de catre utilizator. Aceste date includ : header-e HTTP, cookies-uri, parametri vizibili si ascunsi trimisi prin POST si URI-uri trimise prin GET.
5.Buffer Overflow
Buffer overflow reprezinta o metoda de corupere a stivei de executie a unei aplicatii. In urma unui atac de acest fel, atacatorul forteaza aplicatia sa execute un cod arbitrar, obtinand controlul complet asupra sa. Reducerea riscului unui asemenea atac se face printr-o continua informare in legatura cu aplicatia si serverul web folosite si prin aplicarea tuturor patch-urilor de securitate disponibile. In cazul in care codul-sursa al aplicatiei este disponibil, trebuie verificat modul in care aplicatia trateaza un volum mare de date primite de la un utilizator.
6.Injectare de cod arbitrar
Injectarea de cod arbitrar este o vulnerabilitate prezenta in toate aplicatiile care folosesc un limbaj intrepretat cum ar fi perl sau php. Prin exploatarea acestor vulnerabilitati, un atacator poate rula :
-apeluri directe catre sistemul de operare al serverului care gazduieste aplicattia
-apeluri shell in contextul de securitate al serverului web ce serveste aplicatia
-apeluri catre baze de date accesibile aplicatiei (injectie de cod SQL ).
Masurile de protectie includ :
-aplicarea tuturor patch-utilor de securitate disponibile pentru serverul web ce gazduieste aplicatia;
-restrictionarea aplicatiei in executia de comenzi shell;
-validarea tuturor datelor trimise de utilizator pentru a elimina codul arbitrar injectat.
7.Tratarea erorilor
Vulnerabilitatile generate de tratarea defectuoasa a erorilor constau in afisarea unor mesaje de eroare detaliate, care furnizeaza informatii importante unui atacator. Aceste mesaje contin adesea detaliile arhitecturii aplicatiei incluzand chiar numele fisierului, sursa care a generat eroarea (stack traces), dar si detalii ale bazei de date (database dumps). Metoda recomandata pentru evitarea acestor scurgeri de informatii o constituie politica de securitate a aplicatiei, in cadrul careia trebuie precizata tratarea erorilor: ce informatii sunt afisate vizitatorilor si ce informatii sunt logate pentru analiza ulterioara.
8.Criptarea si stocarea informatiei in executia aplicatiei
Majoritatea aplicatiilor web se confrunta cu problema stocarii datelor, cu caracter confidential fie intr-o baza de date, fie in fisiere dedicate. In cazul in care nu sunt luate masuri pentru asigurarea integritatii si confidentialitatii acestor date, aplicatia poate fi compromisa prin furt de identitate si modificarea datelor cu caracter personal. Pentru evitarea acestor incidente, este recomandata utilizarea unor metode de criptare robuste (cum ar fi one-way hashing), precum si includerea in politica de securitate a aplicatiei a stocarii parolelor, certificatelor si cheilor digitale.
9. Comportamentul aplicatiei la un atac de tip Denial of Service (DoS)
Pentru o aplicatie web, un atac de tip Denial of Service se caracterizeaza printr-o crestere exploziva a numarului de sesiuni, fapt ce duce la blocarea resurselor aplicatiei pentru orice nou utilizator. Pentru a preveni astfel de blocaje se recomanda implementarea unor mecanisme de limitare a resurselor alocate fiecarui utilzator . Aceste resurse includ : latime de banda, numar de conexiuni, CPU, memorie.
10.Erori de configurare a aplicatiei
Erorile de configurare ale unei aplicatii web includ, printre altele : existenta unor conturi si parole implicite, mecanisme de debug si fisiere back-up de configurare ale aplicatiei care sunt accesibile utilizatorului, utilizarea improprie a certificatelor digitale. Toate aceste erori pot facilita compromiterea aplicatiei si,de aceea, trebuie impuse masuri clare de prevenire cum ar fi :
-configurarea corecta a tuturor mecanismelor de autentificare (parole , certificate si chei digitale) ;
-implementarea unor sisteme de log si de alertare in cazul detectiei unor anomalii ;
-eliminarea tuturor datelor implicite: conturi/ parole, fisiere de configurare, permisiuni asupra directoarelor si fisierelor ;


O abordare profesionala a securitatii aplicatiilor web va ajuta sa identificati si sa eliminati riscurile asociate utilizarii aplicatiilor web in procesele de business.


Recomandarea noastra este ca analizarea vulnerabilitatilor si testele de penetrare sa fie efectuate periodic, inregistrandu-se astfel orice modificari / vulnerabilitaai care apar in decursul timpului. Aceste teste se pot desfasura fie intern (dar nu de catre cei care au scris aplicatia), fie apeland la un consultant extern. A doua alternativa asigura obiectivitatea procesului, insa trebuie sa urmariti cateva aspecte cand selectati un asemenea consultant:
-Metodele si procedurile utilizate sa nu se rezume la o simpla scanare automata, ci sa implice o analiza detaliata a vulnerabilitatilor si un set de recomandari de remediere;
-Metodologia si procedurile pe care le va folosi consultantul sa respecte standarde internationale pentru testarea sistemelor IT:
-National Institute of Standards and Technology – NIST
-Open Source Security Testing Methodology - OSSTMM
-Open Information Systems Security Group - ISSAF
-Information Systems Audit and Control Association - ISACA


Sumarizand, testarea aplicatiilor web este esentiala pentru asigurarea securitatii informatiei. Ea trebuie facuta periodic sau ori de cate ori apar schimbari majore in aceste aplicatii si numai de catre specialisti care au experienta, metodologie si recomandari. Nerespectand aceste conditii minime, lasati o poarta deschisa catre resurse si informatii valoroase ale organizatiei, la indemana unor atacuri destul de simple.




Parerea ta conteaza:

(0/5, 0 voturi)

Lasa un comentariu



trimite