Para visualizar el sitio de manera óptima actualice el navegador. ×

ROP Chain Execution Detection Using Intel PT

Acerca de Intel PT

El procesador Intel Core iX incorpora una nueva tecnología llamada Intel Processor Trace. Intel PT permite a un bajo nivel, monitorear los procesos en ejecución. La información provista por Intel TP está relacionada a las instrucciones que están siendo ejecutadas por el procesador. Esta información es llevada en diferentes tipos de paquetes de datos con un formato específico. Todo es logrado a través de un hardware dedicado, que está dentro del paquete del procesador y asegura un bajo impacto en el rendimiento.

La Idea

Tomando la información generada por Intel PT, especialmete la relacionada al flujo de ejecución del proceso rastreado, es posible aplicar algunas heurísticas derivadas de técnicas de mitigación llamadas Integridad del Control de Flow(CFI). La mitigación CFI sugiere el uso de tags en prólogos y epílogos de cada función, así como también el uso de shadow stacks. Luego, comparamdo los tags (destino y origen) en las instrucciones de llamado y los valores en el shadow stack con las direcciones de regreso en las instrucciones de retorno, es posible confirmar si el proceso sigue un camino de ejecución válida o no.

Nuestra Implementación

El punto es... que si estamos utilizando Intel PT. ¿Porqué usar sadow stacks? Considerando la implementación de Intel PT, es posible evitar un shadow stack implementado por software y usar solo los paquetes generados cuando una falla ocurre por un desajuste entre la información almacenada en la tabla LBR y la información rastreada. Entonces, teniendo algunas secuencias de paquetes específicas, es posible confirmar que una cadena ROP está siendo ejecutada.

Sobre Diego Provinciani

Diego Provincian es el mejor desarrollador de software “Hello World” que hayan visto. Es más, está a punto de obtener su título en Ingeniería en computación en la Universidad Nacional de Córdoba y tiene mucho interés en la investigación de vulnerabilidades y análisis de explotación/malwares. Ha estado trabajando por 3 años en Intel/McAfee como desarrollador de software C++ (error, no está trabajando, está disfrutando de lo que ama hacer!). Más especificamente está trabajando en un componente de prevención de exploit que es parte de una de las soluciones de seguridad más grandes de la compañía, desplegado en miles de terminales. Aprovechó su posición de trabajo en McAfee para ser parte del OffSec TEAM. Los que están en este grupo la rompen! Pasan el tiempo explorando y analizando en profundidad las últimas amenazas en comptación sólo para obtener conocimientos nuevos y porque realmente lo disfrutan. Actualmente, Diego está liderando este equipo y está enfocado en dar presentacioones acerca de explotaciones binarias y técnicas de evasión. Diego nació en una pequeña ciudad de Córdoba llamada Oncativo, donde vivió toda su vida. Ama la actividad física y las actividades al aire libre como mountain bike, correr y hacer wakeboard.