Many people know by now that PCI DSS Requirement 6.6 is going into effect (meaning you must be compliant) on June 30, 2008. What these same people are asking is, how does this apply to me and my business? And how can or should I comply with this requirement? There have been a number of blog posts about this requirement and even more discussions about what it all really means.
What does it mean?
In order to understand this you have to take my Attack Vector based Risk Management (AVRM) approach towards the intent behind this requirement. One could easily reference that the intent behind this requirement is to prevent Internet-facing web-application compromises and you would be correct, but also missing the deeper meaning and back story.
Although card-present (typically IPOS) systems account for a greater number of credit cards stolen, about half of all account compromises are a result of web-application data breaches. Of this population, about 90%+ of the data compromises are a result of the top 5-10 web-application vulnerabilities. These include, but are not limited to, SQL injection, cross-site scripting, cross-site request forgery (CSRF) and other input/output validation issues. Knowing this you can now imagine that if we could mitigate the risk of these top attacks we could reduce the population of credit card data breaches by almost half! (This does not reduce the number of credit cards stolen by half.)
The consideration here is not just to protect against the OWASP Top 10 but to consider those that apply to your web-application and understand those that cause the highest risk to your application. Consider the risk you could mitigate simply by properly validating the input/output on your application. Would this address all risk? No, but it would get you significant progress towards that goal.
Also, remember there is a difference between compliance and validation. If you validated your compliance prior to June 30 you do not need to re-validate for 12 months, but you do need to be compliant with the standard at all times. Compliance is a state of being that you must maintain at all times; for this requirement it means on or after June 30, 2008.
How can I comply?
The best part about this (and other) requirements is the large number of ways to comply. Remember, the goal is to meat the intent - so how can we do this? Well the standard states two options, and the intent leaves it open to many others. Let’s list the two given options first:
- Have all custom application code reviewed for common vulnerabilities by an organization that specializes in application security.
- Install an application-layer firewall in front of web-facing applications
First, remember that it is not comparing apples to apples here, but providing options that different enterprises can implement depending on their specific needs and abilities. We are still aiming to meet the same intent. Notice that, agnostic of technology, we can meet the intent using either of the prescribed methods.
Second, we should use the ‘intent’ defined above, via the AVRM model, to understand what “common vulnerabilities” means. To clarify the meaning of “an organization that specializes in application security” they are saying you should use a company that can identify the “common vulnerabilities” and remediate them, rather than your 8 year old nephew who just took her first computer programming course.
Now people are always asking what is an “application-firewall”. They know what it is, but want to know what you think it is. We should no longer have to answer that question again, because agnostic of technology an “application-layer firewall” should satisfy the intent behind this requirement as outlined above.
Still not enough? Well, the PCI SSC has released an Information Supplement that clarifies Requirement 6.6. Among other things, this supplement offers four additional alternatives towards meeting the intent of this requirement:
- Manual review of application source code
- Proper use of automated application source code analyzer (scanning) tools
- Manual web application security vulnerability assessment
- Proper use of automated web application security vulnerability assessment (scanning) tools
Still not enough to meet your business requirements? Then document a compensating control and write up how it mitigates the risk, to meet the intent, that could not be accomplished due to a legitimate business or technical issue.
Popularity: 20% [?]