Búsqueda de conjuntos ROP Turing-completos en sistemas Windows

Los ataques Return-Oriented Programming (ROP) permiten la ejecución de un comportamiento arbitrario de un proceso sin la necesidad de introducir nuevo código en su espacio de memoria. El atacante organiza secuencias cortas de instrucciones ya existentes en su espacio de memoria que permiten controlar el flujo de una secuencia a la siguiente. Las secuencias de instrucciones son escogidas de manera que terminan en una instrucción “return”, permitiendo así encadenar las secuencias almacenadas en pila. Esta terminación es la que da a la programación return-oriented su nombre. La unidad de organización de la programación return-oriented es el gadget: una secuencia de instrucciones que, cuando se ejecutan, introduce un comportamiento bien definido, como realizar una o-exclusiva o una suma.

Una máquina de Turing es un modelo teórico capaz de resolver cualquier problema computacional mediante una serie de operaciones mínimas. Se dice que un sistema es Turing-completo si puede simular el comportamiento de una máquina de Turing, es decir, si puede realizar todas sus operaciones. Estas operaciones son, concretamente, realizar saltos condicionales, cargar una constante, mover un valor de una posición a otra, cargar un valor desde memoria, guardar un valor en memoria y realizar operaciones aritméticas y lógicas.

En este trabajo, se presenta una herramienta, llamada EasyROP, que tanto localiza los gadgets que implementan cada una de estas operaciones de Turing como automatiza la formación de ataques ROP. EasyROP permite buscar todas las operaciones para un binario dado, por lo que el atacante tiene la certeza de poder realizar cualquier computación si dicho binario se encuentra cargado en la memoria del proceso víctima. Finalmente, se han analizado los principales binarios de diferentes versiones del sistema operativo Windows (sobre arquitecturas Intel de 32 y 64 bits) para establecer la viabilidad de un ataque en estos sistemas.

Más información: Memoria TFG, presentación.
Alumno: Daniel Uroz Hinarejos

Comments are closed.