frameworks dbi para seguridad informática: usos y...

99
Frameworks DBI para Seguridad Inform´ atica: usos y comparativa Juan Antonio Artal, Ricardo J. Rodr´ ıguez, Jos´ e Merseguer All wrongs reserved [email protected], {rjrodriguez, jmerse}@unizar.es tw: @RicardoJRdez http://www.ricardojrodriguez.es Universidad de Zaragoza Zaragoza, Spain 3 de Noviembre, 2012 No cON Name 2012 Barcelona, Espa˜ na

Upload: others

Post on 22-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI para Seguridad Informatica:

usos y comparativa

Juan Antonio Artal, Ricardo J. Rodrıguez, Jose Merseguer«All wrongs reserved

[email protected], {rjrodriguez, jmerse}@unizar.es

tw: @RicardoJRdez – http://www.ricardojrodriguez.es

Universidad de ZaragozaZaragoza, Spain

3 de Noviembre, 2012

No cON Name 2012

Barcelona, Espana

Page 2: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

In Memoriam

Hasta siempre, comandante!In memoriam

“Y sabed que el ayer es solo la memoria del hoy y el manana es el ensuenodel hoy”

El profeta (Gibran Jalil Gibran)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 2 / 1

Page 3: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 4: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 5: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 6: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 7: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 8: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

$whoami

$whoami

Miembro de CLS desde sus inicios (2000)

Investigador (PhD candidate) en Universidad de Zaragoza

Rendimiento de sistemas software complejosIngenierıa de Software seguraSistemas de Tolerancia a Fallos (diseno y modelado)Analisis malware

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 3 / 1

Page 9: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Licencia de Codigo Desarrollado

Licencia de Codigo Desarrollado

