Pour le hacker Gil Dabah, l’heure de la moisson a sonné. Cet expert en sécurité s’est penché pendant plus d’un an sur le kernel de Windows et, en particulier, sur le composant « win32k » qui gère l’affichage sur les systèmes 32bit. Ce code date des années 90 et se retrouve encore aujourd’hui dans toutes les versions de Windows, pour des raisons de compatibilité.
Gil Dabah vient de publier une étude dans laquelle il démontre l’existence d’une nouvelle famille de failles de sécurité qu’il a baptisée « SmashTheRef » et qui permet l’exécution de code avec les privilèges du kernel. Il en a trouvé 13 pour lesquelles il a publié un code de démonstration sur GitHub, et une quinzaine d’autres potentiellement exploitables.
Guys & girls!
Exactly a year ago I promised over 15 bugs in win32k.
You're welcome to read and find out about my biggest research so far: #win32k #SmashTheRef bug class – https://t.co/niPACKBBLd
Check out the paper and the POCs, there are some crazy stuff going on. Promise!— Gil Dabah (@_arkon) April 1, 2020
Contacté par 01net, le chercheur nous assure que toutes les failles démontrées ont été patchées par Microsoft au fil de l’eau. L’éditeur plancherait également sur un correctif global, permettant de supprimer d’un coup toute cette famille de failles. Mais ce n’est pas si simple, car le code est ancien et assez complexe.
« Microsoft a modifié certaines parties clés du code, mais cela ne résout pas totalement le problème », nous précise-t-il.
Quel est concrètement le soucis ? À l’origine, win32k ne faisait pas partie du noyau de Windows, mais a fini par y être intégré en raison de son importance grandissante. Le fonctionnement qui en a découlé est assez complexe, avec à la clé des va-et-vient incessants entre la zone du noyau (« kernel land ») et les fonctions accessibles à l’utilisateur (« user land »).
En 2008 et 2011, des chercheurs ont montré qu’il était possible d’exploiter ces allers-retours pour générer des bugs de type « Use after free ». Un objet créé par le kernel — une fenêtre par exemple — pouvait être détruit côté utilisateur tout en préservant son pointeur, ce qui permettait d’accéder de manière non légitime à une zone mémoire du kernel. Microsoft a introduit des correctifs et « aujourd’hui, ces bugs n’existent quasiment plus », souligne Gil Dabah dans son document.
Tel père, tel fils
Mais l’expert a trouvé une variante à ces attaques, en ciblant cette fois les objets subordonnés. La destruction de l’objet-père entraîne toujours celle de l’objet-fils, mais la zone mémoire de ce dernier n’est pas toujours parfaitement relâchée. Gil Dabah a trouvé des techniques sophistiquées permettant de la récupérer et de provoquer, une nouvelle fois, un bug de type « Use after free ».
Au passage, le chercheur a également trouvé une poignée d’autres failles dans win32k qui n’étaient liées à la vulnérabilité SmashTheRef. Elles ont également été patchées par Microsoft. Au total, il a donc publié plus d’une quinzaine de preuves de failles dans le kernel Windows en l’espace d’un an. « Et je continue à en trouver d’autres que j’envoie à Microsoft », nous indique-t-il. Un bel exploit qui force le respect.
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.