· 6 minuti di lettura.
CWE vs. CVE: la differenza in un esempio
Prendi CVE-2021-44228, Log4Shell. Il suo CWE lo è CWE-917: iniezione del linguaggio espressivo. I due livelli richiedono due soluzioni diverse.
Riparare l'CVE significa aggiornare Log4j alla versione 2.17. È urgente, si fa in una sera, e ti tutela solo da quell'unico difetto.
Riparare l'CWE significa impedire che i dati in arrivo raggiungano un valutatore di espressioni. Richiede tempo e richiede una revisione del design e ti protegge anche dai successivi tre difetti della stessa famiglia, compresi quelli che non hanno ancora un numero.
Un singolo CWE copre migliaia di CVEs. Ecco perché un rapporto sulla sicurezza che parla solo di CVEs descrive un'istantanea, mai una tendenza.
I punti deboli che incontrerai di più
Una manciata di CWE rappresenta una quota enorme di CVEs pubblicati. Per ognuno, un esempio noto rende concreta l’idea:
| CWE | Debolezza | Cosa ottiene l'attaccante | Caso ben noto |
|---|---|---|---|
CWE-79 | Scripting tra siti (XSS) | Esegui il codice nel browser di un altro utente | Innumerevoli difetti di CMS e plugin |
CWE-89 | Iniezione SQL | Leggere o modificare il database | CVE-2023-34362 (SPOSTA) |
CWE-787 | Scrittura fuori limite | Memoria danneggiata, spesso fino all'esecuzione del codice | Difetti del browser e dello stack di rete |
CWE-22 | Attraversamento del percorso | Leggere file al di fuori della directory prevista | Dispositivo Edge e difetti dell'VPN |
CWE-352 | Falsificazione di richieste intersito (CSRF) | Fai in modo che un utente registrato agisca senza saperlo | Interfacce di amministrazione scarsamente protette |
CWE-862 | Autorizzazione mancante | Raggiungere una funzione senza che gli sia permesso | Difetti API molto comuni |
CWE-416 | Utilizzare dopo gratis | Dirottare l'esecuzione del programma | Difetti del motore di rendering |
CWE-78 | Iniezione di comandi del sistema operativo | Esegui comandi sul server | Difetti dell'appliance e del router |
CWE-917 | Iniezione del linguaggio espressivo | Esegui il codice tramite una stringa interpretata | CVE-2021-44228 (Log4Shell) |
L'elenco completo conta più di 900 voci, organizzate secondo una gerarchia: da pilastri molto generali fino a varianti molto specifiche. È disponibile su cwe.mitre.org; non duplichiamo qui le sue 900 righe, poiché non ti insegnerebbero nulla che il catalogo ufficiale non insegni.
L'CWE Top 25: a cosa serve veramente
Ogni anno, MITRE pubblica il CWE Primi 25 punti deboli più pericolosi, classificati combinando la frequenza degli CVEs associati con la loro gravità. Nell’edizione del 2024, CWE-79 (XSS) è tornato al top, davanti a tutti CWE-787 (scrittura fuori limite) e CWE-89 (Iniezione SQL).
Questa classifica non serve per decidere cosa sistemare questa settimana: serve per decidere su cosa formare una squadra e per cosa mettere a punto gli strumenti di analisi statica. È uno strumento di prevenzione, non uno strumento di triage di allerta: i due sono spesso confusi e questo fa perdere tempo ad entrambe le parti.
La catena CAPEC, CWE, CVE
Tre cataloghi, tre domande: an schema di attacco (CAPEC) descrive come è fatto, a debolezza (CWE) descrive il difetto sfruttato, a vulnerabilità (CVE) descrive dove vive effettivamente quel difetto.
Applicato a Log4Shell: iniezione di codice (CAPEC-242) → iniezione di linguaggio di espressione (CWE-917) → Log4j da 2.0 a 2.14.1 (CVE-2021-44228). Leggere in questa direzione permette di anticipare; leggere dall'altra parte ti permette di reagire.
Cosa significa per te, in pratica
Tre usi che si adattano a una riunione di squadra:
- Conta il tuo CVEs per CWE negli ultimi dodici mesi. Se
CWE-862si presenta otto volte, non hai otto bug: hai un problema di progettazione del controllo degli accessi. - Ottimizza i tuoi strumenti di analisi ai tre CWE più frequenti nel codice anziché alle 900 regole predefinite. Il tasso di falsi positivi crolla e il team smette di ignorare le segnalazioni.
- Inserisci l'CWE nel ticket, non solo l'CVE. Lo sviluppatore che risolve il problema capisce quindi cosa non scrivere di nuovo altrove.
Domande frequenti
Quanti CWE ci sono?
Più di 900, organizzati secondo una gerarchia (pilastri, classi, basi, varianti). Solo un centinaio compaiono regolarmente nell'CVEs pubblicato: sono quelli su cui concentrarsi.
CWE o CVE per promuovere la sicurezza delle applicazioni?
CWE per prevenzione, perché descrive una classe di difetti che è possibile eliminare in fase di progettazione. CVE per risposta, perché identifica un difetto specifico da correggere in un prodotto specifico. Entrambi, mai l'uno al posto dell'altro.
Un CVE può avere più CWE?
Sì, ed è comune. Una catena di exploit spesso combina una debolezza dell'autorizzazione con un'iniezione. I registri elencano quindi diversi CWE; la prima elencata è solitamente la causa più diretta.