GPL v3(http://gplv3.fsf.org/)

Intel Open Source License(http://opensource.org/licenses/

intel-open-source-license.html)

Especificado en cada fichero de codigo fuente

Codigo descargable de:

http://webdiis.unizar.es/~ricardo/files/NcN2k12.tar.gz

(proyecto VS2008 + presentacion PDF)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 4 / 1

Page 10: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Agenda

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 5 / 1

Page 11: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI

Outline

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 6 / 1

Page 12: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (I)

Instrumentacion ??Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 7 / 1

Page 13: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (I)

Instrumentacion ??Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 7 / 1

Page 14: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (II)¿Instrumentacion?

Instrumentacion

“Capacidad de observar, monitorizar y modificar el comportamientode un programa” (Gal Diskin)

Insercion de codigo adicional en un programa para recoger informacion

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 8 / 1

Page 15: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (II)¿Instrumentacion?

Instrumentacion

“Capacidad de observar, monitorizar y modificar el comportamientode un programa” (Gal Diskin)

Insercion de codigo adicional en un programa para recoger informacion

Analisis y control sobre que esta pasando en el codigo de un programa

Recopilar informacionInsercion de codigo (arbitrario)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 8 / 1

Page 16: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (III)

Instrumentacion ??Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 9 / 1

Page 17: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (III)

Instrumentacion Que esta pasando. . .Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 9 / 1

Page 18: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (III)

Instrumentacion Que esta pasando. . .Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 9 / 1

Page 19: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (IV)¿Dinamica?

Analisis de codigo

Estatico

ANTES de la ejecucionTodos los posibles caminos del programa

Dinamico

DURANTE la ejecucionUn posible camino del programa (dependencia de datos de entrada)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 10 / 1

Page 20: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (V)

Instrumentacion Que esta pasando. . .Dinamica de ??Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 11 / 1

Page 21: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (V)

Instrumentacion Que esta pasando. . .Dinamica de DURANTE la ejecucion. . .Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 11 / 1

Page 22: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (V)

Instrumentacion Que esta pasando. . .Dinamica de DURANTE la ejecucion. . .Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 11 / 1

Page 23: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (IV)¿Ejecutables?

Analisis dinamico

Codigo fuente disponible

Codigo fuenteCompilador

Sin codigo fuenteEjecutable

Estatico (i.e., crea nuevo ejecutable modificado)Dinamico

Entorno

EmulacionVirtualizacion

Debugging

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 12 / 1

Page 24: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (VI)

Instrumentacion Que esta pasando. . .Dinamica de DURANTE la ejecucion. . .Ejecutables ??

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 13 / 1

Page 25: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (VI)

Instrumentacion Que esta pasando. . .Dinamica de DURANTE la ejecucion. . .Ejecutables de un ejecutable (binario). . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 13 / 1

Page 26: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (VII)Ventajas de DBI

Instrumentacion de Ejecutables: ventajas

Independiente de lenguaje de programacion

Vision modo maquina

Instrumentacion de software propietario

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 14 / 1

Page 27: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (VII)Ventajas de DBI

Instrumentacion de Ejecutables: ventajas

Independiente de lenguaje de programacion

Vision modo maquina

Instrumentacion de software propietario

Instrumentacion Dinamica: ventajas

No se necesita recompilar/reenlazar cada vez

Descubrir codigo on-the-fly

Codigo generado dinamicamente

Instrumentar proceso en ejecucion (attach)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 14 / 1

Page 28: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Que es Instrumentacion Dinamica de Ejecutables (DBI)?

DBI: ¿que es? (IIX)Desventajas de DBI

Principales desventajas

Sobrecarga (instrumentacion en tiempo de ejecucion)

⇓ rendimiento (desesperacion del analista!)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 15 / 1

Page 29: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Como funciona DBI?

DBI: ¿como funciona? (I)

Insercion de codigo arbitrario duranteejecucion de un programa

Código en ejecución

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 16 / 1

Page 30: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Como funciona DBI?

DBI: ¿como funciona? (I)

Insercion de codigo arbitrario duranteejecucion de un programa

¿Que inserto? →funcion de instrumentacion

Código en ejecución

Código

arbitrario

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 16 / 1

Page 31: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Como funciona DBI?

DBI: ¿como funciona? (I)

Insercion de codigo arbitrario duranteejecucion de un programa

¿Que inserto? →funcion de instrumentacion

¿Donde? → lugares de insercion

Código en ejecución

Código

arbitrario

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 16 / 1

Page 32: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI ¿Como funciona DBI?

DBI: ¿como funciona? (II)DBI en el contexto de analisis dinamico

Definicion (informal)

Transformacion del ejecutable

Control total sobre la ejecucion

Sin necesidad de soporte arquitectural

Programa

Hardware

Debugger

Debugging

Hardware

Programa

Virtualización

Hardware

Programa

DBI

Programa

Emulación

Hardware

Emulador

Virtualizacion

¿Control total?

Emulacion

¿Transformacion del programa?

Debugging

Soporte arquitectural

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 17 / 1

Page 33: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 34: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 35: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 36: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 37: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 38: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 39: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 40: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 41: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

Generacion de trazas

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 42: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

Generacion de trazasModelado de predictores de saltos y caches

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 43: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

Generacion de trazasModelado de predictores de saltos y cachesRecuperacion de fallos de memoria

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 44: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

Generacion de trazasModelado de predictores de saltos y cachesRecuperacion de fallos de memoriaEmulacion de estrategias de especulacion

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 45: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (I)Usos no relacionados con seguridad

Metricas y cobertura de codigo

Generacion de grafos de llamadas (call-graphs)

Deteccion de fugas de memoria

Profiling de instrucciones

Profiling de dependencias de datos

Profiling de threads

Deteccion de condiciones de carrera

Arquitectura de Computadores:

Generacion de trazasModelado de predictores de saltos y cachesRecuperacion de fallos de memoriaEmulacion de estrategias de especulacion

. . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 18 / 1

Page 46: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 47: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 48: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 49: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

Monitorizacion avanzada

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 50: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

Monitorizacion avanzada

Ingenierıa Inversa

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 51: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

Monitorizacion avanzada

Ingenierıa Inversa

Monitorizacion de privacidad

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 52: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

Monitorizacion avanzada

Ingenierıa Inversa

Monitorizacion de privacidad

Sandboxing

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 53: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (II)Usos relacionados con seguridad

Analisis del flujo de datos (de control)

Deteccion de vulnerabilidades

Generacion de casos de test / fuzzing

Monitorizacion avanzada

Ingenierıa Inversa

Monitorizacion de privacidad

Sandboxing

. . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 19 / 1

Page 54: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (III)Algunas herramientas que usan DBI. . .

Busqueda de vulnerabilidades

SAGE (Microsoft)SogetisFuzzgrind

Avalanche

Determine

Pincov

Taintdroid

VERA

TraceSurfer

. . .

TRIANA?? :)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 20 / 1

