Une CWE (Common Weakness Enumeration) est une classification standardisée des faiblesses susceptibles de conduire à des vulnérabilités dans des logiciels, firmwares ou systèmes. Contrairement aux CVE, qui désignent des vulnérabilités spécifiques et documentées dans un produit donné, les CWE décrivent des types de défauts de conception ou de programmation pouvant affecter la sécurité d’un système.
Par exemple, une CWE peut décrire une mauvaise gestion de la mémoire, une injection de commande, ou encore une validation insuffisante des entrées. Ces faiblesses peuvent ensuite être détectées dans de multiples logiciels, et associées à des CVE individuelles si elles sont exploitées dans un contexte réel.
Les CWE sont des modèles abstraits de faiblesses, alors que les CVE sont des incidents concrets. Une CVE représente une vulnérabilité identifiée dans un logiciel ou un système précis, tandis qu’une CWE décrit une faiblesse générique présente dans le code ou l’architecture, sans forcément être exploitée.
Prenons un exemple : une CVE pourrait concerner une injection SQL dans une application web, tandis que la CWE correspondante serait CWE-89: Improper Neutralization of Special Elements used in an SQL Command. En résumé, les CWE servent à catégoriser et analyser les failles, alors que les CVE permettent de les suivre et les corriger individuellement.
CAPEC et CWE sont deux bases complémentaires maintenues par MITRE, mais elles n’ont pas le même objectif. CWE décrit des faiblesses techniques dans le code ou la conception (ex. : absence de validation d’entrée), tandis que CAPEC décrit des méthodes d’attaque exploitant ces faiblesses (ex. : injection SQL).
En d'autres termes, CWE se concentre sur la cause, tandis que CAPEC se concentre sur l'action de l'attaquant. Les deux peuvent être reliés : un modèle CAPEC précise souvent quelles CWE il cible, ce qui permet de faire le lien entre la vulnérabilité théorique, l’exploitation pratique, et les CVE associées.
La classification CWE permet de standardiser la compréhension des faiblesses de sécurité dans les systèmes informatiques. Elle aide les développeurs, les testeurs et les analystes à identifier les erreurs de conception ou de codage courantes, afin de les éviter ou de les corriger plus efficacement. Grâce à cette taxonomie, les outils de sécurité peuvent produire des rapports cohérents et exploitables.
Elle est également très utile pour la formation des équipes techniques, l’évaluation des outils de détection, la priorisation des risques, et la conformité à certaines normes comme ISO/IEC 27001. En intégrant les CWE dans les processus de développement, on peut améliorer significativement la sécurité dès la phase de conception.