CANDID: preventing sql injection attacks using dynamic candidate evaluations

  • Authors:
  • Sruthi Bandhakavi;Prithvi Bisht;P. Madhusudan;V. N. Venkatakrishnan

  • Affiliations:
  • University of Illinois at Urbana Champaign, Urbana, IL;University of Illinois at Chicago, Chicago, IL;University of Illinois at Urbana Champaign, Urbana, IL;University of Illinois at Chicago, Chicago, IL

  • Venue:
  • Proceedings of the 14th ACM conference on Computer and communications security
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

SQL injection attacks are one of the topmost threats for applications written for the Web. These attacks are launched through specially crafted user input on web applications that use low level string operations to construct SQL queries. In this work, we exhibit a novel and powerful scheme for automatically transforming web applications to render them safe against all SQL injection attacks. A characteristic diagnostic feature of SQL injection attacks is that they change the intended structure of queries issued. Our technique for detecting SQL injection is to dynamically mine the programmer-intended query structure on any input, and detect attacks by comparing it against the structure of the actual query issued. We propose a simple and novel mechanism, called CANDID, for mining programmer intended queries by dynamically evaluating runs over benign candidate inputs. This mechanism is theoretically well founded and is based on inferring intended queries by considering the symbolic query computed on a program run. Our approach has been implemented in a tool called CANDID, that retrofits Web applications written in Java to defend them against SQL injection attacks. We report extensive experimental results that show that our approach performs remarkably well in practice.