Page 55: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (IV)Popularidad in crescendo (1)

Covert Debugging: Circumventing Software Armoring, D. Quist &Valsmith, BH USA 2007/DefCon 15

Generic Unpacking of Self-modifying, Aggressive, Packed BinaryPrograms (P. Bania, CoRR abs/0905.4581 2009)

Tarte Tatin Tools: a set of plugins for malware analysis with Pin, (D.Reynaud, DeepSec 2009)

Dynamic Binary Instrumentation for Deobfuscation and Unpacking(J-Y. Marion & D. Reynaud, DeepSec 2009)

Dumping Shellcode with Pin (S. Porst, Zynamics 2010)

Binary Instrumentation for Security Professionals (G. Diskin, BH USA2011)

Shellcode Analysis using Dynamic Binary Instrumentation (D. Radu &B. Dang, CARO 2011)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 21 / 1

Page 56: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Introduccion a DBI Usos de DBI para Seguridad Informatica

Usos de DBI (V)Popularidad in crescendo (2)

Hacking using Dynamic Binary Instrumentation (G. Diskin, HITB2012 AMS)

Improving Unpacking Process using DBI techniques (R.J. Rodrıguez,RootedCON 2012)

Improving Software Security with Dynamic Binary Instrumentation(R. Johnson, InfoSec Southwest 2012)

Vulnerability Analysis and Practical Data Flow Analysis &Visualization (J.W. Oh, CanSecWest 2012)

Light and Dark side of Code Instrumentation (D. Evdokimov,CONFidence 2012)

Dynamic Binary Instrumentation Frameworks: I know you’re therespying on me (F. Falcon & N. Riva, RECon 2012)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 22 / 1

Page 57: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI

Outline

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 23 / 1

Page 58: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Framework DBI: ¿que es?

Framework DBI: ¿que es? (I)

APIs para desarrollo de herramientas

DBA: Dynamic Binary Analysis tool

Tipos de DBAs:

LigerasPesadas (usa codigo intermedio)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 24 / 1

Page 59: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Framework DBI: ¿que es?

Framework DBI: ¿que es? (I)

APIs para desarrollo de herramientas

DBA: Dynamic Binary Analysis tool

Tipos de DBAs:

LigerasPesadas (usa codigo intermedio)

Componentes principalesNucleo: compilador just-in-time (JIT)

Controla ejecucion de aplicacion

Librerıa (herramienta desarrollada)

¿Donde?¿Que?

$ < nucleo fw DBI > < herramienta/libreria > < ejecutable >

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 24 / 1

Page 60: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Framework DBI: ¿que es?

Framework DBI: ¿que es? (II)

Modos de uso (comunes)

JIT

Modificacion de conjunto (pequeno) de ins. antes de ejecutarlasMas robustoMejor para programas con comportamientos repetitivos (e.g., bucles)

Probe

Parcheado en memoriaMenor sobrecarga (ejecucion codigo nativo)No soportado por todos los fws. DBI

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 25 / 1

Page 61: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Framework DBI: ¿que es?

Framework DBI: ¿que es? (II)

Modos de uso (comunes)

JIT

Modificacion de conjunto (pequeno) de ins. antes de ejecutarlasMas robustoMejor para programas con comportamientos repetitivos (e.g., bucles)

Probe

Parcheado en memoriaMenor sobrecarga (ejecucion codigo nativo)No soportado por todos los fws. DBI

Granularidad

Instruccion Bloque Superbloque Traza Rutina ImagenBasico

++ – –

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 25 / 1

Page 62: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Framework DBI: ¿que es?

Framework DBI: ¿que es? (II)

Modos de uso (comunes)

JIT

Modificacion de conjunto (pequeno) de ins. antes de ejecutarlasMas robustoMejor para programas con comportamientos repetitivos (e.g., bucles)

Probe

