Proceedings of the Symposium on Principles of Prog
Proceedings of the Symposium on Principles of Programming Languages (POPL) Year 2013 Peer-reviewed
Computer Science · Research

Towards Fully Automatic Placement of Security Sanitizers and Declassifiers

Benjamin Livshits Stephen Chong
2013
Publication year
POPL
Venue
Peer-reviewed
Type

Problem

A great deal of research on sanitizer placement, sanitizer correctness, checking path validity, and policy inference, has been done in the last five to ten years, involving type systems, static analysis and run-time monitoring and enforcement. However, in pretty much all work thus far, the burden of sanitizer placement has fallen on the developer. However, sanitizer placement in large-scale applications is difficult, and developers are likely to make errors, and thus create security vulnerabilities.

Approach

This paper advocates a radically different approach: we aim to fully automate the placement of sanitizers by analyzing the flow of tainted data in the program. We argue that developers are better off leaving out sanitizers entirely instead of trying to place them. This paper proposes a fully automatic technique for sanitizer placement.

Results

Placement is static whenever possible, switching to run time when necessary. Run-time taint tracking techniques can be used to track the source of a value, and thus apply appropriate sanitization. However, due to the run-time overhead of run-time taint tracking, our technique avoids it wherever possible.

Cite this paper — BibTeX
@inproceedings{livshits-popl13,
  title = "Towards Fully Automatic Placement of Security Sanitizers and Declassifiers",
  author = "Benjamin Livshits and Stephen Chong",
  year = "2013",
  month = jan,
  booktitle = {Proceedings of the Symposium on Principles of Programming Languages (POPL)}
}
Copied