Expunere informații server HTTP

Una din caracteristicile vizibile implicit pe HTTP este versiunea, sau măcar tipul de server folosit pentru a servi fișierele sau pentru a rula scripturile aplicației. Implicit orice distribuție de linux își afișează acolo numele. În felul acesta în funcție de versiunea serverul web se poate determina și ce versiune a distribuției linux avem instalată. În majoritatea cazurilor când versiunea respectivă de linux nu mai are suport tehnic din partea celui ce o menține, iar administratorul acelui server nu este atât de priceput cu actualizarea software-ului așa că această expunere a versiunilor de software poate însemna un risc de securitate. Se întâmplă de multe ori că deși distribuția este menținută, este în perioada în care se oferă suport pentru ea, administratorul să omită să instaleze actualizările. În concluzie, vă recomand să faceți manevra de mai jos.

Mai întâi un exemplu:

Date: Thu, 01 Oct 2009 05:37:25 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Wed, 22 Jul 2009 18:26:49 GMT
Etag: "9e012e-12a6-83ab8c40"
Accept-Ranges: bytes
Content-Length: 4774
Content-Type: text/html; charset=UTF-8

În cazul de față un posibil atacator afă că serverul web este un Apache 2.2.3 ce rulează pe distribuția CentOS. Ar putea verifica alte portițe de intrare în sistem știind anumite vulnerabilități specifice pentru CentOS 5.

Următorul exemplu este cel de pe serverul de găzduiește acest blog:

Date: Wed, 30 Sep 2009 21:24:46 GMT
Server: Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 PHP/5.2.6-1+lenny3 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g
X-Powered-By: PHP/5.2.6-1+lenny3
Vary: Cookie,Accept-Encoding
Expires: Wed, 11 Jan 1984 05:00:00 GMT
X-Pingback: http://emil.cheriches.ro/xmlrpc.php
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
WP-Super-Cache: WP-Cache
Content-Encoding: gzip
Content-Length: 17228
Keep-Alive: timeout=15, max=91
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

Vedem că este un Debian Lenny cu PHP 5.2.6 dar vedem și alte informații despe alte module instalate.

Dar cum facem să nu mai stăm cu versiunile de software la vedere? În apache, căutăm în fișierul de configurație ServerSignature și ServerTokens. În Debian 5.x aceste directive se află în /etc/apache2/conf.d/security și le modifcăm în felul următor:

ServerSignature Off
ServerTokens Prod

Repornim serviciul și observăm:

Date: Wed, 30 Sep 2009 21:24:02 GMT
Server: Apache
X-Powered-By: PHP/5.2.6-1+lenny3
Vary: Cookie,Accept-Encoding
Expires: Wed, 11 Jan 1984 05:00:00 GMT
X-Pingback: http://emil.cheriches.ro/xmlrpc.php
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
WP-Super-Cache: WP-Cache
Content-Encoding: gzip
Content-Length: 17228
Keep-Alive: timeout=15, max=85
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

Server: Apache, dar mai avem un header: X-Powered-By: PHP/5.2.6-1+lenny3. Pentru a scoate acest header edităm în php.ini (în Debian 5.x este /etc/php5/apache2/php.ini) și punem:

expose_php = Off

Repornim încă odată serviciul și vedem că a dispărut și acest header.

Date: Wed, 30 Sep 2009 21:26:09 GMT
Server: Apache
Vary: Cookie,Accept-Encoding
Expires: Wed, 11 Jan 1984 05:00:00 GMT
X-Pingback: http://emil.cheriches.ro/xmlrpc.php
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
WP-Super-Cache: WP-Cache
Content-Encoding: gzip
Content-Length: 17228
Keep-Alive: timeout=15, max=93
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

Pentru a modifica string-ul Apache, sau pentru a-l scoate de tot va trebui să modificați codul sursă al serverul web și să-l recompilați. Nu este una din operațiunile recomandate.
Headerele le-am văzut folosind suplimentul de Firefox Domain Details, în acest domeniu găsiți chiar mai multe suplimente utile.

