in

Qu’est-ce que l’ASLR et comment protège-t-il votre ordinateur?

La randomisation de la disposition de l’espace d’adressage (ASLR) est une technique de sécurité utilisée dans les systèmes d’exploitation, mise en œuvre pour la première fois en 2001. Les versions actuelles de tous les principaux systèmes d’exploitation (iOS, Android, Windows, macOS et Linux) disposent d’une protection ASLR. Mais la semaine dernière, une nouvelle méthode de contournement de l’ASLR a été trouvé. Alors, devriez-vous vous inquiéter?

Pour ceux qui n’ont pas une expérience de programmation de bas niveau, ASLR peut être déroutant. Pour le comprendre, vous devez d’abord comprendre la mémoire virtuelle.

Qu’est-ce que la mémoire virtuelle?

La mémoire virtuelle est une technique de gestion de la mémoire avec de nombreux avantages, mais elle a été principalement créée pour faciliter la programmation. Imaginez que vous avez Google Chrome, Microsoft Word et plusieurs autres programmes ouverts sur un ordinateur avec 4 Go de RAM. Dans l’ensemble, les programmes de cet ordinateur utilisent beaucoup plus de 4 Go de RAM. Cependant, tous les programmes ne seront pas actifs à tout moment ou n’auront pas besoin d’un accès simultané à cette RAM.

Le système d’exploitation alloue des morceaux de mémoire aux programmes appelés des pages. S’il n’y a pas assez de RAM pour stocker toutes les pages à la fois, les pages les moins susceptibles d’être nécessaires sont stockées sur le disque dur plus lent (mais plus spacieux). Lorsque les pages stockées sont nécessaires, elles changeront d’espaces avec des pages moins nécessaires actuellement dans la RAM. Ce processus est appelé pagination et prête son nom au fichier pagefile.sys sous Windows.

La mémoire virtuelle permet aux programmes de gérer plus facilement leur propre mémoire et les rend également plus sécurisés. Les programmes n’ont pas besoin de se soucier de l’endroit où les autres programmes stockent les données ou de la quantité de RAM restante. Ils peuvent simplement demander au système d’exploitation de la mémoire supplémentaire (ou renvoyer de la mémoire inutilisée) si nécessaire. Tout ce que le programme voit, c’est un seul morceau continu d’adresses de mémoire pour son usage exclusif, appelé adresses virtuelles. Le programme n’est pas autorisé à consulter la mémoire d’un autre programme.

Lorsqu’un programme a besoin d’accéder à la mémoire, il donne au système d’exploitation une adresse virtuelle. Le système d’exploitation contacte l’unité de gestion de la mémoire (MMU) de la CPU. La MMU traduit entre les adresses virtuelles et physiques, renvoyant ces informations au système d’exploitation. A aucun moment le programme n’interagit directement avec la RAM.

Qu’est-ce que l’ASLR?

La randomisation de la disposition de l’espace d’adressage (ASLR) est principalement utilisée pour se protéger contre les attaques par débordement de tampon. Dans un buffer overflow, les attaquants alimentent une fonction autant de données indésirables qu’elle peut en traiter, suivies d’une charge utile malveillante. La charge utile écrasera les données auxquelles le programme a l’intention d’accéder. Les instructions pour passer à un autre point du code sont une charge utile courante. La célèbre méthode JailbreakMe de jailbreaking d’iOS 4, par exemple, a utilisé une attaque par débordement de tampon, incitant Apple à ajouter ASLR à iOS 4.3.

Les débordements de tampon obligent un attaquant à savoir où se trouve chaque partie du programme en mémoire. Comprendre cela est généralement un processus difficile d’essais et d’erreurs. Après avoir déterminé cela, ils doivent créer une charge utile et trouver un endroit approprié pour l’injecter. Si l’attaquant ne sait pas où se trouve son code cible, il peut être difficile voire impossible de l’exploiter.

ASLR fonctionne parallèlement à la gestion de la mémoire virtuelle pour randomiser les emplacements des différentes parties du programme en mémoire. Chaque fois que le programme est exécuté, les composants (y compris la pile, le tas et les bibliothèques) sont déplacés vers une adresse différente dans la mémoire virtuelle. Les attaquants ne peuvent plus savoir où se trouve leur cible par essais et erreurs, car l’adresse sera différente à chaque fois. En règle générale, les applications doivent être compilées avec le support ASLR, mais cela devient la valeur par défaut et est même requis sur Android 5.0 et versions ultérieures.

Alors, l’ASLR vous protège-t-il toujours?

Mardi dernier, des chercheurs de SUNY Binghamton et de l’Université de Californie à Riverside ont présenté un article intitulé Jump Over ASLR: Attaquer les prédicteurs de branche pour contourner ASLR. Le papier détaille une manière d’attaquer le tampon de cible de branche (BTB). Le BTB fait partie du processeur qui accélère les déclarations if en prédisant le résultat. En utilisant la méthode des auteurs, il est possible de déterminer les emplacements des instructions de branchement connues dans un programme en cours d’exécution. L’attaque en question a été effectuée sur une machine Linux avec un processeur Intel Haswell (sorti pour la première fois en 2013), mais pourrait probablement être appliquée à n’importe quel système d’exploitation et processeur modernes.

Cela dit, il ne faut pas nécessairement désespérer. Le document proposait aux développeurs de matériel et de système d’exploitation plusieurs moyens d’atténuer cette menace. Des techniques ASLR plus récentes et à grain fin nécessiteraient plus d’efforts de la part de l’attaquant, et augmenter la quantité d’entropie (caractère aléatoire) peut rendre l’attaque Jump Over impossible. Très probablement, les nouveaux systèmes d’exploitation et processeurs seront immunisés contre cette attaque.

Alors que reste-t-il pour toi faire? Le contournement Jump Over est nouveau et n’a pas encore été repéré dans la nature. Lorsque des attaquants l’exploitent, la faille augmente les dommages potentiels qu’un attaquant peut causer sur votre appareil. Ce niveau d’accès n’est pas sans précédent; Microsoft et Apple n’ont implémenté ASLR que dans leurs systèmes d’exploitation publiés en 2007 et versions ultérieures. Même si ce style d’attaque devient monnaie courante, votre situation ne sera pas pire que celle que vous étiez à l’époque de Windows XP.

Gardez à l’esprit que les attaquants doivent toujours obtenir leur code sur votre appareil pour faire du mal. Cette faille ne leur fournit aucun moyen supplémentaire de vous infecter. Comme toujours, vous devez suivre les meilleures pratiques en matière de sécurité. Utilisez un antivirus, éloignez-vous des sites Web et des programmes fragmentaires et maintenez votre logiciel à jour. En suivant ces étapes et en gardant les acteurs malveillants hors de votre ordinateur, vous serez aussi en sécurité que vous ne l’avez jamais été.

Crédit d’image: Steve/ Flickr

Laisser un commentaire

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

Qu’est-ce que le dossier «Mode Dieu» dans Windows 10 et comment l’activer?

Comment configurer et configurer des comptes d’utilisateurs sur Windows 10