CVE & CWE : comprendre et anticiper les vulnérabilités
CVE & CWE : comprendre et anticiper les vulnérabilités
En 2024, plus de 40 000 nouvelles CVE ont été enregistrées, dont 768 failles activement exploitées, soit une hausse de 20 % par rapport à l’année précédente.
Les CERT ont multiplié les alertes sur des vulnérabilités critiques, exploitables à distance. Face à ces menaces grandissantes, comprendre la complémentarité entre les CVE (Common Vulnerabilities and Exposures) et les CWE (Common Weakness Enumeration) est essentiel.
Dans cet article, nous explorons leur rôle, leur interaction et les stratégies pour anticiper, détecter et bloquer ces risques.
1. Comprendre les CVE
Les Common Vulnerabilities and Exposures (CVE) forment un système standardisé permettant d’identifier et de référencer les failles de sécurité connues. Créé en 1999 par le MITRE Corporation, ce registre international permet une gestion centralisée des vulnérabilités, assurant ainsi une communication efficace entre les chercheurs en cybersécurité, les éditeurs de logiciels et les équipes IT des entreprises.
1.1. Qu’est-ce qu’une CVE ?
Une CVE est une faille de sécurité référencée et documentée sous un identifiant unique. Ce format suit la nomenclature CVE-AAAA-NNNNN, où :
• AAAA représente l’année de découverte,
• NNNNN est un numéro séquentiel attribué à la vulnérabilité.
Chaque CVE contient des informations essentielles, notamment :
• Une description de la faille et de ses impacts possibles,
• Les versions de logiciels affectées,
• Les correctifs et recommandations pour atténuer le risque.
Cependant, une CVE ne fournit pas d’informations techniques détaillées sur l’exploitation de la faille. Elle sert avant tout à référencer et à signaler une vulnérabilité.
1.2. Comment une CVE est-elle attribuée ?
Le processus de publication d’une CVE repose sur plusieurs étapes clés :
• Découverte de la vulnérabilité. Une faille peut être détectée par un chercheur en cybersécurité, un éditeur de logiciel, une entreprise ou un hacker éthique.
• Validation par un CVE Numbering Authority (CNA). Les CNA sont des entités habilitées à attribuer des numéros CVE. Il peut s’agir d’organisations comme Microsoft, Google, Red Hat ou des agences gouvernementales. Elles s’assurent que la vulnérabilité est légitime et qu’elle n’a pas déjà été répertoriée.
• Attribution d’un identifiant unique. Si la vulnérabilité est validée, elle reçoit un identifiant CVE et est ajoutée à la base de données officielle.
• Analyse et enrichissement par le National Vulnerability Database (NVD). Le NVD, géré par le NIST (National Institute of Standards and Technology), enrichit la CVE avec un score CVSS (Common Vulnerability Scoring System), permettant d’évaluer sa criticité sur une échelle de 0 à 10. Il ajoute aussi des détails techniques, des références et des liens vers des correctifs.
1.3. Pourquoi les CVE sont-elles essentielles en cybersécurité ?
1. Connexion initiale – L’attaquant ouvre une connexion avec le serveur cible et envoie un en-tête HTTP POST complet, incluant le champ Content-Length qui indique la taille du corps du message à venir.
2. Envoi des données à un débit extrêmement faible – Au lieu d’envoyer le corps du message immédiatement, l’attaquant le transmet très lentement, par exemple un octet toutes les deux minutes.
3. Maintien de la connexion – Le serveur, suivant les spécifications du protocole, garde la connexion ouverte en attendant la réception complète des données. Pendant ce temps, les ressources associées à cette connexion restent mobilisées.
4. Multiplication des connexions – L’attaquant répète ce processus sur de multiples connexions simultanées, épuisant progressivement les ressources du serveur.
2. Comprendre les CWE
Si les CVE (Common Vulnerabilities and Exposures) permettent d’identifier des vulnérabilités spécifiques dans les systèmes informatiques, les CWE (Common Weakness Enumeration) s’intéressent aux causes profondes de ces failles. Elles répertorient les faiblesses structurelles du code, des configurations ou des architectures qui peuvent être exploitées par des attaquants.
Autrement dit, une CVE décrit un problème précis déjà détecté et documenté, tandis qu’une CWE met en évidence les mauvaises pratiques ou erreurs de conception qui conduisent à l’apparition de ces vulnérabilités.
Exemple : La CVE-2021-44228, mieux connue sous le nom de Log4Shell, est une vulnérabilité critique affectant Log4j. Elle est liée à CWE-502 (Désérialisation non sécurisée), une faiblesse qui permet l’exécution de code malveillant à distance.
2.2 Catégories principales de CWE
Faiblesses logicielles
Ces CWE concernent les erreurs de développement et de programmation qui exposent une application à des attaques.
CWE-89 : Injection SQL → Permet à un attaquant d’exécuter des requêtes malveillantes dans une base de données.
CWE-79 : Cross-Site Scripting (XSS) → Injecte du code malveillant dans les navigateurs des utilisateurs.
CWE-20 : Validation insuffisante des entrées → L’application accepte des données non vérifiées qui peuvent déclencher des comportements inattendus.
Exemple : En 2017, Equifax a subi une fuite massive de données à cause d’une vulnérabilité liée à CWE-502 (désérialisation non sécurisée), permettant aux attaquants d’exécuter du code malveillant à distance.
Faiblesses systèmes
Ces CWE concernent les erreurs liées à l’architecture, aux configurations ou aux protocoles des systèmes.
CWE-284 : Mauvaise gestion des autorisations → Des utilisateurs peuvent accéder à des ressources qu’ils ne devraient pas voir.
CWE-400 : Attaques de type “denial of service” (DoS) → Failles qui permettent à un attaquant de rendre un service inutilisable.
CWE-311 : Transmission de données sensibles en clair → Informations envoyées sans chiffrement, exposant les données aux interceptions.
Exemple :En 2019, une faille dans WhatsApp a permis l’installation d’un spyware via un simple appel téléphonique, exploitant une faille classée sous CWE-119 (accès mémoire non autorisé).
Faiblesses de configuration
Ces CWE concernent les erreurs de configuration des applications, réseaux et systèmes.
CWE-16 : Configuration de sécurité insuffisante → Paramètres mal sécurisés rendant un système vulnérable.
CWE-200 : Exposition involontaire d’informations sensibles → Fichiers de configuration accessibles publiquement.
CWE-319 : Manque de chiffrement des données sensibles → Mot de passe stocké en clair dans un fichier de configuration.
Exemple : En 2021, des bases de données mal configurées (MongoDB, Elasticsearch) ont exposé des millions d’enregistrements clients accessibles publiquement à cause de CWE-200.
2.3 Pourquoi les CWE sont essentielles pour la sécurité ?
Les CWE jouent un rôle central dans la sécurisation des applications et des infrastructures. En identifiant les faiblesses en amont, elles permettent :
✔ Une approche proactive de la cybersécurité : plutôt que de simplement corriger des vulnérabilités connues (CVE), les CWE aident à éliminer les mauvaises pratiques dès la conception.
✔ Une meilleure gestion des risques : en classant les faiblesses selon leur criticité, elles permettent de hiérarchiser les efforts de correction et de réduire la surface d’attaque.
✔ Une conformité aux réglementations : de nombreuses normes de cybersécurité (ISO 27001, NIS2, DORA) recommandent d’adopter une approche basée sur la gestion des faiblesses (CWE).
✔ Une amélioration continue des pratiques de développement : les CWE sont largement utilisées dans les outils d’analyse de code statique et les formations DevSecOps pour aider les développeurs à éviter des erreurs critiques.
2.4 CVE & CWE : une complémentarité essentielle
Lorsqu’une faille de sécurité est identifiée (CVE), elle trouve presque toujours son origine dans une faiblesse connue et classifiée (CWE). Cette relation est essentielle pour prévenir les vulnérabilités, car corriger une CWE permet d’éviter l’apparition de plusieurs CVE associées.
📌 En résumé :
• Les CVE alertent sur les vulnérabilités connues et par moment exploitables,
• Les CWE permettent d’anticiper et d’éliminer les faiblesses structurelles avant q’une CVE ne soit découverte.
Exemple : Log4Shell (CVE-2021-44228)
Contexte : Log4Shell est une faille critique dans la bibliothèque Log4j, permettant l’exécution de code à distance via des logs manipulés
CWE concernée : CWE-502 (Désérialisation non sécurisée)
Impact : Exploitation massive, compromission de millions de serveurs
Pourquoi cette faille a existé ? La bibliothèque ne validait pas correctement les entrées, permettant à des attaquants d’injecter du code malveillant
Avantages des CVE
• Découverte de vulnérabilités non identifiées : tester des faiblesses liées aux CWE permet de découvrir des défauts de conception ou de codage qui n’ont pas encore été identifiés ou publiés sous forme de CVE. Ces faiblesses peuvent mener à des vulnérabilités de sécurité si elles ne sont pas corrigées.
• Tests plus larges et proactifs : les tests basés sur des CWE permettent de tester des problèmes de sécurité au niveau de l’architecture ou du code, avant qu’une vulnérabilité spécifique (CVE) ne soit découverte et exploitée. C’est une approche plus globale et préventive.
• Conformité aux bonnes pratiques de sécurité : tester des CWE aide notamment à améliorer la sécurité globale de votre code, en détectant des erreurs courantes comme les mauvaises validations d’entrée, la gestion incorrecte des sessions ou des problèmes de contrôle d’accès.
Avantages des CWE
• Tests ciblés et documentés : ces vulnérabilités sont liées à des logiciels, des versions spécifiques, ou des configurations qui sont déjà connues pour avoir des faiblesses identifiées et documentées.
• Risques immédiats et réels : les CVE sont des failles qui ont été découvertes et dont les attaquants peuvent potentiellement déjà tirer parti.
• Disponibilité des ressources : les CVE sont, par moment, accompagnées d’exploits, ce qui permet de tester la vulnérabilité de manière précise et d’évaluer son impact directement.
3. Comment détecter et se protéger des CVE et CWE ?
La gestion des vulnérabilités (CVE) et des faiblesses structurelles (CWE) est essentielle pour assurer la sécurité des systèmes informatiques. Une approche efficace repose sur une détection proactive des menaces, une prévention rigoureuse et l’utilisation de solutions de protection avancées.
3.1 Méthodes de détection des CVE
Les CVE étant des vulnérabilités documentées et référencées, il existe plusieurs méthodes pour les identifier avant qu’elles ne soient exploitées :
Avantages des CVE
Des solutions de scan automatisé permettent de détecter les vulnérabilités connues affectant les systèmes et applications. Ces outils analysent les infrastructures et les applications pour détecter les failles connues et recommander des mesures correctives adaptées.
Consultation des bases de données publiques
Une veille continue et une mise à jour régulière des bases de données permettent d’anticiper les attaques avant qu’elles ne touchent les infrastructures. Des bases de données centralisées recensent en temps réel les nouvelles CVE :
• NVD (National Vulnerability Database) : maintenue par le NIST, elle fournit des informations détaillées sur chaque vulnérabilité.
• MITRE CVE Database : source officielle de référence des CVE, avec des descriptions techniques précises.
• KEV (Known Exploited Vulnerabilities) : liste des vulnérabilités activement exploitées, utilisée par l’agence gouvernementale CISA.
Patch management et mises à jour régulières
De nombreuses attaques majeures, comme celle de WannaCry, ont exploité des vulnérabilités pour lesquelles un correctif existait déjà. La mise à jour rapide des systèmes aurait pu éviter des pertes colossales.
✔ Corriger rapidement les failles connues grâce aux mises à jour logicielles est une pratique clé en cybersécurité.
✔ Automatiser le patch management permet d’assurer une correction rapide et de limiter les risques d’exploitation d’une CVE critique.
3.2 Méthodes de prévention des CWE
Contrairement aux CVE, qui sont des vulnérabilités précises déjà exploitées, les CWE concernent des faiblesses structurelles. Leur prévention repose sur une approche proactive en matière de développement et de sécurité applicative :
✔ Appliquer les principes du Secure Coding : limiter l’injection SQL (CWE-89), éviter les fuites de mémoire (CWE-119),
✔ Respecter les recommandations de l’OWASP Top 10 pour prévenir les vulnérabilités les plus courantes,
✔ Mettre en place une politique de gestion des accès stricte pour éviter les compromissions d’identifiants,
✔ Intégrer la sécurité dès la phase de conception (Shift Left Security),
✔ Effectuer des revues de code régulières et des tests de sécurité pour identifier les failles potentielles avant le déploiement,
✔ Favoriser la DevSecOps, qui intègre des tests de sécurité dans les pipelines CI/CD.
Test d’intrusion (Pentest)
Un pentest est souvent utilisé pour identifier des vulnérabilités qui ne sont pas documentées par une CVE. L’objectif est d’explorer l’application en utilisant différentes techniques d’attaque et en suivant des méthodologies standardisées pour repérer des failles :
• Injection SQL : tester des champs de saisie pour vérifier si l’application est vulnérable aux injections SQL.
• Cross-Site Scripting (XSS) : tester si l’application expose des failles permettant d’injecter du code JavaScript malveillant.
• Contrôle d’accès : vérifier si les utilisateurs peuvent accéder à des données ou des actions réservées (problèmes d’authentification ou d’autorisation).
• CSRF (Cross-Site Request Forgery) : tester si une application permet à un attaquant de manipuler l’état de l’application via des requêtes HTTP.
Scan de vulnérabilités
Même si une vulnérabilité n’est pas liée à une CVE, de nombreux outils de sécurité, comme les DAST (Dynamic Application Security Testing), sont capables de détecter des failles de sécurité courantes et non référencées dans des CVE. Les méthodologies comme l’OWASP Top 10 permettent de tester les vulnérabilités les plus courantes dans les applications web, même si elles ne sont pas directement associées à des CVE.
• Faiblesses dans la configuration : par exemple, des erreurs dans les en-têtes HTTP, des permissions excessives sur des fichiers ou des répertoires,
• Erreurs de programmation : comme des problèmes de validation des entrées ou de gestion des sessions,
• Mauvaises pratiques de sécurité : comme l’utilisation de versions de bibliothèques obsolètes, même si elles ne sont pas nécessairement associées à une CVE,
• Mauvaise gestion des entrées utilisateurs : ce qui peut mener à des attaques comme les injections SQL ou XSS,
• Gestion de la sécurité des sessions et de l’authentification : mauvaises pratiques de gestion des mots de passe, par exemple.
Revue de code et analyse statique
Si vous avez accès au code source de l’application, vous pouvez effectuer une analyse statique du code pour détecter des vulnérabilités potentielles. Ces outils SAST (Static Application Security Testing) analysent le code pour identifier des faiblesses telles que des injections SQL potentielles, des fuites de données, ou des problèmes liés à la gestion des identifiants.
Veille de sécurité
Même sans CVE, une vulnérabilité peut être découverte par la communauté ou dans des recherches spécifiques. Effectuer une veille régulière sur des sites comme Exploit-DB, ou des forums de sécurité peut vous aider à identifier des vulnérabilités émergentes qui ne sont pas encore associées à une CVE, mais qui pourraient constituer un risque pour vos systèmes.
4. La solution v6Protect pour superviser les CVE & CWE
La plateforme de v6Protect propose une approche complète pour surveiller, analyser et protéger les services numériques contre les CVE et CWE :
Surveillance en temps réel des vulnérabilités (CVE & CWE)
• Détection proactive des CVE grâce à un moteur d’analyse avancé de la surface d’attaque externe,
• Corrélation entre CVE et CWE pour identifier les faiblesses structurelles,
• Test dynamique des CWE liés à l’OWASP Top 10 notamment,
• Alertes et rapports détaillés pour prioriser les actions de remédiation.
Protection applicative avancée
• Détection proactive des CVE grâce à un moteur d’analyse avancé de la surface d’attaque externe,
• Corrélation entre CVE et CWE pour identifier les faiblesses structurelles,
• Test dynamique des CWE liés à l’OWASP Top 10 notamment,
• Alertes et rapports détaillés pour prioriser les actions de remédiation.
Patch management et mises à jour régulières
• Filtrage dynamique des IPs malveillantes pour neutraliser les attaques en amont,
• Pare-feu applicatif web (WAF) pour bloquer les attaques exploitant des vulnérabilités connues (IPS, blocklist, règles de sécurité dynamique),
• Analyse comportementale avancée par IA : détection des anomalies en fonction des schémas de comportement,
• Protection Zero-Day en analysant les comportements suspects et en adaptant automatiquement les règles de défense.
La gestion des CVE et CWE est un enjeu clé pour renforcer la cybersécurité des entreprises. Alors que les CVE permettent d’identifier et de corriger des vulnérabilités précises, les CWE offrent une approche plus large en ciblant les faiblesses structurelles sous-jacentes.