EPSS : qu’est-ce que l’Exploit Prediction Scoring System ?

EPSS : qu'est-ce que l'Exploit Prediction Scoring System ?
Maxime ALAY-EDDINE
décembre 19, 2022

Si le score CVSS (Common Vulnerability Scoring System) est largement utilisé pour évaluer l’importance d’une vulnérabilité informatique, de nouvelles méthodes apparaissent régulièrement pour proposer d’étudier le même problème sous un autre angle. Cet article traite d’un score nommé EPSS, pour « Exploit Prediction Scoring System », qui indique la probabilité qu’une vulnérabilité soit exploitée.

EPSS : une méthode créée en 2019 pour mettre en avant les vulnérabilités à la fois graves et exploitées

Le score EPSS (Exploit Prediction Scoring System) a été créé en 2019 lors d’une présentation à la Black Hat (une célèbre conférence sur la sécurité informatique).

Ce projet, initié par les chercheurs Jay Jacobs, Sasha Romanosky, Benjamin Edwards, Michael Roytman, et Idris Adjerid, propose d’apporter une solution à un question fréquente en gestion des vulnérabilités : comment prioriser les vulnérabilités présentes dans un système d’information ?

Quel problème l’Exploit Prediction Scoring System cherche-t-il à résoudre ?

Dans leur présentation de la Black Hat, les créateurs de l’EPSS partent de plusieurs constats du marché, à savoir :

  • Trop de vulnérabilités sont publiées par rapport à la quantité de vulnérabilités pouvant être traitées par les équipes de sécurité ;
  • Moins de 5% des vulnérabilités sont réellement exploitées par des attaquants.

Ils mettent notamment en avant les conclusions d’une présentation de Luca Allodi et Fabio Massacci en 2013, qui indiquent que :

  • Corriger les vulnérabilités de niveau élevé ou moyen et qui disposent de kits d’attaque automatiques améliore le niveau de sécurité de 62,81 % ;
  • Corriger les vulnérabilités de niveau élevé ou moyen et qui disposent de démonstrations de kits d’attaque améliore le niveau de sécurité de 19,64% ;
  • Corriger les vulnérabilités de niveau élevé ou moyen améliore le niveau de sécurité de 3,2%.
Extrait de la présentation "How CVSS is DOSsing your patching policy (and wasting your money)" par Luca Allodi et Fabio Massacci, à la Black Hat 2013, et reprise dans la présentation du score EPSS en 2019
Extrait de la présentation « How CVSS is DOSsing your patching policy (and wasting your money) » par Luca Allodi et Fabio Massacci, à la Black Hat 2013, et reprise dans la présentation du score EPSS en 2019

Quelle solution propose l’Exploit Prediction Scoring System ?

Les inventeurs du score EPSS proposent de calculer pour chaque vulnérabilité la probabilité que celle-ci soit réellement utilisée sous 12 mois lors d’une attaque informatique.

Cette probabilité est calculée à partir des caractéristiques de chaque vulnérabilité, et d’un modèle de prédiction qui repose sur 16 variables :

  1. Est-ce que la vulnérabilité dispose d’un kit d’attaque réellement utilisable (c’est-à-dire un exploit avec un excellent niveau de maturité technique) ?
  2. Est-ce que la vulnérabilité concerne un produit édité par Microsoft ?
  3. Est-ce que la vulnérabilité dispose d’un kit d’attaque public ?
  4. Est-ce que la vulnérabilité concerne un produit édité par Adobe ?
  5. Est-ce que la vulnérabilité est de type « Corruption de mémoire » ?
  6. Est-ce que la vulnérabilité concerne un produit édité par HP ?
  7. Est-ce que la vulnérabilité concerne un produit édité par Apache ?
  8. Est-ce que la vulnérabilité concerne un produit édité par IBM ?
  9. Est-ce que la vulnérabilité est de type « Exécution de code » ?
  10. Est-ce que la vulnérabilité est de type « Déni de service » ?
  11. Est-ce que la vulnérabilité peut être exécutée à distance ?
  12. Est-ce que la vulnérabilité concerne un service web ?
  13. Est-ce que la vulnérabilité est utilisable en local ?
  14. Est-ce que la vulnérabilité concerne un produit édité par Apple ?
  15. Est-ce que la vulnérabilité concerne un produit édité par Google ?
  16. Quel est le nombre de références associées à la vulnérabilité ?

