Heap Spraying
Was ist Heap Spraying?
Heap SprayingExploit-Primitive, die den Heap mit vielen Kopien eines Payloads fuellt, sodass ein korrupter Pointer mit hoher Wahrscheinlichkeit auf angreiferkontrollierte Daten zeigt.
Heap Spraying belegt grosse Speicherbereiche mit vorhersehbaren Kopien aus NOP-Sled und Shellcode (in modernen Varianten ROP-Gadgets oder gefaelschten vTables). Wenn ein Angreifer einen Memory-Corruption-Bug ausloest, etwa Use-after-Free oder Type Confusion in einem Browser, lenkt er den korrupten Pointer auf eine plausible Adresse (historisch 0x0c0c0c0c), an der der Spray die gewuenschten Bytes garantiert. Bekannt wurde die Technik durch Skylineds Internet-Explorer-Exploit 2004, sie ist bis heute bei Browser-, Dokument- und Font-Parser-Exploits gaengig. Moderne Gegenmassnahmen: hochentropisches ASLR, partitionierte Heaps (PartitionAlloc, Heap Isolation in Edge), Control-Flow Integrity und JIT-Mitigationen.
● Beispiele
- 01
Hunderte MB JavaScript-Strings mit Shellcode allokieren, sodass 0x0c0c0c0c nach einem Use-after-Free ausfuehrbar wird.
- 02
Adobe-Flash-Exploits mit Vector<uint>-Sprays zum Platzieren von ROP-Ketten.
● Häufige Fragen
Was ist Heap Spraying?
Exploit-Primitive, die den Heap mit vielen Kopien eines Payloads fuellt, sodass ein korrupter Pointer mit hoher Wahrscheinlichkeit auf angreiferkontrollierte Daten zeigt. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet Heap Spraying?
Exploit-Primitive, die den Heap mit vielen Kopien eines Payloads fuellt, sodass ein korrupter Pointer mit hoher Wahrscheinlichkeit auf angreiferkontrollierte Daten zeigt.
Wie funktioniert Heap Spraying?
Heap Spraying belegt grosse Speicherbereiche mit vorhersehbaren Kopien aus NOP-Sled und Shellcode (in modernen Varianten ROP-Gadgets oder gefaelschten vTables). Wenn ein Angreifer einen Memory-Corruption-Bug ausloest, etwa Use-after-Free oder Type Confusion in einem Browser, lenkt er den korrupten Pointer auf eine plausible Adresse (historisch 0x0c0c0c0c), an der der Spray die gewuenschten Bytes garantiert. Bekannt wurde die Technik durch Skylineds Internet-Explorer-Exploit 2004, sie ist bis heute bei Browser-, Dokument- und Font-Parser-Exploits gaengig. Moderne Gegenmassnahmen: hochentropisches ASLR, partitionierte Heaps (PartitionAlloc, Heap Isolation in Edge), Control-Flow Integrity und JIT-Mitigationen.
Wie schützt man sich gegen Heap Spraying?
Schutzmaßnahmen gegen Heap Spraying kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Heap Spraying?
Übliche alternative Bezeichnungen: Heap-Spray.
● Verwandte Begriffe
- attacks№ 469
Heap Feng Shui
Deterministische Heap-Grooming-Technik (Alexander Sotirov, 2007), die Allokationen so anordnet, dass verwundbare Objekte direkt neben angreiferkontrollierten liegen.
- vulnerabilities№ 1193
Use-After-Free
Speicher-Sicherheitsfehler, bei dem ein Programm Speicher weiterhin nutzt, nachdem dieser bereits freigegeben wurde – ermöglicht oft Kontrolle über Objektzustand und Kontrollfluss.
- appsec№ 064
ASLR
Address Space Layout Randomization platziert Code, Stacks, Heaps und Bibliotheken bei jedem Programmstart zufaellig im Speicher, sodass Angreifer Zieladressen nicht vorhersagen koennen.
- vulnerabilities№ 131
Pufferüberlauf
Speicher-Sicherheitslücke, bei der ein Programm über das Ende eines allokierten Puffers hinausschreibt, benachbarten Speicher überschreibt und häufig Codeausführung ermöglicht.
● Siehe auch
- № 564JIT-Spray