
Dans les réseaux informatiques , un proxy inverse ou serveur de substitution est un serveur proxy qui apparaît à tout client comme un serveur Web ordinaire , mais qui agit en réalité simplement comme un intermédiaire qui transmet les demandes du client à un ou plusieurs serveurs Web ordinaires. Les proxys inverses contribuent à accroître l'évolutivité, les performances, la résilience et la sécurité, mais ils comportent également un certain nombre de risques.
Les entreprises qui exploitent des serveurs Web installent souvent des proxys inverses pour faciliter la communication entre le navigateur d'un internaute et les serveurs Web . Un avantage important de cette méthode est que les serveurs Web peuvent être cachés derrière un pare-feu sur un réseau interne à l'entreprise, et seul le proxy inverse doit être directement exposé à Internet. Les serveurs proxy inverses sont implémentés dans les serveurs Web open source les plus populaires . Des serveurs proxy inverses dédiés sont utilisés par certains des plus grands sites Web sur Internet.
Un proxy inverse est capable de suivre toutes les requêtes d'adresses IP qui lui sont transmises ainsi que de lire et/ou de modifier tout trafic non chiffré. Cependant, cela signifie implicitement qu'un acteur malveillant compromettant le serveur pourrait également le faire.
Les proxys inverses diffèrent des proxys directs , qui sont utilisés lorsque le client est limité à un réseau interne privé et demande à un proxy direct de récupérer des ressources à partir de l'Internet public.
Utilisations
Les grands sites Web et les réseaux de diffusion de contenu utilisent des proxys inverses, ainsi que d'autres techniques, pour équilibrer la charge entre les serveurs internes. Les proxys inverses peuvent conserver un cache de contenu statique, ce qui réduit encore davantage la charge sur ces serveurs internes et le réseau interne. Il est également courant que les proxys inverses ajoutent des fonctionnalités telles que la compression ou le cryptage TLS au canal de communication entre le client et le proxy inverse.
Les proxys inverses peuvent inspecter les en-têtes HTTP , ce qui leur permet, par exemple, de présenter une adresse IP unique à Internet tout en relayant les requêtes vers différents serveurs internes en fonction de l'URL de la requête HTTP.
Les proxys inverses peuvent masquer l'existence et les caractéristiques des serveurs d'origine . Cela peut rendre plus difficile la détermination de l'emplacement réel du serveur/site Web d'origine et, par exemple, plus difficile d'engager des actions en justice telles que des retraits ou le blocage de l'accès au site Web, car l'adresse IP du site Web peut ne pas être immédiatement apparente. De plus, le proxy inverse peut être situé dans une juridiction différente avec des exigences légales différentes, ce qui complique encore davantage le processus de retrait.
Les fonctionnalités de pare-feu d'application peuvent protéger contre les attaques Web courantes, telles que les attaques par déni de service (DoS) ou les attaques par déni de service distribué (DDoS). Sans proxy inverse, il peut être difficile de supprimer les logiciels malveillants ou de lancer des opérations de démantèlement (tout en traitant simultanément l'attaque) sur son propre site, par exemple.
Dans le cas de sites Web sécurisés , un serveur Web peut ne pas effectuer lui-même le chiffrement TLS , mais plutôt décharger la tâche sur un proxy inverse qui peut être équipé d'un matériel d'accélération TLS . (Voir Proxy de terminaison TLS .)
Un proxy inverse peut répartir la charge des requêtes entrantes sur plusieurs serveurs, chaque serveur prenant en charge son propre domaine d'application. Dans le cas de serveurs Web utilisant un proxy inverse , le proxy inverse peut avoir à réécrire l' URL de chaque requête entrante afin de correspondre à l'emplacement interne pertinent de la ressource demandée.
Un proxy inverse peut réduire la charge sur ses serveurs d'origine en mettant en cache le contenu statique et le contenu dynamique , ce que l'on appelle l'accélération Web . Les caches proxy de ce type peuvent souvent satisfaire un nombre considérable de requêtes de sites Web, réduisant ainsi considérablement la charge sur le ou les serveurs d'origine.
Un proxy inverse peut optimiser le contenu en le compressant afin d'accélérer les temps de chargement.
Dans une technique appelée « alimentation à la cuillère », une page générée dynamiquement peut être produite en une seule fois et servie au proxy inverse, qui peut ensuite la renvoyer au client petit à petit. Le programme qui génère la page n'a pas besoin de rester ouvert, ce qui libère les ressources du serveur pendant le temps éventuellement prolongé dont le client a besoin pour terminer le transfert.
Les proxys inverses peuvent fonctionner partout où plusieurs serveurs Web doivent être accessibles via une seule adresse IP publique. Les serveurs Web écoutent sur différents ports de la même machine, avec la même adresse IP locale ou, éventuellement, sur différentes machines avec des adresses IP locales différentes. Le proxy inverse analyse chaque requête entrante et la transmet au bon serveur au sein du réseau local .
Les proxys inverses peuvent effectuer des tests A/B et des tests multivariés sans nécessiter de code d'application pour gérer la logique de la version fournie à un client.
Un proxy inverse peut ajouter une authentification d'accès à un serveur Web qui ne dispose d'aucune authentification.
Risques
Lorsque le trafic de transit est chiffré et que le proxy inverse doit filtrer/mettre en cache/compresser ou modifier ou améliorer le trafic, le proxy doit d'abord déchiffrer et rechiffrer les communications. Cela nécessite que le proxy possède le certificat TLS et sa clé privée correspondante, ce qui augmente le nombre de systèmes pouvant avoir accès aux données non chiffrées et en fait une cible plus précieuse pour les attaquants.
La grande majorité des violations de données externes se produisent soit lorsque des pirates informatiques parviennent à exploiter un proxy inverse existant qui a été intentionnellement déployé par une organisation, soit lorsqu'ils parviennent à convertir un serveur Internet existant en serveur proxy inverse. Les systèmes compromis ou convertis permettent aux attaquants externes de spécifier où ils veulent que leurs attaques soient dirigées par proxy, ce qui leur permet d'accéder aux réseaux et systèmes internes.
Les applications développées pour une utilisation interne dans une entreprise ne sont généralement pas conformes aux normes publiques et ne sont pas nécessairement conçues pour résister à toutes les tentatives de piratage. Lorsqu'une organisation autorise l'accès externe à ces applications internes via un proxy inverse, elle peut involontairement augmenter sa propre surface d'attaque et inviter les pirates informatiques.
Si un proxy inverse n'est pas configuré pour filtrer les attaques ou s'il ne reçoit pas de mises à jour quotidiennes pour maintenir sa base de données de signatures d'attaque à jour, une vulnérabilité zero-day peut passer sans être filtrée, permettant aux attaquants de prendre le contrôle du ou des systèmes qui se trouvent derrière le serveur proxy inverse.
L’utilisation du proxy inverse d’un tiers (par exemple, Cloudflare , Imperva ) place l’ensemble de la triade de confidentialité, d’intégrité et de disponibilité entre les mains du tiers qui exploite le proxy.
Si un proxy inverse gère de nombreux domaines différents , sa panne (par exemple, en raison d'une mauvaise configuration ou d'une attaque DDoS) pourrait entraîner la panne de tous les domaines gérés.
Les proxys inverses peuvent également devenir un point de défaillance unique s’il n’existe aucun autre moyen d’accéder au serveur principal.