Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Digital Library

Javascript is currently disabled for your browser. For an optimal search experience, please enable javascript.

Advanced Search

Basic Search

Content Type

Topics

Publication Date

Technical Report

COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification

  • August 2010
  • By Sagar Chaki , Arie Gurfinkel
  • In this report, the authors present COVERT, an automated framework for finding buffer overflows in C programs using software verification tools and techniques.
  • Software Architecture
  • Publisher: Software Engineering Instiute
  • Abstract

    Buffer overflows continue to be the source of a vast majority of software vulnerabilities. Solutions based on runtime checks incur performance overhead, and are inappropriate for safety-critical and mission-critical systems requiring static—that is, prior to deployment—guarantees. Thus, finding overflows statically and effectively remains an important challenge. This report presents COVERT, an automated framework aimed at finding buffer overflows in C programs using state-of-the-art software verification tools and techniques. Broadly, COVERT works in two phases: INSTRUMENTATION and ANALYSIS. The INSTRUMENTATION phase is the core phase of COVERT. During INSTRUMENTATION, the target C program is instrumented such that buffer overflows are transformed to assertion violations. In the ANALYSIS phase, a static software verification tool is used to check for assertion violations in the instrumented code, and to generate error reports. COVERT was implemented and then evaluated it on a set of benchmarks derived from real programs. For the ANALYSIS phase, experiments were conducted with three software verification tools—BLAST, COPPER, and PANA.Results indicate that the COVERT framework is effective at reducing the number of false warnings, while remaining scalable.

  • Download

Cite This Report

SEI

Chaki, Sagar; & Gurfinkel, Arie. COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification (CMU/SEI-2010-TR-029). Software Engineering Institute, Carnegie Mellon University, 2010. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9627

IEEE

Chaki. Sagar, and Gurfinkel. Arie, "COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification," Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, Technical Report CMU/SEI-2010-TR-029, 2010. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9627

APA

Chaki, Sagar., & Gurfinkel, Arie. (2010). COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification (CMU/SEI-2010-TR-029). Retrieved December 25, 2014, from the Software Engineering Institute, Carnegie Mellon University website: http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9627

CHI

Sagar Chaki, & Arie Gurfinkel. COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification (CMU/SEI-2010-TR-029). Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, 2010. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9627

MLA

Chaki, Sagar., & Gurfinkel, Arie. 2010. COVERT: A Framework for Finding Buffer Overflows in C Programs via Software Verification (Technical Report CMU/SEI-2010-TR-029). Pittsburgh: Software Engineering Institute, Carnegie Mellon University. http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=9627