A partir de ces 16 caractéristiques, et d’un modèle entraîné sur l’ensemble des CVE publiées dans la base MITRE, la formule suivante est établie.

LogOdds = -6.18 +
2.44 * vend:microsoft +
2.07 * vend:ibm +
2.00 * exp:weaponized +
1.91 * vend:adobe +
1.62 * vend:hp +
1.50 * exp:poc code +
1.10 * vend:apache +
1.01 * log(ref:count + 1) +
0.57 * tag:code execution +
0.23 * tag:remote +
0.22 * tag:denial of service +
0.06 * tag:web +
-0.20 * tag:memory corruption +
-0.63 * tag:local +
-0.89 * vend:google +
-1.92 * vend:apple

Pr[exploitation] = 1/(1+e^(-LogOdds))

Source : "Exploit Prediction Scoring System (EPSS)", Jacobs, Jay and Romanosky, Sasha and Edwards, Benjamin and Roytman, Michael and Adjerid, Idris, 2019, https://arxiv.org/abs/1908.04856

Notons que ces caractéristiques peuvent changer dans le temps. Par exemple, les types d’exploits disponibles pour une CVE peuvent changer en fonction de l’intérêt des pirates. Cela fait que le score EPSS peut évoluer dans le temps. Le score EPSS est donc un score dynamique, là où le score CVSSv3.1 est plutôt utilisé comme un score statique (ce qui n’est pas tout à fait vrai, puisque le score CVSSv3.1 prévoit un critère « temporel », qui peut changer dans le temps, mais ce critère est rarement utilisé sur le marché sauf par des outils comme Cyberwatch Vulnerability Manager).

Cas pratique : calcul de l’Exploit Prediction Scoring System pour la CVE-2019-0708

L’article qui présente l’EPSS donne un exemple avec la CVE-2019-0708 (BlueKeep). Les valeurs de chaque caractéristique sont :

Extrait de l'article sur le score EPSS disponible sur Arxiv, avec cas de BlueKeep
Extrait de l’article sur l’EPSS disponible sur Arxiv, avec cas de BlueKeep

La CVE-2019-0798 (BlueKeep) a donc un score CVSSv3.1 de 9,8/10, et un score EPSS de 95,2%.

L’Exploit Prediction Scoring System permet de calculer la probabilité d’exploitation d’une vulnérabilité et met en avant les vulnérabilités qui ont le plus de chance d’être utilisées sur le marché

Le principal intérêt du score EPSS est que l’écart des valeurs générées peut être très grand entre deux CVE. Visuellement, il est alors assez facile de distinguer des vulnérabilités qui méritent une attention immédiate.

Sur un échantillon de vulnérabilités liées à un parc informatique de démonstration, on peut ainsi tracer la répartition des CVE en fonction de leur score CVSSv3.1 de base et de leur score EPSS. Nous obtenons les graphes suivants.

Distribution des CVE d'un parc de démonstration en fonction de leur score EPSS
Distribution des CVE d’un parc de démonstration en fonction de leur score EPSS
Distribution des CVE d'un parc de démonstration en fonction de leur score CVSSv3.1 de base
Distribution des CVE d’un parc de démonstration en fonction de leur score CVSSv3.1 de base

La répartition des vulnérabilités en fonction de leur score EPSS fait immédiatement émerger une tendance là où une analyse qui se limite au score CVSSv3.1 de base ne permet pas de mettre en avant de vulnérabilités spécifiques.

Le score EPSS donne un résultat semblable à une utilisation complète du standard CVSSv3.1 avec le critère temporel Exploit Code Maturity

Comparaison d’une approche score EPSS versus score CVSSv3.1 avec Exploit Code Maturity

