L'équipe Vigil@nce veille les vulnérabilités publiques qui affectent votre parc informatique, puis propose des correctifs sécurité, une base et des outils pour y remédier.

Vulnérabilité informatique : définition, exploitation et protection

Préambule

Les vulnérabilités informatiques sont souvent confondues avec les virus ou les malwares. Même si la frontière est parfois floue, il est important de mieux connaître et distinguer ces menaces, afin de s'en protéger efficacement.

Définition informelle

Tous les logiciels informatiques comportent des bugs. En majorité, ces bogues sont ennuyeux, mais ils sont inoffensifs.

Cependant, certains bugs permettent de lire des informations protégées, de modifier des données, ou de perturber le service. Ces bugs qui ont un impact sur la sécurité du système sont appelés des vulnérabilités informatiques.

Par exemple, si le logiciel vulnérable n'a pas prévu le cas (c'est-à-dire s'il est bogué), un attaquant peut employer un chemin comme « ../../fichier_sensible » pour lire ce fichier. Cette faille du logiciel permet donc de lire des informations normalement protégées. Les développeurs auraient dû dans ce cas utiliser des chemins canoniques.

Autre exemple, si le système vulnérable n'a pas prévu le cas, un hacker peut employer un login avec une syntaxe comme « utilisateur1 \0 utilisateur2 », afin de s'authentifier sous un autre compte. Cette vulnérabilité informatique permet alors de compromettre des données. Les développeurs auraient dû dans ce cas filtrer les caractères interdits.

Dernier exemple, si le protocole réseau vulnérable n'est pas préparé, un pirate peut envoyer une requête générant une très grande réponse, afin de surcharger le réseau. Cette erreur du protocole perturbe alors le service. Les concepteurs auraient dû dans ce cas limiter la taille des réponses non authentifiées.

Dans tous les cas, on constate que ces erreurs dans la conception ou le développement d'applications ont un impact sur la sécurité. Ce sont des vulnérabilités.

Définition formelle

Il existe plusieurs définitions formelles d'une vulnérabilité informatique, en voici deux.

Le glossaire de l'ANSSI utilise : Faute, par malveillance ou maladresse, dans les spécifications, la conception, la réalisation, l'installation ou la configuration d'un système, ou dans la façon de l'utiliser.

EBIOS définit une vulnérabilité comme une « Caractéristique d'un bien support qui peut constituer une faiblesse ou une faille au regard de la sécurité des systèmes d'information ».

Découverte

Les vulnérabilités sont parfois découvertes de manière fortuite, lorsqu'un développeur constate une erreur dans son code.

Un utilisateur peut aussi constater un dysfonctionnement, et le signaler.

La majorité des vulnérabilités sont découvertes par des chercheurs spécialisés, qui analysent le code source d'un logiciel, ou le désassemblent.

Ils s'aident très souvent d'outils nommés fuzzers, envoyant des données aléatoires, dans le but de déclencher des erreurs, qui sont le signe d'une faille.

Signalement

Les processus de signalement d'une vulnérabilité informatique sont assez variés.

Certaines personnes se comportent de manière responsable, en contactant les développeurs, en attendant que le logiciel soit corrigé, et en attendant même un délai supplémentaire pour laisser le temps aux utilisateurs de corriger la vulnérabilité.

D'autres personnes tirent profit de leur découverte, soit en vendant les informations, soit en développant un outil d'attaque.

Attaque

Dès que les détails techniques sur la menace sont disponibles, des développeurs spécialisés vont créer des démonstrateurs ou des exploits.

Un démonstrateur est un outil d'attaque, qui prouve la vulnérabilité, mais n'a aucune conséquence néfaste.

Un exploit est un outil pour exploiter la vulnérabilité informatique. En fonction du type de vulnérabilité, il permet de lire des informations normalement protégées, de modifier des données, ou de perturber le service.

L'exploit peut être intégré dans un framework contenant une multitude d'outils, afin de faciliter les tâches des hackers.

Volume

Au fil des années, les logiciels se complexifient. Le nombre de vulnérabilités ne fait donc que croître.

Actuellement, Vigil@nce publie 3000 nouveaux bulletins par an, qui parlent d'environ 7500 vulnérabilités informatiques.

