Préambule
Cet article est segmenté en trois parties distinctes de manière à présenter en détails les différents aspects des exploits et exploits kits.
- La première partie présentera les définitions de ces termes, de la manière dont ils sont utilisés ainsi que les méthodes pour s’en prémunir : Partie I – Exploits, Exploit kits et Protection
- La seconde se concentrera sur les lieux d’échanges où ceux-ci sont achetés/vendus, parfois légalement, parfois non : Partie II – Une Approche Marketing
- Enfin, la troisième partie explorera en détails le fonctionnement des exploits, exploits kits et anti-exploit : Partie III – Une Approche Technique
Définitions
Un exploit est une portion de code permettant d’exploiter une vulnérabilité dans un programme de manière à obtenir des privilèges (exécution d’un logiciel, obtention d’informations, etc.) sur l’ordinateur exécutant ledit programme. Ceci nous amène à la définition d’une vulnérabilité. Il s’agit d’une erreur de conception lors de l’écriture d’un programme pouvant être exploitée. Des exemples concrets de vulnérabilités seront présentés en partie III.
Un exploit kit est un logiciel fonctionnant habituellement sur un serveur Web et contenant de multiples exploits. Son but est de déterminer si des logiciels vulnérables sont présents sur l’ordinateur communiquant avec lui puis, si c’est le cas, l’exploit kit exécute l’exploit approprié sur la machine client lui permettant ainsi d’infecter la machine (drive-by download).
La plupart du temps, l’utilisation d’un exploit kit ne requiert aucune connaissance des exploits composant celui-ci ce qui rend celle-ci particulièrement aisée.
Criticité des vulnérabilités
Toutes les vulnérabilités ne représentent pas le même danger. En effet, pour être exploitées certaines nécessitent des conditions particulières et d’autres n’offrent qu’un accès limité au système. C’est pourquoi une organisation, le MITRE, s’occupe de les référencer.
Une fois qu’une vulnérabilité est découverte et rendue publique, celle-ci est ajoutée dans le dictionnaire Common Vulnerabilities and Exposures (CVE) sous la forme d’un identifiant CVE. L’évaluation de la criticité des vulnérabilités est régie par le système Common Vulnerability Scoring System (CVSS).
Cette évaluation est constituée de 3 mesures (appelées métriques) constituées de différents facteurs de risque. Plus le facteur de risque est important, plus la métrique sera élevée, 10 étant le maximum. Les vulnérabilités non référencées ou pour lesquels il n’existe aucun correctif sont dénommées par l’appellation « 0-day ». Il est à noter cela n’a aucune influence sur leur score CVSS.
Popularités des vulnérabilités
Les logiciels présentant le plus de vulnérabilités ne sont pas forcément les plus exploités. En effet, plusieurs facteurs sont à prendre en compte :
- Score CVSS
- Popularité du logiciel
- « 0-day » ou non
Score CVSS : Comme nous l’avons vu dans le paragraphe ci-dessus, plus le score CVSS d’une vulnérabilité est élevé, plus son exploitation est aisée. On peut donc en déduire que les vulnérabilités présentant un haut score CVSS seront plus susceptibles d’être exploitées que celle présentant un score plus faible.
Popularité du logiciel : Le but des exploits kits est d’infecter autant de machines que possible. Aussi, les vulnérabilités les plus exploitées concernent des produits multi-plate-formes ou encore le système d’exploitation Windows et ses applications (près de 90% des terminaux non mobiles connectés).
« 0-day » ou non : Une vulnérabilité de type « 0-day » peut être exploitable durant des mois, voire des années. Le développement d’un exploit est donc particulièrement rentable (voir partie II).
Démonstration:
En 2015, le MITRE a référencé 654 vulnérabilités concernant le système Mac OS ainsi que les logiciels Apple. Microsoft occupe la deuxième place avec 571 vulnérabilités.
Cependant, si l’on compare ces chiffres avec celui des vulnérabilités les plus exploitées, on se rend compte que les huit premières places sont occupées par Adobe Flash Player, qui n’occupe pourtant que la 5ème place dans le classement des applications les plus vulnérables.
Si nous analysons le cas de la vulnérabilité CVE-2015-0313, la plus exploitée, on se rend compte que son score CVSS est de 10, qu’elle est multi-plate-forme (Windows, Mac OS, et Linux) et qu’elle est de type « 0-day ».
Protections passives
De nombreux exploits encore utilisés aujourd’hui ciblent des vulnérabilités pour lesquelles des correctifs sont disponibles. Aussi, il est conseillé de maintenir à jour les logiciels présents sur le système et principalement les logiciels à risques, tels que :
- Le système d’exploitation
- Les navigateurs WEB et leurs plug-ins (Flash Player, SilverLight, Java, etc.)
- Les lecteurs de fichiers PDF
Ceci ne sera bien entendu pas efficace contre les exploits de type « 0-day ».
Une autre approche est de considérer le navigateur comme le point d’entrée des exploits et de le cloisonner via un système de Sandbox. Dans ce contexte, même si un exploit est exécuté et un malware installé sur le système hôte, il est, la plupart du temps, aisé de le supprimer. Toutefois, ce type de protection n’empêche pas le vol d’information en cas d’exploitation réussie.
Il est également possible de filtrer les requêtes entre le navigateur et de n’autoriser que le trafic légitime. Ceci est rendu possible pas des logiciels tels que NoScript ou uMatrix.
Bien que très efficace, le principal inconvénient de cette approche est un fort investissement utilisateur.
Protections actives
Des logiciels ont été développés pour lutter contre les exploits inconnus ou pour réaliser la mitigation d’exploits « 0-day » ; il s’agit d’anti-exploits. On peut notamment citer ici Enhanced Mitigation Experience Toolkit (EMET) ou encore Malwarebytes Anti-Exploit (MBAE).
La plupart des méthodes utilisées par les exploits (voir partie III) sont connues et ces logiciels permettent de les détecter et ainsi de les rendre inefficaces.Cependant, ces outils ne sont pas infaillibles et les logiciels malveillants s’adaptent constamment pour les contourner.
Conclusion
Les exploits kits jouent un rôle prépondérant dans la propagation des logiciels malveillants, car ils permettent à l’attaquant d’installer silencieusement ceux-ci, sans aucune interaction avec l’utilisateur. Les produits pour lesquels le plus de failles ont été découvertes ne sont pas forcément les moins sûrs ou les plus exploités. Il n’existe pas de solution infaillible pour se prémunir contre ce genre de menace. Aussi, il est conseillé d’allier protections passives et actives, de manière à réduire au maximum la surface d’attaque potentielle.