Pare-feu applicatif (ModSecurity)
Résumé: Dans cette section, vous découvrirez comment protéger vos applications web (comme WordPress, Joomla! ou Drupal) contre les attaques à l’aide du pare-feu applicatif open source ModSecurity.
Cette section décrit brièvement le fonctionnement de ModSecurity et explique comment l’activer et le configurer.
Pour détecter et prévenir les attaques contre des applications Web, le pare-feu applicatif (ModSecurity) vérifie toutes les requêtes de votre serveur Web et les réponses associées du serveur en fonction de son jeu de règles. Si la vérification réussit, la requête HTTP est transmise pour récupérer le contenu du site Web. Si elle échoue, les actions prédéfinies sont exécutées.
ModSecurity est pris en charge par Plesk pour Linux et pour Windows. Il fonctionne en tant que module de serveur Web (Apache, Nginx ou IIS).
Activation de ModSecurity
Pour activer le pare-feu applicatif :
-
Allez sous Outils & Paramètres > Pare-feu applicatif (ModSecurity) (dans « Sécurité »).
Si vous ne voyez pas ce lien, installez le composant ModSecurity dans Outils & Paramètres > Mises à jour > Ajouter/Supprimer des composants > groupe Hébergement Web.
-
Définissez le mode pare-feu applicatif sur On ou sur Détection uniquement. Chaque requête HTTP entrante et la réponse associée seront vérifiées selon un jeu de règles. Si la vérification réussit, la requête HTTP est transmise au site Web pour récupérer le contenu. Si elle échoue, l’événement est consigné dans le fichier de log. En mode Détection uniquement aucune autre action n’est exécutée. En mode On, la réponse HTTP est émise avec un code d’erreur.
Note: Les modes du pare-feu applicatif peuvent être définis au niveau du serveur et des domaines. Toutefois, le mode au niveau du domaine ne peut être plus élevé que le mode défini pour le serveur. Par exemple, si le pare-feu applicatif fonctionne en mode Détection uniquement au niveau du serveur, alors vous ne pouvez pas le définir sur On pour les domaines. Seuls les modes Off et Détection uniquement sont disponibles.
-
(Plesk pour Linux uniquement) Allez sur l’onglet « Paramètres » et sélectionnez la version souhaitée de ModSecurity depuis le menu déroulant Exécuter les règles sur :
- Apache (ModSecurity 2.9) (recommandé). ModSecurity 2.9 fonctionne uniquement pour les domaines dont le « mode Proxy » est activé dans les Paramètres Apache & nginx.
- Nginx (ModSecurity 3.0). ModSecurity 3.0 peut utiliser uniquement les règles de sécurité d’OWASP et Comodo. Nous vous recommandons vivement d’essayer ModSecurity 3.0 sur un serveur de test avant de l’utiliser dans votre environnement de production.
-
Sélectionnez un jeu de règles qui sera vérifié par le moteur du pare-feu applicatif pour chaque requête HTTP entrante, ou téléversez un jeu de règles personnalisé. Vous pouvez sélectionner uniquement les jeux de règles suivants :
-
Atomic Standard (gratuit, possibilité de mise à niveau vers Atomic Advanced). Avec cette version d’évaluation gratuite, vous disposez d’un jeu de règles contenant à la fois des fonctions de sécurité et des correctifs importants publiés tous les mois. Pour en savoir plus sur les règles comprises dans ce jeu, consultez la section Jeux de règles Atomic ModSecurity.
-
OWASP (gratuit). Le jeu de règles OWASP ModSecurity Core Rule Set (CRS) assure une protection générique contre les vulnérabilités inconnues fréquentes dans les applications Web. Ce jeu de règles est gratuit. Il s’agit d’un jeu de règles reconnu comme très restrictif. Il est nécessaire de l’ajuster lorsqu’il est utilisé à des fins de production. Lorsque ce jeu de règles est sélectionné, WordPress fonctionne de manière restreinte, la messagerie Web et le partage des fichiers ne fonctionnent pas non plus. À la place, vous pouvez utiliser les jeux de règles Atomic ou Comodo.
-
(Plesk pour Linux) Comodo (gratuit). Système de contrôle du trafic basé sur des règles, gratuit, simple d’utilisation et personnalisable. Ce système protège vos applications basées sur le web et prévient les techniques de hack émergentes. Pour cela, il s’appuie sur une base de données de règles mise à jour fréquemment.
-
Atomic Advanced. Ce jeu de règles inclut les versions les plus récentes avec toutes les améliorations au niveau des performances, fonctions de sécurité et correctifs publiés par Atomicorp GotRoot au quotidien. Il s’agit d’un jeu de règles payant entièrement pris en charge et recommandé à des fins de production. Plesk offre la fonctionnalité complémentaire Security Core Complete by Atomicorp permettant d’activer ce jeu de règles dans Plesk. Pour obtenir cette fonctionnalité, plusieurs solutions s’offrent à vous :
- Achetez le produit Advanced ModSecurity Rules by Atomicorp dans la Boutique en ligne Plesk.
- Si vous disposez d’une licence Plesk, vous pouvez ajouter une fonction supplémentaire via l’interface Plesk Partner Central ou via Partner API (pour en savoir plus, consultez le Guide de l’utilisateur Partner Central (en anglais) ou la référence Partner API 3.0 (en anglais)).
- Si vous disposez d’une licence Plesk mais n’avez pas accès à l’interface Partner Central de Plesk, contactez votre revendeur.
Si vous disposez déjà d’un compte sur le site Atomic, vous pouvez indiquer votre nom d’utilisateur et votre mot de passe pour activer ce jeu de règles.
Note: Si vous achetez cette fonction complémentaire, l’interface de Plesk affiche Atomic Advanced à la place de Atomic Standard (gratuit, peut être mis à niveau vers Atomic Advanced). Autrement dit, il s’agit du jeu de règles complet Atomic Advanced ModSecurity.
Découvrez les règles comprises dans ce jeu dans la section Jeu de règles Atomic ModSecurity.
-
Jeu de règles personnalisé. Vous pouvez charger un jeu de règles personnalisé pour le pare-feu applicatif, par exemple, un pack de test Atomic ou un pack gratuit Comodo. Formats pris en charge : zip, tar.gz, tgz, tar.bz2, conf.
-
-
Pour mettre à jour automatiquement le jeu de règles sélectionné, cochez la case Mettre à jour le jeu de règles et choisissez la période de mise à jour.
-
Sélectionnez un jeu de paramètres prédéfinis ou indiquez vos directives ModSecurity personnalisées. Vous pouvez choisir parmi les jeux de paramètres prédéfinis suivants :
-
Rapide : analyse de l’URI de requête HTTP et d’une partie des en-têtes. Ce mode est celui sollicitant le moins le CPU.
-
Intermédiaire : analyse de l’URI de requête HTTP, des en-têtes et des données POST de la requête. Ce mode est un bon compromis qualité/performances.
-
Complet : analyse de l’intégralité des en-têtes de la requête HTTP, des données POST de la requête et du contenu du corps de la réponse. Ce mode est celui qui consomme le plus de ressources CPU. Il est toutefois recommandé pour les sites qui requièrent des mesures de sécurité spécifiques. Par exemple, les boutiques en ligne acceptant les paiements par carte.
Note: Pour des performances optimales, le pare-feu applicatif requiert un serveur DNS local avec mise en cache des requêtes. Sinon, vos sites Web risquent de ralentir quand le pare-feu applicatif est activé.
-
Fichiers de log (Linux)
Sous Linux, ModSecurity utilise les emplacements suivants pour les logs :
- Le log d’audit ModSecurity (dans
/var/log/modsec_audit.log
) est très détaillé et utilisé par l’ensemble du serveur Plesk. Tout événement détecté par ModSecurity génère une entrée dans le fichier du log d’audit. Pour voir le log d’audit de ModSecurity, allez dans Outils & Paramètres > Pare-feu applicatif (ModSecurity) > cliquez sur le lien Logs d’archive dans la section Log d’audit ModSecurity. Sur cette page, vous pouvez consulter et télécharger les fichiers de log ModSecurity et voir leurs dates de modification. - Le log d’erreurs Apache pour un domaine (sous
/var/www/vhosts/DOMAIN.TLD/logs/error_log
) contient seulement de courtes informations sur les erreurs de sites Web. Vous pouvez voir le log d’erreurs d’un site Web particulier dans le panneau Client sous Sites Web & Domaines > <nom_domaine> > Logs. Sélectionnez uniquement Erreur Apache et Erreur Nginx à la place de Tous les logs à droite.
Fichiers de log (Windows)
Sous Windows, les logs d’audit ModSecurity sont spécifiques à chaque domaine et se trouvent dans %plesk_dir%ModSecurity\vhosts\<domain's GUID>\logs
(%plesk_dir%
correspond au répertoire d’installation par défaut de Plesk).
Désactivation des règles
Lorsque vous passez le mode pare-feu applicatif de On à Off ou à Détection uniquement, cela peut arrêter un site Web. Dans le log d’erreurs du site Web, vous pouvez trouver des codes d’erreur du type 403
, 404
ou 500
. Ces erreurs disparaissent lorsque vous passez le pare-feu applicatif en mode Détection uniquement ou Off. Dans ce cas, analysez le log d’audit ModSecurity pour comprendre ce qu’il se passe. Vous pouvez désactiver les règles de sécurité trop restrictives ou ajuster le site Web.
Afin de déterminer pourquoi une requête HTTP ne peut aboutir pour un site Web :
-
Consultez le fichier du log d’audit du site Web.
Dans Plesk pour Linux, vous pouvez utiliser l’interface Plesk pour voir le log : allez dans Outils & Paramètres > Pare-feu applicatif (ModSecurity) et cliquez sur le lien Fichier de log ModSecurity pour télécharger le log d’audit et l’ouvrir dans une nouvelle fenêtre de navigateur.
-
Utilisez la recherche (généralement
Ctrl + F
) pour trouver les événements du site Web (nom de domaine) qui ont généré des problèmes. Par exemple,votre_domaine.tld
. Le navigateur met en surbrillance des entrées commeHOST: votre_domaine.tld
. Trois lignes au-dessus de l’entrée en surbrillance, repérez une chaîne du type :--eece5138-B--
. Les 8 caractères entre les tirets (ici «eece5138
») correspondent à l’ID de l’événement déclenché par la requête HTTP. -
Recherchez d’autres entrées avec le même ID d’événement. Repérez une entrée avec la lettre
H
après l’ID de l’événement (dans notre exemple : « eece5138-H– »). Cette entrée contient l’ID et la description de la règle de sécurité déclenchée lors de la vérification de la requête HTTP. L’ID de la règle de sécurité est un nombre entier entre guillemets avec le préfixeid
entre crochets. Par exemple : [id « 340003 »]` ou[id "913102"]
. -
Trouvez un ID de règle de sécurité dans l’événement avec la sous-chaîne, par exemple``[id « 3``. Cet ID peut être utilisé lorsque vous désactivez des règles.
Pour désactiver une règle :
- Allez sous Outils & Paramètres > Pare-feu applicatif (ModSecurity).
- Dans la section Désactiver les règles de sécurité, sélectionnez la règle de sécurité selon son ID (par exemple
340003
), la balise correspondante (par exemple CVE-2011-4898) ou une expression régulière (par exempleXSS
) et cliquez sur OK.