Windows 8 peut rendre les navigateurs plus résistants aux attaques

Mais pas vous rendre plus beau 30
Vincent Hermann
La semaine dernière, le concours de sécurité pwn2own a prouvé qu’il fallait désormais recourir à plusieurs failles de sécurité pour pénétrer les défenses de plusieurs navigateurs, dont Chrome et Internet Explorer 9. Certaines défenses instaurées dans Windows depuis Vista ont permis de renforcer les défenses, mais un pirate motivé finit toujours par trouver une brèche. Microsoft vient de détailler plusieurs protections supplémentaires dans Windows 8 dont toutes les applications pourront tirer parti.

Dans Vista et Windows 7, deux techniques particulières ont renforcé la sécurité des applications, en particulier Internet Explorer. Il s’agit de la DEP/NX (Data Execution Prevention or No eXecute) et de l’ASLR (Address Space Layout Randomization). La première doit empêcher les dépassements de mémoire tampon en réglant cette dernière en lecture seule, tandis que la seconde déplace les données pour qu’elles ne soient jamais dans des espaces mémoires prévisibles.

windows 8 win8 aslr 

Dans la pratique, l’une comme l’autre peuvent être contournées. C’est ce qui s’est passé notamment pour Chrome avec l’équipe de la société VUPEN durant le concours pwn2own. L’ASLR en particulier contient plusieurs limites, comme le rappelle Ars Technica :
  • Les applications doivent s’en servir volontairement, via le flag /DYNAMICBASE à la compilation
  • Le caractère aléatoire de l’allocation de mémoire est limité, notamment à cause de l’espace adressable
  • Une application peut choisir l’ASLR, mais ce réglage n’est pas valable pour les plug-ins embarqués. Un constat particulièrement vrai pour les navigateurs justement : si le pirate connaît l’emplacement en mémoire du lecteur Flash par exemple, il peut en utiliser une brèche.
  • Toutes les données ne sont pas forcément placées aléatoirement en mémoire

Les mesures de protection renforcée

Microsoft a donc mis en place une série d’améliorations dans Windows 8 pour régler l’ensemble de ces limitations. Premièrement, le nombre d’éléments à être concernés par l’allocation aléatoire a été nettement augmenté. La prévisibilité est en effet la principale faiblesse de l’ASLR.

Deuxièmement, un navigateur Metro fonctionne par défaut en 64 bits, ce qui augmente largement l’espace adressable. Ce constat peut être généralisé à toutes les applications 64 bits. Les applications peuvent activer la High Entropy Address Space Layout Randomization (HEASLR) pour profiter des grands espaces de mémoire et rendre leurs positions en mémoire beaucoup plus complexes à dénicher.

Troisièmement, et c’est de loin l’amélioration la plus importante, les applications peuvent véritablement forcer l’activation de l’ASLR, via une option nommée logiquement ForceASLR. Le changement crucial introduit répercute le choix de l’ASLR par l’application à la totalité des modules qui sont chargés, et donc toutes les DLL. En clair : un navigateur chargeant des plug-ins tels que Flash obligera ces derniers à utiliser l’ASLR, qu’ils aient été compilés pour en tirer parti ou non.

ForceASLR est un ajout crucial pour la sécurité et sera d’ailleurs la seule amélioration à être répercutée sur Windows 7. À l’installation future d’Internet Explorer 10 en effet, une mise à jour sera automatiquement mise en place pour que le système en profite. Microsoft estime cependant que des problèmes de compatibilité pourraient apparaître avec certains plug-ins et enjoint donc leurs développeurs à utiliser le flag /DYNAMICBASE lors de la compilation.

Mais même si ces protections sont bienvenues et pourront profiter à toutes les applications sous Windows 8 (et 7 pour ForceASLR), elles ne représentent une barrière absolue. Ars Technica a en effet interrogé l’équipe de VUPEN qui estime qu’il existera toujours un moyen de passer. Toutefois, l’objectif de Microsoft est de rendre ces contournements beaucoup plus complexes et donc onéreux à produire.