Parcheado en memoriaMenor sobrecarga (ejecucion codigo nativo)No soportado por todos los fws. DBI

Granularidad

Instruccion Bloque Superbloque Traza Rutina ImagenBasico

++ – –

→ No soportadas por todos los fws. . .J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 25 / 1

Page 63: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (I)

Fws DBI on the wild

Pin DynInstValgrind Dtrace HDtrans

DynamoRIO Systemap

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 26 / 1

Page 64: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (I)

Fws DBI on the wild

Pin DynInstValgrind Dtrace HDtrans

DynamoRIO Systemap

Mmm. . . ¿cual es mas mejor?

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 26 / 1

Page 65: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (I)

Fws DBI on the wild

Pin DynInstValgrind Dtrace HDtrans

DynamoRIO Systemap

Mmm. . . ¿cual es mas mejor?

Criterios de seleccion

Software en desarrollo

Licencia con acceso al fuente

Gratuito

API de desarrollo

S.O. y arquitectura comun

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 26 / 1

Page 66: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (II)Diferencias y similitudes

Caracterısticas

Tesis doctoral, Univ. Cambridge

Codigo fuente disponible (GNU GPL v2)

DBAs pesadas (codigo intermedio VEX IR)

http://www.valgrind.org

Instrucciones Bloque basico Superbloque Traza Rutina IMagen

Framework Version Arquitecturas S.O. Granularidad

Valgrind 3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 27 / 1

Page 67: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (II)Diferencias y similitudes

Caracterısticas

Intel

Codigo fuente disponible (Licencia propietaria)

Vinculacion a proceso en ejecucion

http://www.pintool.org/

Instrucciones Bloque basico Superbloque Traza Rutina IMagen

Framework Version Arquitecturas S.O. Granularidad

Valgrind 3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin 2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 27 / 1

Page 68: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (II)Diferencias y similitudes

Caracterısticas

MIT, HP, Google

Codigo fuente disponible (BSD-2)

Buena documentacion

http://www.dynamorio.org/

Instrucciones Bloque basico Superbloque Traza Rutina IMagen

Framework Version Arquitecturas S.O. Granularidad

Valgrind 3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin 2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M

DynamoRIO 3.2.0-3 (01/03/2012) x86, x64 Windows, Linux I B T

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 27 / 1

Page 69: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Tipos de frameworks DBI

Tipos de frameworks DBI (II)Diferencias y similitudes

Similitudes

Codigo inyectado en C/C++

No se necesita el codigo fuentede aplicacion a instrumentar

GNU/Linux x86

Instrucciones Bloque basico Superbloque Traza Rutina IMagen

Framework Version Arquitecturas S.O. Granularidad

Valgrind 3.8.1 (18/09/2012) Arm, PowerPC, s390, x86, x64 Android, OSX, Linux I S

Pin 2.12 (10/10/2012) Arm, IA-64, x86, x64 Windows, Linux I B T R M

DynamoRIO 3.2.0-3 (01/03/2012) x86, x64 Windows, Linux I B T

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 27 / 1

Page 70: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (I)

Herramientas DBA para comparativa

Conteo de instrucciones

Dos granularidades: instruccion y bloque basico

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 28 / 1

Page 71: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (I)

Herramientas DBA para comparativa

Conteo de instrucciones

Dos granularidades: instruccion y bloque basico

Objetivo de la comparativa

Evaluar rendimiento de fws. DBI seleccionados

Slowdown:tinstrumentado

tsin instrumentar

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 28 / 1

Page 72: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (I)

Herramientas DBA para comparativa

Conteo de instrucciones

Dos granularidades: instruccion y bloque basico

Objetivo de la comparativa

Evaluar rendimiento de fws. DBI seleccionados

Slowdown:tinstrumentado

tsin instrumentar

Aprendizaje de las APIs

Pin: ↑ Documentacion, ↑↑ Ejemplos, ↑ Tutoriales

DynamoRIO: ↑↑ Documentacion, ↑ Ejemplos, ↑ Tutoriales

Valgrind: ↓ Documentacion, ↓ Ejemplos, ↓ Tutoriales

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 28 / 1

Page 73: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (II)

Entorno de pruebas

