Ing Inverso

download Ing Inverso

of 45

Transcript of Ing Inverso

Mam: De grande quiero ser Ingeniero ReversoPosibilidades de una nueva profesin en PerMiguel Febres / Q-Protex

Quien soy?Un psiclogo y msico frustado Analista Programador: Java, Pascal, C#, PHP, Python, ASM Docente de Java en Cibertec IT Security Consultant en Q-Protex

Quien soy?Nicks anteriores: AnonimoSer DiHACKblo BeeMoul Nick actual: emadicius

Autor del MSLRH: Protector de ejecutables

Antes de empezarA estirarnos un poco!

Objetivos de la Presentacin

1

Comentar experiencia personal

2 3

Despertar tu inters!

Posibilidades de estudio y laborales

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Que es Ingeniera Inversa?Definicin de Wikipedia: El objetivo de la ingeniera inversa es obtener informacin a partir de un producto accesible al pblico, con el fin de determinar de qu est hecho, qu lo hace funcionar y cmo fue fabricado.

Que es Ingeniera Inversa?Definicin de Wikipedia: Hoy en da (principios del siglo XXI), los productos ms comnmente sometidos a ingeniera inversa son los programas de computadoras y los componentes electrnicos, pero, en realidad, cualquier producto o bien puede ser objeto de un anlisis de Ingeniera Inversa.

Que es Ingeniera Inversa?Usos en la medicina

Las vacunas se hacen luego de hacer una ingeniera inversa a las bacterias o virus.

Que es Ingeniera Inversa?Usos en la psicologaLos fundadores de la PNL sacaron sus plantillas del pensamiento humano haciendo ingeniera inversa a las mentes de personas con xito: las estudiaron y desensamblaron sus programas, hasta obtener el cdigo, que aplicaron a otras personas.

Que es Ingeniera Inversa?Los militares lo usan para copiar tecnologas de pases rivales!

Que es Ingeniera Inversa?Resolver casos misteriosos?

Que es Ingeniera Inversa?Cazar mitos!

No video

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Ingeniera Inversa de SoftwareDefinicin de Wikipedia: En el caso concreto del software, se conoce por ingeniera inversa a la actividad que se ocupa de descubrir cmo funciona un programa, funcin o caracterstica de cuyo cdigo fuente no se dispone, hasta el punto de poder modificar ese cdigo o generar cdigo propio que cumpla las mismas funciones.

Ingeniera Inversa de SoftwareConocida con otros nombres: Reversing: Reverse Engineering RCE: Reverse Code Engineering SRE: Software Reverse Engineering Cracking es solo una posibilidad de la Ingeniera Inversa.

Motivos para aprenderlo? Diversin: Es un hobby fabuloso! Curiosidad: Mi caso! Aprendizaje: Te hace conocer mejor el funcionamiento interno de las cosas Seguridad: Anlisis de malware, Desarrollo de exploits, Ethical hacking, Test de penetracin Desarrollo/anlisis/ruptura de sistemas de proteccin de software: Protectores, packers, loaders, cracking Duplicacin/Recuperacin: Al no disponer de la documentacion o el cdigo fuente.

Casos de xitoDesarrollo de aplicaciones

Samba

Wine

Open Office

Permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows

Implementacin de la API de Windows

Para obtener los formatos propietarios de Microsoft Office

RequerimientosIngeniera Inversa

Conocimiento Se necesita conocer algunos conceptos informticos como los siguientes: Arquitectura de PCs Sistemas operativos Formatos de archivos binarios Programacin

Herramientas Se necesita aprender el manejo de un gran nmero de herramientas que trabajan en conjunto para lograr el objetivo comun.

HerramientasAnalizadores de Archivos Detectores de Packers, Unpackers

Open Source / Free / Paid

Decompiladores Desensambladores Programming Languages e IDES

Editores de recursos Utilidadades varias

Hex Editors PE Tools

Herramientas - FrameworksREMnux: A Linux Distribution for Reverse-Engineering Malware REMnux is a lightweight Linux distribution for assisting malware analysts in reverse-engineering malicious software. The distribution is based on Ubuntu and is maintained by Lenny Zeltser

Opensource tools to disasm, debug, analyze and manipulate binary files. Highly scriptable Multi-architecture multi-platform Hexadecimal editor IO is wrapped Debugger support Diffing between two functions or binaries Code analysis at opcode, basicblock, function levels

Metodologa

No hay metodologa. Solo usa el Zen-Cracking!!

