Guide Digital
Pourquoi devriez-vous toujours mettre un reverse proxy devant votre site internet ou vos applications ?
Web- Le 16 novembre 2023
sécurité

Pourquoi devriez-vous toujours mettre un reverse proxy devant votre site internet ou vos applications ?

Sommaire
  1. Un Reverse Proxy ?
  2. Quels sont les reverses proxies les plus connus ?
  3. Pourquoi devrais-je utiliser systématiquement un reverse proxy ?

Un Reverse Proxy ?

Un proxy renversé ? Oui oui, vous lisez bien … c’est un proxy mais qui fonctionne dans le sens inverse. Déjà qu’est ce qu’un proxy ? un proxy à la base est un serveur qui se charge de prendre les requêtes envoyées et de les transmettre à un serveur de destination, en les mettant en cache par exemple ou en pratiquant du filtrage sur ces requêtes, à noter que ces requêtes viennent de client, à savoir des navigateurs internet. Ici l’idée est de protéger les clients.

Donc un reverse proxy ? ben c’est un proxy inversé, qui accueille les demandes d’internautes qui vont vers des serveurs internes possédant du contenu. Le reverse proxy fait également du filtrage mais peut également faire du cache et bien d’autres choses. Dans le cas d’un reverse proxy, l’idée est de protéger les serveurs qui servent le contenu.

Quels sont les reverses proxies les plus connus ?

On peut citer les CDN comme Cloudflare, Flastly qui sont effectivement des reverses proxies public. Outre le fait de récupérer les requêtes de vos visiteurs et de les acheminer sur vos serveurs, ils peuvent mettre en cache le résultat retourné par vos serveurs, filtrer les requêtes en vue de protéger vos serveurs et applications et même cacher le lieu d’hébergement de vos applications / sites internet / boutiques en ligne.

Outre ces solutions logicielles en mode SAAS (Software as a service), on peut citer des solutions logicielles que vous pouvez déployer :

Nginx avec le système de protection Naxsi / Modsecurity

Nginx est un reverse proxy connu et reconnu pour ses performances mais également en lui ajoutant une surcouche de sécurité comme Naxsi ou ModSecurity, il devient un pare-feu applicatif redoutable

Insensible au contenu du fichier .htaccess, en effet, il ne sait pas le lire. Si vous le mettez avant votre serveur applicatif PHP, ou qu’importe le langage, il vous permettra de mettre en place des règles de filtrage qu’un attaquant ne pourra pas contourner, sauf à s’introduire dans la machine mais dans ce cas là, c’est que vous avez un autre problème

Varnish, le cache par excellence

Varnish est un reverse proxy cache qui peut normaliser vos requêtes en vue d’améliorer le taux de mise en cache de vos ressources ou de vos pages internet. Il ne sert principalement qu’à gérer la montée en charge de votre site internet ou de votre application grâce à ses fonctionnalités avancées comme le Stale while revalidate ou bien encore les ESI

Les Stale while revalidate (que Cloudflare propose aussi désormais) est un mécanisme, permettant de servir du contenu périmé et de déclencher une mise à jour atomique du contenu en tâche de fond pour remplacer le contenu périmé. De cette façon, le serveur traitant la requête, ne reçoit qu’une seule requête et dès que celle-ci est renvoyée, il met à jour son contenu pour tous les clients

Varnish permet également de facilement modifier le contenu d’une requête et d’enlever par exemple les cookies vers les fichiers statiques

HaProxy, le load-balancer affuté

Si vous souhaitez chirurgicalement traiter une requête, pour lui enlever des paramètres ou bien d’autres choses, vous pouvez faire confiance à HaProxy dans ce domaine. On peut également l’utiliser pour protéger l’accès aux ressources via des mécanismes pour bloquer les DDoS / DoS

Pourquoi devrais-je utiliser systématiquement un reverse proxy ?

Pour améliorer la sécurité de votre site internet ou de votre application

Imaginez que votre site internet est un site WordPress, que celui-ci a déjà été infecté et que vous ne souhaitez plus que la situation se reproduise. Une solution simple est d’utiliser votre reverse proxy pour bloquer les requêtes malveillantes.

Dans le cas d’un WordPress, certain répertoire ne doivent pas contenir de fichier PHP, notamment le répertoire wp-content. dans ce cas, une solution simple est de bloquer tous les appels à des scripts PHP présents dans ce répertoire, vous restreignez une grosse source de possibilités pour les attaquants de déposer et d’exploiter des fichiers dans ce répertoire.

Si vous avez réussi à trouver ce que l’attaquant a exploité pour rentrer dans votre site internet, votre reverse proxy peut également bloquer ces requêtes pour que la faille soit définitivement comblée.

Pourquoi le reverse proxy à la place d’un .htaccess pour protéger ?

Un fichier .htaccess est un fichier lu par Apache et souvent déposé côté applicatif avec l’ensemble du code source. Un attaquant peut très bien en modifier le contenu et rendre vos éventuelles protections inopérantes. En déplaçant ces protections côté Reverse Proxy, l’attaquant ne peut modifier sa configuration et se retrouve donc démuni et ne peut changer le comportement de votre solution.

L’attaquant se retrouve ainsi bloquer par votre Reverse Proxy et ne peut le contourner.

Pour distribuer finement vos requêtes

Vous disposez d’un site internet et le fanatique bot de Microsoft s’acharne à consommer toutes les ressources de votre serveur ? alors pourquoi ne pas le brider ou bien l’orienter vers des pages mises en cache ?

En utilisant un reverse proxy comme HaProxy ou Nginx, vous pouvez mettre en place des restrictions et limiter l’impact d’un robot un peu trop consommateur ou bien plus finement mettre vos pages en cache et servir ce cache à ces robots. Vos visiteurs habituels, sont eux, orientés vers les pages classiques.

Pour augmenter le taux de cache et optimiser l’utilisation du cache

En mettant un reverse proxy devant votre gestionnaire de cache (par exemple un Varnish … qui est aussi un reverse proxy orienté cache), vous pouvez par exemple supprimer des paramètres ou bien réordonner la présence des paramètres dans la requêtes pour que votre reverse proxy cache n’ait qu’une seule version de page à mettre en cache et non plusieurs en fonction de l’ordre des paramètres. Vous optimisez ainsi la consommation mémoire en stockant qu’une seule version et vous augmentez les chances pour votre visiteur d’avoir une page en cache et donc une page très rapide à se charger.

Pour y rajouter une couche de filtrage

Un WAF (Firewall applicatif ou couche de filtrage applicatif) n’est ni plus ni moins qu’un reverse proxy dont la fonction est de jouer l’arbitre sur les requêtes entrantes en distribuant des bons et mauvais points à chaque appel qu’il traite.

En fonction de règles (un peu comme un antivirus), le reverse proxy va autoriser ou non la requête à passer et donc la délivrer au serveur.

Le problème de ce système est que certaines règles peuvent être délétères pour le fonctionnement de votre solution et il faut soit effectuer une phase d’apprentissage, soit choisir les règles à désactiver. Cela dépend du mode de fonctionnement du WAF.