Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2018, Volume 30, Issue 5, Pages 55–74
DOI: https://doi.org/10.15514/ISPRAS-2018-30(5)-3
(Mi tisp360)
 

An approach to the c string analysis for buffer overflow detection

I. A. Dudinaab, N. E. Malyshevab

a Ivannikov Institute for System Programming of the Russian Academy of Sciences
b Lomonosov Moscow State University
References:
Abstract: Many buffer overrun errors in C programs are caused by erroneous string manipulations. These can lead to denial of service, incorrect computations or even exploitable vulnerabilities. One approach to eliminate such defects in the course of program development is static analysis. Existing static analysis methods for analyzing strings either produce many false positives, miss too many errors, scale poorly, or are implemented as a part of a proprietary software. To cover a significant amount of the real program defects it is necessary to detect errors that could happen only on a particular program path and cannot be defined by a single erroneous point. Also, it is essential to find misusage of library functions and user functions. The aim of this study is to develop a detection algorithm that will cover such cases, will produce at most 40% false warnings, will be applicable to any C programs without any additional restrictions, and will scale up to millions of lines of code. We have extended our approach of symbolic execution with state merging to support string manipulations. Also we have developed a string overflow detector based on our buffer overflow approach with integer indices. The new algorithm was implemented in the Svace static analyzer. As a result, the coverage of the buffer-overflow related testcases from the Juliet test suite has increased from 15.4% to 41.5% with zero false positives. Also we have compared our Juliet results to those of the Infer static analyzer. The basic Svace version (without string support) is on par with Infer except for the flow variant of complex loops, whereas string-related buffer overflows are not detected by Infer.
Keywords: static analysis, static symbolic execution, string analysis.
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: I. A. Dudina, N. E. Malyshev, “An approach to the c string analysis for buffer overflow detection”, Proceedings of ISP RAS, 30:5 (2018), 55–74
Citation in format AMSBIB
\Bibitem{DudMal18}
\by I.~A.~Dudina, N.~E.~Malyshev
\paper An approach to the c string analysis for buffer overflow detection
\jour Proceedings of ISP RAS
\yr 2018
\vol 30
\issue 5
\pages 55--74
\mathnet{http://mi.mathnet.ru/tisp360}
\crossref{https://doi.org/10.15514/ISPRAS-2018-30(5)-3}
\elib{https://elibrary.ru/item.asp?id=36591026}
Linking options:
  • https://www.mathnet.ru/eng/tisp360
  • https://www.mathnet.ru/eng/tisp/v30/i5/p55
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:138
    Full-text PDF :95
    References:21
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024