Lorsque Apache ou Nginx servent des fichiers statiques, ils suivent des liens symboliques, même si un lien pointe vers un fichier dont le propriétaire est un autre utilisateur système (par exemple, un fichier correspondant à un autre abonnement). Cela permet à l’attaquant disposant d’un accès à un abonnement de lire les fichiers d’un autre abonnement, y compris ceux contenant des mots de passe ainsi que des paramètres de WordPress ou d’autres CMS.

Réduction du risque de vulnérabilité

Droits des systèmes de fichiers

Si vous utilisez WP Toolkit, pour réduire plus simplement les vulnérabilités de vos installations WordPress, utilisez le Toolkit :

  1. Ouvrez WP Toolkit.
  2. Sélectionnez toutes les instances WordPress et cliquez sur Vérifier la sécurité.
  3. Vérifiez si « Droits pour les fichiers et les répertoires » est défini sur OK.
  4. Dans le cas contraire, cliquez sur Sécuriser.

Si vous n’utilisez pas WP Toolkit ou si vous devez sécuriser un autre CMS, vous devez corriger manuellement les droits sur tous les fichiers que vous voulez protéger en refusant tous les droits du groupe « Autre ». Pour cela, exécutez cette commande :

chmod o-rwx <file_name>

Note: Il n’existe pas de liste de fichiers uniforme à sécuriser de cette manière qui soit applicable à toutes les applications Web ou à tous les CMS. Les fichiers exacts pour lesquels les droits doivent être modifiés pour sécuriser une application Web dépendent de l’application en question.

Configuration Apache

Cette option pour réduire la vulnérabilité s’applique aux abonnements qui utilisent Apache comme serveur Web (un abonnement utilise Apache si le « Mode proxy » est activé dans Hébergement et DNS > Paramètres d’Apache et Nginx).

Note: Dans Plesk Obsidian 18.0.30 et les versions ultérieures, cette solution est appliquée par défaut. Pour les versions antérieures de Plesk, suivez les instructions afin de réduire le risque de vulnérabilité.

Pour réduire la vulnérabilité, procédez comme suit :

  1. Allez dans Packs de services > votre pack > onglet « Serveur Web » (ou votre abonnement > Sites Web et domaines > Hébergement et DNS > Paramètres d’Apache et Nginx).
  2. Cochez la case « Restreindre le suivi des liens symboliques ».

Cela permet de réduire la vulnérabilité d’un pack de services pour tous les abonnements basés sur ce pack de services (autrement dit, un attaquant qui parvient à accéder à un abonnement ne peut pas poursuivre son attaque contre les autres abonnements). Lorsque vous l’appliquez uniquement à un abonnement, alors la vulnérabilité est réduite uniquement pour cet abonnement.

Note: Un site Web qui utilise des liens symboliques pour ses propres fichiers continue de fonctionner s’il n’utilise pas l’option « FollowSymLinks » dans le fichier .htaccess, car l’option « SymLinksIfOwnerMatch » est activée par défaut. Si un tel site utilise l’option « FollowSymLinks » dans le fichier .htaccess, alors il s’arrête de fonctionner.

Prudence: Lorsque vous appliquez cette solution, vous restez toutefois vulnérable face à la situation de concurrence « time-of-check to time-of-use » liée à l’option Apache « SymLinksIfOwnerMatch ». Pour réduire également cette vulnérabilité, vous pouvez appliquer ce patch à Apache Ce patch n’a pas été testé par Plesk. Son application est à vos risques et périls. Vous pouvez aussi utiliser l’une des options de protection de liens symboliques basées sur le noyau décrites dans la suite de cet article.

Configuration Nginx

Cette option pour réduire la vulnérabilité s’applique aux abonnements qui utilisent Nginx pour servir directement les fichiers statiques (un abonnement utilise Nginx si le « Mode proxy » est désactivé ou s’il est activé et si l’option « Traiter les fichiers statiques directement avec Nginx » est activée dans Hébergement et DNS > Paramètres d’Apache et Nginx).

Pour réduire la vulnérabilité, procédez comme suit :

  1. Allez dans Packs de services > votre pack > « Serveur Web » (ou votre abonnement > Sites web et domaines > Hébergement et DNS > Paramètres d’Apache et Nginx).
  2. Cochez la case « Restreindre le suivi des liens symboliques ».

Cela permet de réduire la vulnérabilité d’un pack de services pour tous les abonnements basés sur ce pack de services (autrement dit, un attaquant qui parvient à accéder à un abonnement ne peut pas poursuivre son attaque contre les autres abonnements). Lorsque vous l’appliquez uniquement à un abonnement, alors la vulnérabilité est réduite uniquement pour cet abonnement.

Note: Cette option ne s’applique pas aux ordinateurs qui exécutent Linux version 2.6.39 du noyau ou une version antérieure. Pour réduire la vulnérabilité sur ce type de machine, nous vous recommandons soit de mettre à niveau votre système d’exploitation vers la dernière version stable, soit d’appliquer l’un des mécanismes de protection de liens symboliques basés sur le noyau listés ci-dessous.

SecureLinks dans mod_hostinglimits pour CloudLinux

Sur les ordinateurs qui exécutent CloudLinux, vous pouvez réduire la vulnérabilité en activant le mécanisme de protection par correspondance du propriétaire de lien symbolique disponible en tant qu’élément du module HostingLimits pour Apache. Pour en savoir plus, consultez la documentation CloudLinux.

Jeu de patchs de protection de liens symboliques KernelCare pour CentOS 7 (gratuit)

Sur les ordinateurs qui exécutent CentOS 7, vous pouvez réduire la vulnérabilité en installant de jeu de protection de liens symboliques gratuit de CloudLinux. Pour en savoir plus, consultez la documentation CloudLinux.

Grsecurity (un jeu de patchs pour le kernel Linux ciblant les améliorations de sécurité, abonnement payant obligatoire)

Si aucune des options ci-dessus de réduction de la vulnérabilité ne correspond à votre situation, vous pouvez installer le jeu de patchs pour renforcer la sécurité pour le kernel Linux grsecurity, et ensuite configurer la fonction GRKERNSEC_SYMLINKOWN. Remarque : l’utilisation de grsecurity n’est pas gratuite et requiert l’achat d’un abonnement.