Open Web Application Security Project (OWASP) este o organizatie internationala non-profit dedicata securitatii aplicatiilor web. Cel mai notabil proiect al organizatiei este OWASP Top 10, un raport publicat periodic, la fiecare 3 ani, care se concentreaza pe cele mai mari 10 riscuri de securitate la care sunt expuse aplicatiile web. OWASP prezinta publicului Top 10 ca o metoda de constientizare a atacurilor web, si incurajeaza organizatiile sa foloseasca documentul in evaluarea, prevenirea si mitigarea riscurilor de securitate.
In 2014 si 2017 cel mai mare risc pentru aplicatiile web a fost reprezentat de atacuri de tip SQL injection. Atacatorii pot folosi formulare web sau campuri din pagina, cum ar fi campul de “search” sau cel de subscriere pentru a trimite comenzi SQL malformate care sa returneza informatii care in mod normal nu ar fi divulgate sau pentru a injecta secvente de cod malitios care sa fie executate atunci cand sunt parsate de bazele de date, operatiune in urma careia atacatorul ar putea obtine acces neautorizat la respectivul sistem.
In 2021 prima pozitie in OWASP Top 10 este ocupata de vulnerabilitatea numita Broken Access Control care a urcat de pe pozitia numarul 5 pe care se afla in editia anterioara. Controlul accesului impune masuri de securitate care impiedica utilizatorii sa actionez in afara permisiunilor acordate initial. Daca masurile de control nu sunt aplicate in mod corect sau pot fi ocolite sau pot fi modificate, atunci aceste lucruri pot conduce la accesarea neautorizata a datelor, modificarea si distrugerea acestora, precum si la executarea unor functii care in mod normal nu ar putea fi executate daca masurile de control ar fi in vigoare si ar limita actiunile atacatorului.
Printre cele mai comune puncte slabe ale controlului accesului in aplicatia web se numara si:
- incalcarea principiul privilegiului minim (cunoscut si ca “deny by default”) conform caruia accesul trebuie sa fie acordat in mod explicit pentru indeplinirea anumitor functii, dar este disponibil pentru oricine.
- Escaladarea privilegiilor – executarea unor actiuni prin impersonarea unui utilizator fara a fi logat ca acesta sau executarea unor actiuni ca administrator/root fiind conectat ca un utilizator standard.
- Posibiitatea de a folosi metode API precum POST, PUT si DELETE fara a fi nevoie de autorizare.
- Posibilitatea de a manipula metadate precum cookie-uri sau un JWT (JSON Web Token) cu scopul a putea a escalada privilegiile dobandite initial.
- Setari incorecte pentru Cross-Origin Resource Sharing care pot duce la posibilitatea de a executa API-uri din surse necunoscute/neautorizate.
Prevenirea atacurilor de tip Broken Access Control se poate face prin:
- Aplicarea stricta a principiului deny by default, cu exceptia resurselor care trebuie sa fie disponibile in mod public
- Monitorizarea si inregistrarea tuturor incercarilor de accesare a datelor si generarea de alerte atunci cand se depasesc anumite praguri
- Dezactivarea functie de listare a structurii de directoare de pe serverul web pentru a evita incercarile de enumerare din partea atacatorilor
- Limitarea ratei de acces atunci cand se folosesc API-uri pentru a incetini si chiar impiedica atacurile automatizate
- Sanitizarea codului sursa folosit de serverul web, atat codul sursa dezvoltat “in house”, cat si a librariilor terte integrate in aplicatie; aici cel mai mare aportin securizarea codului il au developerii si echipa de QA.
- Efectuarea periodica de exercitii de penetration testing pentru a identifica punctele slabe ale aplicatiei si pentru a le adresa inainte ca acestea sa poate fi exploatate in productie
- Implementarea unei scheme de autentificare in doi pasi – 2FA/MFA
Aplicatiile web reprezinta un vector de atac preferat de hackeri in incercarile lor de a compromite o companie. Bug-uri software, vulnerabilitati in cod, software neactualizat, cod sursa tert nesanitizat (vezi Log4j) toate acestea pot fi folosite de atacatori in tentativele lor de a castiga acces neautorizat la un sistem si de acolo sa inceapa propagarea laterala in interiorul retelei. Aplicatiile web sunt astazi extrem de importante pentru activitatea unei organizatii atat in relatia cu clientii, furnizorii si partenerii sai, dar si in colaborarea dintre departamentele interne. De aceea, securizarea lor este vitala pentru business si nu trebuie tratata cu superficialitate. OWASP Top 10 poate fi folosit ca o referinta pentru dezvoltarea unei strategii de aparare solide, coerente si in concordanta cu realitatea din teren impotriva celor mai severe atacuri asupra aplicatiilor web.
Mihai Dumitrascu, Sr Systems Engineer