Ce este detectarea stivei tehnologice?

Stiva tehnologică (tech stack) a unui site web include: serverul web (Apache, nginx, IIS), limbajul de programare, framework-ul, CMS-ul (WordPress, Drupal, Joomla), bibliotecile JavaScript, CDN-ul etc.

Multe dintre aceste tehnologii se auto-dezvăluie prin headere HTTP (Server: Apache/2.4.51), cod sursă HTML (meta taguri WordPress, comentarii de framework), sau URL-uri caracteristice (/wp-login.php, /administrator/).

Atacatorii folosesc tool-uri automate (Wappalyzer, WhatRuns, BuiltWith, Shodan) pentru a identifica rapid stiva tehnologică a sute de mii de site-uri și a le corela cu vulnerabilități cunoscute din baze de date publice (CVE, NVD).

De ce contează?

  • Versiuni vechi = vulnerabilități cunoscute — un WordPress 5.8 sau un PHP 7.2 au zeci de CVE-uri publice cu exploit-uri disponibile gratuit. Dacă versiunea e vizibilă, atacatorul știe exact ce să folosească.
  • Pagini de admin expuse/wp-admin, /phpmyadmin, /administrator expuse publicului sunt atacate cu brute-force în mod continuu.
  • Plugin-uri și teme vulnerabile — în ecosistemul WordPress, majoritatea breșelor vin din plugin-uri sau teme neactualizate.
  • Serverul web și versiunea sa — un banner ca Server: Apache/2.2.31 anunță o versiune cu vulnerabilități critice nepatched.

Cum verifici?

SecureCheck analizează răspunsurile HTTP, codul sursă și amprentele digitale ale site-ului pentru a detecta:

  • CMS-ul utilizat și versiunea (dacă e expusă)
  • Serverul web și versiunea din headerul Server:
  • Framework-uri JavaScript detectabile
  • Pagini de administrare accesibile public
  • Corelarea versiunilor detectate cu CVE-uri cunoscute

Tool-uri de verificare manuală:

  • Wappalyzer (extensie browser)
  • BuiltWith
  • curl -I https://domeniu.ro pentru a vedea headerul Server

Cum remediezi?

Ascunde versiunile de software:

# nginx — elimină versiunea din headerul Server
server_tokens off;

# Apache — în httpd.conf sau .htaccess
ServerTokens Prod
ServerSignature Off

# PHP — în php.ini
expose_php = Off

Actualizează tot: WordPress core, plugin-uri, teme, PHP, serverul web — toate trebuie menținute la versiunea curentă. Activează actualizările automate pentru patch-uri de securitate.

Protejează paginile de admin:

  • Restricționează accesul la /wp-admin sau /administrator prin IP whitelist sau autentificare HTTP Basic suplimentară
  • Schimbă URL-ul de admin implicit (pentru WordPress: plugin-uri ca WPS Hide Login)
  • Activează autentificarea în doi factori (2FA) pentru conturile de administrator

Web Application Firewall (WAF): Servicii ca Cloudflare WAF sau ModSecurity pentru Apache/nginx pot bloca automat exploit-urile cunoscute, chiar dacă nu ai apucat să actualizezi.

Server header expune versiunea software

Serverul tău trimite un header Server: care dezvăluie software-ul și versiunea exactă (ex: Apache/2.4.51 (Ubuntu)). Atacatorii corelează automat versiunile cu CVE-urile cunoscute și lansează exploit-uri țintite.

Dezvăluirea versiunii este numită „information disclosure" și facilitează atacurile automate — baza de atac scade de la milioane de ținte la câteva cu versiunea vulnerabilă.

Cum remediezi:

  1. Nginx: adaugă în nginx.conf (bloc http): server_tokens off;
  2. Apache: în httpd.conf sau apache2.conf: ServerTokens Prod și ServerSignature Off
  3. IIS: folosește URL Rewrite Module → Outbound Rules pentru a elimina headerul Server

Verificare: curl -I https://domeniu.ro | grep -i server — trebuie să returneze doar Server: nginx (fără versiune) sau să lipsească complet