C’est un peu le syndrome de l’arroseur arrosé. Pour pouvoir faire leur travail de protection et de détection de malware, les logiciels de sécurité disposent tous d’un certain nombre de techniques plus ou moins intrusives. Parmi elles figurent le « hooking », un ensemble de techniques informatiques permettant d’injecter du code dans un processus.
Cela n’a rien d’extraordinaire à priori et ce n’est pas forcément malveillant. C’est une technique même couramment utilisée avec des fichiers DLL pour ajouter des fonctionnalités ou des comportements qui n’étaient pas prévus dans le code d’origine. « Les éditeurs de solutions de sécurité ont besoin de ces techniques, notamment pour inspecter les appels de fonctions. Mais le problème, c’est qu’elles sont souvent mal implémentées », nous explique Tomer Bitton, vice-président recherche chez EnSilo, une société spécialisée en sécurité, à l’occasion de la conférence BSides San Francisco, qui s’est déroulée hier 29 février.
Avec son collègue Udi Yavo, il a décortiqué une douzaine de solutions de sécurité: antivirus, pare-feu réseaux, pare-feu personnels… Résultat: tous étaient vulnérables à l’exploitation potentielle par un pirate, sur tous les systèmes Windows et sans grande difficulté. C’est un comble. « Au total, nous avons découvert six failles différentes, dont quatre très critiques, permettant d’exécuter du code arbitraire. De plus, le pirate n’a même pas besoin d’un accès administrateur, les privilèges de l’utilisateur sont suffisants », poursuit Tomer Bitton, qui en a profité pour faire la démonstration à l’aide d’un fichier PDF piégé.
Un développement perfectible
Les deux spécialistes ont évidemment pris contact avec les éditeurs. La plupart d’entre eux ont depuis apporté des correctifs. Mais pas tous, c’est pourquoi ils n’ont pas cité les noms des logiciels analysés. On en connait au moins trois: AVG Internet Security 2015, Kaspersky Total Security 2015 et McAfee Virus Scan Enterprise. Dans une note de blog de décembre dernier, les deux chercheurs avaient déjà révélé avoir trouvé des failles de ce type dans ces trois logiciels, ce qui les a incité à élargir leur recherche.
Au travers des contacts qu’ils ont eu avec les éditeurs, les deux chercheurs ont été surpris de constater que les développeurs des logiciels ne travaillent pas forcément en liens étroits avec les analystes de malware. C’est dommage, car ces derniers connaissent pourtant bien les problèmes liés au « hooking ». Le processus de développement de ces éditeurs est donc clairement perfectible.
MM. Bitton et Yano ne se sont pas arrêtés à la simple observation. Ils ont développé un outil baptisé « AVulnerabilityChecker » qui détecte certaines des failles trouvées dans les logiciels. Il est disponible sur GitHub, mais plutôt destiné aux utilisateurs avancés. Un second outil complémentaire sera également bientôt disponible.
Une avalanche de failles
Ce n’est pas la première fois que les éditeurs de solutions de sécurité soient épinglés de cette sorte. Durant les derniers mois, ils ont été nombreux a être exposés par le chercheur Tavis Ormandy de Google, qui a trouvé des failles chez Avast, Comodo, AVG, Kaspersky, Malwarebytes, Trend Micro et FireEye. Un vrai feu d’artifice. Et en janvier dernier, à l’occasion de la conférence Shmoocon 2016, Patrick Wardle de la société Synack a montré une attaque par interception dans Kaspersky Internet Security et des failles dans le logiciel Gatekeeper d’Apple. La saison de chasse ouverte.