Show simple item record

dc.contributor.advisorChong, Stephen N.en_US
dc.contributor.authorJohnson, Andrew Arthuren_US
dc.date.accessioned2015-12-04T18:41:48Z
dc.date.created2015-11en_US
dc.date.issued2015-08-27en_US
dc.date.submitted2015en_US
dc.identifier.citationJohnson, Andrew Arthur. 2015. Precise Scalable Static Analysis for Application-Specific Security Guarantees. Doctoral dissertation, Harvard University, Graduate School of Arts & Sciences.en_US
dc.identifier.urihttp://nrs.harvard.edu/urn-3:HUL.InstRepos:23845430
dc.description.abstractThis dissertation presents Pidgin, a static program analysis and understanding tool that enables the specification and enforcement of precise application-specific information security guarantees. Pidgin also allows developers to interactively explore the information flows in their applications to develop policies and investigate counter-examples. Pidgin combines program dependence graphs (PDGs), which precisely capture the in- formation flows in a whole application, with a custom PDG query language. Queries express properties about the paths in the PDG; because paths in the PDG correspond to information flows in the application, queries can be used to specify global security policies. The effectiveness of Pidgin depends on the precision of the static analyses used to produce program dependence graphs. In particular it depends on the precision of a points-to analysis. Points-to analysis is a foundational static analysis that estimates the memory locations pointer expressions can refer to at runtime. Points-to information is used by clients ranging from compiler optimizations to security tools like Pidgin. The precision of these client analyses relies on the precision of the points-to analysis. In this dissertation we investigate points-to analysis performance/precision trade-offs, including a novel points-to analysis for object-oriented languages designed to help establish object invariants. This dissertation describes the design and implementation of Pidgin and the points-to analyses that allow Pidgin and other static analyses to scale to large applications. We report on using Pidgin: (1) to explore information security guarantees in legacy programs; (2) to develop and modify security policies concurrently with application development; and (3) to develop policies based on known vulnerabilities.en_US
dc.description.sponsorshipEngineering and Applied Sciences - Computer Scienceen_US
dc.format.mimetypeapplication/pdfen_US
dc.language.isoenen_US
dash.licenseLAAen_US
dc.subjectComputer Scienceen_US
dc.titlePrecise Scalable Static Analysis for Application-Specific Security Guaranteesen_US
dc.typeThesis or Dissertationen_US
dash.depositing.authorJohnson, Andrew Arthuren_US
dc.date.available2015-12-04T18:41:48Z
thesis.degree.date2015en_US
thesis.degree.grantorGraduate School of Arts & Sciencesen_US
thesis.degree.levelDoctoralen_US
thesis.degree.nameDoctor of Philosophyen_US
dc.contributor.committeeMemberMorrisett, John G.en_US
dc.contributor.committeeMemberKohler, Eddieen_US
dc.type.materialtexten_US
thesis.degree.departmentEngineering and Applied Sciences - Computer Scienceen_US
dash.identifier.vireohttp://etds.lib.harvard.edu/gsas/admin/view/596en_US
dc.description.keywordsprogram analysis; static analysis; application security; points-to analysis; program dependence graph; securityen_US
dash.author.emailaajohnson@post.harvard.eduen_US
dash.identifier.drsurn-3:HUL.DRS.OBJECT:25142615en_US
dash.contributor.affiliatedJohnson, Andrew Arthur


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record