Objetivo


Este trabajo presenta un sistema híbrido para la clasificación de archivos binarios, orientado principalmente a la detección de malware. El proceso comienza con un archivo binario, como un ejecutable PE o una aplicación APK, que se analiza mediante IDA Pro para obtener su representación en código ensamblador. A partir de este ensamblador se genera una estructura de tokens que representa instrucciones, operandos, llamadas, saltos y otros elementos relevantes del programa.

Una vez obtenida la secuencia de tokens, esta se introduce en una red neuronal convolucional. La CNN aplica filtros sobre la secuencia para detectar patrones locales del código, como combinaciones de instrucciones, opcodes frecuentes, estructuras repetitivas o posibles indicios de ofuscación. A partir de estos patrones, la red genera un embedding denso que resume en un vector compacto la información más relevante del binario desde el punto de vista secuencial.

Además de esta representación, el binario también se modela como un grafo, por ejemplo mediante un grafo de flujo de control. En este grafo, los nodos pueden representar bloques básicos o funciones, mientras que las aristas indican relaciones de ejecución, saltos o llamadas entre distintas partes del programa. El embedding generado por la CNN se integra con esta representación estructural para enriquecer la información disponible antes de la clasificación.

Finalmente, el grafo enriquecido se procesa mediante una red neuronal de grafos. La GNN aplica message passing entre nodos, combinando la información de cada elemento con la de sus vecinos y capturando dependencias estructurales del programa. Tras varias capas, se obtiene una representación global del binario que se introduce en un clasificador final para determinar si el archivo es malicioso o benigno. La principal aportación del trabajo es combinar los patrones locales aprendidos por la CNN con la estructura global capturada por la GNN.

TRABAJO FIN DE GRADO DE:

ÁLVARO GARCÍA PIQUERAS

Experiencia Académica

  • Grado en Ingeniería Informática, Universidad Carlos III de Madrid (septiembre 2022 – septiembre 2026)

     

    Experiencia Laboral

    • Asistente de Investigación en IA – Universidad Carlos III de Madrid en colaboración con Grupo MasOrange (octubre 2025 — junio 2026)


    Habilidades técnicas

    • Lenguajes de programación: Python, Java, C++, JavaScript, Go, MATLAB

    • Bibliotecas: Pandas, NumPy, TensorFlow, Keras, Scikit-Learn

    • Bases de datos y computación en la nube: AWS, Amazon S3, Oracle, BigQuery, PostgreSQL, PL/SQL

    • Control de versiones y DevOps: GitHub, GitLab

    • Inteligencia Artificial: Redes Neuronales, Inteligencia Artificial, Machine Learning, GNN