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
7
guides approfondis
11
termes du glossaire
15

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

Les guides sont publiés d'abord en anglais. Les traductions suivront.

Tous les guides
0x6000 · Parcours d'apprentissageAnglais

A Binary Exploitation Learning Path Through CTFs

A staged, legal path from C and assembly to CTF pwn challenges: what to learn in which order, practice platforms built for it, lab rules, and how it leads to defensive careers.

0x3000 · Trouver les bugsAnglais

Coverage-Guided Fuzzing with libFuzzer and AFL++

Write a fuzz harness, build it with sanitizers, run libFuzzer and AFL++, manage corpora and dictionaries, and run continuous fuzzing in CI with OSS-Fuzz or ClusterFuzzLite.

0x2000 · Mitigations d'exploitationAnglais

Control-Flow Integrity: CFI, Intel CET and Arm PAC/BTI

How forward-edge and backward-edge control-flow integrity work, from Clang CFI and Microsoft CFG to Intel CET shadow stacks and Arm pointer authentication, and their limits.

Glossaire

Parler la même langue

Des définitions courtes et précises des termes rencontrés dans les avis de sécurité, les rapports de crash et la documentation des compilateurs.

Ouvrir le glossaire

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