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 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.