Definition Pufferüberlauf-Angriff
Ein Pufferüberlauf-Angriff ist ein sicherheitsrelevanter Exploit, bei dem der Angreifer absichtlich den Puffer eines Programms (temporärer Speicher, der beim Verschieben von Daten verwendet wird) überlastet, um benachbarte Speicherplätze zu überschreiben. Dies kann den Ausführungspfad der App ändern, was zu beschädigten Dateien oder der Offenlegung sensibler Daten führen kann. In einigen Fällen können Angreifer sogar ausgeklügelte bösartige Skripte in den ausführbaren Code eines Programms einfügen.
Pufferüberlauf-Angriffe sind die häufigste Art von DDoS-Angriffen. Sie betreffen fast alle Anwendungen und Webserver, obwohl einige Programmiersprachen anfälliger sind als andere. Insbesondere PERL, Java, JavaScript und C# verfügen über eingebaute Schutzmaßnahmen gegen Pufferüberlauf-Angriffe.
Beispiele für echte Pufferüberlauf-Angriffe
1988: Der Morris-Wurm brachte versehentlich das ARPANET (den Vorläufer des Internets) durch einen Pufferüberlauf-Angriff zum Absturz.
2019: Hacker nutzten die Schwachstellen des Voice-over-Internet-Protokolls aus, um einen erfolgreichen Pufferüberlauf-Angriff auf WhatsApp durchzuführen und Malware in die Geräte vieler Benutzer zu injizieren.
Stoppen eines Pufferüberlauf-Angriffs
- Vermeide es, Code in C/C++ zu schreiben, da diese Programmiersprachen keinen Schutz gegen den Zugriff auf oder das Überschreiben von Daten in ihrem Speicher bieten. Verwende stattdessen PERL, Java, JavaScript oder C#.
- Setze eine Begrenzungsprüfung für Puffer ein und erzwinge sie zur Laufzeit.
- Vermeide Standard-Bibliotheksfunktionen, die beim Schreiben von Code nicht eingeschränkt wurden.
- Teste den Code auf Pufferüberläufe und behebe alle Fehler, die sie verursachen.