La classificazione CWE serve a standardizzare la comprensione delle vulnerabilità di sicurezza nei sistemi informatici. Aiuta sviluppatori, tester e analisti a identificare gli errori di progettazione o di codifica comuni, al fine di evitarli o correggerli più efficacemente. Grazie a questa tassonomia, gli strumenti di sicurezza possono produrre report coerenti e utilizzabili.
È anche molto utile per la formazione dei team tecnici, la valutazione degli strumenti di rilevamento, la priorizzazione dei rischi e la conformità a determinati standard come ISO/IEC 27001. Integrando i CWE nei processi di sviluppo, è possibile migliorare significativamente la sicurezza fin dalla fase di progettazione.
Una CWE (Common Weakness Enumeration) è una classificazione standardizzata delle debolezze suscettibili di condurre a vulnerabilità in software, firmware o sistemi. A differenza delle CVE, che designano vulnerabilità specifiche e documentate in un prodotto dato, le CWE descrivono tipi di difetti di progettazione o di programmazione che possono influenzare la sicurezza di un sistema.
Per esempio, una CWE può descrivere una cattiva gestione della memoria, un'iniezione di comandi, o ancora una validazione insufficiente degli ingressi. Queste debolezze possono poi essere rilevate in molteplici software, e associate a delle CVE individuali se vengono sfruttate in un contesto reale.
Le CWE sono modelli astratti di debolezze, mentre le CVE sono incidenti concreti. Una CVE rappresenta una vulnerabilità identificata in un software o sistema specifico, mentre una CWE descrive una debolezza generica presente nel codice o nell'architettura, senza necessariamente essere sfruttata.
Facciamo un esempio: una CVE potrebbe riguardare un'iniezione SQL in un'applicazione web, mentre la CWE corrispondente sarebbe CWE-89: Improper Neutralization of Special Elements used in an SQL Command. In sintesi, le CWE servono a categorizzare e analizzare le falle, mentre le CVE permettono di seguirle e correggerle individualmente.
CAPEC e CWE sono due database complementari gestiti da MITRE, ma non hanno lo stesso obiettivo. CWE descrive le debolezze tecniche nel codice o nella progettazione (es: mancanza di convalida dell'input), mentre CAPEC descrive i metodi di attacco che sfruttano queste debolezze (es: SQL injection).
In altre parole, CWE si concentra sulla causa, mentre CAPEC si concentra sull'azione dell'attaccante. I due possono essere collegati: un modello CAPEC specifica spesso quali CWE prende di mira, il che consente di collegare la vulnerabilità teorica, lo sfruttamento pratico e i CVE associati.