Skip to main navigation Skip to search Skip to main content

Verifying web applications using bounded model checking

  • Yao Wen Huang
  • , Fang Yu
  • , Christian Hang
  • , Chung Hung Tsai
  • , D. T. Lee
  • , Sy Yen Kuo*
  • *Corresponding author for this work
  • National Taiwan University
  • Academia Sinica - Institute of Information Science
  • RWTH Aachen University

Research output: Contribution to conferenceConference Paperpeer-review

37 Scopus citations

Abstract

The authors describe the use of bounded model checking (BMC) for verifying Web application code. Vulnerable sections of code are patched automatically with runtime guards, allowing both verification and assurance to occur without user intervention. Model checking techniques are relatively complex compared to the typestate-based polynomial-time algorithm (TS) we adopted in an earlier paper, but they offer three benefits - they provide counterexamples, more precise models, and sound and complete verification. Compared to conventional model checking techniques, BMC offers a more practical approach to verifying programs containing large numbers of variables, but requires fixed program diameters to be complete. Formalizing Web application vulnerabilities as a secure information flow problem with fixed diameter allows for BMC application without drawback. Using BMC-produced counterexamples, errors that result from propagations of the same initial error can be reported as a single group rather than individually. This offers two distinct benefits. First, together with the counterexamples themselves, they allow for more descriptive and precise error reports. Second, it allows for automated patching at locations where errors are initially introduced rather than at locations where the propagated errors cause problems. Results from a TS-BMC comparison test using 230 open-source Web applications showed a 41.0% decrease in runtime instrumentations when BMC was used. In the 38 vulnerable projects identified by TS, BMC classified the TS-reported 980 individual errors into 578 groups, with each group requiring a minimal set of patches for repair.

Original languageEnglish
Pages199-208
Number of pages10
StatePublished - 2004
Externally publishedYes
Event2004 International Conference on Dependable Systems and Networks - Florence, Italy
Duration: 28 06 200401 07 2004

Conference

Conference2004 International Conference on Dependable Systems and Networks
Country/TerritoryItaly
CityFlorence
Period28/06/0401/07/04

Fingerprint

Dive into the research topics of 'Verifying web applications using bounded model checking'. Together they form a unique fingerprint.

Cite this