Static checking of dynamically-varying security policies in database-backed applications

  • Authors:
  • Adam Chlipala

  • Affiliations:
  • Impredicative LLC

  • Venue:
  • OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
  • Year:
  • 2010

Quantified Score

Hi-index 0.02

Visualization

Abstract

We present a system for sound static checking of security policies for database-backed Web applications. Our tool checks a combination of access control and information flow policies, where the policies vary based on database contents. For instance, one or more database tables may represent an access control matrix, controlling who may read or write which cells of these and other tables. Using symbolic evaluation and automated theorem-proving, our tool checks these policies statically, requiring no program annotations (beyond the policies themselves) and adding no run-time overhead. Specifications come in the form of SQL queries as policies: for instance, an application's confidentiality policy is a fixed set of queries, whose results provide an upper bound on what information may be released to the user. To provide userdependent policies, we allow queries to depend on what secrets the user knows. We have used our prototype implementation to check several programs representative of the data-centric Web applications that are common today.