Hardware

Intel Core2 Duo 2GHz 667MHz, 2GiB DDR2, HDD 120GB

Software

Fedora Core 14 32bits, gcc 4.5.1, GNU Fortran 4.5.1, r3

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 29 / 1

Page 74: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (II)

Entorno de pruebas

Hardware

Intel Core2 Duo 2GHz 667MHz, 2GiB DDR2, HDD 120GB

Software

Fedora Core 14 32bits, gcc 4.5.1, GNU Fortran 4.5.1, r3

Benchmark

Creacion de benchmark propio para comparativa

Alternativas estudiadas (e.g., SPEC) descartadas

Diferentes categorıas:

Calculo enteroCalculo realE/SUso intensivo de memoria

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 29 / 1

Page 75: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (III): Resultados (1)Consumo medio de memoria

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 30 / 1

Page 76: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (III): Resultados (2)Slowdown por instrumentaciones

PIN −O0 Valgrind −O0 DRIO −O0 PIN −O3 Valgrind −O3 DRIO −O30

2

4

6

8

10

12

14

16

18

20

Slowdown

Instrucciones

Bloques Básicos

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 31 / 1

Page 77: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (III): Resultados (3)

Conclusiones

X Nivel optimizacion o tipo calculo → DynamoRIO

X Mas lenta → Valgrind

Consumo de memoria

X ↓ PinX ↑ DynamoRIO

Cosas interesantes descubiertas. . .

Conteo instrucciones difiere segun fw. DBI → punto de inicio delnucleo DBI diferente

Problema redondeo numeros 80 bits en maquinas de 32 o 64 bits(Valgrind)

