EspecialidadesIng. de Computadores
Tecnologías de la Información
Tutor
MARTINEZ MARTINEZ, JOSE LUIS
Descripción y Objetivos
El objetivo de la ingeniería inversa es obtener información o un diseño a partir de un producto, con el fin de determinar de qué está hecho, qué lo hace funcionar y cómo fue fabricado.
Hoy día (principios del siglo XXI), los productos más comúnmente sometidos a ingeniería inversa son los programas de computadoras y los componentes electrónicos, pero, en verdad, cualquier producto puede ser objeto de un análisis de Ingeniería Inversa.
El método se denomina así porque avanza en dirección opuesta a las tareas habituales de ingeniería, que consisten en utilizar datos técnicos para elaborar un producto determinado. En general, si el producto u otro material que fue sometido a la ingeniería inversa fue obtenido en forma apropiada, entonces el proceso es legítimo y legal. De la misma forma, pueden fabricarse y distribuirse, legalmente, los productos genéricos creados a partir de la información obtenida de la ingeniería inversa, como es el caso de algunos proyectos de software libre ampliamente conocidos.
El programa Samba es un claro ejemplo de ingeniería inversa, dado que permite a sistemas operativos UNIX compartir archivos con sistemas Microsoft Windows. El proyecto Samba tuvo que investigar información confidencial (no liberada al público en general por Microsoft) sobre los aspectos técnicos relacionados con el sistema de archivos Windows. Lo mismo realiza el proyecto WINE para el conjunto de API de Windows y OpenOffice.org con los formatos propios de Microsoft Office, o se hace para entender la estructura del sistema de archivos NTFS y así poder desarrollar drivers para la lectura-escritura sobre el mismo (principalmente para sistemas basados en GNU/Linux).
El objetivo de este TFG es adentrarse en esta tecnología aplicando téncias y procedimientos de reversing sobre malware para investigar su funcionalidad, con vistas a ver qué técnicas se usan para saltarse los sistemas de detección como los antivirus, snort. Tambén sería interesante aplicar estas técnicas para desarrollar cracker de aplicaciones: aquellos software con licencia que puede crackearse aplicando técnias de ingenería inversa.
Metodología y Competencias
Este TFG seguirá esta metodología:
- Lectura y aprendizaje sobre qué es y en qué consiste la ingeniería inversa.
- Localización y puesta a punto de las diferentes herramientas disponibles (GDB, OllyDBG, radare2, IDA, ...)
- Primeros pasos hacias realizar un reversing sobre algún malware conocido
- Reversing avanzado sobre alguna aplicación o malware
- Pruebas y Evaluación
- Escritura de la Memoria
Medios a utilizar
Los medios software a utilizar así como el material de lectura y aprendizaje está disponible por el profesor. Las herramientas a usar, son muchas de licencia GPL y para las de pago se dispone de licencias académicas. En cuanto al equipamiento hardware no se necesita ninguna máquina en concreto pero se dispone de infraestructura y equipamiento en el i3a, si fuera necesario.
Bibliografía
[1] https://es.wikipedia.org/wiki/Ingenier%C3%ADa_inversa
[2] http://expdev-kiuhnm.rhcloud.com/2015/05/11/contents/
[3] http://www.securitybydefault.com/2014/08/curso-online-en-espanol-de-reversing-y.html
Asignación
El Trabajo Fin de Grado ha sido a asignado a Don/Doña Javier Carrillo Mondejar