Qu’est-ce qu’une vulnérabilité connue ?
6 février 2018
0 minutes de lectureCet article a d’abord été publié sur CSO Online, le 15 décembre 2017.
On entend souvent parler de l’importance de traiter les vulnérabilités connues. La plupart des rapports annuels sur la sécurité soulignent que les vulnérabilités connues sont à l’origine de la grande majorité des attaques réussies. Et les vulnérabilités célèbres ne manquent pas — de Heartbleed à ImageTragick — pour nous rappeler leur gravité. Puisqu’elles sont si importantes, prenons un instant pour définir ce qu’est une vulnérabilité connue.
Réponse 1 : une vulnérabilité avec un identifiant CVE
Un terme souvent employé pratiquement comme synonyme de « vulnérabilité connue » est CVE, abréviation de « Common Vulnerabilities and Exposures » de MITRE. Lorsqu’une nouvelle vulnérabilité est découverte, une autorité de numérotation CVE (CNA) peut lui attribuer un numéro CVE, qui sert ensuite à l’identifier dans les bases de données et les outils.
Il convient de noter que CVE n’est pas une base de données, mais un identifiant. La National Vulnerability Database (NVD) est la source officielle des informations relatives aux CVE. Lorsqu’une CVE est ajoutée à la NVD, elle est généralement accompagnée d’informations, comme une brève description et la définition des produits concernés par la vulnérabilité sous la forme d’un CPE (Common Platform Enumeration). La qualité des informations de la NVD varie considérablement selon la source contributrice.
À l’exception des CVE réservées avant une divulgation future, on peut affirmer qu’une vulnérabilité dotée d’un numéro CVE est connue. Cependant, un grand nombre de vulnérabilités ont un numéro CVE sans jamais être ajoutées à la NVD, ce qui les rend difficiles à comprendre réellement. En outre, de nombreuses vulnérabilités connues n’ont pas du tout de CVE.
Réponse 2 : une vulnérabilité divulguée sur Internet
Il arrive assez souvent que des vulnérabilités soient découvertes, signalées et (espérons-le) corrigées sans que personne ne dépose de demande de CVE. C’est particulièrement fréquent dans les projets open source, où pratiquement tout se fait au grand jour. Il n’est pas rare que des utilisateurs divulguent involontairement une vulnérabilité en ouvrant un ticket dans un projet GitHub, comme ils le feraient pour signaler d’autres bugs, sans se rendre compte qu’ils attirent l’attention sur une faille de sécurité non corrigée.
Même lorsque les problèmes sont signalés de manière privée et responsable, le correctif de la vulnérabilité sera inévitablement open source. La vulnérabilité est alors souvent mentionnée dans les notes de version, un ticket ou les détails de la modification du code. Ces informations sont ajoutées intentionnellement, car c’est le seul moyen d’informer les utilisateurs du projet de l’existence du risque de sécurité (et de son correctif). Certains responsables de projet obtiennent un CVE pour ces vulnérabilités, mais c’est rarement le cas en pratique, par manque de sensibilisation ou en raison des efforts nécessaires.
Ces vulnérabilités sont elles aussi connues, et pourraient être considérées comme plus graves que celles qui ont un CVE. Un utilisateur d’un projet peut examiner celui-ci pour les repérer, mais cela prendrait du temps et serait difficile à faire à grande échelle. À l’inverse, un attaquant peut passer au crible les projets de bibliothèques populaires et trouver ces problèmes assez facilement, puisqu’il lui suffit de regarder les projets les plus utilisés pour toucher un large public. On les appelle des vulnérabilités non répertoriées. Leur ajout à une base de données nous amène à la catégorie suivante de vulnérabilités connues.
Réponse 3 : une vulnérabilité enregistrée dans des bases de données ouvertes
Bien que la NVD soit la base de données de vulnérabilités la plus officielle, d’autres bases existent. VictimsDB, RedHat et Openwall sont autant d’exemples de bases de données publiques sur les vulnérabilités, accessibles à tous. De nombreuses vulnérabilités présentes dans ces bases n’ont pas de CVE — comme les vulnérabilités non répertoriées évoquées précédemment — ou sont publiées dans ces bases avant l’attribution d’un CVE.
Une vulnérabilité figurant dans une base de données ouverte est presque aussi connue qu’une vulnérabilité associée à un CVE. Elle est stockée dans un espace public accessible aux défenseurs comme aux attaquants, et informe les deux parties du risque encouru. La seule différence entre la NVD et ces bases de données tient au processus de filtrage appliqué pour y figurer, qui varie d’une base à l’autre.
Réponse 4 : une vulnérabilité enregistrée dans des bases de données fermées
Toutes les bases de données de vulnérabilités ne sont pas accessibles au public. De nombreuses entreprises constituent et gèrent leur propre base de données de vulnérabilités, mais la gardent confidentielle. Les clients peuvent payer pour accéder à la liste des vulnérabilités, ce qui leur permet de les évaluer et de tenter d’atténuer celles qui les concernent le plus.
Les bases de données fermées sur les vulnérabilités sont un moyen utile de découvrir des vulnérabilités que vous auriez du mal à trouver par vous-même, et de vous protéger au cas où des attaquants les découvriraient eux aussi. Cependant, je ne qualifierais pas ces vulnérabilités de connues. À moins que le fournisseur de la base ne l’ait également vendue aux attaquants (ce dont je doute), ces derniers ont autant de chances de découvrir une autre vulnérabilité dans votre système que celle que vous venez d’acheter.
Réponse 5 : une vulnérabilité partagée sur le dark web
Tout comme le marché légitime des bases de données de vulnérabilités, le dark web possède ses propres dépôts de vulnérabilités et les vend sur le marché noir. Comme le retour sur investissement financier est très différent pour les attaquants, ces vulnérabilités peuvent coûter des millions à l’unité, ou être offertes gratuitement ou à bas prix.
Ces vulnérabilités ne sont certainement pas des vulnérabilités connues. En fait, on les appelle généralement des vulnérabilités « zero-day », car les attaquants en ont connaissance avant qu’elles ne deviennent connues (zéro jour après leur divulgation). Il arrive que ces vulnérabilités soient publiées au grand jour ; je les considérerais alors comme des vulnérabilités non répertoriées, conformément à la réponse 2.
Les vulnérabilités zero-day sont importantes, bien sûr, mais la probabilité que des attaquants les utilisent (avant qu’elles ne soient connues du public) est bien plus faible que pour les vulnérabilités véritablement connues.
En résumé
Une vulnérabilité reste une vulnérabilité, qu’elle soit connue ou non. La principale différence entre les deux tient à la probabilité qu’un attaquant en ait connaissance et tente donc de l’exploiter. Par conséquent, plus une vulnérabilité est connue, plus il est urgent de la corriger.
Il est recommandé de donner la priorité aux trois premiers types de vulnérabilités, éventuellement dans l’ordre. Une fois que vous les maîtrisez, passez à la correction des vulnérabilités situées plus bas dans la liste.