Viewpoints: differential string analysis for discovering client-and server-side input validation inconsistencies
Proceedings of the 2012 International Symposium on Software Testing and Analysis, 2012•dl.acm.org
Since web applications are easily accessible, and often store a large amount of sensitive
user information, they are a common target for attackers. In particular, attacks that focus on
input validation vulnerabilities are extremely effective and dangerous. To address this
problem, we developed ViewPoints--a technique that can identify erroneous or insufficient
validation and sanitization of the user inputs by automatically discovering inconsistencies
between client-and server-side input validation functions. Developers typically perform …
user information, they are a common target for attackers. In particular, attacks that focus on
input validation vulnerabilities are extremely effective and dangerous. To address this
problem, we developed ViewPoints--a technique that can identify erroneous or insufficient
validation and sanitization of the user inputs by automatically discovering inconsistencies
between client-and server-side input validation functions. Developers typically perform …
Since web applications are easily accessible, and often store a large amount of sensitive user information, they are a common target for attackers. In particular, attacks that focus on input validation vulnerabilities are extremely effective and dangerous. To address this problem, we developed ViewPoints--a technique that can identify erroneous or insufficient validation and sanitization of the user inputs by automatically discovering inconsistencies between client- and server-side input validation functions. Developers typically perform redundant input validation in both the front-end (client) and the back-end (server) components of a web application. Client- side validation is used to improve the responsiveness of the application, as it allows for responding without communicating with the server, whereas server-side validation is necessary for security reasons, as malicious users can easily circumvent client-side checks. ViewPoints (1) automatically extracts client- and server-side input validation functions, (2) models them as deterministic finite automata (DFAs), and (3) compares client- and server-side DFAs to identify and report the inconsistencies between the two sets of checks. Our initial evaluation of the technique is promising: when applied to a set of real-world web applications, ViewPoints was able to automatically identify a large number of inconsistencies in their input validation functions.