Logiciels malveillants

Bogue de sécurité: Windows 8 et 10 ne randomisent pas correctement les adresses des applications

Une des défenses contre les logiciels malveillants est d’attribuer à une application, et à ses zones de données, à chacun de ses démarrages, une adresse en mémoire randomisée.

Cela rend les attaques par corruption de la mémoire, telle que le dépassement de tampon, ainsi que les attaques par réutilisation de code, presque impossibles.

Une telle technique, nommée Adress Space Layout Randomization (ASLR) ou distribution aléatoire de l’espace d’adressage, est présente dans Windows depuis plus de dix ans, à partir de Windows Vista.

Les applications elles-mêmes peuvent demander à Windows d’être chargées de manière aléatoire, en utilisant l’option /DYNAMICBASE lors de leur compilation.

Windows dispose également d’options pour forcer l’ASLR pour certaines, ou pour toutes les applications, qu’elles le souhaitent ou non, via EMET, et depuis Windows 10 Falls Creators Update, via Windows Defender Exploit Guard :

Centre de sécurité Windows Defender - Exploit Protection
Centre de sécurité Windows Defender – Exploit Protection

Dans le dernier cas, On trouve l’option sous Centre de sécurité Windows Defender / Contrôle des applications et du navigateur / Paramètres d’Exploit protection / Forcer la randomisation des images.

Le problème pour Windows 8 et Windows 10 est que l’allocation de mémoire aléatoire par randomisation du format d’espace d’adresse de bas en haut n’est pas activée par défaut. L’adresse est bien randomisée, mais une seule fois. Après un premier lancement, l’application va toujours être lancée à l’adresse de première randomisation.

Ce qui rend l’exploitation de certaines classes de vulnérabilité plus facile.

Dans le cas de Windows 10 Falls Creators Update, l’allocation de mémoire aléatoire par randomisation du format d’espace d’adresse de bas en haut est bien activée dans l’interface utilisateur du Centre de sécurité Windows Defender, mais la valeur correspondante dans le registre est incorrecte.

Microsoft a été averti jeudi 16 novembre 2017 du bogue de sécurité, on peut donc attendre un correctif rapidement.

Ceux qui ne souhaitent pas attendre peuvent importer, d’après l’US CERT, la valeur suivante dans le registre :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"MitigationOptions"=hex :00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00

Cela n’est pas recommandé au grand public, car l’utilisation de l’ASLR pour tout le système risque d’occasionner des problèmes avec certaines cartes AMD/ATI.