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

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

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.

OWASP Montreal - 30 octobre 2012

https://www.owasp.org/index.php/Montr%C3%A9al

09905cce02942fb076f958f4b69fd8f6?s=128

OWASP Montréal

October 30, 2012
Tweet

Transcript

  1. Les utilités d'un coupe- feu applicatif Web 30 octobre 2012

    Montréal Présenté par : Jonathan Marcil
  2. WAF •Web •Application •Firewall

  3. Coupe-feu? •IP/TCP IP/UDP •IDS •IPS

  4. Implémentations • Pont (Bridge) • Routeur (Router) • Serveur mandataire

    (Reverse Proxy) • Incorporé (Embedded)
  5. Pont (Bridge) Transparent Point de défaillance unique Problèmes de performances

    Routeur (Router)
  6. Serveur mandataire (Reverse Proxy) SSL facile Performance distribuée Serveurs Web

    ne supportant pas de module Moyens limités Incorporé (Embedded)
  7. Modes de fonctionnements • Surveillance – Alertes – Anomalies •

    Protection – Bloquer les attaques – Corrections virtuelles (Virtual Patching)
  8. Philosophies • Boîte noire et espérance – À conseiller pour

    surveillance • Boîte blanche et personnalisation – À conseiller pour protection
  9. Types de règles • Surveillance (watchlist) • Liste blanche (whitelist)

    • Liste noire (blacklist) • Exceptions surveillées (bypass) • À ignorer (ignorelist) • Expérience utilisateur (UX)
  10. Alertes et rapports • Importance pour la sécurité • Importance

    pour la fonctionnalité • Niveaux de protections • Console centrale vs. journaux
  11. 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
  12. 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
  13. 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 • Démonstration et questions
  14. Bonus • WAF Testing Framework par Imperva disponible fin 2012

    – Utilise WebGoat – Code fermé (sera ouvert un jour) mais configurations ouvertes XML
  15. Bonus 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 de votre attention • http://blog.jonathanmarcil.ca • @jonathanmarcil • jonathan.marcil@owasp.org

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

    https://www.owasp.org/index.php/Category:OWASP_Best_Pra ctices:_Use_of_Web_Application_Firewalls • OWASP ModSecurity Core Rule Set Project https://www.owasp.org/index.php/Category:OWASP_ModSecu rity_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