Par contre, ce qui est plus surprenant, c’est qu’il n’existe apparemment aucune relation entre le code de la preuve-de-concept (PoC) de l’exploit publié en ligne et le début des attaques, à proprement parlé, observé sur terrain.
Les chiffres sont les suivants : les chercheurs ont collecté 4 183 failles de sécurité uniques et véritablement utilisées entre 2009 et 2018. C’est moins de la moitié des 9 726 découvertes de codes d’exploits qui avaient été développés et mises en ligne.
Ces chiffres proviennent d’une étude dans laquelle une équipe de chercheurs de Cyentia, de Virginia Tech et de la société RAND Corporation ont examiné comment équilibrer les avantages et les inconvénients de deux stratégies concurrentes visant à lutter contre les vulnérabilités.
Quel est le meilleur moyen de contrôler l’incontrôlable ?
Corriger toutes les vulnérabilités vous procurerait sans aucun doute une couverture optimale, mais cela prendrait beaucoup de temps et de ressources pour traiter des vulnérabilités à faible risque. Il serait plus efficace de se concentrer sur la correction de quelques vulnérabilités présentant un risque élevé, mais cette approche laisserait les entreprises vulnérables vis à vis de toutes les vulnérabilités auxquelles elles n’ont pas donné la priorité.
Comment savoir quelles vulnérabilités méritent d’être corrigées ? Les chercheurs ont essayé de résoudre ce problème en utilisant des données recueillies à partir d’une multitude de sources, avec l’aide de l’apprentissage automatique pour bâtir un modèle, puis en comparant une série de stratégies de correction pour voir comment elles permettaient d’équilibrer le compromis entre la couverture et l’efficacité réelle.
Le livre blanc de l’équipe, intitulé Improving Vulnerability Remediation Through Better Exploit Prediction, a récemment été présenté lors du 2019 Workshop on the Economics of Information Security à Boston.
Les chercheurs ont utilisé une liste de toutes les failles, les scores et les caractéristiques de vulnérabilité extraites de la National Vulnerability Database (NVD) du National Institute of Standards and Technology (NIST). Ils ont également utilisé des données relatives aux exploits trouvés sur le terrain, recueillies auprès de FortiGuard Labs, ainsi que des preuves d’exploitation provenant du SANS Internet Storm Center, de Secureworks CTU, des métadonnées OSSIM d’Alienvault et de Reversing Labs.
Les informations sur le code d’exploit ayant été développé provenaient d’Exploit DB, de Contagio, de Reversing Labs, de Secureworks CTU et des frameworks d’exploitation Metasploit, du Kit Elliot de D2 Security et de Canvas Exploitation Framework.
Un point crucial : ils ont apporté ce qu’ils ont considéré être un changement et un développement majeurs au niveau de la modélisation antérieure, à savoir pour qu’une vulnérabilité soit prise en compte dans les modèles des chercheurs. A l’heure actuelle, les prédictions sur la probabilité qu’elle soit exploitée n’étaient pas assez bonnes, impliquant que cette vulnérabilité devait plutôt avoir été exploitée réellement au préalable, dans le monde réel, pour que les chercheurs la prennent en compte.
Extrait du livre blanc :
Notamment, nous observons des exploits sur le terrain pour 5,5% des vulnérabilités de notre ensemble de données, contre 1,4% dans des travaux antérieurs.
Ils ont constaté que les 4 183 failles de sécurité qui avaient été exploitées entre 2009 et 2018 ne représentaient qu’un faible pourcentage du total des 76 000 vulnérabilités découvertes au cours de cette même période.
Bien que cela ne représente “que” environ 5,5% des vulnérabilités exploitées en réalité sur le terrain, “seulement” une vulnérabilité exploitée sur 20 représente bien plus que une sur 100 comme mentionné “dans des travaux antérieurs”.
La meilleure stratégie ?
La recherche a examiné trois stratégies pour prioriser les vulnérabilités : utiliser le score CVSS, corriger les bugs avec des exploits connus et corriger les bugs marqués avec des attributs spécifiques tels que “exécution de code à distance”. Les chercheurs ont également créé un modèle d’apprentissage automatique pour chaque stratégie afin de déterminer si celle-ci pouvait donner de meilleurs résultats que des approches simples, basées sur la définition de règles.
Pour les personnes suivant une stratégie basée sur les scores CVSS, les chercheurs ont estimé que la combinaison optimale en matière de couverture, de précision et d’efficacité était obtenue en installant systématiquement un correctif avec un score CVSS de sept ou plus :
… une stratégie basée sur des règles de correction de toutes les vulnérabilités avec un CVSS de 7 ou plus permettrait d’atteindre une couverture légèrement supérieure à 74% avec une efficacité de 9% et une précision de 57%. Cela semble être le meilleur équilibre entre les stratégies basées sur les scores CVSS, même si cela impliquerait toujours de corriger inutilement 31k vulnérabilités inexploitées (76k en tout avec 35k d’entre elles corrigées).
Il est intéressant de noter que toutes les approches basées sur des règles CVSS et passées par le modèle d’apprentissage automatique de type CVSS, se sont avérées assez proche d’un modèle qui ne produirait qu’une performance “légèrement supérieure” à celle d’une stratégie consistant à appliquer des correctifs avec un score CVSS donné ou supérieur.
Lorsque vous examinez des stratégies basées sur la disponibilité du code d’exploit dans l’un des trois référentiels d’exploits, à savoir Elliot, Exploit DB et Metasploit, les chercheurs ont constaté que votre choix de référentiel importait beaucoup :
… la stratégie Exploit DB offre la meilleure protection, mais son efficacité est considérablement faible, tandis que Metasploit affiche une efficacité exceptionnelle (efficacité maximale parmi toutes les approches basées sur des règles), avec une réduction considérable de la couverture et un niveau d’effort considérablement moindre pour mettre en œuvre la stratégie.
Contrairement à la stratégie basée sur des scores CVSS, les chercheurs ont constaté que leur modèle d’apprentissage automatique suivant une stratégie “d’exploits publiés” atteignait un bien meilleur équilibre entre couverture et efficacité qu’une approche basée sur des règles.
Pour la stratégie finale de “marquage de référence”, les chercheurs ont corrigé des bugs s’ils avaient été identifiés avec l’un de 83 mots clés différents, puis ont examiné l’efficacité d’une approche de correction basée sur chacun d’eux. Pour les chercheurs, aucune n’a été qualifiée d’approche efficace et toutes ont été surclassées par un modèle d’apprentissage automatique par “marquage de référence” :
Dans l’ensemble, à l’instar des autres stratégies basées sur des règles, le fait de se concentrer sur des caractéristiques individuelles (qu’il s’agisse de scores CVSS, d’exploits publiés ou de marquage de référence), comme facteur de décision, génère des stratégies de correction inefficaces. Cela est vrai pour toutes les expressions individuelles comportant plusieurs mots.
Selon eux, parmi toutes ces stratégies individuelles, fondées sur des règles ou pilotées par l’apprentissage automatique, un modèle d’apprentissage automatique sort du lot en utilisant toutes les données disponibles.
Les chercheurs pensent que leurs travaux pourraient être utilisés pour améliorer la norme CVSS et par des organismes qui publient des évaluations de menaces et de risques, tels que le Department of Homeland Security. Ils pourraient même être utilisés, ont-ils suggéré, dans le Vulnerability Equities Process, qui détermine si les vulnérabilités doivent être divulguées au public, ou bien tenues secrètes et utilisées dans des opérations offensives.
Billet inspiré de What’s the best approach to patching vulnerabilities?, sur Sophos nakedsecurity.