ASLR : une sécurité de Vista venue de l'open source

Ha ha, viendez me voir bande de méchants ! 119
Avec la Bêta 2 de Vista est arrivée une nouvelle fonction de sécurité qui pourrait se montrer très utile dans la lutte contre les malwares en général. Il ne s’agit pas d’une fonction importante au point de combattre à elle seule l’ensemble des menaces typiques venant d’Internet, mais elle ajoutera encore un surplus de sécurité en conjugaison avec d’autres technologies.

Cette technologie se nomme ASLR pour Address Space Layout Randomization. Elle vient en fait du monde du logiciel libre et se retrouve dans certains systèmes d’exploitation et logiciels comme OpenBSD, PaX et Exec Shield. Globalement, cette technologie a pour but de changer aléatoirement les emplacements mémoires des zones de données vitales pour le système afin que les malwares ne puissent plus se référencer à des valeurs fixes pendant une attaque.

Michael Howard, responsable sécurité chez Microsoft et auteur du livre « Security Development Lifecycle » a précisé que cette technologie ne représentait pas la panacée en elle-même mais qu’elle serait très utile au sein d’autres fonctions. En définitive, un malware conçu pour trouver une information en mémoire à un emplacement précis, ce qui est le cas sous Windows XP et d’autres systèmes d’exploitation, ne fonctionnera du fait qu’elle se trouvera ailleurs.

A chaque démarrage du PC, les adresses mémoire des DLL du système sont chargées dans un emplacement différent et aléatoire. De fait, puisque ce code représente en quelque sorte une signature du système dans le cas d'un adressage fixe, un malware considèrera qu’il s’est trompé de maison. 256 emplacements sont prévus, et un code malveillant aura donc une chance sur 256 de tomber juste. C’est une protection particulièrement utile en cas de faille, car elle empêchera 255 fois sur 256 une attaque de type « return-to-libc » qui permet d’appeler une fonction précise du système.

Howard précise que d’autres technologies se marieront très bien avec l’ASLR. Par exemple, les développeurs qui choisiront de travailler avec l’environnement WinFX au lieu de Win32 bénéficieront des sécurités propres à l’environnement .Net, comme par exemple la quasi-impossibilité de provoquer un dépassement de mémoire tampon.