Heap Spraying
¿Qué es Heap Spraying?
Heap SprayingPrimitiva de explotacion que rellena la heap con muchas copias del payload para que un puntero corrupto caiga con alta probabilidad sobre datos del atacante.
El heap spray puebla grandes regiones de la memoria del proceso con copias predecibles de un NOP-sled y shellcode (o, en variantes modernas, cadenas ROP o vtables falsas). Cuando el atacante desencadena una corrupcion de memoria, por ejemplo un use-after-free o type confusion en un navegador, dirige el puntero corrupto a una direccion probable (historicamente 0x0c0c0c0c) donde el spray garantiza los bytes deseados. La tecnica fue popularizada por el exploit de Skylined para Internet Explorer en 2004 y sigue siendo comun en exploits de navegadores, documentos y parseo de fuentes. Las defensas modernas incluyen ASLR de alta entropia, heaps particionadas (PartitionAlloc, Heap Isolation en Edge), CFI y mitigaciones del JIT.
● Ejemplos
- 01
Reservar cientos de MB de cadenas JavaScript con shellcode para hacer ejecutable 0x0c0c0c0c tras un use-after-free.
- 02
Exploits de Adobe Flash que usan sprays de Vector<uint> para colocar cadenas ROP.
● Preguntas frecuentes
¿Qué es Heap Spraying?
Primitiva de explotacion que rellena la heap con muchas copias del payload para que un puntero corrupto caiga con alta probabilidad sobre datos del atacante. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Heap Spraying?
Primitiva de explotacion que rellena la heap con muchas copias del payload para que un puntero corrupto caiga con alta probabilidad sobre datos del atacante.
¿Cómo funciona Heap Spraying?
El heap spray puebla grandes regiones de la memoria del proceso con copias predecibles de un NOP-sled y shellcode (o, en variantes modernas, cadenas ROP o vtables falsas). Cuando el atacante desencadena una corrupcion de memoria, por ejemplo un use-after-free o type confusion en un navegador, dirige el puntero corrupto a una direccion probable (historicamente 0x0c0c0c0c) donde el spray garantiza los bytes deseados. La tecnica fue popularizada por el exploit de Skylined para Internet Explorer en 2004 y sigue siendo comun en exploits de navegadores, documentos y parseo de fuentes. Las defensas modernas incluyen ASLR de alta entropia, heaps particionadas (PartitionAlloc, Heap Isolation en Edge), CFI y mitigaciones del JIT.
¿Cómo defenderse de Heap Spraying?
Las defensas contra Heap Spraying combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Heap Spraying?
Nombres alternativos comunes: Spray de heap.
● Términos relacionados
- attacks№ 469
Heap Feng Shui
Tecnica determinista de moldeo de la heap presentada por Alexander Sotirov en 2007 que ordena las asignaciones para colocar objetos vulnerables junto a otros controlados.
- vulnerabilities№ 1193
Uso después de liberar
Fallo de memoria en el que un programa sigue usando memoria ya liberada, lo que suele permitir controlar el estado de objetos y secuestrar la ejecución.
- appsec№ 064
ASLR
La aleatorización del espacio de direcciones distribuye al azar la ubicación en memoria de código, pilas, montones y librerías para impedir que un atacante prediga direcciones.
- vulnerabilities№ 131
Desbordamiento de búfer
Fallo de seguridad de memoria en el que un programa escribe más allá del final de un búfer asignado, corrompiendo memoria adyacente y a menudo permitiendo ejecución de código.
● Véase también
- № 564JIT Spray