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 language | English |
---|---|
Pages (from-to) | 155-167 |
Number of pages | 13 |
Journal | ACM SIGPLAN Notices |
Volume | 38 |
Issue number | 5 |
DOIs | |
State | Published - May 2003 |
Event | Proceedings of the ACM Sigplan 2003 Conference on Programming Language Design and Implementation - San Diego, CA, United States Duration: 9 Jun 2003 → 11 Jun 2003 |
Keywords
- Abstract interpretation
- Buffer overflow
- Contracts
- Error detection
- Static analysis