Le 15 Principali Minacce alla Sicurezza Web: Catalogo di Rischi Allineato a OWASP
Le minacce alla sicurezza delle applicazioni web evolvono, ma le cause principali persistono. Ecco le 15 minacce più critiche mappate sulle categorie OWASP Top 10 (2021):
Injection e Fallimenti di Input
- SQL Injection (A03:2021) — Input non sanificato in query SQL → furto dati, bypass auth, RCE. Fix: Query parametrizzate / ORM.
- Cross-Site Scripting / XSS (A03:2021) — XSS Riflesso/Memorizzato/DOM → dirottamento sessione, defacement, furto credenziali. Fix: Output encoding, CSP, cookie HttpOnly.
- Command Injection — Input utente passato a shell di sistema (`exec`, `system`, backtick). Fix: Evita shell; allowlist; `subprocess` con array argomenti.
- LDAP / NoSQL / ORM Injection — Stesso pattern, parser diversi. Fix: API parametrizzate.
Controllo Accessi Interrotto (A01:2021)
- IDOR / Riferimenti Oggetti Diretti Non Sicuri — `/api/user/123/orders` → cambia in 124. Fix: Controlli autorizzazione per richiesta.
- Controllo Accessi a Livello Funzione Mancante — Endpoint admin richiamabili da utenti. Fix: Middleware RBAC/ABAC.
- Path Traversal — `../../etc/passwd` in parametri file. Fix: Normalizzazione percorso, chroot, allowlist.
Fallimenti Autenticazione e Sessione (A07:2021)
- Credenziali Deboli / Credential Stuffing — Nessuna MFA, password violate riutilizzate. Fix: MFA (TOTP/WebAuthn), controllo password violate (HaveIBeenPwned), rate limiting.
- Session Fixation / Hijacking — ID sessione prevedibili, niente flag Secure/HttpOnly/SameSite. Fix: Ruota ID al login, flag cookie sicuri.
- Reset Password Interrotto — Token in URL, nessuna scadenza, enumerazione utenti. Fix: JWT breve vita, risposte generiche.
Architettura e Configurazione
- Configurazione di Sicurezza Errate (A05:2021) — Credenziali default, porte aperte, errori verbose, intestazioni mancanti (HSTS, CSP, X-Frame-Options), debug attivo in produzione.
- Componenti Vulnerabili e Obsoleti (A06:2021) — Framework non aggiornati (Log4Shell, Spring4Shell), dipendenze. Fix: SBOM, Dependabot, Snyk, aggiornamenti pianificati.
- Deserializzazione Non Sicura (A08:2021) — Input oggetto → RCE (Java, .NET, PHP, Python pickle). Fix: Evita serializzazione; token firmati/criptati; allowlist.
Minacce Moderne
- SSRF (A10:2021) — Server recupera URL controllato dall'attacco → metadati cloud (169.254.169.254), servizi interni. Fix: Allowlist URL, nega IP privati, nessun redirect.
- Attacchi alla Supply Chain — Dipendenza compromessa (event-stream, UA-Parser-JS), CI/CD avvelenato (SolarWinds, Codecov). Fix: Lockfiles, sigstore, build riproducibili, immagini base minime.
Trasversali
- DoS/DDoS — Volumetrico, livello applicazione (slowloris, HTTP/2 rapid reset). Fix: WAF, rate limit, CDN, Anycast.
- MITM / Fallimenti TLS — Certificati scaduti, cipher deboli, niente HSTS, bypass cert pinning. Fix: TLS 1.2+, automazione certificati (ACME), monitoraggio CT.
- Phishing / Ingegneria Sociale — Raccolta credenziali, stanchezza MFA, phishing consenso OAuth. Fix: MFA resistente al phishing (FIDO2), DMARC, formazione.
- Falle di Logica di Business — Manipolazione prezzi, bypass flusso di lavoro, condizioni di gara. Fix: Threat modeling, test di integrazione, log di audit immutabili.
Checklist Difesa in Profondità
- WAF (Cloudflare, AWS WAF, ModSecurity) — virtual patching
- SAST/DAST/IAST in CI/CD
- Pen test annualmente + dopo modifiche importanti
- Bug bounty (HackerOne, Bugcrowd) o VDP
- Piano di risposta agli incidenti + esercitazioni da tavolo
La sicurezza non è una funzionalità—è un processo. L'elenco sopra è il tuo punto di partenza per il modello di minacce.