12 comentarii la “Expunere informații server HTTP

  1. frumos articolul.. Ar mai trebui adaugate cateva chestii de teorie pentru incepatori zic eu..

    O distribuţie Linux este un sistem de operare construit din nucleul Linux şi o serie de pachete asortate, precum Sistemul de Ferestre X şi software din proiectul GNU.

    Sistemele de operare bazate pe Linux sunt disponibile în general sub formă de distribuţii (denumite mai rar şi arome). Unele dintre acestea sunt orientate spre utilizatorul casnic, altele către servere sau către utilizatorii cu calculatoare mai vechi.

    Pentru că nucleul şi pachetele software sunt în mare parte (dacă nu în întregime) software liber, distribuţiile Linux există într-o mare varietate de forme, de la desktopuri complete şi servere la sisteme de operare minimale ce rulează pe dispozitive embedded sau sunt capabile să pornească de pe o dischetă.

    În prezent există peste trei sute de distribuţii Linux care sunt dezvoltate activ. Distribuţiile pot intra în două categori:, cele susţinute de firme, precum Fedora (Red Hat), SUSE Linux (Novell), Ubuntu (Canonical Ltd.) şi Mandriva Linux şi distribuţii dezvoltate de comunităţi, precum Debian şi Gentoo.

  2. Bun,bun. Data viitoare sa tratezi, daca poti, si problema securitatii, intrucat in Romania foarte putini detinatori de site-uri isi pun probleme de securitate.Pe sistemul “nu mi s-o intampla chiar mie” sau “ce-o sa-mi faca” tot nu se face nimic in sensul asta.

  3. Deja m-am debusolat, chiar “este” prea multa informatie. Intr-un fel e bine ca am hosting partajat, asta insemnand ca cineva (nu vreau sa-i fac reclama) se ocupa de securitate, de updatarea softului. etc.
    Eu sunt adeptul ca omul sa faca ce stie el mai bine, cine stie sa programeze – sa programeze, cine stie sa optimizeze – sa optimizeze s.a.m.d.

  4. Poti vedea hedeare-le folosind comanda curl :

    $ curl -I yahoo.com
    HTTP/1.1 301 Moved Permanently
    Date: Mon, 16 Nov 2009 19:35:21 GMT
    Location: http://www.yahoo.com/
    Cache-Control: private
    Connection: close
    Content-Type: text/html; charset=utf-8

    :)

  5. eu zic ca decat sa ascunzi headerul mai bine sa faci update la server

    oricum din cate am vazut daca ai o versiune nepatch-uita poti sa fii compromis chiar cu header-ul off

  6. Recent am schimbat hosting-ul. Cat de important este un host pentru o pagina? Este de preferat un host mai “slab” pentru o pagina din RO decat un host apreciat ca mai “bun” din afara? Zi ceva despre astea.
    .-= Nelu a scris pe blog ultima dată Piratii din Caraibe =-.

  7. Slab e în general dacă pui un site mare pe un Pentium 3 și durează mai mult de 10 secunde doar generarea. În general ar trebui ca procesul de generare al u nui site pe un server să nu dureze mai mult de 2 secunde.
    Ce se întâmplă după e viteza de internet între server și client(cu cât distanța e mai mare cu atât poate fi mai lentă) și puterea de procesare a clientului(de asta ține durata de randare în browser).
    În concluzie, hosting slab e atunci când sunt mult prea multe site-uri(sau VPS-uri) pe un server sau serverul nu e tocmai un server.
    Faptul că e în .RO nu poate fin decât un lucru bun. În caz că nu știai România e pe locul 5 în lume ca infrastructură de internet.

  8. “serverul nu e tocmai un server” – cine iti poate spune asta, sau pe cine sa crezi, din multitudinea de oferte de hosting!
    Chestia asta, cu locul 5, chiar este interesanta si surprinzatoare; e ceva la care stam bine! Daca ai avut in vedere si calitatea serviciilor, cand ai spus asta!
    .-= Nelu a scris pe blog ultima dată Autobuzul Simfonic =-.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *

*

Poți folosi aceste etichete HTML și atribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">