Statistical similarity of binaries
Authors:
Open Access
- 2 June 2016
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 51 (6) , 266-280
Abstract
We address the problem of finding similar procedures in stripped binaries. We present a new statistical approach for measuring the similarity between two procedures. Our notion of similarity allows us to find similar code even when it has been compiled using different compilers, or has been modified. The main idea is to use similarity by composition: decompose the code into smaller comparable fragments, define semantic similarity between fragments, and use statistical reasoning to lift fragment similarity into similarity between procedures. We have implemented our approach in a tool called Esh, and applied it to find various prominent vulnerabilities across compilers and versions, including Heartbleed, Shellshock and Venom. We show that Esh produces high accuracy results, with few to no false positives -- a crucial factor in the scenario of vulnerability search in stripped binaries.Keywords
Funding Information
- Ministry of Science and Technology, Israel (3-9779)
- Seventh Framework Programme (615688 - ERC- COG-PRIME)
This publication has 17 references indexed in Scilit:
- Automatic Rootcausing for Program Equivalence Failures in Binaries2015
- Cross-Architecture Bug Search in Binary Executables2015
- Data-driven equivalence checking2013
- Abstract Semantic Differencing for Numerical Programs2013
- Labeling library functions in stripped binaries2011
- Recovering the toolchain provenance of binary code2011
- A CROC stronger than ROC: measuring, visualizing and optimizing early retrievalBioinformatics, 2010
- Analysis of Matched Data Using Logistic Regression2010
- Boogie: A Modular Reusable Verifier for Object-Oriented Programs2006
- The program dependence graph and its use in optimizationACM Transactions on Programming Languages and Systems, 1987