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
11
ausführliche Leitfäden
35
Glossarbegriffe
28

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
0x9000 · Kernel-ExploitationEnglisch

KASLR, KPTI and Modern Kernel Defenses

Kernel address randomization, page-table isolation, and the config options that harden a Linux kernel against memory-corruption exploits — what each one stops and how to enable it.

0x9000 · Kernel-ExploitationEnglisch

Kernel Exploitation: From a Bug to root

A kernel memory-corruption bug is about privilege, not a shell. The credential model, the commit_creds(prepare_kernel_cred(0)) payload, and returning cleanly to userspace — in a lab VM.

0x9000 · Kernel-ExploitationEnglisch

ret2usr, SMEP and SMAP

The kernel once trusted userspace memory, so exploits just pointed kernel execution at a user payload. SMEP and SMAP ended that — and how kernel ROP works around them.

0x2000 · Exploit-MitigationenEnglisch

The Mitigation Stack: Which Defenses, In Order

Every exploit walks the same stages: bug, corruption, hijack, code execution, escalation. A defender's checklist of which mitigation stops each — across Linux, ARM, Windows and the kernel.

0xa000 · Windows-ExploitationEnglisch

Bypassing DEP on Windows with ROP

DEP makes stack shellcode unrunnable, so a Windows ROP chain calls VirtualProtect to mark the shellcode region executable, then jumps to it. Build it with mona, then see ASLR and CFG respond.

0xa000 · Windows-ExploitationEnglisch

Windows Flow-Integrity Mitigations: CFG and CET

How SafeSEH, SEHOP, ASLR, Control Flow Guard and hardware CET each close a Windows exploitation technique — what they check, how to enable them, 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