Jump-Oriented Programming (JOP)
Was ist Jump-Oriented Programming (JOP)?
Jump-Oriented Programming (JOP)Code-Reuse-Technik (Bletsch et al., 2011), die Gadgets mit indirekten Spruengen ueber einen Dispatcher verkettet, ein ROP-Aequivalent ohne ret.
JOP wurde 2011 von Bletsch, Jiang, Freeh und Liang als Verallgemeinerung von Return-Oriented Programming eingefuehrt. Statt Gadgets, die mit ret enden, verwendet JOP Gadgets, die mit indirekten Spruengen wie jmp [rax] enden, und einen angreiferkontrollierten Dispatcher, der eine Tabelle von Gadget-Adressen abarbeitet. Da der Aufrufstack nicht mehr zur Flusssteuerung dient, umgeht JOP aeltere Gegenmassnahmen wie Shadow Stacks oder Stack Canaries, die auf ret-Ketten zielen. JOP-Ketten wurden praktisch auf Windows, Linux und Embedded-Systemen demonstriert, oft kombiniert mit Info-Leaks gegen ASLR. Moderne Hardware-Defenses sind Intel CET/IBT und ARM BTI, die indirekte Sprungziele beschraenken und naive JOP-Ketten brechen.
● Beispiele
- 01
JOP-Kette gegen Embedded-Firmware mit gehaertetem Call-Stack, aber unbeschraenkten indirekten Spruengen.
- 02
Kombination eines JOP-Dispatchers mit libc auf Linux, um execve trotz reiner Shadow-Stack-Verteidigung aufzurufen.
● Häufige Fragen
Was ist Jump-Oriented Programming (JOP)?
Code-Reuse-Technik (Bletsch et al., 2011), die Gadgets mit indirekten Spruengen ueber einen Dispatcher verkettet, ein ROP-Aequivalent ohne ret. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet Jump-Oriented Programming (JOP)?
Code-Reuse-Technik (Bletsch et al., 2011), die Gadgets mit indirekten Spruengen ueber einen Dispatcher verkettet, ein ROP-Aequivalent ohne ret.
Wie schützt man sich gegen Jump-Oriented Programming (JOP)?
Schutzmaßnahmen gegen Jump-Oriented Programming (JOP) kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Jump-Oriented Programming (JOP)?
Übliche alternative Bezeichnungen: JOP.