Nell’iperspazio con Rocket: il Framework Web di Rust!
WAFEC
1. WAFEC, or how to choose WAF technology
RAFAEL SAN MIGUEL CARRASCO
2. Why I am here
Honestly, I got no
I like to play with
better plan for
WAF technology
Friday afternoon
WAFEC 1.0 has I actually belong
been recently to the WAFEC
published Working Group
Let’s talk about WAFEC!
3. What will we talk about?
Introduction and concepts
Why WAF devices are not so fun?
How to make them be fun
WAFEC sections
WAFEC and common sense together
4. So, what is a WAF device?
Cross-site
scripting
SQL Injection WAF devices protect web applications from specific
LDAP vulnerabilities that IDS/IPS/FW technology can’t beat
Injection
WAF devices address the most attack-prone subsystem
XPath within a technology infrastructure: the webserver
Injection
Parameter WAF devices are complex devices with sophisticated features:
tampering actually, they have to be as complex as web applications
Cookie
poisoning
HTTP
Request
Smuggling
HTTP Cross-site
Cross-site Stealth Buffer
Response Request . . .
Tracing Commanding overflows
Splitting Forgery
5. Some background about WAF
Negative Security Model Positive Security Model
Concept The WAF knows what traffic is an
The WAF learns what traffic profile is
attack, and allows any other traffic to
legitimate, and blocks anything else
go through
• No need for customization • Accurate detection
Advantages • Protection out-of-the-box • Unknown attacks
• Simple, straight-forward • Not dependant on updates
• Highly dependant on updates • Need for learning process
Disadvantages
• Not very accurate • More prone to false positives
6. Some background about WAF
How are unknown attacks identified with PSM?
http://<site>/get/default.ida?<240chars>%9090<…>%u00=a
Illegal entry point into the site to the .ida file (/get)
Illegal parameter tampering of the .ida file
Buffer overflow attempt on the parameter (240 characters)
Illegal characters within parameter (%)
Nimda was blocked by several WAF devices without a custom signature
7. Some background about WAF
How is the learning process in PSM?
This looks to be an
attack!
http://a.com/showarticle?id=278
WAF Webserver
http://a.com/showarticle?id=345
http://a.com/showarticle?id=12
id parameter in
showarticle is a
number
http://a.com/showarticle?id=1’%20OR%201=1--
8. So, what is WAFEC?
WAFEC is an ongoing project and stands for Web Application
Firewall Evaluation Criteria
WAFEC is promoted by WASC, which in turn stands for
Web Application Security Consortium
WAFEC is a document describing WAF capabilities, as an
structured checklist of features
WAFEC allows technicians to evaluate WAF devices and
decide which one best fits in their environment
9. So, what is not WAFEC?
WAFEC is not an specification of minimum requirements
that a WAF device must comply with
WAFEC is not a tutorial or compendium about WAF
technology or web security
WAFEC is not for managers, but for reasonably skilled
technicians
10. Why we think WAFEC is necessary?
There is not much Marketing and sales
knowledge about this forces are creating
emerging market confusion
WAF devices and
manufacturers are
proliferating
11. Why WAF devices are not son fun?
If not properly configured, they can trigger false positives and
stop business
If not properly administered and integrated, they won’t
adapt to application changes
If not properly deployed, they can slow down your
transactions and make business staff unhappy
The solution: do it properly!
… and make sure the product you choose does support
the features you need
… and do it using WAFEC!
12. How to make them be fun
About false positives and other nightmares
Take your time to refine policies
Define detection rules that will alert you of suspicious events
without the risk of stopping business
Teach the WAF device in the development phase; that will let
you define more accurate policies in production environment
13. How to make them be fun
About application changes
Web applications change very quickly, which means that the
WAF behaviour has to change as well
Let the WAF device learn from developers in order to enable
policy adjustment in production environment
Define granular policies so that the WAF can rebuild policies for
updated sections or areas with no impact in those that haven’t
changed
14. How to make them be fun
About application changes
2
1
3 4
15. How to make them be fun
About performance, latency and SLA
Use SSL accelerators
Define simpler policies for areas or sections subject to SLAs
Use webcache integrated features
Compress HTML content between the WAF and the browser
16. WAFEC sections
Deployment and architecture
Modes of operation
Bridge, router, proxy or plugin
… there is no rule of thumb: it depends on your network!
SSL operation
Active, passive or not required (case of plugins)
Technology delivery
Appliance or software-only
Support for non-HTTP traffic
Clear trend: the integration of WAF/IPS capabilities in one device
17. WAFEC sections
HTML and HTTP support
A rather long and boring checklist of features related to
support for protocol and extensions
… but this can drive the decission as well!
Includes length restrictions for every HTTP component
… I have never seen them in place because they
can’t be accurately defined
Response filtering or Intellectual Property Firewalling
… this will let you add an extra layer of security
if everything else fails
18. WAFEC sections
Response filtering
We have the following datafile that can be remotely retrieved by means of
an OsCommerce’s vulnerability:
Imagine that every security mechanism
implemented in the WAF device fails!
19. WAFEC sections
Response filtering
ModSecurity’s response filtering capabilities can be configured this way
to prevent the previous datafile to be effectively retrieved:
Which results in forbiden
access to the malicious URL
… with no previous knowledge
about OsCommerce’s
vulnerability!
20. WAFEC sections
Detection techniques
Two main groups: positive model and negative model
… my best bet is to properly combine both
Negative model: what parameters are important?
update frequency, number of products included,
customized selection of signatures
Positive model: what parameters are important?
basically, effectiveness; if it works, nobody cares
about what the core technology is
21. WAFEC sections
Protection techniques
Brute force attacks mitigation and Automated clients detecion
… helpful for websites that track users’ activity
Strict request flow enforcement
… nice in theory but difficult to effectively
implement if the application changes often
Cryptographic URL and parameter protection
… this feature really annoys malicious users
22. WAFEC sections
Logging
It enumerates support for typical event log and notification
mechanisms, found in most widely-accepted technologies
… e-mail, syslog, SNMP traps, OPSEC, etc.
Criteria for log selection and retention
… interesting when legal or regulatory requirements
have to be satisfied
Mechanisms to handle sensitive data
… manual or automatic configuration to rewrite
sensitive data that would be included in logs
23. WAFEC sections
Reporting
Report formats
Scheduled reports
Customized reports
Flexible reports
… definitively, reports makes management happy!
But, what else can reports be used for?
Trend analysis
Risks priorization
Attackers’ behaviour
24. WAFEC sections
Some leftovers: Performance and XML
Support for Web Services, WDSL and XML inspection
… this can also drive the final decission if Web
Services need to be protected as well
Maximum number of simultaneous connections, sessions, SSL
resumptions, requests, etc.
… this greatly depends on the underlying technology,
mainly ASIC (faster) or Linux (slower)
Performance under load
25. WAFEC sections
Management is a key element of WAF devices
This is mainly because policies become complex and have to
quickly evolve in order to adapt to application changes
Any suggestions about We have thought of the following
features that you would sections:
miss?
POLICY MANAGEMENT
PROFILE LEARNING
CONFIGURATION MANAGEMENT
LOGS AND MONITORIN
LEFTOVERS
26. WAFEC sections
Simplicity to manually accept false positives
… think of it: how would you refine policies otherwise?
This is a false
positive. Tick
to remove it.
27. WAFEC sections
Ability to define different policies for different applications
… why could this be helpful?
Senior
HIGH Management
LEVEL
MID Webmail
LEVEL users
System
HIGH administrators
LEVEL
Webserver WAF
Potential
LOW customers
LEVEL
28. WAFEC sections
Support for trusted hosts
… this feature enables ethical hackers to work with no impact in the
Incident Management team
Automated signature download and deployment
… otherwise, the protection can arrive too late
Policy rollback mechanism
… otherwise, the WAF device might stop business
Ability to create custom signatures or events
… this way I can address custom vulnerabilities that exist in my
particular environment
29. WAFEC sections
Ability to combine detection and prevention
… guess what can this be interesting for?
Ability to manage several devices from one central location
… otherwise, management can’t be centralized and policy adjustment
becomes a nightmare!
Simplicity to relax default policies
30. Let me ask you some questions
¿Cuanto tiempo se tarda
en aplicar las ¿Existe server side
¿ Quién audita el código
actualizaciones criticas validation para todos los
proveniente de terceros?
de seguridad desde que formularios?
surgen?
¿Quien y cuando aplica ¿Existe correlación entre
¿Se cumple en todo el
las actualizaciones de los logs y los sucesivos
código la política de logs?
seguridad de software upgrades de la aplicación?
funcional/aplicativo?
¿Se eliminan en los pasos ¿Se hacen
¿Cual es el camino critico a producción las porciones pruebas/ataques de
de código que accede a de código para pruebas seguridad a las
los datos de backend? parciales de desarrollo? evoluciones del software?
31. Want to know more?
More info: www.rafaelsanmiguel.com
www.webappsec.org/wafec
Contact info: rafael.sanmiguel@dvc.es
Interesting info: www.empleoenseguridad.com
32. Creative Commons
Attribution-NoDerivs 2.0
You are free:
•to copy, distribute, display, and perform this work
•to make commercial use of this work
Under the following conditions:
Attribution. You must give the original author
credit.
No Derivative Works. You may not alter, transform, or
build upon this work.
For any reuse or distribution, you must make clear to others the license terms of this work.
Any of these conditions can be waived if you get permission from the author.
Your fair use and other rights are in no way affected by the above.
This work is licensed under the Creative Commons Attribution-NoDerivs License. To view
a copy of this license, visit http://creativecommons.org/licenses/by-nd/2.0/ or send a letter
to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.