Le volume est tel, qu'un service dédié de veille sur les vulnérabilités est nécessaire pour être sûr de ne pas en oublier.

Protection

Pour protéger un parc informatique, les administrateurs doivent déployer des correctifs sur tous les logiciels.

La première chose à faire consiste à analyser le contexte pour décider quelle est la meilleure solution, et avec quelle urgence les alertes doivent être traitées.

Ensuite, il y a plusieurs types de solutions.

Une contre-mesure est un palliatif temporaire, comme par exemple désactiver la fonctionnalité vulnérable, si elle n'est pas utilisée.

Un patch source ou binaire permet de modifier à minima le logiciel pour uniquement corriger la faille.

Une nouvelle version du logiciel corrige généralement les anciennes vulnérabilités.

Déployer ces correctifs n'est souvent pas neutre, car cela désactive des fonctionnalités, ou crée des effets de bords. Chaque solution doit alors être soigneusement étudiée, afin de minimiser l'impact.

Cette année, Vigil@nce a publié 7000 solutions, soit en moyenne plus de deux solutions pour chaque bulletin de vulnérabilité.

Univers

Tous les logiciels ou systèmes sont ou seront vulnérables un jour. Par exemple, Windows 10 contient de nombreuses failles, tout comme Ubuntu. De même, un logiciel bureautique comme LibreOffice, les services comme Samba, les équipements réseau Juniper, ou les téléphones Cisco contiennent des vulnérabilités.

Tous ces éléments doivent être sécurisés. Lorsque le parc informatique est complexe, cela représente une charge de travail importante.

CVE

Pour identifier les vulnérabilités, le MITRE a mis en place le référentiel CVE (Common Vulnerabilities and Exposures), pour associer un identifiant à chaque vulnérabilité.

Cette référence, de la forme CVE-YYYY-NNNN(N...), permet de corréler les informations provenant de différents produits et services.

Par exemple, CVE-2019-15666 identifie une vulnérabilité du noyau Linux.

CVSS

Le FIRST et CVSS-SIG proposent la méthode CVSS (Common Vulnerability Scoring System) de notation des vulnérabilités.

En fonction d'éléments comme le vecteur d'accès ou la complexité d'accès, une métrique de base est calculée. La métrique temporelle fait varie ensuite en fonction des solutions et des attaques disponibles. Finalement, la métrique environnementale tient compte du SI où le produit vulnérable est situé.

Le score CVSS d'une faille est compris entre 0 et 10 (critique). Cette note permet de décider de l'urgence du traitement.

Vigil@nce

Notre équipe vous accompagne dans la surveillance des vulnérabilités.

Tous les jours, l'équipe Vigil@nce publie des bulletins à propos des vulnérabilités informatiques publiques et leurs solutions.

Les utilisateurs reçoivent ces bulletins d'alerte par e-mail, selon la fréquence, le format, et le niveau d'urgence définis.

Dans un espace web dédié, chaque utilisateur crée ses périmètres. Un périmètre est une liste de logiciels et de systèmes à surveiller.

Les bulletins sont alors filtrés en fonction des périmètres choisis par chaque utilisateur.

Chaque utilisateur possède un compte web dédié et personnalisable selon ses préférences.

Différence avec un virus

Un virus ou malware est un code malveillant externe, qui se diffuse à la suite d'une action du destinataire, comme l'ouverture d'un document malveillant.

Dans certains cas, un virus peut utiliser une vulnérabilité pour se répliquer, ou s'octroyer de nouveaux privilèges. Dans ce cas, un virus contient un exploit.

Une vulnérabilité est donc intrinsèque au logiciel, alors que le virus est un code malveillant externe.

Un antivirus ou antimalware protège contre ce code malveillant, mais il ne corrige pas les logiciels vulnérables.

Un antivirus agit en dernier rempart pour un malware spécifique, alors qu'un correctif comble définitivement une vulnérabilité.

Une veille sur les vulnérabilités et un antivirus sont donc complémentaires.

Conclusion

La veille Vigil@nce vous alerte sur les vulnérabilités de vos systèmes, et sur les correctifs que vous devez déployer.