Cum de a proteja serverul împotriva vulnerabilităților httpoxy

Având servere în centre de date sigure din Europa. Deschideți nor VPS server / VDS pe un SSD rapid în 1 minut!

Cel mai bun Web Hosting:
- va proteja datele împotriva accesului neautorizat într-un centru european de date securizat
- va plăti cel puțin în Bitcoin.
- Acesta va pune distribuție

- protecție împotriva atacurilor DDoS-
- gratuit de backup
- Uptime 99,9999%
- DPC - TIER III
- ISP - NIVELULUI I

Suport în 24/7/365 rusă lucra cu persoane juridice și persoane fizice. Ai nevoie de acum 24 de bază și 72 GB RAM. Vă rog!

Tarifele noastre competitive dovedesc că cele mai ieftine de găzduire pe care nu a știut!

O chestiune de minute, selectați configurația, să plătească și CMS pe un VPS este gata.
Bani Înapoi - 30 de zile!

Carduri bancare, moneda electronică prin intermediul unor terminale QIWI, Webmoney, PayPal, Novoplat și altele.

Pune o intrebare 24/7/365 Suport

Găsiți răspunsurile în baza noastră de date, și să respecte recomandările din

Oferta de la 8host.com

Cum de a proteja serverul împotriva vulnerabilităților httpoxy

Cauza vulnerabilitate este conflictul dintre numele variabilelor HTTP_PROXY medii cu care serverul proxy determinat să backend, și un client HTTP Proxy-antet. caietul de sarcini CGI trimite toate HTTP_ antete client prefixat, în legătură cu care există un conflict. Dacă aplicația sau o bibliotecă CGI citiți această variabilă, fără tratament suplimentar, acestea pot utiliza valoarea furnizată de către client atunci când se încearcă să se conecteze la un server proxy.

Această vulnerabilitate este găsit într-o varietate de implementări CGI cum ar fi, deoarece este proiectat pentru un număr de identificare:

servere vulnerabile și aplicații

HTTPoxy este un CGI comun vulnerabilitate și este prezent în aproape orice aplicație CGI.

Vulnerabile sunt servere și aplicații care:

  • Utilizați mediu HTTP_PROXY variabilă pentru configurarea serverului de proxy. Aceasta este metoda standard de setări proxy, care este prezentă, fie în codul aplicației sau biblioteci.
  • Trimite cererile de backend prin HTTP. Deoarece cauza conflictului este numele HTTP_ vulnerabilitatea prefix afectează numai aplicațiile care utilizează protocolul HTTP. Aplicațiile care utilizează HTTPS sau alte protocoale nu conțin acest bug.
  • Ei lucrează în CGI sau mediu CGI cum ar fi. Vulnerabilitatea este prezentă în toate aplicațiile care traduce antete client în variabile de mediu cu prefix HTTP_. Vulnerabila la orice implementare compatibil CGI sau în legătură cu protocolul CGI (de exemplu, FastCGI).

Vulnerabilitate în limbaje de programare

inspecția obligatorie de vulnerabilitatea sunt supuse unor aplicații scrise în PHP, CGI, deoarece este mult mai frecvent utilizate în PHP ecosistem decât în ​​alte limbaje de programare. În plus, problema aici exacerba biblioteci populare, care sunt utilizate pe scară largă getenv metodă. În special, la momentul vulnerabil guzzle (versiunea 4.0.0rc2 și de mai sus), Artax și clasa program de compozitor numit StreamContextBuilder.

De asemenea, există un bug în Python și Go. De obicei, atunci când implementarea aplicațiilor Python și Go nu utilizează HTTP, pentru că cele mai multe aplicații scrise în aceste limbi nu este afectată de vulnerabilitatea. Cu toate acestea, în cazul în care aplicația este implementată cu ajutorul CGI, toate bibliotecile care utilizează HTTP_PROXY variabilă implicit, va fi vulnerabilă.

Cum pot rezolva un bug HTTPoxy

Din fericire, HTTPoxy greșeală a eliminat pur și simplu. Acest lucru se face pe serverul web, aplicația sau o bibliotecă.

  • Aplicație sau o bibliotecă poate ignora HTTP_PROXY variabilă, în timp ce în mediul CGI.
  • Aplicarea sau o bibliotecă pot utiliza alte variabile de mediu pentru a configura serverul proxy.
  • servere Web sau servere proxy poate reseta Proxy antet client.

Dacă utilizați biblioteca vulnerabilă este necesară pentru a reduce amenințarea de pe partea de server, în timp ce biblioteca nu oferă patch-uri. Dacă se dezvoltă o bibliotecă sau o aplicație și proiectul dvs. utilizează o variabilă http_proxy, ia în considerare folosind o variabilă alternativă care nu intră în conflict cu activitatea în mediul CGI. Ruby și alte proiecte pentru a utiliza acest CGI_HTTP_PROXY.

antet proxy nu este standard HTTP Heder, pentru că în cele mai multe cazuri, aceasta poate fi pur și simplu ignorate. Pentru a face acest lucru, trebuie să configurați un server Web sau egalizatorul de încărcare pentru a șterge antetul. Alinarea aceste anteturi pot orice server de web simplu, încărcare sau un server echilibrist proxy.