Puisque le score EPSS donne des informations relatives à l’exploitabilité d’une vulnérabilité, il donne par essence des informations semblables à l’utilisation complète du standard CVSSv3.1 lorsque l’on prend en compte le critère temporel et notamment le critère « Exploit Code Maturity ».

Extrait relatif au critère Exploit Code Maturity de la calculatrice fournie par le FIRSThttps://www.first.org/cvss/calculator/3.1
Extrait relatif au critère Exploit Code Maturity de la calculatrice fournie par le FIRSThttps://www.first.org/cvss/calculator/3.1

Ce critère, noté « E » dans le standard CVSSv3.1, permet d’indiquer le niveau de maturité des kits d’attaques disponibles pour une vulnérabilité. Les vulnérabilités dont le niveau Exploit Code Maturity est à High sont les plus dangereuses car cela indique que le kit d’attaque est très simple à utiliser.

Un critère Exploit Code Maturity à Functional indique que le kit est disponible mais nécessite un peu d’effort de la part de l’attaquant. Tandis qu’une valeur à Proof-of-Concept indique que le kit est disponible mais ne fonctionne que si l’attaquant fournit un effort important pour adapter le code à sa cible.

Enfin, un critère à la valeur Unproven indique qu’aucun kit d’attaque n’est connu pour le moment.

Or, lorsque l’on prend en compte ce critère, et que l’on analyse les vulnérabilités d’un parc informatique classique, il apparaît que filtrer sur des vulnérabilités dont le score de base est critique (CVSSv3.1 de base supérieur ou égal à 9 sur 10) et dont l’Exploit Code Maturity vaut High, donne aussi une analyse très pertinente des actions prioritaires à mener dans le parc.

Analyse des CVE détectées sur un parc de démonstration avec répartition des vulnérabilités en fonction de leur score CVSSv3.1 de base et du niveau de l'attribut Exploit Code Maturity calculé par Cyberwatch Vulnerability Manager
Analyse des CVE détectées sur un parc de démonstration avec répartition des vulnérabilités en fonction de leur score CVSSv3.1 de base et du niveau de l’attribut Exploit Code Maturity calculé par Cyberwatch Vulnerability Manager

Cette approche montre notamment que 2,32% des vulnérabilités ont à la fois un score CVSSv3.1 critique et un Exploit Code Maturity à High.

Analyse du nombre de CVE présentes sur un parc de démonstration avec un score CVSS de base critique et un Exploit Code Maturity à High
Analyse du nombre de CVE présentes sur un parc de démonstration avec un score CVSS de base critique et un Exploit Code Maturity à High

Analyse détaillée des différences de résultats entre EPSS et CVSSv3.1 avec Exploit Code Maturity

Comparons maintenant les résultats des deux approches CVE par CVE, en retenant le top 10 de chaque méthode.

Les résultats des Top 10 des CVE avec chaque méthode figurent ci-après, les données venant d’un jeu de démonstration représentatif des systèmes d’information du marché.

Top 10 des CVE d'un parc de démonstration avec un score CVSSv3.1 de base critique et un exploit de maturité élevée, classées par ordre décroissant de leur score CVSSv3.1 de base
Top 10 des CVE d’un parc de démonstration avec un score CVSSv3.1 de base critique et un exploit de maturité élevée, classées par ordre décroissant de leur score CVSSv3.1 de base
Top 10 des CVE d'un parc de démonstration classées par ordre décroissant de leur score EPSS
Top 10 des CVE d’un parc de démonstration classées par ordre décroissant de leur score EPSS

