Introduction
Le reverse proxying HTTP est un domaine complexe et sujet à des vulnérabilités. Récemment, une faille de sécurité a été découverte dans le proxy média de Discord, permettant l'espionnage de pièces jointes privées. Cette vulnérabilité n'est pas isolée, car de telles failles continuent d'apparaître.
Contexte Technique
Le problème réside dans l'utilisation généralisée du protocole HTTP entre les proxies inverses et les backends, bien qu'il soit inadapté pour cette tâche. Cependant, il existe un protocole de 30 ans, appelé FastCGI, qui évite les pièges d'HTTP. FastCGI est un protocole de communication entre le proxy et le backend qui peut être utilisé de manière similaire à HTTP, avec des requêtes envoyées via une socket TCP ou UNIX à un démon à longue durée de vie.
Les serveurs Web populaires tels qu'Apache, Caddy, nginx et HAProxy prennent en charge les backends FastCGI, et la configuration est simple. Par exemple, avec nginx, vous pouvez utiliser fastcgi_pass au lieu de proxy_pass pour configurer le backend FastCGI.
Analyse et Implications
HTTP/1.1 présente des problèmes de sécurité importants, notamment les attaques de désynchronisation (desync) et les problèmes de confiance des en-têtes. Les attaques de désynchronisation surviennent lorsque le proxy et le backend ont des interprétations différentes des limites entre les messages HTTP, ce qui peut entraîner des problèmes de sécurité graves.
FastCGI évite ces problèmes en fournissant une séparation de domaine entre les en-têtes du client et les informations ajoutées par le proxy. Les en-têtes HTTP sont préfixés par « HTTP_ », ce qui rend impossible pour les clients d'envoyer des en-têtes qui seraient interprétées comme des données de confiance.
Perspective
Si FastCGI est un protocole meilleur, pourquoi n'est-il pas plus populaire ? Peut-être est-ce dû au nom, qui capitalise sur la popularité de CGI en 1996, mais qui peut sembler désuet en 2026. Il existe également un manque de sensibilisation aux problèmes de sécurité liés au reverse proxying HTTP. Il est essentiel de surveiller les limites et les prochaines étapes de FastCGI pour améliorer la sécurité des proxies inverses.