{"id":2197,"date":"2018-07-24T13:37:03","date_gmt":"2018-07-24T11:37:03","guid":{"rendered":"https:\/\/blog.alwaysdata.com\/?p=2197"},"modified":"2018-08-01T11:52:40","modified_gmt":"2018-08-01T09:52:40","slug":"le-pare-feu-applicatif-web-waf","status":"publish","type":"post","link":"https:\/\/blog.alwaysdata.com\/fr\/2018\/07\/24\/le-pare-feu-applicatif-web-waf\/","title":{"rendered":"Le pare-feu applicatif web (WAF)"},"content":{"rendered":"<p>Nous avons r\u00e9cemment d\u00e9ploy\u00e9 sur nos serveurs une nouvelle version de notre reverse proxy HTTP, avec son lot de nouveaut\u00e9s. Ce billet de blog est le premier d\u2019une s\u00e9rie visant \u00e0&nbsp;vous les pr\u00e9senter en d\u00e9tail.<\/p>\n<p>Nous vous pr\u00e9sentons ici le pare-feu applicatif web (<em>Web Application Firewall<\/em>, ou&nbsp;WAF).<\/p>\n<h2>Un WAF, qu\u2019est-ce que&nbsp;c\u2019est&nbsp;?<\/h2>\n<p>La quasi-totalit\u00e9 des applications ont des bugs, et notamment les applications web. Ils peuvent rendre les sites vuln\u00e9rables et \u00eatre utilis\u00e9s par des attaquants pour les p\u00e9n\u00e9trer et prendre le contr\u00f4le (on parle alors g\u00e9n\u00e9ralement d\u2019<em>infection<\/em>). Les cons\u00e9quences peuvent \u00eatre handicapantes (site web qui ne fonctionne plus), voire pire (fuite de donn\u00e9es personnelles).<\/p>\n<p>La cybers\u00e9curit\u00e9 est un domaine \u00e0&nbsp;part enti\u00e8re. En suivant <a href=\"https:\/\/blog.alwaysdata.com\/fr\/2018\/03\/27\/securiser-son-acces-distant-efficacement\/\">certaines bonnes pratiques,<\/a> et en utilisant un WAF, il est possible de diminuer drastiquement la vuln\u00e9rabilit\u00e9 de vos sites web. Bonne nouvelle&nbsp;: nous avons int\u00e9gr\u00e9 un WAF au sein de notre infrastructure et simplifi\u00e9 au maximum sa mise en place pour que tous nos clients puissent l\u2019utiliser.<\/p>\n<div class=\"embed-media__giphy\" style=\"width:65%;padding-bottom:27%;\"><img decoding=\"async\" alt=\"Gandalf GIF @Giphy\" src=\"https:\/\/media.giphy.com\/media\/njYrp176NQsHS\/giphy.gif\"><\/div>\n<p>Un <strong><abbr title=\"Web Application Firewall\" lang=\"en\">WAF<\/abbr><\/strong> est un <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Web_application_firewall\">pare-feu prot\u00e9geant les applications web<\/a> face \u00e0&nbsp;divers vecteurs d\u2019attaques. Le WAF examine chaque requ\u00eate HTTP, et peut soit les autoriser \u00e0&nbsp;transiter jusqu\u2019\u00e0 l\u2019application, soit les bloquer, alerter ou consigner si elles sont jug\u00e9es malveillantes. Il est g\u00e9n\u00e9ralement capable de r\u00e9agir \u00e0&nbsp;un grand nombre de vecteurs d\u2019attaques et donc de limiter au maximum les infections.<\/p>\n<figure class=\"embed-media__ad__medium\">\n    <img decoding=\"async\" width=\"792\" height=\"449\" src=\"https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/06\/waf.fr_-1.png\" alt=\"La requ\u00eate passe par le pare-feu applicatif (WAF) qui l'analyse et d\u00e9cide de laisser passer la requ\u00eate ou de la consigner (sch\u00e9ma)\" class=\"aligncenter size-full wp-image-2468\" srcset=\"https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/06\/waf.fr_-1.png 792w, https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/06\/waf.fr_-1-300x170.png 300w, https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/06\/waf.fr_-1-768x435.png 768w\" sizes=\"(max-width: 792px) 100vw, 792px\"><figcaption>Parcours d\u2019une requ\u00eate HTTP face \u00e0&nbsp;un WAF <small>(ic\u00f4nes&nbsp;: The Noun Project)<\/small><\/figcaption><\/figure>\n<h2>Le WAF Modsecurity<\/h2>\n<p>Plut\u00f4t que de d\u00e9velopper une solution en interne, nous avons opt\u00e9 pour le WAF <strong><a href=\"https:\/\/modsecurity.org\/\">ModSecurity<\/a><\/strong> d\u00e9velopp\u00e9 par <a href=\"https:\/\/www.trustwave.com\/Company\/SpiderLabs\/\">Trustwave SpiderLabs<\/a>. Ce projet jouit d\u2019une bonne notori\u00e9t\u00e9 dans le secteur de la s\u00e9curit\u00e9 applicative. Par ailleurs, la communaut\u00e9 d\u2019utilisateurs de ModSecurity est tr\u00e8s active, ce qui participe \u00e0&nbsp;son am\u00e9lioration jour apr\u00e8s&nbsp;jour.<\/p>\n<p>N\u00e9anmoins, ModSecurity est un moteur de s\u00e9curit\u00e9 applicative et un moteur sans carburant ne peut fonctionner. Le carburant de ModSecurity ce sont les r\u00e8gles permettant de d\u00e9terminer si une requ\u00eate est malveillante. Nous avons choisi d\u2019utiliser l\u2019ensemble de r\u00e8gles libres <strong><a href=\"https:\/\/coreruleset.org\/\">OWASP Modsecurity Core Rule Set<\/a><\/strong> (CRS) qui offre une protection g\u00e9n\u00e9rique \u00e0&nbsp;diverses attaques ainsi qu\u2019au <a href=\"https:\/\/www.owasp.org\/images\/7\/72\/OWASP_Top_10-2017_%28en%29.pdf.pdf\">Top 10 OWASP<\/a> avec un minimum de faux positifs.<\/p>\n<h2>Configurer son pare-feu applicatif chez alwaysdata<\/h2>\n<p>Pour plus de flexibilit\u00e9 et de modularit\u00e9, le WAF est activable individuellement pour chacun de vos sites h\u00e9berg\u00e9s chez alwaysdata.<\/p>\n<p>Plusieurs profils sont activables, chacun offrant un niveau de protection diff\u00e9rent. Ils sont au nombre de six, tri\u00e9s par ordre croissant de protection&nbsp;:<\/p>\n<ol>\n<li>Aucun (par d\u00e9faut)<\/li>\n<li>Basique\n<ul>\n<li>Respect strict du protocole HTTP<\/li>\n<li>D\u00e9tection de robots malveillants<\/li>\n<\/ul>\n<\/li>\n<li>Fort\n<ul>\n<li>L\u2019ensemble des r\u00e8gles du profil basique<\/li>\n<li>D\u00e9tection d\u2019ex\u00e9cution de code \u00e0&nbsp;distance (RCE)<\/li>\n<li>D\u00e9tection d\u2019attaque type <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Cross-site_scripting\">Cross-Site Scripting (XSS)<\/a><\/li>\n<li>D\u00e9tection d\u2019<a href=\"https:\/\/fr.wikipedia.org\/wiki\/Injection_SQL\">injection SQL<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Complet\n<ul>\n<li>L\u2019ensemble des r\u00e8gles du profil fort<\/li>\n<li>D\u00e9tection d\u2019attaques relatives au langage PHP<\/li>\n<li>D\u00e9tection d\u2019attaque par inclusion de fichier local (LFI)<\/li>\n<li>D\u00e9tection d\u2019attaque par <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Remote_File_Inclusion\">inclusion de fichier distant (RFI)<\/a><\/li>\n<\/ul>\n<\/li>\n<li>WordPress\n<ul>\n<li>L\u2019ensemble des r\u00e8gles du profil complet<\/li>\n<li>R\u00e8gles sp\u00e9cifiques \u00e0&nbsp;WordPress<\/li>\n<\/ul>\n<\/li>\n<li>Drupal\n<ul>\n<li>L\u2019ensemble des r\u00e8gles du profil complet<\/li>\n<li>R\u00e8gles sp\u00e9cifiques \u00e0&nbsp;Drupal<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Il est important de noter que l\u2019activation d\u2019un profil de protection va se traduire par une l\u00e9g\u00e8re augmentation de la latence lors du traitement d\u2019une requ\u00eate HTTP. Cette latence, de l\u2019ordre de quelques millisecondes, augmente avec le degr\u00e9 de protection. Ceci s\u2019explique par le fait que cette requ\u00eate doit \u00eatre confront\u00e9e \u00e0&nbsp;un nombre plus important de r\u00e8gles de s\u00e9curit\u00e9 avant que Modsecurity ne puisse tirer ses conclusions.<\/p>\n<p>Pour l\u2019utiliser, c\u2019est tr\u00e8s simple. Rendez vous dans <em>Sites \u2192 Modification \u2192 WAF<\/em> et s\u00e9lectionnez le profil le plus adapt\u00e9 \u00e0&nbsp;votre besoin. C\u2019est&nbsp;tout.<\/p>\n<p><img decoding=\"async\" width=\"1000\" height=\"525\" src=\"https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/07\/screenshot-ad-ui-waf.fr_.png\" alt=\"Capture d'\u00e9cran de l'interface d'administration pour la configuration du pare-feu applicatif par site\" class=\"aligncenter size-full wp-image-2501 embed-media__ad__medium\" srcset=\"https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/07\/screenshot-ad-ui-waf.fr_.png 1000w, https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/07\/screenshot-ad-ui-waf.fr_-300x158.png 300w, https:\/\/blog.alwaysdata.com\/wp-content\/uploads\/2018\/07\/screenshot-ad-ui-waf.fr_-768x403.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\"><\/p>\n<p class=\"inset\" data-title=\"Note\">Cette fonctionnalit\u00e9 est pour le moment consid\u00e9r\u00e9e comme en phase&nbsp;b\u00eata.<\/p>\n<hr>\n<p>C\u2019est dans notre optique de vous fournir un h\u00e9bergement toujours plus qualitatif, sans rogner sur la simplicit\u00e9 d\u2019utilisation, que nous vous proposons le d\u00e9ploiement d\u2019un WAF en trois clics pour vos&nbsp;sites.<\/p>\n<p>Apr\u00e8s la s\u00e9curit\u00e9, la performance&nbsp;! Dans le prochain billet, nous vous pr\u00e9senterons notre tout nouveau <a href=\"https:\/\/blog.alwaysdata.com\/fr\/2018\/07\/25\/le-cache-http\/\">cache HTTP<\/a> et son impact sur la qualit\u00e9 de service pour vos sites&nbsp;web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La s\u00e9curit\u00e9 applicative de vos apps et sites Web&nbsp;: pourquoi nous d\u00e9ployons un WAF et comment \u00e7a fonctionne&nbsp;?<\/p>\n","protected":false},"author":10,"featured_media":2234,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[],"tags":[242,225,243,244,132,245],"class_list":["post-2197","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-core-fr","tag-mises-a-jour-fr","tag-performance-fr","tag-proxy-fr","tag-securite-fr","tag-waf-fr"],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/2197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/comments?post=2197"}],"version-history":[{"count":0,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/posts\/2197\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media\/2234"}],"wp:attachment":[{"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/media?parent=2197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/categories?post=2197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.alwaysdata.com\/fr\/wp-json\/wp\/v2\/tags?post=2197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}