Folosește OWASP ASVS ca listă de cerințe de securitate verificabile

Subiect din roadmap-ul Bune practici: securitatea aplicațiilor web (OWASP) · parte din „OWASP Top 10 și standarde”

OWASP ASVS (Application Security Verification Standard) este un cadru standardizat care transformă securitatea dintr-o intuiție într-o listă de verificare tehnică. În loc să te bazezi pe „simțurile” tale de developer, folosești criterii clare, măsurabile și independente pentru a evalua rezistența aplicației la atacuri. Ignorarea acestui standard îți lasă proiectul expus vulnerabilităților cunoscute, deoarece dezvoltatorii tind să uite detalii critice precum validarea strictă a input-urilor sau gestionarea corectă a sesiunilor, ducând la breșe majore de securitate.

Cum o aplici

  1. Selectează nivelul potrivit: ASVS are 4 niveluri de complexitate. Pentru majoritatea aplicațiilor web moderne, începe cu Nivelul 2 (Standard). Nivelul 1 este minimul absolut, iar Nivelul 3 este pentru aplicații cu date foarte sensibile.
  2. Integrează în CI/CD: Nu lăsa verificarea pentru final. Adaugă scanere automate care pot valida anumite cerințe ASVS direct în pipeline-ul tău de integrare continuă.
  3. Maparea cerințelor: Ia secțiunea relevantă din documentația ASVS (de ex., V2 pentru Arhitectură, V4 pentru Autentificare) și asigură-te că fiecare punct are un echivalent în codul tău sau în testele tale.
  4. Audit manual periodic: Uneltele automate nu pot verifica totul (logică de business complexă). Planifică review-uri periodice unde un specialist verifică manual conformitatea cu standardele rămase.

Exemplu

O cerință comună din ASVS este validarea robustă a token-urilor CSRF (Cross-Site Request Forgery).

Varianta greșită (nesigură): Depinderea de comportamentul implicit al framework-ului fără a verifica explicit configurarea pentru toate endpoint-urile, inclusiv API-urile JSON.

// Exemplu conceptual: Framework-ul nu activează CSRF protection pentru API routes
app.post('/api/update-profile', updateProfile); 
// Fără middleware de validare CSRF explicit

Varianta corectă (conform ASVS): Implementarea explicită a verificării token-ului CSRF pentru toate cererile care modifică starea serverului, indiferent de tipul conținutului.

const csrf = require('csurf');
const csrfProtection = csrf({ cookie: true });

app.post('/api/update-profile', csrfProtection, (req, res) => {
    // req.csrfToken() este validat automat de middleware
    res.json({ status: 'ok' });
});

Cum verifici

  • Scanere SAST/DAST: Folosește tool-uri precum OWASP ZAP sau SonarQube configurate cu profile care acoperă standardele ASVS. Acestea pot identifica automat lipsa validării input-urilor sau problemele de configurare.
  • Teste de penetrare: Angajează un expert extern sau folosește echipa ta de security pentru a testa manual punctele critice identificate în ASVS.
  • Metrici de conformitate: Creează un dashboard simplu care arată procentul de cerințe ASVS (din nivelul ales) care au fost validate automat sau manual.

Greșeli frecvente

  1. Confundarea OWASP Top 10 cu ASVS: Top 10 este o listă de riscuri (ce poate merge prost), în timp ce ASVS este o listă de cerințe (ce trebuie să faci). Top 10 te avertizează, ASVS te ghidează.
  2. Automatizarea excesivă: Crede că un scaner automat validază întreaga conformitate ASVS. Multe cerințe (ex: securitatea logicii de business) necesită analiză umană.
  3. Ignorarea contextului: Aplicarea rigidă a tuturor cerințelor fără a ține cont de complexitatea aplicației, ceea ce duce la costuri inutile sau la o experiență utilizator proastă.

Resurse gratuite

Alte subiecte din „OWASP Top 10 și standarde”