Open AccessComputer ScienceEngineering

Jannik Pewny, Behrad Garmany, R. Gawlik, C. Rossow, Thorsten Holz

2015.5.17IT-Information Technology

DOI: 10.1515/itit-2016-0040

tlooto Summary

This paper proposes a system to derive bug signatures for known bugs, and compute semantic hashes for the basic blocks of the binary to find code parts in the binary that behave similarly to the bug signature, effectively revealing code parts that contain the bug.

Abstract

Abstract With the general availability of closed-source software for various CPU architectures, there is a need to identify security-critical vulnerabilities at the binary level. Unfortunately, existing bug finding methods fall short in that they i) require source code, ii) only work on a single architecture (typically x86), or iii) rely on dynamic analysis, which is difficult for embedded devices. In this paper, we propose a system to derive bug signatures for known bugs. First, we compute semantic hashes for the basic blocks of the binary. When can then use these semantics to find code parts in the binary that behave similarly to the bug signature, effectively revealing code parts that contain the bug. As a result, we can find vulnerabilities, e.g., the famous Heartbleed vulnerabilities, in buggy binary code for any of the supported architectures (currently, ARM, MIPS and x86).

Citation format

PEWNY, Jannik, et al. Cross-architecture bug search in binary executables. IT-Information Technology, 2015, 59: 83–91.