Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 569

Jump-Oriented Programming (JOP)

Что такое Jump-Oriented Programming (JOP)?

Jump-Oriented Programming (JOP)Техника повторного использования кода (Bletsch и др., 2011): цепочка гаджетов с косвенными переходами через диспетчер — альтернатива ROP без ret.


JOP представили Bletsch, Jiang, Freeh и Liang в 2011 году как обобщение Return-Oriented Programming. Вместо гаджетов, оканчивающихся ret, используются гаджеты, заканчивающиеся косвенными переходами вроде jmp [rax], и подконтрольный атакующему диспетчер, идущий по таблице адресов гаджетов. Стек вызовов больше не управляет потоком, поэтому JOP обходит старые меры защиты, нацеленные на ret-цепочки (shadow stack, stack canary). Практические JOP-цепочки демонстрировались на Windows, Linux и встраиваемых системах, часто в связке с утечками для обхода ASLR. Современная аппаратная защита — Intel CET/IBT и ARM BTI: они ограничивают цели косвенных переходов и разрушают наивные JOP-цепочки.

Примеры

  1. 01

    JOP-цепочка против встраиваемой прошивки с укреплённым стеком вызовов, но свободными косвенными переходами.

  2. 02

    Сочетание JOP-диспетчера с libc на Linux для вызова execve в обход защиты, основанной только на shadow stack.

Частые вопросы

Что такое Jump-Oriented Programming (JOP)?

Техника повторного использования кода (Bletsch и др., 2011): цепочка гаджетов с косвенными переходами через диспетчер — альтернатива ROP без ret. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает Jump-Oriented Programming (JOP)?

Техника повторного использования кода (Bletsch и др., 2011): цепочка гаджетов с косвенными переходами через диспетчер — альтернатива ROP без ret.

Как работает Jump-Oriented Programming (JOP)?

JOP представили Bletsch, Jiang, Freeh и Liang в 2011 году как обобщение Return-Oriented Programming. Вместо гаджетов, оканчивающихся ret, используются гаджеты, заканчивающиеся косвенными переходами вроде jmp [rax], и подконтрольный атакующему диспетчер, идущий по таблице адресов гаджетов. Стек вызовов больше не управляет потоком, поэтому JOP обходит старые меры защиты, нацеленные на ret-цепочки (shadow stack, stack canary). Практические JOP-цепочки демонстрировались на Windows, Linux и встраиваемых системах, часто в связке с утечками для обхода ASLR. Современная аппаратная защита — Intel CET/IBT и ARM BTI: они ограничивают цели косвенных переходов и разрушают наивные JOP-цепочки.

Как защититься от Jump-Oriented Programming (JOP)?

Защита от Jump-Oriented Programming (JOP) обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Jump-Oriented Programming (JOP)?

Распространённые альтернативные названия: JOP.

Связанные термины