Zum Inhalt springen
uencoder

Buffer Overflow

Ein Pufferüberlauf tritt auf, wenn ein Programm mehr Daten in einen Puffer fester Größe schreibt, als dieser fassen kann, und dabei angrenzenden Speicher überschreibt — mit möglichen Abstürzen oder Codeausführung.

Zweck

Speicher-Sicherheitslücken verstehen und abwehren — der häufigste Sicherheitsfehlertyp in C/C++-Programmen.

Mechanismus

Mehr Bytes als die reservierte Länge in einen Stack-/Heap-Puffer zu schreiben, überschreibt angrenzenden Speicher (Rückkehradressen, andere Variablen). Ein Angreifer kann eine Rückkehradresse überschreiben, um zu Shellcode zu springen. Abwehr: Bounds Checking, ASLR, Stack Canaries, DEP/NX.

Anwendungsfälle

  • C/C++-Sicherheitsaudit
  • Exploit-Analyse
  • Speichersicherheits-Abwehr

Verwandte Tools

References