La nouvelle technologie de protection de la mémoire de Microsoft déjouée

La technologie Control Flow Guard, introduite avec Windows 8.1 Update 3 et Windows 10 avait été présentée comme le nouveau rempart contre les attaques de corruption de mémoire. Elle devait résister aux attaques qui avaient appris depuis longtemps à contourner les technologies de protection de la génération précédente comme la randomisation du format d’espace d’adresse (ASLR) ou la prévention de l’exécution de données (DEP).

Toutefois, à chaque introduction d’une nouvelle mesure de protection, les chercheurs et les pirates tentent de trouver une manière de la contourner.

Control Flow Guard n’aura pas fait exception à la règle.

Ce vendredi, lors de la conférence DerbyCon qui se tient à Louisville dans l’état du Kentucky (Etats-Unis), le chercheur Jared DeMott de la société Bromium doit présenter un discours sur le contournement de CFG. Jared DeMott a signalé à Threatpost que Bromium avait dévoilé cette technique à Microsoft avant la conférence Black Hat, mais la société avait décidé de ne pas éliminer le problème et elle avait même estimé que cette information ne valait pas une récompense.

Microsoft s’est abstenue de tout commentaire. Jared DeMott a déclaré que Microsoft répondu à Bromium que la méthode de contournement présentée ne fonctionnait pas sur tous les systèmes et qu’il était difficile de l’utiliser en tant que vecteur d’attaque.

« Microsoft nous a dit que la méthode fonctionne uniquement avec les applications 32 bits exécutées sur un système 64 bits, et encore pas sur tous. J’ai fait remarqué à Microsoft qu’Internet Explorer fonctionne par défaut comme une application 32 bits sur sous la version 64 bits de Windows et la méthode que nous avons découverte fonctionne pour ce navigateur » a expliqué Jared DeMott.

D’après le chercheur, la méthode de contournement de la technologie CFG repose sur le fait que Microsoft a décidé de ne pas utiliser la technologie Control Flow Integrity en plus de la technologie Control Flow Guard.

« Quand Control Flow Integrity est mise en oeuvre, elle introduit des vérifications complémentaires avant l’appel du pointeur sur fonction et le renvoi de l’adresse de retour, ce qui fait de l’adresse correcte le seul endroit valide pour le retour. Microsoft a décidé qu’il n’était pas nécessaire de déployer complètement Control Flow Integrity ; Control Flow Guard protège uniquement les pointeurs sur fonction et non pas les adresses de retour ».

Control Flow Guard est une technologie Visual Studio est également intégrée au nouveau navigateur Microsoft Edge lancé au début de l’été. La technique précédente de contournement de la technologie CFG avait été découverte par des chercheurs de Core Security en mars de cette année.

«[CFG] analyse le code des sauts indirects sur la base des pointeurs et limite les sauts aux seuls sauts vers les points d’entrée de la fonction dont l’adresse a été utilisée » peut-on lire dans le rapport de Microsoft qui décrit les fonctions du système de sécurité dans le navigateur Edge. « Pour l’individu malintentionné, il est plus compliqué de s’emparer d’une application, cela limite fortement la capacité d’une attaque de corruption de mémoire a réalisé un saut ».

D’après Jared DeMott, la caractéristique clé de la technique de contournement se situe au niveau de la possibilité d’endommager l’adresse de retour et de lancer une série d’événements qui vont entraîner une chaîne ROP (Retourn-Oriented Programming), à la base de la majorité des attaques de corruption de mémoire. La technique découverte par Bromium s’appelle Stack Desync et repose sur l’utilisation de différentes conventions d’appel de fonction.

« Si vous les mélangez, quand vous invoquez un pointeur sur fonction et que le système attend la convention standard mais en reçoit une autre, la pile se désynchronise et renvoie une adresse aléatoire » explique Jared DeMott. « Si vous ne protégez pas l’adresse de retour, le modèle est brisé. Si vous ne protégez pas l’adresse de retour, vous laissez la porte ouverte à la méthode que nous utilisons. Il est possible de tout mélanger au niveau de la pile à tel point que l’appel ne revienne pas à l’adresse correcte, mais au début du code de l’attaque.

Cette attaque n’est pas simple à mettre en oeuvre et ne se justifie que dans le cadre d’une opération appuyée par les services secrets d’un gouvernement. Cette attaque donne un point d’accès au réseau et ouvre la porte à des attaques secondaires qui peuvent entraîner une fuite de données ou une élévation des privilèges.

Jared DeMott précise qu’il « s’agit d’une nouvelle étape dans le jeu classique du chat et de la souris dans la corruption de mémoire. Toute cette étude, même si son contenu peut faire peur, ne fait que placer la barre plus haut pour les individus malintentionnés. [Microsoft] a décidé de ne pas corriger l’erreur et estime qu’il s’agit de la meilleure solution. Il existe un léger risque mais notre technique n’est pas disponible partout ».

Source: Threatpost

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *