Improving application security with data flow assertions
Name
Zeldovich_Improving Application.pdf
Size
316.41 KB
Format
Adobe PDF
Checksum (MD5)
02d53d04b183423bc0f54a5482e941b7
Author(s) • • •
Yip, Alexander
Wang, Xi
Zeldovich, Nickolai
Kaashoek, M. Frans
Date Issued
October 2009
Journal
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Publisher
Association for Computing Machinery
Citation
Yip, Alexander et al. “Improving Application Security with Data Flow Assertions.” Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles - SOSP ’09. Big Sky, Montana, USA, 2009. (c) 2009 ACM
Version
Author's final manuscript
Abstract
Resin is a new language runtime that helps prevent security vulnerabilities, by allowing programmers to specify application-level data flow assertions. Resin provides policy objects, which programmers use to specify assertion code and metadata; data tracking, which allows programmers to associate assertions with application data, and to keep track of assertions as the data flow through the application; and filter objects, which programmers use to define data flow boundaries at which assertions are checked. Resin's runtime checks data flow assertions by propagating policy objects along with data, as that data moves through the application, and then invoking filter objects when data crosses a data flow boundary, such as when writing data to the network or a file.
Using Resin, Web application programmers can prevent a range of problems, from SQL injection and cross-site scripting, to inadvertent password disclosure and missing access control checks. Adding a Resin assertion to an application requires few changes to the existing application code, and an assertion can reuse existing code and data structures. For instance, 23 lines of code detect and prevent three previously-unknown missing access control vulnerabilities in phpBB, a popular Web forum application. Other assertions comprising tens of lines of code prevent a range of vulnerabilities in Python and PHP applications. A prototype of Resin incurs a 33% CPU overhead running the HotCRP conference management application.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike 3.0
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/1629575.1629604