CVE, CVSS et EPSS : Comprendre, Trier et Prioriser
Par Nicolas DELAHAYE | v.1974 | DevSecOps & Architecture
STATUS: CRITICAL_KNOWLEDGE_LOADED
Le monde de la cybersécurité ne manque pas d'acronymes. Mais s'il y a bien une trinité que tout ingénieur, développeur ou architecte doit maîtriser pour ne pas sombrer sous le poids de la dette technique, c'est celle-ci : CVE, CVSS et EPSS.
Au quotidien, nos scanners CI/CD crachent des rapports rouges sang. Sans une compréhension fine de ces métriques, vous allez patcher des fantômes pendant que votre infra brûle par une porte dérobée que vous aviez classée "Medium". Voici le décodage complet.
1. CVE : L'Identité de la Menace
Définition : CVE signifie Common Vulnerabilities and Exposures.
Imaginez le CVE comme le numéro de sécurité sociale d'un bug de sécurité. C'est un identifiant unique, international, géré par le programme CVE (MITRE) et ses partenaires (CNA - CVE Numbering Authorities).
CVE-2024-12345- CVE : Le préfixe standard.
- 2024 : L'année d'attribution de l'ID (pas forcément l'année de découverte).
- 12345 : Un numéro séquentiel unique.
À quoi ça sert ? À parler le même langage. Quand je dis "Log4Shell", c'est flou. Quand je dis CVE-2021-44228, tous les outils de la planète (firewalls, scanners, bases de données) savent exactement de quelle ligne de code on parle.
2. CVSS : La Gravité Théorique
Avoir un nom (CVE), c'est bien. Savoir si c'est dangereux, c'est mieux. C'est le rôle du Common Vulnerability Scoring System.
Attention : Le CVSS mesure la sévérité technique, pas le risque pour VOTRE entreprise. Il répond à la question : "Si cette faille est exploitée, quels sont les dégâts potentiels ?"
Le thermomètre (Score v3.1 / v4.0) :
- [0.0 - 3.9] FAIBLE : Impact minime.
- [4.0 - 6.9] MOYEN : Nécessite souvent une action locale ou des privilèges.
- [7.0 - 8.9] ÉLEVÉ : Impact sérieux, souvent exploitable à distance.
- [9.0 - 10.0] CRITIQUE : "Game Over". Prise de contrôle totale, souvent sans authentification.
Un score CVSS n'est pas un chiffre magique, c'est une formule complexe basée sur un Vecteur. Exemple pour Log4Shell :
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Décryptage : AV:N (Réseau/Network) + AC:L (Complexité Faible) + PR:N (Aucun privilège requis) + C/I/A:H (Confidentialité/Intégrité/Dispo : Impact Haut). C'est le pire scénario possible.
3. EPSS : La Boule de Cristal (Probabilité)
C'est ici que la modernité entre en jeu. Vous avez 100 vulnérabilités "Critiques" (CVSS 9.8). Par laquelle commencer ?
Le CVSS a une limite : il ne vous dit pas si des pirates exploitent réellement la faille. Peut-être que la faille est théoriquement catastrophique, mais techniquement impossible à exploiter sans un alignement des planètes improbable.
L'EPSS (Exploit Prediction Scoring System), géré par FIRST.org, répond à la question : "Quelle est la probabilité que cette faille soit exploitée dans les 30 prochains jours ?"
Une CVE avec un CVSS de 9.8 mais un EPSS de 0.01% (peu probable) est MOINS prioritaire qu'une CVE avec un CVSS de 7.5 mais un EPSS de 95% (attaque en cours massive).
4. Comparatif : CVE vs CVSS vs EPSS
| Acronyme | La question posée | Type de donnée |
|---|---|---|
| CVE | "C'est quoi le problème ?" | Identifiant unique (Catalogue) |
| CVSS | "À quel point ça fait mal ?" | Score de gravité (0-10) |
| EPSS | "Vais-je me faire attaquer ?" | Probabilité (0-100%) |
5. L'Arsenal du DevSecOps : Les Scanners
Pour extraire ces données de vos images Docker ou de vos serveurs, vous avez besoin d'outils. Voici le Top 3 Open Source.
A. Aqua Trivy (Le Couteau Suisse)
C'est mon favori. Rapide, complet, sans base de données à gérer.
$ trivy image python:3.9-alpine # Scan aussi le filesystem, les repos git et Kubernetes $ trivy fs --scanners vuln,secret,config .
B. Grype & Syft (Le Duo Précis)
Développé par Anchore. Syft génère le SBOM (Software Bill of Materials) et Grype le scanne.
$ syft packages docker:nginx:latest -o json > sbom.json $ grype sbom:./sbom.json
C. Clair (Le Pionnier)
Plus lourd, nécessite une base de données Postgres, mais très utilisé dans les registres d'entreprise comme Quay.io.
6. Scénario Concret : Faut-il fixer ?
Vous scannez votre image de production. Trivy remonte la CVE-2023-XXXX.
Analyse :
- CVSS : 9.1 (Critique) -> Panique à bord ?
- Vecteur :
AV:N(Réseau) maisAC:H(Complexité Haute). - EPSS : 0.02% (Très faible).
- Contexte : La librairie vulnérable est présente dans l'image, mais elle n'est utilisée que pour compiler des assets statiques et n'est pas chargée au runtime.
Décision DevSecOps :
Malgré le CVSS rouge vif, le risque réel est quasi nul. On peut accepter le risque temporairement ou supprimer la librairie de l'image finale (multi-stage build), plutôt que de bloquer la mise en production pour un patch urgent.
C'est ça, la puissance de l'analyse contextuelle combinée à l'EPSS.
[ EOF - Security Scan Complete ]
// RESSOURCES OFFICIELLES :