Zum Inhalt springen

Speichersicherheit aus Sicht der Verteidigung

Den Bug verstehen.Die Mitigation ausliefern.

Eine strukturierte Referenz zu Speicherkorruptions-Schwachstellen in C und C++: wie Stack- und Heap-Überläufe, Use-after-free und Integer-Bugs entstehen und wie Compiler, Sanitizer, Fuzzer und sicherere Sprachen sie stoppen.

Bereiche
7
ausführliche Leitfäden
11
Glossarbegriffe
15

Speicherkarte

Sieben Bereiche, ein Bug-Lebenszyklus

Beginnen Sie mit dem Speicherlayout, lernen Sie die Fehlerklassen kennen, die ihn korrumpieren, und dann die Schichten, die sie verhindern, finden, eindämmen und priorisieren.

Defense in Depth

Keine einzelne Maßnahme reicht

Jede Mitigation hat Lücken. Echte Widerstandsfähigkeit entsteht durch gestaffelte Schichten: Ein Bug, der eine Schicht passiert, wird von der nächsten erkannt oder eingedämmt.

  1. Verhindern

    Speichersichere Sprachen, grenzgeprüfte APIs, Compiler-Warnungen und Code-Reviews verhindern, dass Bugs entstehen.

    • Rust
    • std::span
    • -Wformat=2
    • ckd_add
  2. Erkennen

    ASan, UBSan und coverage-gesteuertes Fuzzing decken geschriebene Bugs auf, bevor es ein Angreifer tut.

    • ASan
    • UBSan
    • libFuzzer
    • AFL++
  3. Eindämmen

    Canaries, NX, ASLR/PIE, RELRO, CFI und Shadow Stacks erschweren die Ausnutzung verbleibender Bugs.

    • canary
    • NX
    • PIE
    • RELRO
    • CET
  4. Reagieren

    Crash-Triage, Core-Dumps und Deduplizierung machen aus Abstürzen im Feld priorisierte Fixes.

    • gdb
    • coredumpctl
    • !analyze

Neueste Leitfäden

Die ausführlichen Analysen lesen

Leitfäden erscheinen zuerst auf Englisch. Übersetzungen folgen.

Alle Leitfäden
0x6000 · LernpfadEnglisch

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 · Bugs findenEnglisch

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 · Exploit-MitigationenEnglisch

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.

Redaktionelle Linie

Defensiv by Design

Wer Exploitation versteht, versteht, warum Mitigationen sinnvoll sind. Wir erklären die Mechanik auf dem Niveau, das Entwickler, Reviewer und Incident Responder brauchen, und hören vor der Bewaffnung auf.

Was Sie hier finden

  • Verwundbare Muster direkt neben ihren Fixes
  • Compiler-, Linker- und Sanitizer-Optionen für die Praxis
  • Mitigationen mit checksec und readelf prüfen
  • Crash- und Sanitizer-Berichte lesen

Was wir nie veröffentlichen

  • Funktionierende Exploit-Ketten oder Shellcode
  • Schritt-für-Schritt-Umgehungen von Mitigationen
  • Payloads gegen reale Software
  • Lösungen laufender CTF-Challenges