Web Application Firewalls: How to Evaluate, Purchase and Implement
Application-layer attacks bypass standard perimeter defenses. Here's how to evaluate firewalls that screen web application traffic.
By Mary Brandel
June 09, 2009 — CSO —
A Web application firewall (WAF) is designed to protect Web applications against common attacks such as cross-site scripting and SQL injection. Whereas network firewalls defend the perimeter of the network, WAFs sit between the Web client and Web server, analyzing application-layer traffic for violations in the programmed security policy, says Michael Cobb, founder of Cobweb Applications, a security consultancy.
While some traditional firewalls provide a degree of application awareness, it's not with the granularity and specificity that WAFs provide, says Diana Kelley, founder of consultancy Security Curve. For instance, the WAF can detect whether an application is not behaving the way it was designed to, and it enables you to write specific rules to prevent that kind of attack from reoccurring.WAFs also differ from intrusion prevention systems. "It's a very different technology—it's not signature-based, it's behavioral, and it protects against vulnerabilities you [inadvertently] create yourself," says Greg Young, an analyst at Gartner.
One of the primary drivers for WAFs today is the Payment Card Industry Data Security Standard (PCI DSS), which identifies two ways of being in compliance: WAFs and code review. (See Source Code Analysis Tools: How to Choose and Use Them.) But another driver is simply the growing recognition that attacks are moving from the network to applications. In a study by WhiteHat Security, which assessed 877 websites from January 2006 to December 2008, 82 percent had at least one issue of high, critical or urgent severity.
Main WAF Attributes
The web application firewall market is still undefined, with many dissimilar products falling under the WAF umbrella. "Many products provide functionality above and beyond what one would consider a firewall," says Ramon Krikken, research analyst at Burton Group. "This makes products hard to evaluate and compare." In addition, new vendors are entering the market, by expanding existing non-WAF products into the integrated segment.
Here are the attributes that a WAF should have, according to a list provided by Ofer Shezaf, founder of research and consulting firm Xiom:
- Have intimate understanding of HTTP. WAFs need to fully parse and analyze HTTP to be effective.
- Provide a positive security model. A positive security policy allows only traffic known to be valid to pass through. Sometimes called "whitelisting," this provides an external input validation shield over the application.
- Application-layer rules. Because of the high maintenance cost, a positive security model should be augmented by a signature-based system. But since Web applications are custom-coded, traditional signatures targeting known vulnerabilities are not effective. WAF rules should be generic and detect any variant of an attack, such as SQL injection.
- Session-based protection: One of the biggest downsides of HTTP is the lack of a built-in reliable session mechanism. A WAF must complement the application session management and protect it from session-based and over-time attacks.
- Allow fine-grained policy management. Exceptions should be applied to only minimal parts of the application. Otherwise, false positives force wide-open security gaps.