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

Согласие на обработку персональных данных

 

Используя сайт https://journals.rcsi.science, я (далее – «Пользователь» или «Субъект персональных данных») даю согласие на обработку персональных данных на этом сайте (текст Согласия) и на обработку персональных данных с помощью сервиса «Яндекс.Метрика» (текст Согласия).