CSSV: Towards a realistic tool for statically detecting all buffer overflows in C

Nurit Dor, Michael Rodeh, Mooly Sagiv

Research output: Contribution to journalConference articlepeer-review

Abstract

Erroneous string manipulations are a major source of software defects in C programs yielding vulnerabilities which are exploited by software viruses. We present C String Static Verifyer (CSSV), a tool that statically uncovers all string manipulation errors. Being a conservative tool, it reports all such errors at the expense of sometimes generating false alarms. Fortunately, only a small number of false alarms are reported, thereby proving that statically reducing software vulnerability is achievable. CSSV handles large programs by analyzing each procedure separately. To this end procedure contracts are allowed which are verified by the tool. We implemented a CSSV prototype and used it to verify the absence of errors in real code from EADS Airbus. When applied to another commonly used string intensive application, CSSV uncovered real bugs with very few false alarms.

Original languageEnglish
Pages (from-to)155-167
Number of pages13
JournalACM SIGPLAN Notices
Volume38
Issue number5
DOIs
StatePublished - May 2003
EventProceedings of the ACM Sigplan 2003 Conference on Programming Language Design and Implementation - San Diego, CA, United States
Duration: 9 Jun 200311 Jun 2003

Keywords

  • Abstract interpretation
  • Buffer overflow
  • Contracts
  • Error detection
  • Static analysis

Fingerprint

Dive into the research topics of 'CSSV: Towards a realistic tool for statically detecting all buffer overflows in C'. Together they form a unique fingerprint.

Cite this