Programacion orientada a saltos (JOP)
¿Qué es Programacion orientada a saltos (JOP)?
Programacion orientada a saltos (JOP)Tecnica de reutilizacion de codigo (Bletsch et al., 2011) que encadena gadgets terminados en saltos indirectos mediante un dispatcher, como alternativa al ROP.
JOP fue presentado por Bletsch, Jiang, Freeh y Liang en 2011 como generalizacion de ROP. En lugar de gadgets que acaban en ret, JOP usa gadgets que terminan en saltos indirectos como jmp [rax] y un dispatcher controlado por el atacante que recorre una tabla de direcciones de gadgets. Como el flujo no depende de la pila de llamadas, JOP supera mitigaciones antiguas como shadow stacks o stack canaries pensadas para cadenas basadas en ret. Existen cadenas JOP practicas contra Windows, Linux y embebidos, a menudo combinadas con info-leaks para sortear ASLR. Las defensas hardware modernas incluyen CET/IBT (Intel) y BTI (ARM), que restringen los destinos de salto indirecto y rompen cadenas JOP ingenuas.
● Ejemplos
- 01
Cadena JOP contra un firmware embebido con pila de llamadas reforzada pero saltos indirectos libres.
- 02
Combinar dispatcher JOP con codigo de libc en Linux para llamar a execve evadiendo una defensa basada solo en shadow stack.
● Preguntas frecuentes
¿Qué es Programacion orientada a saltos (JOP)?
Tecnica de reutilizacion de codigo (Bletsch et al., 2011) que encadena gadgets terminados en saltos indirectos mediante un dispatcher, como alternativa al ROP. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Programacion orientada a saltos (JOP)?
Tecnica de reutilizacion de codigo (Bletsch et al., 2011) que encadena gadgets terminados en saltos indirectos mediante un dispatcher, como alternativa al ROP.
¿Cómo funciona Programacion orientada a saltos (JOP)?
JOP fue presentado por Bletsch, Jiang, Freeh y Liang en 2011 como generalizacion de ROP. En lugar de gadgets que acaban en ret, JOP usa gadgets que terminan en saltos indirectos como jmp [rax] y un dispatcher controlado por el atacante que recorre una tabla de direcciones de gadgets. Como el flujo no depende de la pila de llamadas, JOP supera mitigaciones antiguas como shadow stacks o stack canaries pensadas para cadenas basadas en ret. Existen cadenas JOP practicas contra Windows, Linux y embebidos, a menudo combinadas con info-leaks para sortear ASLR. Las defensas hardware modernas incluyen CET/IBT (Intel) y BTI (ARM), que restringen los destinos de salto indirecto y rompen cadenas JOP ingenuas.
¿Cómo defenderse de Programacion orientada a saltos (JOP)?
Las defensas contra Programacion orientada a saltos (JOP) combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Programacion orientada a saltos (JOP)?
Nombres alternativos comunes: JOP.
● Términos relacionados
- attacks№ 753
one_gadget RCE
Atajo de explotacion (en CTFs y en la practica) que invoca una unica direccion de libc para lanzar una shell, siempre que se cumplan las restricciones de registros y pila.
- appsec№ 217
Integridad del flujo de control
La integridad de flujo de control (CFI) restringe las llamadas indirectas y los retornos del programa a un conjunto precomputado de destinos legitimos, bloqueando ROP y JOP.
- 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№ 667
Corrupción de memoria
Término paraguas para vulnerabilidades en las que un programa escribe fuera de los límites previstos, comprometiendo seguridad de tipos, flujo de control o integridad de datos.