Using static symbolic execution to detect buffer overflows


Дәйексөз келтіру

Толық мәтін

Ашық рұқсат Ашық рұқсат
Рұқсат жабық Рұқсат берілді
Рұқсат жабық Тек жазылушылар үшін

Аннотация

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.

Авторлар туралы

I. Dudina

Institute for System Programming; Faculty of Computational Mathematics and Cybernetics

Хат алмасуға жауапты Автор.
Email: eupharina@ispras.ru
Ресей, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991

A. Belevantsev

Institute for System Programming; Faculty of Computational Mathematics and Cybernetics

Email: eupharina@ispras.ru
Ресей, ul. Solzhenitsyna 25, Moscow, 109004; Moscow, 119991

Қосымша файлдар

Қосымша файлдар
Әрекет
1. JATS XML

© Pleiades Publishing, Ltd., 2017