[HTTPoxy] Combler la faille.

Partagez ici vos Trucs et vos Astuces.
Répondre
Avatar de l’utilisateur
PengouinPdt
Contributeur
Contributeur
Messages : 1343
Inscription : 23 avr. 2016, 23:37
Localisation : 47/FR
Diaspora* : https://framasphere.org/u/hucste
Contact :
Status : Hors-ligne

Pour les copains admins sys, patchez rapidement vos serveurs, relativement à la faille HTTPoxy : Pour plus d'infos : https://httpoxy.org
C'est une entête HTTP nommée Proxy qui permet, mal configurée, une attaque de contrôle à distance ...

Cela affecte des langages, tels PHP - dont HHVM -, Python, Go ... les clients Web, les serveurs configurés en mode CGI, etc ...
Quoiqu'il en soit, c'est très facile à patcher, donc faites-le !

Intéressant de se rendre compte qu'utiliser correctement HTTPS permet de s'en prémunir !

Comment s'en prémunir ?

La méthode la plus efficace est de bloquer/fixer cette requête d'entête HTTP PROXY. Il n'y a aucun risque à le faire ... et c'est même recommandé pour plusieurs raisons :
- les clients et serveurs web qui gèrent correctement le standard HTTP ne la liront jamais et ne l'enverront encore moins !
- cette entête n'est en aucun cas une norme ou un standard, et encore moins de la part de l'IETF, ou l'IANA.

C'est la méthode la plus facile à mettre en place pour la filtrer et la plus sûre : en entrée du serveur, soit par le biais de règle parefeu, soit directement par le serveur web lui-même.
Une fois la modification serveur faite, pensez à redémarrer le service correspondant !
----
Apache avec le module headers (mod_headers) :

Rajouter l'écriture suivante : RequestHeader unset Proxy early

Apache avec le module security (mod_security) :

C'est l'écriture suivante qui conviendra : SecRule &REQUEST_HEADERS:Proxy "@gt 0" "id:1000005,log,deny,msg:'httpoxy denied'"

Pour en savoir plus à-propos d'Apache (en anglais) : https://www.apache.org/security/asf-htt ... sponse.txt
----
HAProxy

L'écriture http-request del-header Proxy aura le même effet
----
lighttpd
<= 1.4.40

C'est un poil plus complexe, dans ce cas :
* Créer un fichier 'deny-proxy.lua' où vous le voulez, et ajoutez-y ce contenu : if (lighty.request["Proxy"] == nil) then return 0 else return 403 end
* Donnez lui les droits juste en lecture et rien que pour l'utilisateur lié au service.
* Modifiez le fichier 'lighttpd.conf' pour qu'il charge le code lua :
server.modules += ( "mod_magnet" )
magnet.attract-raw-url-to = ( "/path/to/deny-proxy.lua" )

----
lighttpd 2

Cette fois-ci, cela est à nouveau simple ; il suffit d'ajouter au fichier 'lighttpd.conf', le code suivant : req_header.remove "Proxy";
----
NGINX en mode FastCGI (PHP-FPM) :

Rajouter la commande suivante dans vos fichiers de config nginx : fastcgi_param HTTP_PROXY "";
Vous pouvez la rajouter dans n'importe quel fichier de config, au niveau de la déclaration du contexte 'http', du contexte 'server', 'location' ... mais la place de choix sont les deux fichiers de config nginx : /etc/nginx/fastcgi.conf et /etc/nginx/fastcgi_params.

NGINX en tant que Proxy, ou LoadBalancing :

Rajouter la commande suivante dans votre fichier de config nginx : proxy_set_header Proxy "";

Pour plus d'informations, pour nginx (en anglais) : https://www.nginx.com/blog/mitigating-t ... ith-nginx/
----
Varnish

Il faut ajouter cette écriture dans la section 'vcl_recv' : unset req.http.proxy;
----

Plus d'informations : https://httpoxy.org/#affected-summary
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

Il y a des mises à jour disponibles en stable pour les paquets :

Code : Tout sélectionner

apache2 apache2-bin apache2-data apache2-mpm-prefork apache2-utils 
  libmysqlclient18 mysql-common
C'est lié ? Encore besoin de la correction après MAJ ?
Merci pour l'info !

Version d'apache après MAJ :

Code : Tout sélectionner

# aptitude show apache2
Version : 2.4.10-10+deb8u5
Avatar de l’utilisateur
PengouinPdt
Contributeur
Contributeur
Messages : 1343
Inscription : 23 avr. 2016, 23:37
Localisation : 47/FR
Diaspora* : https://framasphere.org/u/hucste
Contact :
Status : Hors-ligne

Il faudrait avoir accès au changelog ;)
Quoiqu'il en soit la correction ne fait pas de mal, si tu l'appliques toi-même ...
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

J'ai faillis passer à côté...
Merci pour l'info! :good:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre