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 à la charge par Plesk pour Linux et pour Windows. Il fonctionne en tant que module de serveur Web (Apache ou IIS).

Note: pour utiliser le pare-feu applicatif (ModSecurity), les administrateurs mettant à niveau depuis Plesk 11.5 doivent obtenir une nouvelle clé de licence pour Plesk Onyx auprès de Plesk ou d’un revendeur.

Activation de ModSecurity

Pour activer le pare-feu applicatif :

  1. Allez sous  Outils & Paramètres > Pare-feu applicatif (ModSecurity) (dans le groupe  Sécurité ).

    Si vous ne voyez pas ce lien, installez le composant ModSecurity dans Outils & Paramètres  > Mises à jour et à niveau > Ajouter/supprimer des composants > groupe Hébergement Web.

    image 78702

  2. 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.

  3. Sélectionnez le jeu de règles qui sera vérifié par le moteur du pare-feu applicatif pour chaque requête HTTP entrante ou chargez un jeu de règles personnalisé. Vous pouvez choisir parmi les jeux de règles suivants :

    • Atomic Basic ModSecurity. Version de base gratuite des règles Atomic ModSecurity, associée à Plesk. Ce jeu de règles contient à la fois des fonctions de sécurité et des correctifs importants publiés tous les mois. Découvrez les règles comprises dans ce jeu dans la section Jeu de règles Atomic ModSecurity.

    • OWASP ModSecurity Core Rule Set (CRS). Le CRS assure une protection générique contre les vulnérabilités courantes des 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 pour des fins de production. Lorsque ce jeu de règles est sélectionné, WordPress ne fonctionne pas complètement ; 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.

    • Jeu de règles ModSecurity avancé d’Atomicorp. 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.
      • If you already have a Plesk license, you can add the extra feature via the Plesk Partner Central UI or via the Partner API (for details, refer to the Partner Central User’s Guide or Partner API 3.0 reference).
      • 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 activez cette fonction, l’interface utilisateur de Plesk affiche Advanced ModSecurity Rules by Atomicorp à la place de Atomic Basic ModSecurity, autrement dit, il s’agit du jeu de règles Atomic ModSecurity complet.

      Note: Atomicorp ne prend pas encore en charge Ubuntu 18.04. C’est pourquoi les jeux de règles Atomic (basique et avancé) ne peuvent pas être activés dans ModSecurity sur un serveur Plesk avec Ubuntu 18.04.

      Découvrez les règles comprises dans ce jeu dans la section Jeu de règles Atomic ModSecurity.

      Attention (Linux) : si vous sélectionnez le jeu de règles Atomic, procédez comme suit pour vérifier que ModSecurity fonctionne correctement. Exécutez la commande aum -u sur le serveur. Le pack Plesk modsecurity sera remplacé par celui du répertoire Atomic. Exécutez les commandes suivantes :

      • plesk sbin modsecurity_ctl --disable
      • plesk sbin modsecurity_ctl -enable
      • service httpd restart
    • Jeu de règles Comodo ModSecurity (Linux). Ce système facile de contrôle du trafic repose sur des règles personnalisables. Il protège vos applications 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 régulièrement. Ce jeu de règles est gratuit. Pour l’activer dans Plesk, enregistrez-vous sur le site Comodo. Indiquez votre nom d’utilisateur et mot de passe pour ce site.

    • Installation personnalisée. 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.

  4. 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.

  5. 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é.

      image 76906

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\<GUID domaine>\logs, où %plesk_dir% est le 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 :

  1. 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.

  2. 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 comme HOST: 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.

  3. 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 d’événement (ici 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 commençant par 3 entre guillemets avec le préfixe id entre crochets. Par exemple : [id "340003"].

  4. Trouvez un ID de règle de sécurité dans l’événement avec la sous-chaîne [id "3. Cet ID peut être utilisé lorsque vous désactivez des règles.

Pour désactiver une règle :

  1. Allez sous  Outils & Paramètres > Pare-feu applicatif (ModSecurity).
  2. 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 exemple XSS) et cliquez sur OK.

Remarques relatives à Nginx et ModSecurity (Linux)

Sous Linux, ModSecurity est un module pour Apache. Par conséquent, il vérifie uniquement les requêtes HTTP communiquant avec Apache. Apache peut être complété par un autre serveur Web, Nginx. Si vous activez l’option Gérer PHP avec Nginx du serveur Web Nginx pour le contenu dynamique de votre site Web (dans les paramètres Apache & Nginx du site), le pare-feu applicatif ne sera pas en mesure de traiter les requêtes HTTP, car elles n’atteignent jamais Apache. Pour le contenu statique, si l’option Traiter les fichiers statiques directement avec Nginx est activée, les requêtes HTTP n’atteindront pas Apache, et ModSecurity ne les vérifiera pas.

Notes de mise à niveau (Linux)

Astuces pratiques si vous avez installé ModSecurity sur le serveur avant de mettre à niveau vers Plesk Onyx :

  • Plesk installe son propre pack ModSecurity. Toutefois, pendant la vérification avant mise à niveau, le programme d’installation de Plesk vous demande si vous acceptez l’installation de Plesk ModSecurity sur votre installation existante.
  • Votre configuration ModSecurity reste telle quelle. Toutefois, il y a de nombreuses configurations et distributions pour ModSecurity, c’est pourquoi il est si difficile de prédire comment les nouvelles et anciennes configurations risquent d’entrer en conflit. Pour éviter les problèmes, enregistrez votre configuration existante et désinstallez ModSecurity avant de procéder à la mise à niveau vers Plesk Onyx (ou avant d’installer ModSecurity sur Plesk).