Information-Flow Control for Database-backed Applications

Abstract

Securing database-backed applications requires tracking information across the program and the database together, since securing each component in isolation may still result in an overall insecure system. Current research extends language-based techniques with models capturing the database’s behavior. Previous work, however, relies on simplistic database models, which ignore security-relevant features that may leak sensitive information. We propose a novel security monitor for database-backed applications. The monitor tracks fine-grained dependencies between variables and database tuples by leveraging database theory concepts like disclosure lattices and query determinacy. It also accounts for a realistic database model that supports security-critical constructs like triggers and dynamic policies. The monitor automatically synthesizes program-level code that replicates the behavior of database features like triggers, thereby tracking information flows inside the database. We also introduce symbolic tuples, an efficient approximation of dependency-tracking over disclosure lattices. We implement the monitor for Scala programs and demonstrate its effectiveness on four case studies.

Publication
In 4th IEEE European Symposium on Security and Privacy.
Marco Guarnieri
Marco Guarnieri
Assistant professor

My research focuses on the design, analysis, and implementation of secure systems.