Un guide pour renforcer votre serveur Web

Publié: 2022-03-15

En raison de leur fonction, les serveurs Web sont différents de nombreux autres appareils dans un environnement réseau typique. Ils ne sont pas seulement exposés à Internet de par leur conception, mais ils servent probablement le trafic Web à de parfaits inconnus. De plus, dans de nombreuses situations, les serveurs Web servent probablement des applications dynamiques telles que les sites Web WordPress ou agissent comme des proxys vers d'autres applications internes. Il n'est donc pas surprenant que les serveurs Web se présentent comme des cibles intéressantes pour les attaquants.

Le renforcement d'un système fait référence au processus d'amélioration des défenses d'un système de sorte qu'il est plus difficile pour un pirate malveillant de compromettre ce système et de prendre pied dans un réseau.

Le processus de renforcement d'un serveur Web dépendra bien sûr du type de serveur Web que vous utilisez (par exemple Apache HTTP Server, Nginx, Microsoft IIS…), cependant, il existe un certain nombre de principes fondamentaux et de meilleures pratiques pour améliorer votre sécurité du serveur Web que vous devez garder à l'esprit, quel que soit le serveur Web que vous utilisez.

Cet article est un guide de renforcement du serveur Web. Dans ce document, nous examinerons un certain nombre de meilleures pratiques indépendantes de la technologie grâce auxquelles vous pouvez améliorer la sécurité de votre serveur Web. Pour le durcissement de WordPress, reportez-vous à notre guide de sécurité et de durcissement de WordPress.

1. Maintenez votre serveur Web à jour

Maintenir les logiciels à jour peut ne pas sembler un gros problème, mais appliquer les correctifs de sécurité à temps est sans doute l'une des défenses les plus importantes que vous puissiez mettre en œuvre. Outre les améliorations des performances et de la stabilité, les mises à jour du serveur Web et du système d'exploitation contiennent souvent des correctifs pour les vulnérabilités de sécurité.

À première vue, cela peut sembler trivial, cependant, tout professionnel de la sécurité de l'information vous dira que l'application de correctifs est plus compliquée qu'il n'y paraît, non pas parce que l'installation de la dernière version de la plupart des logiciels est particulièrement difficile, mais parce que l'application de correctifs est toujours considérée comme quelque chose qui peut être reporté.

La meilleure approche pour vous assurer que votre logiciel de serveur Web est constamment mis à jour consiste à trouver un système ou une routine qui fonctionne pour vous ou pour la personne chargée de mettre à jour votre serveur Web et votre système d'exploitation. La plupart du temps, cela se résume à un rappel périodique (par exemple, la configuration d'un événement de calendrier répété) pour lequel vous prendrez du temps.

2. Supprimez les logiciels et modules inutiles

Bien que cela ne semble pas toujours le cas, les serveurs Web sont des logiciels complexes. Certains serveurs Web, tels que Apache HTTP Server, sont livrés avec une série de "modules" (similaires à ce que sont les plugins pour WordPress) que vous pouvez activer ou désactiver en fonction de votre cas d'utilisation. Les attaquants malveillants sont connus pour exploiter les fonctionnalités et les vulnérabilités d'un module de serveur Web pour recueillir plus d'informations sur votre serveur Web. Bien que ce ne soit peut-être pas la seule raison d'une attaque réussie, le but du renforcement des serveurs Web est d'adopter une approche de défense en profondeur et de rendre difficile pour les acteurs malveillants de prendre même le plus petit pied.

Un exemple pratique de ceci est des modules tels que mod_status du serveur HTTP Apache. Ce module est conçu pour obtenir une vue d'ensemble de l'activité et des performances du serveur (hôtes actuels, nombre de requêtes en cours de traitement, nombre de travailleurs inactifs et utilisation du processeur) via l'URL /server-status. Une telle fonctionnalité peut fournir à un attaquant une assez bonne indication des performances de votre serveur Web - un outil très utile en cas d'attaque par déni de service (DoS).

De même, d'autres logiciels inutilisés exécutés sur votre serveur Web peuvent présenter un risque inutile. Par exemple:

  1. Utilisez-vous un serveur FTP, tel que vsftpd , dont vous n'avez pas besoin ?
  2. Y a-t-il un agent de transfert de courrier tel que Sendmail ou Postfix dont vous n'avez plus besoin ? Si vous utilisez un service tiers pour améliorer la délivrabilité des e-mails WordPress, vous n'aurez pas besoin d'un tel service.

Ces applications/services et bien d'autres sur le serveur sont tous des composants qui ont leurs propres bizarreries de sécurité, vulnérabilités et exigences de correctifs.

