28.10.2014 Views

SQL Injection Attacks and Defense - 2009

SQL Injection Attacks and Defense - 2009

SQL Injection Attacks and Defense - 2009

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Platform-Level <strong>Defense</strong>s • Chapter 9 379<br />

release cycle. Legacy applications close to retirement may not warrant the time <strong>and</strong> effort<br />

required to make the necessary code changes. Organizations may intend to make a code<br />

change, but don’t have the resources in the near term to do so. These common scenarios<br />

highlight the need for runtime protection in the form of virtual patching or b<strong>and</strong>-aid solutions.<br />

Even if the time <strong>and</strong> resources are available for code fixes, runtime protection can<br />

still be a valuable layer of security to detect or thwart exploitation of unknown <strong>SQL</strong><br />

injection vulnerabilities. If the application has never undergone security code review or<br />

penetration testing, application owners might not be aware of the vulnerabilities. There<br />

is also the threat of “zero-day” exploit techniques as well as the latest <strong>and</strong> greatest <strong>SQL</strong><br />

injection worm traversing the Internet. In this way, runtime protection is not just a<br />

reactive defense mechanism, but also a proactive step toward comprehensively securing<br />

an application.<br />

Although runtime protection provides many benefits, you need to consider some of<br />

the costs that may be involved. Depending on the solution, you should expect some level of<br />

performance degradation (as you would expect anytime additional processing <strong>and</strong> overhead<br />

are incurred). When evaluating a solution, especially a commercial one, it is important to ask<br />

for documented performance statistics. The other point of caution is that some runtime<br />

solutions are more difficult to configure than others. If the solution is overly complex,<br />

the time <strong>and</strong> resources spent getting it to work may exceed the costs of actually fixing the<br />

code, or worse yet, you may decide not to use it at all. Ensure that the solution you select<br />

comes with detailed installation instructions, configuration examples, <strong>and</strong> support<br />

(this doesn’t always mean paid support; some free solutions provide good online support<br />

through forums). The key to getting the most out of runtime protection is a willingness<br />

to learn the boundaries of the technology <strong>and</strong> evaluate how it can best help you.<br />

Web Application Firewalls<br />

The most well-known runtime solution in Web application security is the use of a Web<br />

application firewall (WAF). A WAF is a network appliance or software-based solution that<br />

adds security features to a Web application. Specifically, we’re focusing on what WAFs can<br />

offer in terms of <strong>SQL</strong> injection protection.<br />

Software-based WAFs are typically modules embedded into the Web server or application<br />

with minimal configuration. Primary benefits of software-based WAFs are that the Web<br />

infrastructure remains unchanged, <strong>and</strong> HTTP/HTTPS communications are h<strong>and</strong>led<br />

seamlessly because they run inside the Web- or application-hosting process. Appliance-based<br />

WAFs don’t consume Web server resources <strong>and</strong> they can protect multiple Web applications<br />

of varying technologies. We will not cover network appliances any further, although you can<br />

use some of the software solutions as a network appliance when running on a Web server<br />

configured as a reverse proxy server.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!