ASFWS 2012 - Les utilités d’un pare-feu applicatif Web (WAF) par Jonathan Marcil

Preview:

DESCRIPTION

Vous hébergez des applications Web et votre défense se limite à un coupe-feu réseau. Cependant, une grande partie des attaques sont menées directement via le protocole HTTP et l’utilisation d’un coupe-feu traditionnel s’avère inutile. Le coupe-feu applicatif Web (Web Application Firewall, WAF) se veut une solution à cette problématique. La présentation, basée sur mon expérience des dernières années, fait le point sur les diverses utilités de cette technologie : Les choix d’implémentations. Les diverses modes de fonctionnements. L’importance et le choix des types de règles à implémenter. Rapports et collection des alertes. Méthodologie de développement de règles. Bonus: Contournement de règles et exceptions. Le logiciel Open Source ModSecurity sera utilisé comme exemple ainsi que les règles OWASP CRS. D’autres règles conçues pour la présentation seront aussi présentées dans le but de démontrer une utilisation sur mesure du WAF.

Citation preview

Application Security Forum - 2012 Western Switzerland

7-8 novembre 2012 - Y-Parc / Yverdon-les-Bains

https://www.appsec-forum.ch

Les utilités d'un coupe-feu applicatif Web

Jonathan Marcil

OWASP Montréal

Canada

#ASFWS

WAF

Web

Application

Firewall

2

Coupe-feu?

IP/TCP IP/UDP

IDS

IPS

3

Implémentations

Routeur (Router) Pont (Bridge)

Serveur mandataire (Reverse Proxy)

Incorporé (Embedded)

4

Routeur (Router)

5

Point de défaillance unique

Problèmes de performances

Serveur mandataire (Reverse Proxy)

6

Incorporé (Embedded)

Serveurs Web ne supportant pas de module Moyens limités

SSL facile

Performance distribuée

Modes de fonctionnements

Surveillance

Alertes

Anomalies

Protection

Bloquer les attaques

Corrections virtuelles (Virtual Patching)

7

Philosophies

Boîte noire et espérance

À conseiller pour surveillance

Boîte blanche et personnalisation

À conseiller pour protection

8

Types de règles

Surveillance (watchlist)

Liste blanche (whitelist)

Liste noire (blacklist)

Exceptions surveillées (bypass)

À ignorer (ignorelist)

Expérience utilisateur (UX)

9

Alertes et rapports

Importance pour la sécurité

Importance pour la fonctionnalité

Console centrale vs. journaux

10

Méthodologie de développement de règles Focus sur liste noire

Audit d’applications ou collectes des failles connues

Création des règles pour corriger les failles

Tests en mode surveillance

Vérification des alertes Pour ne pas impacter la production

Passage en mode protection

Suivis Des alertes pour suivre les changements imprévus la production et les

attaques

Des changements pour mises à jour itératives des règles

11

Méthodologie de développement de règles Focus sur liste blanche

Collection et analyse trafic légitime

Création des règles À partir du trafic (profil des applications)

Tests en mode surveillance

Vérification des alertes Pour ne pas impacter la production

Passage en mode protection

Suivis Des alertes pour suivre les changements imprévus la production, les

anomalies et attaques

Des changements pour mises à jour itératives des règles

12

Conclusions

Autres utilités que la sécurité

Fonctionnalités (UX)

Détection d’anomalies (QA)

Traces en profondeur (DEBUG)

Attention au contournement des règles Corriger vos applications si possible

13

Questions?

14

Démonstration http://www.modsecurity.org/

http://www.ironbee.com/

http://jwall.org/web/audit/console/screenshots/eventview.png

http://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

Bonus

WAF Testing Framework par Imperva

Gratuit

Disponible fin 2012

Utilise WebGoat

Code fermé (sera ouvert un jour) mais configurations ouvertes XML

15

Bonus ReDoS

MSC_PCRE_LIMITS_EXCEEDED:

PCRE match limits were exceeded.

SecRule TX:/^MSC_/ "!@streq 0" "id:'200004',phase:2,t:none,deny,msg:'ModSecurity internal error flagged: %{MATCHED_VAR_NAME}‘"

16

Bonus Some Ivan Ristic bypass in a nutshell

<Location /myapp/admin.php>

# Allow only numbers in userid

SecRule ARGS:userid "!^\d+$«

</Location>

/myapp/admin.php/xyz?userid=1PAYLOAD

/myapp/admin.php;param=value?userid=1PAYLOAD

SecRule REQUEST_FILENAME "@streq /myapp/admin.php"

Short names Apache running on Windows

Multipart Evasion ModSecurity CRS:

Content-Type: multipart/; boundary=0000

http://bit.ly/PYp5G6

17

Merci/Thank you!

Contact:

jonathan.marcil@owasp.org

@jonathanmarcil

http://blog.jonathanmarcil.ca

Slides:

http://slideshare.net/ASF-WS/presentations

18

Références OWASP Best Practices: Use of Web Application Firewalls

https://www.owasp.org/index.php/Category:OWASP_Best_Practices:_Use_of_Web_Application_Firewalls

OWASP ModSecurity Core Rule Set Project https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

Web Application Firewall Evaluation Criteria Version 1.0 http://projects.webappsec.org/w/page/13246983/WAFEC%201%20HTML%20Version

ModSecurity Reference Manual

https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual

19

Recommended