Authors:
Ciprian Paduraru
;
Bogdan Ghimis
and
Alin Stefanescu
Affiliation:
Department of Computer Science, University of Bucharest, Romania, Research Institute of the University of Bucharest, Romania
Keyword(s):
Security, Threats, Vulnerabilities, Concolic, Symbolic, Execution, Testing, Tool, Binaries, x86, Tainting, Z3, Reinforcement Learning.
Abstract:
This paper presents a new open-source testing tool capable of performing concolic execution on x86 binaries. Using this tool, one can find out ahead of time of potential bugs that can enable threats such as process hijacking and stack buffer overflow attacks. Although a similar tool, SAGE, already exists in literature, it is closed-sourced and we think that using its description to implement an open-sourced version of its main novel algorithm, Generational Search, is beneficial to both industry and research communities. This paper describes, in more detail than previous work, how the components at the core of a concolic execution tool, such as tracers, dynamic tainting mechanisms and SMT solvers, collaborate together to ensure code coverage. Also, it briefly describes how reinforcement learning can be used to speed up the state of the art heuristics for prioritization of inputs. Research opportunities and the technical difficulties that the authors observed during the current develop
ment of the project are presented as well.
(More)