Neural Network-based Graph Embedding for Cross-Platform Binary Code Similarity Detection
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.
Code (1)
Tasks
Computer SecurityGraph EmbeddingGraph MatchingMalware DetectionMethods 이 논문이 사용한 방법론
Similar Papers 제목 키워드 기반
Cross-Language Binary-Source Code Matching with Intermediate Representations
Binary-source code matching plays an important role in many security and software engineering related tasks such as malware detection, reverse engineering and vulnerability assessment. Currently, several approaches have …
Malware DetectionA Cross-Architecture Instruction Embedding Model for Natural Language Processing-Inspired Binary Code Analysis
Given a closed-source program, such as most of proprietary software and viruses, binary code analysis is indispensable for many tasks, such as code plagiarism detection and malware analysis. Today, source code is very of…
Malware AnalysisTowards Spatio-Temporal Cross-Platform Graph Embedding Fusion for Urban Traffic Flow Prediction
In this paper, we have proposed STC-GEF, a novel Spatio-Temporal Cross-platform Graph Embedding Fusion approach for the urban traffic flow prediction. We have designed a spatial embedding module based on graph convolutio…
Graph EmbeddingPredictionTraffic PredictionUnsupervised Features Extraction for Binary Similarity Using Graph Embedding Neural Networks
In this paper we consider the binary similarity problem that consists in determining if two binary functions are similar only considering their compiled form. This problem is know to be crucial in several application sce…
Graph EmbeddingMalware AnalysisSemantic SimilaritySemantic Textual Similarity+1Proximity Preserving Binary Code using Signed Graph-Cut
We introduce a binary embedding framework, called Proximity Preserving Code (PPC), which learns similarity and dissimilarity between data points to create a compact and affinity-preserving binary code. This code can be u…
graph partitioning