A Hierarchical Convolutional Neural Network for Malware Classification
Malware detection and classification is a challenging problem and an active area of research. Particular challenges include how to best treat and preprocess malicious executables in order to feed machine learning algorithms. Novel approaches in the literature treat an executable as a sequence of bytes or as a sequence of assembly language instructions. However, in those approaches the hierarchical structure of programs is not taken into consideration. An executable exhibits various levels of spatial correlation. Adjacent code instructions are correlated spatially but that is not necessarily the case. Function calls and jump commands transfer the control of the program to a different point in the instruction stream. Furthermore, these discontinuities are maintained when treating the binary as a sequence of byte values. In addition, functions might be arranged randomly if addresses are correctly reorganized. To address these issues we propose a Hierarchical Convolutional Network (HCN) for malware classification. It has two levels of convolutional blocks applied at the mnemonic-level and at the function-level, enabling us to extract n-gram like features from both levels when constructing the malware representation. We validate our HCN method on the dataset released for the Microsoft Malware Classification Challenge, outperforming almost every deep learning method in the literature.
PDFResults from the Paper
Task | Dataset | Model | Metric Name | Metric Value | Global Rank | Benchmark |
---|---|---|---|---|---|---|
Malware Classification | Microsoft Malware Classification Challenge | MalConv | Accuracy (10-fold) | 0,9641 | # 23 | |
LogLoss | 0.3071 | # 12 | ||||
Macro F1 (10-fold) | 0.8902 | # 19 | ||||
Malware Classification | Microsoft Malware Classification Challenge | Hierarchical Attention Network | Accuracy (10-fold) | 0.9742 | # 17 | |
LogLoss | 0.0933 | # 6 | ||||
Macro F1 (10-fold) | 0.9468 | # 14 | ||||
Malware Classification | Microsoft Malware Classification Challenge | DeepConv | Accuracy (10-fold) | 0.9756 | # 15 | |
LogLoss | 0.1602 | # 10 | ||||
Macro F1 (10-fold) | 0.9071 | # 18 | ||||
Malware Classification | Microsoft Malware Classification Challenge | CNN+BiLSTM | Accuracy (10-fold) | 0.9820 | # 12 | |
LogLoss | 0.0744 | # 4 | ||||
Macro F1 (10-fold) | 0.9605 | # 13 | ||||
Malware Classification | Microsoft Malware Classification Challenge | Hierarchical Convolutional Network | Accuracy (10-fold) | 0.9913 | # 6 | |
LogLoss | 0.0419 | # 2 | ||||
Macro F1 (10-fold) | 0.9830 | # 7 |