A04:2021 – Proiectare nesecurizată

Insecure Design

Descriere
Ce reprezintă această vulnerabilitate?

Design-ul nesecurizat se referă la defecte de securitate la nivel de proiect de arhitectură, care nu pot fi remediate doar prin implementare corectă. Această categorie se concentrează pe lipsa sau insuficiența controalelor de securitate necesare, precum și pe deciziile de design care introduc vulnerabilități inerente în aplicație.

Această vulnerabilitate este o categorie nouă în topul OWASP 2021, ocupând poziția 4, reflectând importanța crescută acordată securității încă din faza de design a aplicațiilor.

Design Nesigur - Diagram showing insecure design in a booking portal

Exemplu în imagine: un atacator poate rezerva 600 de bilete de film pentru o anumită perioadă, împiedicând cumpărătorii reali să le rezerve. Aceasta putea fi evitată printr-un design care să limiteze rezervările la maxim 15 bilete.

Exemple de Vulnerabilități

1. Lipsa validării la nivel de business

Un sistem bancar care permite transferuri negative sau un sistem de e-commerce care nu verifică stocul înainte de a accepta comenzi. Aceste probleme apar din cauza lipsei de validare a regulilor de business în design-ul aplicației.

2. Arhitectură cu privilegii excesive

Aplicații care rulează cu drepturi administrative sau care oferă acces la funcționalități sensibile fără o separare clară a privilegiilor. De exemplu, o aplicație care permite tuturor utilizatorilor să acceseze funcții administrative prin simpla modificare a URL-urilor.

3. Lipsa limitărilor de resurse

Aplicații care nu limitează resursele consumate de utilizatori, permițând atacuri de tip denial of service. De exemplu, un sistem care permite încărcarea de fișiere de dimensiuni nelimitate sau care nu restricționează numărul de cereri pe care un utilizator le poate face.

4. Lipsa compartimentării

Sisteme care nu separă componentele cu diferite niveluri de sensibilitate sau risc. De exemplu, o aplicație care stochează date sensibile și nesensibile în aceeași bază de date, fără separare adecvată, permițând compromiterea tuturor datelor în cazul unei breșe.