Show simple item record

dc.contributor.authorZigmond, Ezra B.
dc.date.accessioned2019-03-26T11:07:39Z
dc.date.created2018-05
dc.date.issued2018-06-29
dc.date.submitted2018
dc.identifier.urihttp://nrs.harvard.edu/urn-3:HUL.InstRepos:38811521*
dc.description.abstractDatabase-backed applications often run queries with more authority than necessary. Since programs can access more data than they legitimately need, flaws in security checks at the application level can enable malicious or buggy code to view or modify data in violation of intended access control policies. Although database management systems provide tools for controlling access to data, these tools are not well-suited for modern web applications which often have many users and consist of many different software components. First, databases are unaware of application users, and creating a new database user for each application user is impractical for applications with many users. Second, different components of the same application require different levels of database access, which would require creating different database users for different software components. Thus, it is difficult to properly limit the authority an application has when executing queries. I propose ShillDB, a language for writing secure, database-backed applications. ShillDB enables reasoning about database access at the language level through capabilities, which limit what database tables a program can access, and contracts, which limit what operations a program can perform on those tables. ShillDB contracts are expressed as part of function interfaces, making it easy to specify different access control policies for different components of an application. These contracts act as executable security documentation for consumers of ShillDB programs and are enforced by the language runtime. Further, ShillDB provides database access control guarantees independent of the security mechanisms of the underlying database management system. I have implemented a prototype of ShillDB and have used it to implement the backend for a lending library reservation system. My experience indicates that ShillDB is a practical language for enforcing database access control policies in realistic, multi-user applications and has reasonable performance overhead.
dc.format.mimetypeapplication/pdf
dc.language.isoen
dash.licenseLAA
dc.subjectComputer Science
dc.titleFine-grained, Language-based Access Control for Database-backed Applications
dc.typeThesis or Dissertation
dash.depositing.authorZigmond, Ezra B.
dc.date.available2019-03-26T11:07:39Z
thesis.degree.date2018
thesis.degree.grantorHarvard College
thesis.degree.levelUndergraduate
thesis.degree.nameAB
dc.type.materialtext
thesis.degree.departmentComputer Science
dash.identifier.vireohttp://etds.lib.harvard.edu/college/admin/view/246
dash.author.emailezrazigmond@gmail.com


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record