Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
arXiv:1708.06525 · doi:10.1145/3133956.3134018
Abstract
The problem of cross-platform binary code similarity detection aims at detecting whether two binary functions coming from different platforms are similar or not. It has many security applications, including plagiarism detection, malware detection, vulnerability search, etc. Existing approaches rely on approximate graph matching algorithms, which are inevitably slow and sometimes inaccurate, and hard to adapt to a new task. To address these issues, in this work, we propose a novel neural network-based approach to compute the embedding, i.e., a numeric vector, based on the control flow graph of each binary function, then the similarity detection can be done efficiently by measuring the distance between the embeddings for two functions. We implement a prototype called Gemini. Our extensive evaluation shows that Gemini outperforms the state-of-the-art approaches by large margins with respect to similarity detection accuracy. Further, Gemini can speed up prior art's embedding generation time by 3 to 4 orders of magnitude and reduce the required training time from more than 1 week down to 30 minutes to 10 hours. Our real world case studies demonstrate that Gemini can identify significantly more vulnerable firmware images than the state-of-the-art, i.e., Genius. Our research showcases a successful application of deep learning on computer security problems.
ACM CCS 17
References in corpus (2)
Cited by in corpus (19)
- Combining Graph Neural Networks with Expert Knowledge for Smart Contract Vulnerability Detection
- PalmTree: Learning an Assembly Language Model for Instruction Embedding
- Revisiting Binary Code Similarity Analysis using Interpretable Feature Engineering and Lessons Learned
- Opportunities and Challenges in Code Search Tools
- Multilevel Graph Matching Networks for Deep Graph Similarity Learning
- Neural Reverse Engineering of Stripped Binaries using Augmented Control Flow Graphs
- Asteria: Deep Learning-based AST-Encoding for Cross-platform Binary Code Similarity Detection
- ModelDiff: Testing-Based DNN Similarity Comparison for Model Reuse Detection
- LibDB: An Effective and Efficient Framework for Detecting Third-Party Libraries in Binaries
- funcGNN: A Graph Neural Network Approach to Program Similarity
- Graph Mining for Cybersecurity: A Survey
- Semantic Learning and Emulation Based Cross-platform Binary Vulnerability Seeker
- A Semantics-Based Hybrid Approach on Binary Code Similarity Comparison
- Towards Demystifying Dimensions of Source Code Embeddings
- Inter-BIN: Interaction-based Cross-architecture IoT Binary Similarity Comparison
- ECMO: Peripheral Transplantation to Rehost Embedded Linux Kernels
- Black-box Attacks Against Neural Binary Function Detection
- ORCAS: Obfuscation-Resilient Binary Code Similarity Analysis using Dominance Enhanced Semantic Graph
- Pretraining on Call Graphs: When Binary Analysis Tasks Profit From Context