Nous constatons que :

  • Certaines CVE apparaissent dans les deux listes, comme CVE-2022-22965 (Spring4Shell), CVE-2021-44228 (Log4Shell), CVE-2019-11043 (vulnérabilité sur PHP FPM), CVE-2020-0796 (SMBGhost), CVE-2019-2725 (vulnérabilité sur Oracle WebLogic), et CVE-2019-0708 (BlueKeep)
  • L’approche qui repose uniquement sur les critères du CVSSv3.1 fait ressortir la CVE-2020-1472 (Zerologon), la CVE-2018-17456 (vulnérabilité sur Git), la CVE-2021-31166 (vulnérabilité sur Microsoft Windows HTTP.sys), et la CVE-2020-9850 (vulnérabilité sur des produits Apple notamment Safari),
  • L’approche qui repose sur le score EPSS fait apparaître en plus CVE-2021-40438 (vulnérabilité sur le composant Apache HTTP Server mod_proxy), CVE-2017-8464 (vulnérabilité sur Microsoft Windows), CVE-2017-0144 (une vulnérabilité de la série EternalBlue sur Microsoft Windows), et CVE-2017-0037 (vulnérabilité sur Microsoft Windows Internet Explorer et Edge).

Dans les deux cas, certaines vulnérabilités marquantes ne sont pas retenues : la méthode « Top 10 du CVSSv3.1 critique avec Exploit Code Maturity élevé » ne permet pas de retenir la CVE-2017-0144 (membre de la série EternalBlue), tandis que la méthode « Top 10 des scores EPSS » ne retient pas la CVE-2020-1472 (Zerologon).

Aucune méthode n’est donc parfaite, et les deux approches sont mêmes complémentaires.

Quels sont les avantages et inconvénients de l’Exploit Prediction Scoring System ?

Le score EPSS est disponible plus rapidement que le score CVSS du NVD et fournit donc un premier niveau d’analyse d’une CVE récente : avantage EPSS

Le score CVSS du NVD repose sur les capacités d’évaluation des équipes du NIST. En pratique, il arrive que le score CVSS ne soit fourni par le NVD que plusieurs jours après la publication d’une CVE.

À l’inverse, le score EPSS est calculé à partir des formules mentionnées plus haut dans cet article. En conséquence, le score EPSS est fourni très rapidement et donne un premier aperçu de l’importance d’une nouvelle vulnérabilité.

Un exemple qui décrit très bien la situation est la CVE-2022-20477, publiée le 13 décembre 2022, dont le score CVSS n’est pas encore fourni par le NVD le 14 décembre 2022 à 13h00 heure de Paris, mais qui dispose déjà d’un score EPSS de 11,9%.

Exemple de la CVE-2022-20477, publiée le 13 décembre 2022 et qui n'a pas encore de score CVSS officiel le 14 décembre 2022 à 13h00 (heure de Paris)
Exemple de la CVE-2022-20477, publiée le 13 décembre 2022 et qui n’a pas encore de score CVSS officiel le 14 décembre 2022 à 13h00 (heure de Paris)
Score EPSS de la CVE-2022-20477 en date du 14 décembre 2022 à 13h00 (heure de Paris)
Score EPSS de la CVE-2022-20477 en date du 14 décembre 2022 à 13h00 (heure de Paris)
Fiche de la CVE-2022-20477 dans Cyberwatch en date du 14 décembre 2022 à 13h00 (heure de Paris), avec son score EPSS
Fiche de la CVE-2022-20477 dans Cyberwatch en date du 14 décembre 2022 à 13h00 (heure de Paris), avec son score EPSS

Le score EPSS fait émerger des tendances fortes dans le système d’information : avantage EPSS

Le score EPSS varie fortement d’une CVE à une autre et permet de mettre en avant des tendances dans le système d’information. C’est ce que montre le graphe ci-dessous avec la distribution des CVE dont le score EPSS est le plus élevé sur un parc informatique de démonstration.

Scores EPSS les plus importants sur un parc informatique de démonstration
Scores EPSS les plus importants sur un parc informatique de démonstration

L’Exploit Prediction Scoring System met en avant les vulnérabilités de certains constructeurs contrairement au CVSS qui est plus neutre : avantage CVSS

La formule de calcul du score EPSS met en avant, par construction, les vulnérabilités liées aux produits de Microsoft, IBM, Adobe, HP, Apache, Google, et Apple.

Critères liés à Microsoft, IBM, Adobe, HP, Apache, Google, et Apple dans le calcul du score EPSS
Critères liés à Microsoft, IBM, Adobe, HP, Apache, Google, et Apple dans le calcul du score EPSS

