Un réseau de neurones convolutionnel hiérarchique pour la classification de logiciels malveillants
La détection et la classification des logiciels malveillants constituent un problème complexe et un domaine de recherche actif. Parmi les défis particuliers figurent la manière optimale de traiter et de prétraiter les exécutables malveillants afin de les alimenter dans des algorithmes d’apprentissage automatique. Les approches récentes dans la littérature considèrent un exécutable comme une séquence d’octets ou comme une séquence d’instructions en langage assembleur. Toutefois, ces méthodes ne tiennent pas compte de la structure hiérarchique des programmes. Un exécutable présente divers degrés de corrélation spatiale : les instructions de code adjacentes sont corrélées spatialement, mais ce n’est pas nécessairement le cas pour toutes les parties du programme. Les appels de fonctions et les instructions de saut transfèrent le contrôle du programme vers un autre point de la séquence d’instructions. En outre, ces discontinuités persistent lorsqu’on traite le binaire comme une séquence de valeurs d’octets. En outre, les fonctions peuvent être disposées de manière aléatoire si les adresses sont correctement réorganisées. Pour relever ces défis, nous proposons un réseau convolutif hiérarchique (HCN) pour la classification des logiciels malveillants. Ce modèle intègre deux niveaux de blocs convolutifs appliqués au niveau des mnémoniques et au niveau des fonctions, permettant ainsi d’extraire des caractéristiques du type n-gramme à partir des deux niveaux lors de la construction de la représentation du logiciel malveillant. Nous validons notre méthode HCN sur le jeu de données mis à disposition pour le Microsoft Malware Classification Challenge, et démontrons qu’elle surpasse presque toutes les méthodes d’apprentissage profond existantes dans la littérature.