Web Application Firewall Evaluation: With Devops, SDLC and The New Owasp Core Rule Set
Web Application Firewall Evaluation: With Devops, SDLC and The New Owasp Core Rule Set
Firewall Evaluation
with DevOps, SDLC and the New OWASP Core Rule Set
`su chaim`
Chaim Sanders
Current Roles
• Project Leader of the OWASP Core Rule Set
• ModSecurity Core Developer
• Security Researcher at Trustwave Spiderlabs
• Lecturer at Rochester Institute of Technology
(RIT)
Previous Roles
• Commercial Consultant
• Governmental Consultant
Why the web?
Why OWASP?
• We are going to focus on HTTP(S) Today
• Special care needs to be taken here
• According to CAIDA web is ~85% of internet traffic
Why the web?
Why the web?
Why OWASP?
• We are going to focus on HTTP(S) Today
• Special care needs to be taken here
• According to CAIDA web is ~85% of internet traffic
• As a result web architecture is complicated
• It also means complicated attacks are acceptable
• Attacks that will only work on 0.01% of users are valuable
Why the web?
Why the web?
Why OWASP?
• We are going to focus on HTTP(S) Today
• Special care needs to be taken here
• According to CAIDA web is ~85% of internet traffic
• As a result web architecture is complicated
• It also means complicated attacks are acceptable
• Attacks that will only work on 0.01% of users are valuable
• Diversity of attacks is high as well
• Attacker on server / Attacker on client
• Attacker on client via server
• Attacker on server via server
• Attacker on intermediary
Vocabulary - WAF
WAF- Web Application Firewall
Gartner basis for it’s ‘is this security thing working’ is PCI
• PCI outlines a lot of “recommended capabilities”
• The important one for us is recommendation #2
“React appropriately (defined by active policy or rules) to
threats against relevant vulnerabilities as identified, at a
minimum, in the OWASP Top Ten and/or PCI DSS
Requirement 6.5.“
• Really this boils down to the QSA gets to decide
• The last straw came when we were asked to benchmark against another
WAF
• Not only were we faster…
• but the tests were useless
• One problem, our existing tools were in various langugues, perticularly our
unit testing – which people had stopped to use.
Find existing projects
Current Unit Testing
• It turns out frequently the things we need to test are straight up against
spec
• “EHELO mymailserver.test.com”
• Tools like PyCurl and Requests don’t even like to let you do things like
change the version
• We needed more flexability
https://github.com/fastly/ftw
Sample tests
Integration with OWASP CRS
Keep it separated!
While we had FTW and it reached it’s 1.0 Milestone we still
needed actual tests
• We generated a new repo to contain those and used git-
submodules to bring it into CRS’s master repo.
https://github.com/SpiderLabs/OWASP-CRS-regressions
What tools we had
Buildbot – ModSecurity
Every try and support a project that runs everywhere?
• Whenever we get a build of ModSecurity we test it on 45
different environments
• Buildbot is great for this
• It’s Python
• Flexible
• We’ll see how we leverage this for CRS in a bit
Solving only part of our problem
Integrating our methodology with our environment
• What we did so far
• We develop this strict testing methodology
• We make it easy to use
• We write these tests…
• This doesn’t solve the part where users don’t use these test
• Using buildbot we can get email feedback, but its not
enough
• Such tests are good for internal tasks like our type 2 tests
https://github.com/csanders-git/ansible-role-modsecurity
https://github.com/fastly/waf_testbed
Dockers take on modules
Future Work
What’s left to do … a lot
• AMIs
• Minimal Click Deployment (MCD)
• Parsers/linters
• And more!
Thank Yous
Thanks also to Christian Peron and the rest of the Fastly Team for great insight
Thanks to Christian Folini and Walter Hop from the CRS team