[en] The fight against malware has never stopped since the dawn of computing. This fight has turned out to be a never-ending and cyclical arms race: as security analysts and researchers improve their defenses, malware developers continue to innovate, and new infection vectors and enhance their obfuscation techniques. Lately, due to the massive growth of malware streams, new methods have to be devised to complement traditional detection approaches and keep pace with new attacks and variants. The aim of this thesis is the design, implementation, and evaluation of machine learning approaches for the task of malware detection and classification, due to its ability to handle large volumes of data and to generalize to never-before-seen malware. This thesis is structured into four main parts. The first part provides a systematic and detailed overview of machine learning techniques to tackle the problem of malware detection and classification. The second part is devoted to automating the feature engineering process through deep learning. The third part of this thesis is devoted to investigating mechanisms to combine multiple modalities of information to increase the robustness of deep learning classifiers. The fourth part of this dissertation discusses the main issues and challenges faced by security researchers such as the availability of public benchmarks for malware research, and the problems of class imbalance, concept drift and adversarial learning. To this end, it provides an extensive evaluation of deep learning approaches for malware classification against common metamorphic techniques, and it explores their usage to augment the training set and reduce class imbalance.

[es] La lucha contra el software malicioso no se ha interrumpido desde los inicios de la era digital, resultando en una carrera armamentística, cíclica e interminable; a medida que los analistas de seguridad y investigadores mejoran sus defensas, los desarrolladores de software malicioso siguen innovando, hallando nuevos vectores de infección y mejorando las técnicas de ofuscación. Recientemente, debido al crecimiento masivo y continuo del malware, se requieren nuevos métodos para complementar los existentes y así poder proteger los sistemas de nuevos ataques y variantes. El objetivo de esta tesis doctoral es el diseño, implementación y evaluación de métodos de aprendizaje automático para la detección y clasificación de software malicioso, debido a su capacidad para manejar grandes volúmenes de datos y su habilidad de generalización. La tesis se ha estructurado en cuatro partes. La primera parte proporciona una descripción completa de los métodos y características empleados para la detección y clasificación de software malicioso. La segunda parte consiste en la automatización del proceso de extracción de características mediante aprendizaje profundo. La tercera parte consiste en la investigación de mecanismos para combinar múltiples modalidades o fuentes de información y así, incrementar la robustez de los modelos de clasificación. La cuarta parte de esta tesis presenta los principales problemas y retos a los que se enfrentan los analistas de seguridad, como el problema de la desigualdad entre el número de muestras por familia, el aprendizaje adverso, entre otros. Asimismo, proporciona una extensa evaluación de los distintos métodos de aprendizaje profundo contra varias técnicas de ofuscación, y analiza la utilidad de estas para aumentar el conjunto de entrenamiento y reducir la desigualdad de muestras por familia.