Eliminarea Proxy HTTP-antet în Apache

server de web Apache resetează antete folosind modulul mod_headers.

servere de operare Ubuntu și Debian

Pentru a activa mod_headers, introduceți:

sudo a2enmod antete

Deschideți fișierul de configurare globală:

sudo nano /etc/apache2/apache2.conf

La sfârșitul fișierului, adăugați linia:


RequestHeader unset Proxy devreme

Salvați și închideți fișierul.

Verificați eroarea de sintaxă:

sudo apache2ctl configtest

Dacă nu există erori, reporniți serviciul:

sudo serviciu apache2 repornire

Servere CentOS și Fedora

De obicei, modulul mod_headers este activată în mod implicit. Pentru a configura proxy ignorând antetul, deschideți fișierul de configurare la nivel mondial:

sudo nano /etc/httpd/conf/httpd.conf

La final, se introduce:


RequestHeader unset Proxy devreme

Verificați eroarea de sintaxă:

sudo apachectl configtest

Dacă nu există erori, reporniți serviciul:

sudo serviciu httpd repornire

Eliminarea Proxy HTTP-antet în Nginx

servere de operare Ubuntu și Debian

Pe Ubuntu si Debian parametrii serverele FastCGI sunt de obicei stocate în fișiere fastcgi_params sau fastcgi.conf și extrase din ele atunci când configurați un FastCGI server proxy. Dezactivați HTTP_PROXY antet poate fi în oricare dintre aceste fișiere.

echo 'fastcgi_param HTTP_PROXY "";' | sudo tee -a /etc/nginx/fastcgi.conf
echo 'fastcgi_param HTTP_PROXY "";' | sudo tee -a / etc / Nginx / fastcgi_params

Dacă setările proxy, nu se referă la oricare dintre aceste fișiere, adăugați următoarea linie la locația (fișierul /etc/nginx/sites-enabled/your_site.conf) proxy.

Dacă utilizați Nginx ca un server proxy HTTP normală, trebuie să eliminați antetul Proxy. antete-HTTP Proxy instalat fișier / etc / Nginx / proxy_params. Pentru a reseta antetul proxy, trebuie să adăugați o regulă:

'Proxy_set_header Proxy "";' ecou | sudo tee -a / etc / Nginx / proxy_params

Dacă nu se referă la acest fișier în setările site-ului (în unitatea de server), adăugați următoarea linie la unitatea de locație proxy:

Verificați eroarea de sintaxă:

Dacă nu există erori, reporniți serviciul:

sudo serviciu Nginx repornire

Servere CentOS și Fedora

Pe serverele CentOS și Fedora pentru a configura proxy FastCGI server de web Nginx utilizează fastcgi_params același fișier s și fastcgi.conf. HTTP_PROXY dezactivați antetul în ambele fișiere:

echo 'fastcgi_param HTTP_PROXY "";' | sudo tee -a /etc/nginx/fastcgi.conf
echo 'fastcgi_param HTTP_PROXY "";' | sudo tee -a / etc / Nginx / fastcgi_params

Dacă blocați un server site-ul nu se referă la unul dintre aceste fișiere, adăugați următoarea linie (fișier /etc/nginx/sites-enabled/your_site.conf) într-un server proxy locație.

Dacă utilizați Nginx ca un server proxy HTTP normală, trebuie să eliminați antetul Proxy. Pentru a reseta antetul proxy, trebuie să adăugați următoarea regulă în fiecare locație, în cazul în care efectuează proxy_pass. Dacă nu știi unde este utilizat proxy_pass, căutați directorul de configurare:

Verificați pentru erori în sintaxa:

Reporniti serverul în cazul în care nu există erori:

sudo serviciu Nginx repornire

Eliminarea Proxy HTTP-antet în HAProxy

Dacă utilizați HAProxy pentru a redirecționa traficul către serverul de aplicații, puteți reseta antetul Proxy înainte de transmisie de trafic.

Deschideți fișierul /etc/haproxy/haproxy.cfg:

sudo nano /etc/haproxy/haproxy.cfg

Setați directiva http-cerere secțiunea front-end, backend sau asculta.

www front-end
http-del-cerere antet Proxy
.
backend web-backend
http-del-cerere antet Proxy
.
asculta APPNAME 0.0.0.0:80
http-del-cerere antet Proxy
.

Adăugați directive în fiecare secțiune nu este necesară, este suficient pentru a adăuga unul. Dar, dacă adăugați din greșeală o directivă în fiecare secțiune, nu strică să instituie.

Salvați și închideți fișierul.

Verificați fișierul pentru erori:

sudo haproxy -c -f /etc/haproxy/haproxy.cfg

sudo serviciu haproxy repornire

concluzie

Fiind prezentă în software-ul pentru o lungă perioadă de timp și a obține cea mai largă distribuție, HTTPoxy vulnerabilitate pune în pericol un număr foarte mare de aplicații și biblioteci. Din fericire, fix nu este prea dificil.