Aller au contenu

La sûreté mémoire, côté défense

Comprendre le bug.Livrer la mitigation.

Une référence structurée sur les vulnérabilités de corruption mémoire en C et C++ : comment naissent débordements de pile et de tas, use-after-free et bugs d'entiers, et comment compilateurs, sanitizers, fuzzers et langages plus sûrs les arrêtent.

domaines
11
guides approfondis
35
termes du glossaire
28

Carte mémoire

Sept domaines, un cycle de vie du bug

Commencez par l'organisation de la mémoire, découvrez les classes de bugs qui la corrompent, puis les couches qui les préviennent, les détectent, les contiennent et les trient.

Défense en profondeur

Aucun contrôle ne suffit seul

Chaque mitigation a ses angles morts. La vraie résilience vient de l'empilement des couches : un bug qui passe l'une est détecté ou contenu par la suivante.

  1. Prévenir

    Langages sûrs pour la mémoire, API avec vérification des bornes, avertissements du compilateur et revue de code empêchent d'écrire les bugs.

    • Rust
    • std::span
    • -Wformat=2
    • ckd_add
  2. Détecter

    ASan, UBSan et le fuzzing guidé par la couverture révèlent les bugs écrits, avant un attaquant.

    • ASan
    • UBSan
    • libFuzzer
    • AFL++
  3. Mitiger

    Canaris, NX, ASLR/PIE, RELRO, CFI et shadow stacks rendent les bugs restants difficiles à exploiter.

    • canary
    • NX
    • PIE
    • RELRO
    • CET
  4. Réagir

    Triage des crashs, core dumps et déduplication transforment les crashs terrain en correctifs priorisés.

    • gdb
    • coredumpctl
    • !analyze

Derniers guides

Lire les analyses approfondies

Tous les guides
0x9000 · Exploitation du noyau

KASLR, KPTI et défenses modernes du noyau

Randomisation d'adresses, isolation des tables de pages et options de configuration qui durcissent un noyau Linux : ce que chacune arrête et comment l'activer.

0x9000 · Exploitation du noyau

Exploitation du noyau : d'un bug à root

Un bug mémoire du noyau vise le privilège, pas un shell : modèle de credentials, charge commit_creds(prepare_kernel_cred(0)), retour propre en userspace.

0x9000 · Exploitation du noyau

ret2usr, SMEP et SMAP

Le noyau faisait confiance à la mémoire userspace. SMEP et SMAP y ont mis fin — et voici comment le ROP noyau les contourne.

0xa000 · Exploitation Windows

Contourner DEP sous Windows avec ROP

DEP rend le shellcode sur la pile inexécutable ; une chaîne ROP appelle VirtualProtect pour rendre la région exécutable, puis y saute.

Ligne éditoriale

Défensif par conception

Comprendre l'exploitation donne tout son sens aux mitigations. Nous expliquons les mécanismes au niveau dont ont besoin un développeur, un relecteur ou un intervenant en réponse à incident, sans aller jusqu'à l'armement.

Ce que vous trouverez

  • Les motifs vulnérables à côté de leurs correctifs
  • Les options de compilateur, d'éditeur de liens et de sanitizers à livrer
  • Comment vérifier les mitigations avec checksec et readelf
  • Comment lire les rapports de crash et de sanitizers

Ce que nous ne publions jamais

  • Des chaînes d'exploitation fonctionnelles ou du shellcode
  • Des contournements de mitigations pas à pas
  • Des charges visant des logiciels réels
  • Les solutions d'épreuves CTF en cours