Les CVE : tenir à jour ses logiciels

Objectifs

  • Découvrir les CVE ;

  • Comprendre l'importance des mises à jour logicielles.

Mise en situation

Quelques soient les efforts produits, toute application présente des vulnérabilités, et un jour ou l'autre, celles-ci émergent. L'enjeu est alors d'être au courant de ces failles devenues publiques pour appliquer au plus vite des correctifs.

Chaque jour des vulnérabilités logicielles, appelées CVE, sont découvertes et publiées sur Internet. Savoir trouver et lire des CVE est important pour maintenir les outils que l'on utilise à jour.

DéfinitionQu'est-ce qu'une CVE ?

Common Vulnerabilities and Exposures (CVE) est un catalogue, maintenu par l'organisme MITRE, de toutes les vulnérabilités logicielles publiées. Par abus de langage, on appelle« une CVE » toute publication de vulnérabilités. Chaque CVE possède un identifiant de la forme CVE-AAAA-NNNN (AAAA est l'année de publication et NNNN un numéro d'identifiant).

Lien vers le catalogue : cve.mitre.org

MéthodeComment déchiffrer une CVE ?

Les publications sont très techniques et ne sont pas abordables par des personnes ne maîtrisant parfaitement ni la sécurité ni le logiciel concerné. Il existe des sites (dont CVE Details) qui décortiquent les CVE en donnant par exemple l'impact de la vulnérabilité selon différents critères (confidentialité, intégrité, disponibilité, prise de contrôle de la machine).

MéthodeComment savoir si mon logiciel a des vulnérabilités graves publiées ?

  1. Il faut entrer le nom de la technologie dans la barre de recherche du catalogue des CVE.

  2. Puis, pour comprendre chaque CVE, il est possible d'obtenir plus de détails en cherchant le CVE via son identifiant dans des sites comme CVE Details : https://www.cvedetails.com/.

ExempleCVE publiées pour la collection d'outils « Bootstrap »

On peut prendre un CVE de l'outil de style web Bootstrap :

  • En 2019, il y a eu 4 CVE, toutes de type XSS (cross site scripting).

  • La CVE-2019-8331 stipule : « In Bootstrap before 3.4.1 and 4.3.x before 4.3.1, XSS is possible in the tooltip or popover data-template attribute. »

FondamentalMettre à jour ses logiciels

Les CVE étant publiques, il est très fréquent que des cybercriminels les utilisent pour attaquer des cibles n'ayant pas mis à jour leur logiciel. Les éditeurs produisent des mises à jour de sécurité très fréquentes pour corriger au plus les vulnérabilités connues.

ConseilNe pas installer des logiciels peu ou pas maintenus

Il est préférable d'utiliser des logiciels avec une équipe de développeurs réactifs qui se chargeront de produire régulièrement des mises à jour de sécurité. Des logiciels peu ou pas maintenus seront très sensibles à des attaques car les vulnérabilités seront rarement corrigées.

ComplémentDes outils pour vous aider

Lorsque des projets deviennent vastes, il devient compliqué d'analyse toutes les lignes à la main. Certains outils effectuent une analyse automatique de recherche de vulnérabilités dans le code.

  • SonarQube, qui analyse la qualité du code et les vulnérabilités pour une vingtaine de langages.

  • PHPCs, qui analyse les vulnérabilités du code PHP et de certains frameworks connus.

  • FlawFinder, pour les langages C et C++.

  • DeepDive, pour les langages Java et ses dérivés.

  • Bandit, pour le langage Python.

Attention : ces outils ont leur limite et ne remplacent pas la vigilance des développeurs.

Une liste complète est disponible sur le site de l'OWASP.

À retenir

  • Des vulnérabilités logicielles sont rendues publiques chaque jour, ce sont les CVE.

  • Il est important de faire les mises à jour de sécurité dès qu'elles sont disponibles.

Stéphane Crozat, Marc Damie Paternité - Partage des Conditions Initiales à l'Identique