En conséquence, lorsqu’une vulnérabilité concerne une technologie différente de ces constructeurs, celle-ci aura un score EPSS assez faible.

C’est le cas de la CVE-2022-42475, qui concerne FortiOS, et qui est réellement exploitée et très dangereuse malgré un score EPSS faible.

Extrait du bulletin d'alerte du CERT-FR de l'ANSSI pour la CVE-2022-42475,
qui montre que la vulnérabilité est activement exploitée
Extrait du bulletin d’alerte du CERT-FR de l’ANSSI pour la CVE-2022-42475,
qui montre que la vulnérabilité est activement exploitée

L’Exploit Prediction Scoring System est moins connu et reconnu pour le moment que le score CVSS : avantage CVSS

Le score EPSS est récent, et est donc encore un projet en évolution et en construction. Cette méthode ne fait pas encore consensus, notamment en raison de l’absence de neutralité de ses inventeurs.

Jonathan Spring, membre du CERT/CC, indique ainsi dans son article « Probably Don’t Rely on EPSS Yet » que le modèle a été entraîné à partir de données issues de sondes AlienVault ou Fortinet, ce qui entraîne un biais, et que les vulnérabilités mentionnées comme activement exploitées dans la base du CISA KEV (CISA Known Exploited Vulnerabilities) ont de très faibles scores EPSS lorsqu’elles concernent l’Internet des Objets.

À l’inverse, le score CVSS est largement utilisé par la plupart des auditeurs du marché de la sécurité informatique, et la grande majorité des logiciels de l’industrie de la gestion des vulnérabilité.

En conclusion, EPSS et CVSS sont des méthodes complémentaires et l’une ne saurait nullement remplacer l’autre

Une analyse complète de la situation montre que le score EPSS n’est pas une formule magique qui peut remplacer le CVSS, mais plutôt une méthode complémentaire pour analyser les vulnérabilités d’un système d’information et qui peut être utile dans certaines situations.

Lorsqu’une vulnérabilité particulièrement récente n’a pas encore été évaluée par le NVD, et ne dispose pas de score CVSS, l’EPSS sera fort utile pour avoir un aperçu de la dangerosité de la CVE.

De même, il peut être pertinent d’analyser les actifs en fonction du score EPSS maximal détecté sur ces derniers, afin de faire émerger des tendances dans la système d’information.

Cependant, un score CVSSv3.1 bien utilisé, avec les critères temporels, voire même les critères environnementaux, permet tout aussi bien de prioriser ses risques avec une approche rationnelle et reconnue de l’ensemble du marché.

De plus, les analystes qui souhaitent utiliser des méthodes complémentaires au score CVSS pourront regarder la méthode MITRE ATT&CK, qui analyse les effets combinés de plusieurs CVE, cette méthode étant maintenant reconnue par le marché.

Enfin, si le CVSSv3.1 fait l’objet de critiques régulières, il ne faut pas oublier que ces critiques concernent exclusivement le score CVSSv3.1 de base, et que lors de l’utilisation complète du standard CVSSv3.1 avec les scores temporels et environnementaux la majorité des défauts disparaissent. Si quelques défauts subsistent, rappelons que ceux-ci sont en cours d’étude au sein du FIRST pour les corriger dans le cadre du futur score CVSSv4.0.

Extrait d'une présentation du score CVSSv4.0
Extrait d’une présentation du score CVSSv4.0

Comment obtenir l’Exploit Prediction Scoring System de ses vulnérabilités ?

Cyberwatch Vulnerability Manager embarque une encyclopédie des vulnérabilités avec l’ensemble des scores EPSS disponibles, et permet de générer facilement des rapports centrés sur cette métrique.

Classement par ordre décroissant du score EPSS des vulnérabilités présentes dans un environnement de démonstration
Classement par ordre décroissant du score EPSS des vulnérabilités présentes dans un environnement de démonstration

N’hésitez pas à nous solliciter via notre formulaire de contact pour obtenir une démonstration.

Vous avez des questions ?

Vous souhaitez une démonstration ?

Contactez-nous et nos experts reviendront vers vous sous 24h.

Votre demande