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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Summary<br />

Platform security is an important part of the overall security architecture of any Web<br />

application. You can deploy runtime protection techniques, such as Web server <strong>and</strong> applicationlevel<br />

plug-ins, without modifying application code to detect, prevent, or mitigate <strong>SQL</strong> injection.<br />

The best runtime solution will depend on the technologies <strong>and</strong> platforms that make up<br />

the application environment. You can harden database servers to significantly mitigate the<br />

scope of compromise (i.e., application, server, <strong>and</strong>/or network compromise) <strong>and</strong> unauthorized<br />

data access. In addition, you can leverage network architectural changes <strong>and</strong> a secured Web<br />

infrastructure configuration to mitigate <strong>and</strong> lessen the chances of detection.<br />

It is important to remember that platform security is not a substitute for addressing<br />

the real problem: the insecure coding patterns that cause <strong>SQL</strong> injection in the first place.<br />

A hardened network <strong>and</strong> application infrastructure combined with runtime monitoring <strong>and</strong><br />

tuned prevention provide a formidable defense to thwart the <strong>SQL</strong> injection vulnerabilities<br />

that may be present in the code. Platform-level security is an important component to the<br />

overall security strategy for both existing <strong>and</strong> new applications.<br />

Solutions Fast Track<br />

Using Runtime Protection<br />

˛˛ Runtime protection is an effective technique for addressing <strong>SQL</strong> injection when<br />

code changes are not possible.<br />

˛˛ Web application firewalls can provide effective detection, mitigation, <strong>and</strong> prevention<br />

of <strong>SQL</strong> injection when properly tuned.<br />

˛˛ Runtime protection spans multiple layers <strong>and</strong> tiers, including the network,<br />

Web server, application framework, <strong>and</strong> database server.<br />

Securing the Database<br />

˛˛ Hardening the database will not stop <strong>SQL</strong> injection, but can significantly reduce<br />

the impact.<br />

˛˛ Attackers should be s<strong>and</strong>boxed to application data only. In a locked-down database<br />

server, compromise of other databases <strong>and</strong> systems on connected networks should<br />

not be possible.<br />

˛˛ Access should be restricted to only required database objects, such as EXECUTE<br />

permissions on stored procedures only. In addition, judicious use of strong<br />

cryptography on sensitive data can prevent unauthorized data access.

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

Saved successfully!

Ooh no, something went wrong!