Ir al contenido

Programación orientada al retorno

De Wikipedia, la enciclopedia libre

Programación orientada al retorno (ROP del inglés Return-oriented programming) es una técnica de explotación de seguridad informática que permite a un atacante ejecutar código ante la presencia de defensas de seguridad como protección de espacio ejecutable y código firmado.[1]

En esta técnica, un atacante gana control de la pila de llamadas para secuestrar el flujo de control del programa y entonces ejecuta secuencias de instrucciones de máquina elegidas cuidadosamente entre las que ya están presentes en la memoria del computador, las cuales se denominan "gadgets".[2]​ Cada gadget típicamente termina con una instrucción de retorno y está localizado en una subrutina dentro del programa existente y/o en el código de alguna biblioteca compartida. Estos gadgets encadenados le permiten a un atacante realizar operaciones arbitrarias en un computador que emplee defensas contra ataques más simples.

Referencias

[editar]
  1. Shacham, Hovav; Buchanan, Erik; Roemer, Ryan; Savage, Stefan. «Return-Oriented Programming: Exploits Without Code Injection». Consultado el 12 de agosto de 2009. 
  2. Buchanan, E.; Roemer, R.; Shacham, H.; Savage, S. (October 2008). «When Good Instructions Go Bad: Generalizing Return-Oriented Programming to RISC». Proceedings of the 15th ACM conference on Computer and communications security - CCS '08. pp. 27-38. ISBN 978-1-59593-810-7. doi:10.1145/1455770.1455776.