Ya reportado :( (https://bugs.kde.org/show_bug.cgi?id=19791)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 32 / 1

Page 78: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI Comparativa y analisis

Comparativa entre Frameworks DBI (III): Resultados (4)

Memoria del Proyecto

Estudio comparativo de frameworks de Instrumentacion Dinamica deEjecutables (J.A. Artal)

http://webdiis.unizar.es/~ricardo/files/PFC.Estudio.Frameworks.

DBI/Memoria_PFC_EstudioDBI.pdf

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 33 / 1

Page 79: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . .

Outline

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 34 / 1

Page 80: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Desarrollo de DBAs con Pin: Pintools

Desarrollo de DBAs con Pin: Pintools (I)

VM + cache de codigo + APIinstrumentacion

DBA → Pintool

VM: JIT + emulador +dispatcher

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 35 / 1

Page 81: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Desarrollo de DBAs con Pin: Pintools

Desarrollo de DBAs con Pin: Pintools (I)

VM + cache de codigo + APIinstrumentacion

DBA → Pintool

VM: JIT + emulador +dispatcher

1 JIT compila e instrumentacodigo aplicacion

2 Lanzado por el dispatcher3 Guardado en cache de codigo

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 35 / 1

Page 82: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Desarrollo de DBAs con Pin: Pintools

Desarrollo de DBAs con Pin: Pintools (I)

VM + cache de codigo + APIinstrumentacion

DBA → Pintool

VM: JIT + emulador +dispatcher

1 JIT compila e instrumentacodigo aplicacion

2 Lanzado por el dispatcher3 Guardado en cache de codigo

Opera sobre S.O.: user-space

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 35 / 1

Page 83: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Desarrollo de DBAs con Pin: Pintools

Desarrollo de DBAs con Pin: Pintools (II)Ejemplo de desarrollo: inscount.cpp

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 36 / 1

Page 84: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (I): Double FreeDemo: DoubleFreeDBA.dll

Vulnerabilidad

CWE-415 (http://cwe.mitre.org/data/definitions/415.html)

Llamada a free() con la misma @ → memoria corrupta

“Doubly freeing memory may result in a write-what-where condition,allowing an attacker to execute arbitrary code”

DBA desarrollada con Pin (DoubleFreeDBA.dll)

¿Donde?

APIs RtlAllocateHeap (despues), RtlAllocateFree (antes)

¿Que?

RtlAllocateHeap: guarda @ devuelta en listaRtlAllocateFree: quita @ de lista, avisa si no esta!

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 37 / 1

Page 85: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (I): Double FreeDemo: DoubleFreeDBA.dll

Vulnerabilidad

CWE-415 (http://cwe.mitre.org/data/definitions/415.html)

Llamada a free() con la misma @ → memoria corrupta

“Doubly freeing memory may result in a write-what-where condition,allowing an attacker to execute arbitrary code”

DBA desarrollada con Pin (DoubleFreeDBA.dll)

¿Donde?

APIs RtlAllocateHeap (despues), RtlAllocateFree (antes)

¿Que?

RtlAllocateHeap: guarda @ devuelta en listaRtlAllocateFree: quita @ de lista, avisa si no esta!

Recuerda: Hacer demo. . .J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 37 / 1

Page 86: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (II): Buffer Overflow (1)Demo: BufferOverflowDBA.dll

Vulnerabilidad

CWE-120 (http://cwe.mitre.org/data/definitions/120.html)

Copia a buffers sin restricciones → ejecucion de codigo arbitrario

“Buffer overflows often can be used to execute arbitrary code [...].Buffer overflows generally lead to crashes [...].”

DBA desarrollada con Pin (BufferOverflowDBA.dll)

Centrado en scanf

¿Donde?→ API scanf (antes)

¿Que?

Chequea parametros buscando buffers sin acotar

Mejoras: otras funciones vulnerables (e.g., strcpy)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 38 / 1

Page 87: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (II): Buffer Overflow (1)Demo: BufferOverflowDBA.dll

Vulnerabilidad

CWE-120 (http://cwe.mitre.org/data/definitions/120.html)

Copia a buffers sin restricciones → ejecucion de codigo arbitrario

“Buffer overflows often can be used to execute arbitrary code [...].Buffer overflows generally lead to crashes [...].”

DBA desarrollada con Pin (BufferOverflowDBA.dll)

Centrado en scanf

¿Donde?→ API scanf (antes)

¿Que?

Chequea parametros buscando buffers sin acotar

Mejoras: otras funciones vulnerables (e.g., strcpy)

Recuerda: Hacer demo. . .J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 38 / 1

Page 88: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (II): Buffer Overflow (2)Demo: ProtectRetAddrDBA.dll

Vulnerabilidad

CWE-120 (http://cwe.mitre.org/data/definitions/120.html)

Copia a buffers sin restricciones → ejecucion de codigo arbitrario

“Buffer overflows often can be used to execute arbitrary code [...].Buffer overflows generally lead to crashes [...].”

DBA desarrollada con Pin (ProtectRetAddrDBA.dll)

¿Donde? → toda CALL (antes) o RETN (antes) en la seccion .text

¿Que?

CALL → guarda direccion legıtima de retorno (EIP + size(CALL))RETN → si no esta en la lista raro. . .

Detectados 6 cambios de en librerıa ntdll.dll!!

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 39 / 1

Page 89: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Busqueda de vulnerabilidades

Busqueda de vulnerabilidades (II): Buffer Overflow (2)Demo: ProtectRetAddrDBA.dll

Vulnerabilidad

CWE-120 (http://cwe.mitre.org/data/definitions/120.html)

Copia a buffers sin restricciones → ejecucion de codigo arbitrario

“Buffer overflows often can be used to execute arbitrary code [...].Buffer overflows generally lead to crashes [...].”

DBA desarrollada con Pin (ProtectRetAddrDBA.dll)

¿Donde? → toda CALL (antes) o RETN (antes) en la seccion .text

¿Que?

CALL → guarda direccion legıtima de retorno (EIP + size(CALL))RETN → si no esta en la lista raro. . .

Detectados 6 cambios de en librerıa ntdll.dll!!

Recuerda: Hacer demo. . .J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 39 / 1

Page 90: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Analisis taint

Busqueda de vulnerabilidades (III): Analisis taintDemo: TaintAnalysisDBA.dll

DBA desarrollada con Pin (TaintAnalysisDBA.dll)

Analisis taint de parametro scanf

Hook en llamada de comparacion de cadena lstrcmpA

¿Donde? → API scanf (despues)

¿Que?

Tracea los registros/memoria contaminados a partir de la entrada

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 40 / 1

Page 91: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Analisis taint

Busqueda de vulnerabilidades (III): Analisis taintDemo: TaintAnalysisDBA.dll

DBA desarrollada con Pin (TaintAnalysisDBA.dll)

Analisis taint de parametro scanf

Hook en llamada de comparacion de cadena lstrcmpA

¿Donde? → API scanf (despues)

¿Que?

Tracea los registros/memoria contaminados a partir de la entrada

Recuerda: Hacer demo. . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 40 / 1

Page 92: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Ingenierıa Inversa

Busqueda de vulnerabilidades (IV): Ingenierıa InversaDemo: EasyPasswordDBA.dll

DBA desarrollada con Pin (EasyPasswordDBA.dll)

Busqueda de clave correcta

Hook en llamada de comparacion de cadena lstrcmpA

¿Donde?

API lstrcmpA (antes)

¿Que?

Guarda los parametros de la funcion

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 41 / 1

Page 93: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Ingenierıa Inversa

Busqueda de vulnerabilidades (IV): Ingenierıa InversaDemo: EasyPasswordDBA.dll

DBA desarrollada con Pin (EasyPasswordDBA.dll)

Busqueda de clave correcta

Hook en llamada de comparacion de cadena lstrcmpA

¿Donde?

API lstrcmpA (antes)

¿Que?

Guarda los parametros de la funcion

Esto ya no vale para las aplicaciones de verdad. . . ¿o sı? }:)

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 41 / 1

Page 94: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Aplicando DBI a Seguridad Informatica. . . Ingenierıa Inversa

Busqueda de vulnerabilidades (IV): Ingenierıa InversaDemo: EasyPasswordDBA.dll

DBA desarrollada con Pin (EasyPasswordDBA.dll)

Busqueda de clave correcta

Hook en llamada de comparacion de cadena lstrcmpA

¿Donde?

API lstrcmpA (antes)

¿Que?

Guarda los parametros de la funcion

Esto ya no vale para las aplicaciones de verdad. . . ¿o sı? }:)

Recuerda: Hacer demo. . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 41 / 1

Page 95: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Conclusiones y Agradecimientos

Outline

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 42 / 1

Page 96: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Conclusiones y Agradecimientos

Conclusiones

Frameworks DBI: rapido y sencillo → alto potencial

NO es necesario conocimientos de programacion S.O. avanzados

Podemos centrarnos en la “miga”: la DBA

Desventajas:

Conocimiento de la APITiempo de ejecucion

Sobre la comparativa. . .

X Nivel optimizacion o tipo calculo → DynamoRIO

X Mas lenta → Valgrind

Consumo de memoria

X ↓ PinX ↑ DynamoRIO

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 43 / 1

Page 97: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Conclusiones y Agradecimientos

AgradecimientosBuena gente a la que dar las gracias. . .

Gal Diskin

Dimitry “D1g1” Evdokimov

Francisco Falcon & Nahuel Riva

CrackLatinoS (CLS)

Asociacion NoConName, mil gracias!

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 44 / 1

Page 98: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Conclusiones y Agradecimientos

AgradecimientosBuena gente a la que dar las gracias. . .

Gal Diskin

Dimitry “D1g1” Evdokimov

Francisco Falcon & Nahuel Riva

CrackLatinoS (CLS)

Asociacion NoConName, mil gracias!

A vosotros por aguantar este toston. . .

J.A. Artal, R.J. Rodrıguez, J. Merseguer Frameworks DBI para Seguridad Informatica:usos y comparativa NcN2k12 44 / 1

Page 99: Frameworks DBI para Seguridad Informática: usos y comparativawebdiis.unizar.es/~ricardo/files/slides/industrial/slides_NcN-12.pdf · Esta´tico ANTES de la ejecuci´on Todos los

Frameworks DBI para Seguridad Informatica:

usos y comparativa

Juan Antonio Artal, Ricardo J. Rodrıguez, Jose Merseguer«All wrongs reserved

[email protected], {rjrodriguez, jmerse}@unizar.es

tw: @RicardoJRdez – http://www.ricardojrodriguez.es

Universidad de ZaragozaZaragoza, Spain

3 de Noviembre, 2012

No cON Name 2012

Barcelona, Espana