Using static symbolic execution to detect buffer overflows


Citar

Texto integral

Acesso aberto Acesso aberto
Acesso é fechado Acesso está concedido
Acesso é fechado Somente assinantes

Resumo

Buffer overrun remains one of the main sources of errors and vulnerabilities in the C/C++ source code. To detect such kind of defects, static analysis is widely used. In this paper, we propose a path-sensitive static analysis based on symbolic execution with state merging. For buffers with compile-time-known sizes, we present an interprocedural path- and context-sensitive overrun detection algorithm that finds program points satisfying a proposed error definition. The described approach was implemented in the Svace static analyzer without significant loss of performance. On Android 5.0.2, these detectors generated 351 warnings, 64% of which were true positives. In addition, we describe a prototype of an intraprocedural heap buffer overflow detector and present an example of a defect found by this detector.

Sobre autores

I. Dudina

Institute for System Programming; Faculty of Computational Mathematics and Cybernetics

Autor responsável pela correspondência
Email: eupharina@ispras.ru
Rússia, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991

A. Belevantsev

Institute for System Programming; Faculty of Computational Mathematics and Cybernetics

Email: eupharina@ispras.ru
Rússia, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991

Arquivos suplementares

Arquivos suplementares
Ação
1. JATS XML

Declaração de direitos autorais © Pleiades Publishing, Ltd., 2017