La protection des régions de mémoire du noyau

Magazine
Marque
GNU/Linux Magazine
Numéro
137
Mois de parution
avril 2011


Résumé
Nous présentons dans cette brève le mécanisme de protection des régions de mémoire noyau qui a été intégré à la version 2.6.38 du noyau (sur lequel nous reviendrons au cours d'un prochain Kernel Corner). Nous commençons par expliquer ce que signifie le principe W^X, puis poursuivons sur l'agencement de l'espace d'adressage du noyau, pour enfin détailler la mise en œuvre de la protection.

1. Le principe W^X

Ce principe a été créé pour contrer certains types d'attaques informatiques classiques à base d'injection de code. L'idée est assez simple et se résume ainsi : les régions de données ne doivent pas être exécutables et les régions de code ne doivent pas être inscriptibles (W^X signifie Write xor eXec, le ^ étant l'opération binaire OU exclusif en C). Prenons l'exemple suivant pour mieux comprendre ce qui se cache derrière cette phrase.

Afin d'empêcher un attaquant d'exécuter son propre code via un débordement de tampon dans la pile d'un processus vulnérable, une solution est de rendre la pile non exécutable. Ainsi, lorsque le code malveillant, fourni en entrée du programme vulnérable (sous forme de chaîne de caractères), se voit copié dans la pile, il devient impossible pour l'attaquant de l'exécuter. En effet, le débordement de tampon qui fait suite à cette copie et qui écrase la valeur sauvegardée du compteur d'instructions avec...

Cet article est réservé aux abonnés. Il vous reste 93% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez chaque semaine un nouvel article premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Par le(s) même(s) auteur(s)

Fuddly : introduction de l’outil et développement d’un protocole

Magazine
Marque
MISC
Numéro
103
Mois de parution
mai 2019
Spécialité(s)
Résumé

Cet article présente Fuddly, un framework de fuzzing et de manipulation de données, écrit en python sous GPLv3, qui fournit de nombreuses briques que l’on retrouve dans d’autres framework de fuzzing, mais qui se différencie par la flexibilité de représentation des données et la diversité des altérations qu’il rend possible.

L'Infrastructure Linux Gadget USB

Magazine
Marque
Open Silicium
Numéro
14
Mois de parution
mars 2015
Spécialité(s)
Résumé

L'infrastructure Gadget USB du noyau Linux facilite la création de périphériques USB, en proposant un cadre et un certain nombre de primitives qui permettent d'une part d'abstraire les contrôleurs matériels de périphériques USB, et d'autre part d'en utiliser les ressources et fonctionnalités afin de créer n'importe quelle fonction USB désirée : qu'elle réponde aux standards (tels que « Mass Storage », « CDC Eth »…), qu'elle soit l'incarnation de vos besoins particuliers, ou bien encore qu'elle soit une combinaison des deux.

Les derniers articles Premiums

Les derniers articles Premium

Cryptographie : débuter par la pratique grâce à picoCTF

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’apprentissage de la cryptographie n’est pas toujours évident lorsqu’on souhaite le faire par la pratique. Lorsque l’on débute, il existe cependant des challenges accessibles qui permettent de découvrir ce monde passionnant sans avoir de connaissances mathématiques approfondies en la matière. C’est le cas de picoCTF, qui propose une série d’épreuves en cryptographie avec une difficulté progressive et à destination des débutants !

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Raspberry Pi Pico : PIO, DMA et mémoire flash

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous