Server Fingerprinting: Amprentarea serverului și a serviciilor web
Fingerprinting-ul este procesul de determinare a tipului și versiunilor de software folosite de serviciile serverului care sunt expuse public. Atacatorii pot folosi aceste informații pentru a identifica vulnerabilități cunoscute și a le exploata pentru a compromite serverul web și a obține acces neautorizat la date sensibile.
Vulnerabilitățile de tip fingerprint ale serviciilor de pe un server sunt periculoase deoarece permit atacatorilor să obțină cunoștințe despre software-ul care rulează pe serverul respectiv, ceea ce poate ajuta la lansarea de atacuri mai targetate. De exemplu, dacă un atacator știe că un server web rulează o versiune veche, poate utiliza un exploit care este conceput special pentru a exploata acea vulnerabilitate.
În plus, odată ce un atacator obține acces la un server, poate utiliza acest server pentru a lansa atacuri asupra altor sisteme din rețea sau il poate utiliza ca punct pivot pentru obținerea accesului la alte sisteme. Acest lucru poate duce la compromiterea securității unei organizații.
Prin urmare, este important să se ia măsuri pentru a preveni vulnerabilitățile de fingerprinting ale serverelor, prin actualizarea regulată a software-ului, eliminarea informațiilor inutile din răspunsurile serviciilor si a serverului web și implementarea măsurilor de securitate, cum ar fi firewall-urile și sistemele de detectare a intruziunilor.
Amprentarea Serverului Web
Amprentarea serverului web este procedura prin care se află tipul și versiunea de server web pe care un sistem informatic îl folosește. Amprentarea poate fi făcută cu o mulțime de instrumente automate sau manuale.
Remediere:
Apache2
- Adăugați în fișierul de configurare al serverului web Apache2 următoarele două linii:
ServerSignature Off
ServerTokens Full - Restartați serverul web
Nginx
- Adăugați în fișierul de configurare al serverului web Nginx:
http{
...
server_tokens off;
...
}
- Restartați serverul web
IIS
- Adăugați în fișierul de configurare al serverului web (web.config), imediat după
<system.web>
:
<httpRuntime enableVersionHeader="false" />
- Restartați serverul web
Referințe:
- https://httpd.apache.org/docs/2.4/mod/core.html#serversignature
- https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/01-Information_Gathering/02-Fingerprint_Web_Server
- Adăugați în fișierul de configurare al serverului web Apache2 următoarea linie*:
Header always unset "X-Powered-By"
- Restartați serverul web
- Editați fișierul de configurare PHP, php.ini și înlocuiți linia
expose_php = on
cu:
expose_php = off
(Dacă linia nu există, trebuie adăugată) - Restartați serverul web
Header-ul "X-Powered-by"
Acest header de răspuns descrie tehnologiile utilizate de către serverul web. Acest header expune serverul către atacatori, aceaștia fiind capabili ca pe baza informațiilor furnizate de acest header să găsească vulnerabilități mult mai ușor.
Remediere:
Varianta 1Header always unset "X-Powered-By"
Varianta 2 (Doar pentru PHP)

Iulian Băncău · Security Engineer
27-04-2023 · Citire în 3 min.