Programmation orientee saut (JOP)
Qu'est-ce que Programmation orientee saut (JOP) ?
Programmation orientee saut (JOP)Technique de reutilisation de code (Bletsch et al., 2011) qui enchaine des gadgets se terminant par des sauts indirects via un dispatcher, alternative au ROP sans ret.
Le JOP a ete introduit par Bletsch, Jiang, Freeh et Liang en 2011 comme generalisation du ROP. Au lieu de gadgets se terminant par ret, le JOP utilise des gadgets finissant par des sauts indirects comme jmp [rax], et un dispatcher controle par l'attaquant qui parcourt une table d'adresses de gadgets. Comme la pile d'appel n'est plus utilisee pour le controle de flux, le JOP defait les anciennes parades comme les shadow stacks ou les canaris de pile orientees ret. Des chaines JOP exploitables ont ete demontrees sur Windows, Linux et embarques, souvent combinees a des fuites pour contourner ASLR. Defenses materielles modernes : CET/IBT (Intel) et BTI (ARM), qui restreignent les cibles de saut indirect et brisent les chaines JOP naives.
● Exemples
- 01
Construire une chaine JOP contre un firmware embarque dont la pile d'appel est durcie mais les sauts indirects libres.
- 02
Combiner un dispatcher JOP avec la libc Linux pour appeler execve en contournant une defense basee uniquement sur shadow stack.
● Questions fréquentes
Qu'est-ce que Programmation orientee saut (JOP) ?
Technique de reutilisation de code (Bletsch et al., 2011) qui enchaine des gadgets se terminant par des sauts indirects via un dispatcher, alternative au ROP sans ret. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.
Que signifie Programmation orientee saut (JOP) ?
Technique de reutilisation de code (Bletsch et al., 2011) qui enchaine des gadgets se terminant par des sauts indirects via un dispatcher, alternative au ROP sans ret.
Comment fonctionne Programmation orientee saut (JOP) ?
Le JOP a ete introduit par Bletsch, Jiang, Freeh et Liang en 2011 comme generalisation du ROP. Au lieu de gadgets se terminant par ret, le JOP utilise des gadgets finissant par des sauts indirects comme jmp [rax], et un dispatcher controle par l'attaquant qui parcourt une table d'adresses de gadgets. Comme la pile d'appel n'est plus utilisee pour le controle de flux, le JOP defait les anciennes parades comme les shadow stacks ou les canaris de pile orientees ret. Des chaines JOP exploitables ont ete demontrees sur Windows, Linux et embarques, souvent combinees a des fuites pour contourner ASLR. Defenses materielles modernes : CET/IBT (Intel) et BTI (ARM), qui restreignent les cibles de saut indirect et brisent les chaines JOP naives.
Comment se défendre contre Programmation orientee saut (JOP) ?
Les défenses contre Programmation orientee saut (JOP) combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Programmation orientee saut (JOP) ?
Noms alternatifs courants : JOP.
● Termes liés
- attacks№ 753
one_gadget RCE
Raccourci d'exploitation utilise en CTF et en pratique : un seul saut dans libc lance un shell si les contraintes sur registres et pile sont satisfaites.
- appsec№ 217
Integrite du flot de controle
L'integrite du flot de controle (CFI) restreint les appels indirects et les retours du programme a un ensemble precalcule de cibles legitimes, bloquant ROP et JOP.
- appsec№ 064
ASLR
La randomisation de l'espace d'adressage place aleatoirement le code, les piles, les tas et les bibliotheques en memoire afin qu'un attaquant ne puisse pas predire les adresses cibles.
- vulnerabilities№ 667
Corruption mémoire
Terme générique pour les vulnérabilités où un programme écrit hors des limites prévues, compromettant sûreté de typage, flux de contrôle ou intégrité des données.