Metodologa1. Especificar la razn del anlisis: Estudio, Modificar o Agregar funcionalidad, Entender cierta parte del cdigo, Anlisis de Malware, etc. Anlisis de comportamiento 1. Ejecutar el binario en un ambiente de pruebas (VM) 2. Monitorear como interacta con los archivos, registro, red 3. Interactuar con el binario directamente en caso tenga GUI Usar un analizar de binario para detectar posible compilador y/o compresor/protector. En caso exista un compresor/protector, evaluar la necesidad de quitarlo: 1. Depurar hasta el OEP 2. Dumpear 3. Arreglar IAT De acuerdo con el tipo de binario detectado en el punto 3, reunir las herramientas enfocadas a este tipo. Anlisis de cdigo: 1. Refuerza lo encontrado en el anlisis de comportamiento 2. Uso de decompiladores, debuggers y otros 3. Examinar el cdigo y buscar las partes mas importantes Enfocarse en lo establecido en el punto 1

2.

3. 4.

5.6.

7.

MetodologaAnlisis de cdigo es la parte mas divertida / difcil:Tcnicas Anti-debugging y anti-tracing

Deteccin de Breakpoints Anti Virtual Machines y emuladores

Anti dump Timers

Discrepancias de valores en memoria Discrepancia de resultados de funciones API

Self-Debugging Cdigo automodificable

Uso de algoritmos de encriptacin y de hash (CRC) Uso de interrupciones Deteccin especfica de debuggers usando enumeracin de ventanas / procesos o revisando el registro

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Casos de Uso1Soporte Informtico

2Desarrollo de Sistemas

Caso Anti-Porn

Caso IpView

Casos de Uso - AntiPornUsuario con problemas!

1Soporte Informtico

Caso Anti-Porn

Al, soporte? Por favor ayuda!!! Instal un programa que filtra el internet y no lo he podido configurar correctamente!!!! Ahora no puedo entrar a ninguna pgina pues me pide un password para configurarlo o desinstalarlo!!!

Casos de Uso - AntiPornTcnico en Computadoras

1Soporte Informtico

Caso Anti-Porn

No hay otra solucin mas que formatear el disco e instalar de nuevo el sistema operativo. Esto va a tomar un par de das pues debo recoger la PC y traerla a mi laboratorio. Esto le va a costar!

Casos de Uso - AntiPorn1Soporte Informtico

Tcnico en Computadoras con conocimiento en Ingeniera Inversa

Caso Anti-Porn

Ok, no problem. Con mi debugger puedo modificar el programa en memoria para poder desinstalarlo. Esto va a tomar unos minutos Esto le va a costar! (Posiblemente ms)

Casos de Uso - IpViewEjecutivo

2Desarrollo de Sistemas

Caso IpView

El software que nos vino con el dispositivo no se ve correctamente en los monitores LCD del rea de distribucin! Por favor necesito una solucin ASAP!

Casos de Uso - IpViewDesarrollador Area de Sistemas

2Desarrollo de Sistemas

Caso IpView

Vamos a programar las reuniones para levantar los requerimientos y desarrollar el software a medida pues no tenemos el cdigo fuente de dicha aplicacin. Esto va a tomar algunas semanas!

Casos de Uso - IpView2Desarrollo de Sistemas

Desarrollador Area de Sistemas con conocimiento en Ingeniera Inversa

Caso IpView

Vamos a modificar el programa para que pueda verse en los monitores Esto tomar un par de horas.

Casos de Uso - IpView

436X472

Ventana en tamao real. Ntese el tamao de las letras y la ausencia del botn de maximizar.

Casos de Uso - IpView

Creacin de un Loader en delphi con el componente TDbgCLS que modifica el tamao de la letra, el ancho y el alto de la ventana.

Casos de Uso - IpView

1024x750

Duracin: 2 ~ 3 horas

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

CertificacionesCertified Reverse Code Engineering Professional (Windows) Certified Reverse Code Engineering Expert (Windows)

Certified Reverse Engineering Analyst (CREA)

GIAC Reverse Engineering Malware (GREM)

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Como y donde aprender?Reverse Code Engineering Training

Reverse Engineering: Malware, Binary Analysis and Software Vulnerabilities Advanced Reverse Engineering Malware

Reverse-Engineering Malware: Malware Analysis Tools and Techniques

Capacitacin en Ingeniera Inversa. Curso en desarrollo planeado para el 2011

Como y donde aprender?RECon: Reverse Engineering Conference http://recon.cx/2010/

Tecnologas de programacin y la estructura interna de los programas(Ingenieria Inversa) http://groups.google.com/group/crackslati nos Infinidad de webs y recursos de donde aprender

Estructura de la PresentacinQue es la ingeniera reversa/inversa? Ingeniera Inversa de Software Casos de Uso Certificaciones Como y donde aprender? Oportunidades Laborales

Oportunidades Laborales Analista de Malware. Laboratorio de Anlisis de Malware prximo a abrirse en Argentina

Desarrollador C/Reverse Engineering Desarrollador (Seguridad Informtica) SSR o SR Muchos de los miembros de CracksLatinos trabajan aqu. (Argentina)

Laboratorio de desarrollo de exploits en Argentina

Senior Reverse Engineer and Vulnerability Researcher (Dinamarca)

ConclusionesQue quieres ser de grande hijo?

Quiero ser... Ingeniero Reverso!

[email protected] http://www.q-protex.com