Programacao orientada a saltos (JOP)
O que é Programacao orientada a saltos (JOP)?
Programacao orientada a saltos (JOP)Tecnica de reutilizacao de codigo (Bletsch et al., 2011) que encadeia gadgets terminados em saltos indiretos atraves de um dispatcher, alternativa ao ROP sem usar ret.
O JOP foi introduzido por Bletsch, Jiang, Freeh e Liang em 2011 como generalizacao do ROP. Em vez de gadgets terminados em ret, o JOP usa gadgets terminados em saltos indiretos como jmp [rax] e um dispatcher controlado pelo atacante que percorre uma tabela de enderecos de gadgets. Como a pilha de chamadas deixa de controlar o fluxo, o JOP supera mitigacoes antigas como shadow stacks e canaries dirigidas a cadeias ret. Cadeias JOP praticas foram demonstradas em Windows, Linux e embarcados, muitas vezes combinadas com info-leaks para contornar ASLR. Defesas modernas em hardware: Intel CET/IBT e ARM BTI, que restringem os destinos de saltos indiretos e quebram cadeias JOP ingenuas.
● Exemplos
- 01
Construir cadeia JOP contra firmware embarcado com pilha de chamadas endurecida mas saltos indiretos livres.
- 02
Combinar dispatcher JOP com libc Linux para chamar execve evitando uma defesa apenas baseada em shadow stack.
● Perguntas frequentes
O que é Programacao orientada a saltos (JOP)?
Tecnica de reutilizacao de codigo (Bletsch et al., 2011) que encadeia gadgets terminados em saltos indiretos atraves de um dispatcher, alternativa ao ROP sem usar ret. Pertence à categoria Ataques e ameaças da cibersegurança.
O que significa Programacao orientada a saltos (JOP)?
Tecnica de reutilizacao de codigo (Bletsch et al., 2011) que encadeia gadgets terminados em saltos indiretos atraves de um dispatcher, alternativa ao ROP sem usar ret.
Como funciona Programacao orientada a saltos (JOP)?
O JOP foi introduzido por Bletsch, Jiang, Freeh e Liang em 2011 como generalizacao do ROP. Em vez de gadgets terminados em ret, o JOP usa gadgets terminados em saltos indiretos como jmp [rax] e um dispatcher controlado pelo atacante que percorre uma tabela de enderecos de gadgets. Como a pilha de chamadas deixa de controlar o fluxo, o JOP supera mitigacoes antigas como shadow stacks e canaries dirigidas a cadeias ret. Cadeias JOP praticas foram demonstradas em Windows, Linux e embarcados, muitas vezes combinadas com info-leaks para contornar ASLR. Defesas modernas em hardware: Intel CET/IBT e ARM BTI, que restringem os destinos de saltos indiretos e quebram cadeias JOP ingenuas.
Como se defender contra Programacao orientada a saltos (JOP)?
As defesas contra Programacao orientada a saltos (JOP) costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Programacao orientada a saltos (JOP)?
Nomes alternativos comuns: JOP.
● Termos relacionados
- attacks№ 753
one_gadget RCE
Atalho de exploracao usado em CTFs e na pratica: um unico endereco da libc lanca uma shell, desde que as restricoes de registos e pilha sejam cumpridas.
- appsec№ 217
Integridade do fluxo de controlo
A integridade do fluxo de controlo (CFI) restringe chamadas indiretas e retornos a um conjunto pre-calculado de destinos legitimos, bloqueando ROP e JOP.
- appsec№ 064
ASLR
A aleatorizacao do espaco de enderecos coloca codigo, pilhas, heaps e bibliotecas em posicoes aleatorias da memoria para impedir que um atacante preveja enderecos.
- vulnerabilities№ 667
Corrupção de memória
Termo abrangente para vulnerabilidades em que um programa escreve fora dos limites previstos, comprometendo segurança de tipos, fluxo de controlo ou integridade de dados.