Was ist Haufenspritzen?
Das Sprühen von Haufen ist eine Hacking-Technik, mit der Schwachstellen in Computersoftware ausgenutzt werden. Es dient dazu, die Kontrolle über ein Programm zu erlangen, indem es einen Teil seines Speichers ausnutzt. Sobald ein Teil des Speichers durch den Hacking-Code gesteuert wird, kann der Hacker die Ausführung des Codes steuern, indem er einen Pufferüberlauf im Heap-Bereich des Speichers implementiert. Die häufigste Anwendung für das Sprühen von Haufen ist das Hacken von Webbrowsern wie Internet Explorer®.
Ein "Heap" ist ein dynamischer Speicherblock, den der Computer einem bestimmten Programm zuweist, der so genannt wird, weil der Computer dem Programm einen virtuellen Speicherstapel zuweist. Dies kann wie Stauraum in einem Schrank oder Schreibtisch gedacht werden. Dieser Speicherhaufen gehört zum Programm, bis die Software oder der Erfassungscode des Betriebssystems ihn freigibt. Der Erfassungscode ist einfach ein ausfallsicheres Gerät, das Speicher zurückerhält, wenn das Programm abstürzt oder die Software selbst den Speicher nicht freigibt, nachdem sie die Verwendung beendet hat.
Beim Heap-Sprühen versucht ein Hacker, den Speicherheap mit einem bestimmten Teil des Codes zu "besprühen". Das Ziel ist es, den Code an einer bestimmten Position im Speicherhaufen des Programms zu platzieren, z. B. eine Brechstange in den Rand eines Türrahmens einzuklemmen, um eine Hebelwirkung zum Öffnen der Tür zu erzielen. Nachdem die Informationen durch Heißsprühen in den Speicherhaufen eingeklemmt wurden, kann der Hacker entweder den Haufen oder den gesamten Speicherpuffer überlaufen lassen, was zu Fehlern im System führt. Sobald Fehler auftreten, kann der Hacker diese nutzen, um seinen eigenen Code auf dem System auszuführen.
Das Sprühen von Haufen funktioniert aufgrund der dynamischen Zuweisung von Speicher im System. Das Computerprogramm "besitzt" vorerst im Wesentlichen den gesamten Speicherblock, sodass der Hacker den relativen Speicherort im Speicher, den der Computer dem Programm zugewiesen hat, bereits kennt. Daher benötigt der Hacker wenig Spezifität, um seinen Code in die Ritzen zu zwängen. Er kann den Code blind aufsprühen und weiß, dass der Speicherblock immer vorhanden ist, solange das Programm weiter ausgeführt wird. Dies könnte mit dem Versuch verglichen werden, ein Schloss mit verbundenen Augen zu öffnen. Die Aufgabe wird fast unmöglich, wenn sich die Sperre bewegt, aber solange sie an einem festen Ort verbleibt - ebenso wie der Speicherhaufen im System - wird der Auftrag möglich.