Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Memory Corruption (Corruption mémoire)

hacking

Définition

La Memory Corruption, ou corruption mémoire, désigne une vaste classe de vulnérabilités logicielles dans lesquelles un programme écrit des données dans une zone mémoire non prévue par sa logique normale de fonctionnement, altérant potentiellement d'autres variables adjacentes en mémoire, des pointeurs de retour de fonction, ou des structures internes de contrôle du flux d'exécution du programme, ouvrant potentiellement la voie à une exécution de code arbitraire par un attaquant. Les manifestations les plus documentées incluent les débordements de tampon (buffer overflows), qu'ils affectent la pile d'exécution (stack overflow) en écrasant l'adresse de retour d'une fonction pour rediriger l'exécution vers un code contrôlé par l'attaquant, ou le tas (heap overflow) en corrompant des métadonnées d'allocation mémoire ou des structures adjacentes, les vulnérabilités use-after-free, où un programme continue d'accéder et d'utiliser une zone mémoire déjà libérée et potentiellement réallouée entre-temps à une autre structure de données sous le contrôle de l'attaquant, et les erreurs de type confusion, exploitant une interprétation incorrecte du type réel d'un objet en mémoire. Ces vulnérabilités touchent principalement les langages à gestion mémoire manuelle comme C et C++, dépourvus de garde-fous automatiques, et font l'objet de mitigations systémiques modernes comme ASLR, DEP et les stack canaries, ainsi que d'une migration progressive vers des langages memory-safe comme Rust.

Description

La corruption mémoire désigne une classe de vulnérabilités (buffer overflow, use-after-free, double-free, off-by-one) où un programme écrit dans des zones mémoire non prévues. Omniprésente dans les programmes C/C++ gérant manuellement la mémoire.

Exploitation

Un buffer overflow sur la pile permet d'écraser le pointeur de retour pour rediriger l'exécution. Le use-after-free exploite l'accès à de la mémoire libérée réutilisée avec un objet contrôlé par l'attaquant pour obtenir une exécution de code arbitraire.

Défense

  • Activer ASLR, DEP/NX, Stack Canaries et Control Flow Integrity sur tous les binaires
  • Utiliser des sanitizers à la compilation (AddressSanitizer, MemorySanitizer) en environnement de test
  • Migrer vers des langages à mémoire sûre comme Rust pour les composants critiques

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis