SCRIPTGARD: Automatic Context-Sensitive Sanitization for Large-Scale Legacy Web Applications
To Appear at the 21st Usenix Security Symposium (Usenix Security) , August 2012
@Misc{akhawe12privsep,
author = {Prateek Saxena and David Molnar and Benjamin Livshits},
title = {SCRIPTGARD: Automatic Context-Sensitive Sanitization for Large-Scale Legacy Web Applications},
booktitle = {Proc. of the ACM Confrence on Computer and Communications Security (CCS 2011)},
year = {2011},
}
Abstract
We empirically analyzed sanitizer use in a shipping web ap- plication
with over 400,000 lines of code and over 23,244 methods, the largest
empirical analysis of sanitizer use of which we are aware. Our
analysis reveals two novel classes of errors: context-mismatched
sanitization and inconsistent multiple sanitization. Both of these
arise not because san- itizers are incorrectly implemented, but rather
because they are not placed in code correctly. Much of the work on
cross- site scripting detection to date has focused on nding missing
sanitizers in programs of average size. In large legacy applications,
other sanitization issues leading to cross-site scripting emerge.
To address these errors, we propose ScriptGard, a sys- tem for ASP.NET
applications which can detect and repair the incorrect placement of
sanitizers. ScriptGard serves both as a testing aid to developers as
well as a runtime mit- igation technique. While mitigations for cross
site scripting attacks have seen intense prior research, we consider
both server and browser context, none of them achieve the same degree
of precision, and many other mitigation techniques require major
changes to server side code or to browsers. Our approach, in
contrast, can be incrementally retrotted to legacy systems with no
changes to the source code and no browser changes. With our
optimizations, when used for mitigation, ScriptGard incurs virtually
no statistically signicant overhead.