En résumé, exécutez moins de logiciels dans la mesure du possible. Si vous n'utilisez pas un module ou un service, vous devriez envisager de le désactiver ou de le supprimer. Naturellement, ne désactivez pas simplement des modules ou des applications sans des tests approfondis dans un environnement de développement ou de préproduction (parfois, il peut ne pas être tout à fait clair qu'un module ou une application de serveur Web est utilisé).

3. Renforcer le contrôle d'accès

Contrôler l'accès à votre serveur Web est essentiel pour bien faire les choses. Après tout, vous voulez minimiser le risque que l'accès à votre serveur Web ne tombe entre de mauvaises mains. Voici un certain nombre de bonnes pratiques à suivre pour maintenir un contrôle d'accès adéquat.

  • N'utilisez pas l'utilisateur root. Si vous devez effectuer des tâches administratives, utilisez plutôt sudo ;
  • Utilisez des mots de passe système forts (et WordPress) ;
  • Utilisez les clés SSH en faveur du mot de passe lors de l'utilisation de SSH ;
  • Envisagez de restreindre l'accès SSH/RDP à partir d'adresses IP spécifiques ;
  • Activez l'authentification à deux facteurs (2FA) sur tous les comptes de fournisseur de cloud ;
  • Assurez-vous que chaque personne accédant au serveur Web a son propre utilisateur—ne partagez pas les comptes d'utilisateurs entre les utilisateurs ;
  • Limitez explicitement l'accès shell/SSH/Remote Desktop aux personnes qui en ont besoin.

4. Configuration de la surveillance de l'intégrité des fichiers (FIM)

La surveillance de l'intégrité des fichiers (FIM) aide les administrateurs système à identifier les changements de fichiers sur un serveur Web. Bien que certains fichiers changent assez fréquemment dans le cadre des opérations normales du serveur Web, des fichiers tels qu'une installation WordPress ne doivent jamais changer à moins qu'un administrateur n'apporte des modifications (par exemple, en mettant à jour le fichier wp-config.php) ou en mettant à jour WordPress lui-même.

Bien qu'il existe une multitude d'options que vous pouvez choisir d'utiliser en matière de surveillance de l'intégrité des fichiers, il est conseillé de s'en tenir à quelque chose qui est spécifique à l'application que vous exécutez, qui est simple à configurer et à utiliser et qui ne nécessite pas de beaucoup de réglage. Sinon, vous allez vous noyer dans des notifications sans signification et avant que vous ne vous en rendiez compte, la fatigue d'alerte s'installera, effaçant vos efforts pour être avec. En bref, plus d'alertes et de fonctionnalités ne signifient pas mieux en matière de FIM, recherchez plutôt une solution qui offre le plus de valeur avec le moins de frais généraux.

5. Utiliser un service d'atténuation DDoS et WAF

Au lieu d'exposer votre serveur Web directement à Internet, vous devriez envisager d'utiliser un service tel que Cloudflare, Fastly, Akamai ou similaire afin de vous protéger contre une vaste gamme d'attaques, y compris les attaques par déni de service distribué (DDoS). Une attaque par déni de service (DoS) est un type d'attaque dans lequel un attaquant vise à submerger un site Web de demandes et, par conséquent, à empêcher votre serveur Web de répondre aux demandes des utilisateurs légitimes.

En plus de l'atténuation du déni de service, ces services cloud offrent généralement également des fonctionnalités de pare-feu d'application Web (WAF) qui sont capables d'arrêter de nombreuses attaques d'applications Web courantes telles que l'injection SQL de base (SQLi) et le simple Cross-site Script (XSS). Bien que les WAF ne soient pas une solution aux vulnérabilités des applications Web, ils offrent une certaine protection contre l'exploitation, en particulier avec les règles WAF optimisées pour les sites Web WordPress.

Quelles sont les prochaines étapes?

Bien que cet article couvre certaines techniques courantes de renforcement des serveurs Web, rien dans la sécurité n'est une solution miracle. Ainsi, aucune méthode de défense d'un système n'est infaillible, surtout face à un adversaire déterminé. Par conséquent, pourquoi vous devez sécuriser chaque composant qui compose votre site Web WordPress. Vous ne pouvez pas sécuriser votre serveur Web et ignorer la sécurité WordPress ou votre propre ordinateur.

Cependant, des correctifs constants et le respect de bonnes pratiques de sécurité et d'hygiène peuvent considérablement augmenter l'effort qu'un attaquant doit déployer pour réussir une attaque, ce qui, la plupart du temps, signifie frustrer l'attaquant, le forçant à se diriger vers une cible plus facile.