Vorhaben besprechen

TOOLBOX · SECURITY-CHECK

WAS VERRÄTIHRE WEBSITE?

Webserver, CMS und Erweiterungen nennen oft ungefragt Namen und Version. Domain eingeben und sehen, was Ihre Startseite preisgibt und mit welcher Zeile Sie es abstellen.

Die Bot-Prüfung schützt die Toolbox vor automatisiertem Missbrauch.

Wir rufen die Seite einmal ab wie ein Browser und lesen Header und HTML. Pfade raten wir nicht. Ergebnisse speichern wir nicht dauerhaft.

WAS GEPRÜFT WIRD

Header und HTML.
Mehr nicht.

Wer eine Website angreifen will, schaut zuerst, welche Software dahinter läuft. Genau so gehen auch die Testleitfäden von OWASP vor: erst den Webserver erkennen (WSTG-INFO-02), dann das Framework (WSTG-INFO-08). Die Erkennung ist eine Heuristik; jeder Fund nennt die Stelle, an der er steht.

  • 01

    Server-Header

    Nennt er nur „nginx“ oder „Apache/2.4.41 (Ubuntu)“ samt Betriebssystem? Der Produktname allein ist unkritisch.

  • 02

    X-Powered-By

    Verrät Sprache oder Framework, oft mit Version, etwa PHP/8.1. Für Besucher hat der Header keinen Nutzen.

  • 03

    ASP.NET und weitere Header

    X-AspNet-Version, X-AspNetMvc-Version, X-Generator, X-Pingback und Proxy-Angaben mit Version.

  • 04

    meta generator

    CMS und Seitenbaukästen schreiben Name und Version in jede Seite, etwa WordPress, Elementor oder TYPO3.

  • 05

    Versionen in Adressen

    ?ver=6.4.2, bootstrap@5.3.0 oder jquery-3.5.1.min.js zeigen den Stand eingebundener Bibliotheken.

  • 06

    Kommentare und Plattform

    HTML-Kommentare von Erweiterungen mit Versionsnummer, dazu Pfade und Cookie-Namen, die die Plattform verraten.

SO STELLEN SIE ES AB

Eine Zeile
je Stelle.

Danach erneut prüfen. Wichtiger als jede dieser Zeilen bleibt ein geregeltes Patch-Management; mehr zur Absicherung von Servern steht im Lexikon unter Systemhärtung.

  • nginx und Apache

    server_tokens off entfernt bei nginx die Version aus dem Server-Header und den Fehlerseiten. ServerTokens Prod lässt bei Apache nur den Produktnamen stehen; ServerSignature Off nimmt die Fußzeile von Fehlerseiten weg.

    # nginx (http-Block)
    server_tokens off;
    
    # Apache (Hauptkonfiguration)
    ServerTokens Prod
    ServerSignature Off

    Quelle: nginx-Dokumentation

  • IIS und ASP.NET

    removeServerHeader gibt es ab IIS 10.0 unter Windows Server bzw. Windows 10, jeweils Version 1709. enableVersionHeader schaltet den Versions-Header von ASP.NET ab.

    <!-- web.config: Server-Header (IIS 10.0 ab Version 1709) -->
    <system.webServer>
      <security>
        <requestFiltering removeServerHeader="true" />
      </security>
      <httpProtocol>
        <customHeaders>
          <remove name="X-Powered-By" />
        </customHeaders>
      </httpProtocol>
    </system.webServer>
    <system.web>
      <httpRuntime enableVersionHeader="false" />
    </system.web>

    Quelle: Microsoft Learn

  • PHP, Express, Next.js

    expose_php steuert den Header X-Powered-By von PHP und lässt sich nur in der php.ini ändern. Express und Next.js senden X-Powered-By ebenfalls von sich aus.

    ; PHP (php.ini)
    expose_php = Off
    
    // Express
    app.disable('x-powered-by');
    
    // Next.js (next.config.js)
    module.exports = { poweredByHeader: false };

    Quelle: PHP-Handbuch

  • WordPress

    Der Filter the_generator steuert das meta-Element generator. Seitenbaukästen und SEO-Erweiterungen setzen oft eigene Einträge, die sich in deren Einstellungen abschalten lassen.

    // WordPress: meta generator entfernen
    add_filter('the_generator', '__return_empty_string');

    Quelle: WordPress Developer Resources

GRENZEN DES CHECKS

Sichtbar heißt
nicht verwundbar.

Der Check zeigt, was Ihre Website verrät. Ob eine Version eine bekannte Lücke hat, beantwortet er bewusst nicht.

  • Keine Zuordnung zu Schwachstellen (CVE): Distributionen spielen Korrekturen in ältere Versionen ein, die Nummer allein täuscht.
  • Nur die eingegebene Seite: keine geratenen Pfade, keine Unterseiten, keine eingebundenen Dateien.
  • Heuristik: Eine Zahl hinter ?ver= kann auch eine eigene Versionsnummer des Themes sein.
  • Ohne JavaScript: Was Skripte erst im Browser nachladen, sieht der Check nicht.

Den Patchstand Ihrer Systeme laufend im Blick zu behalten, ist Aufgabe des Schwachstellenmanagements; was hinter einer CVE-Nummer steht und warum veraltete PHP-Versionen ein Risiko sind (PHP End of Life), erklärt das Lexikon. Header wie HSTS oder die Content-Security-Policy bewertet der Security-Header-Check.

FRAGEN

Gut zu wissen.

Macht es meine Website sicherer, Versionen zu verbergen?

Nur wenig. Die Apache-Dokumentation sagt deutlich, dass das Abschalten der Versionsangabe einen Server nicht sicherer macht; OWASP spricht von Security through Obscurity, die nur die einfachsten automatisierten Suchen bremst (WSTG-INFO-08). Entscheidend ist, dass Webserver, CMS und Erweiterungen aktuell sind. Weil das Abschalten meist eine Zeile kostet und Scannern die Vorauswahl erschwert, empfehlen wir es trotzdem.

Warum sagt der Check nicht, ob meine Version eine Lücke hat?

Weil die Versionsnummer dafür nicht verlässlich ist. Distributionen wie Red Hat Enterprise Linux spielen Sicherheitskorrekturen in ältere Versionen ein (Backporting); Werkzeuge, die nur die Nummer vergleichen, melden dann Lücken, die längst geschlossen sind. Ob ein System verwundbar ist, zeigt erst ein Blick auf den tatsächlichen Patchstand, etwa im Rahmen eines Schwachstellenmanagements.

Woher kommt das ?ver= in meinen Adressen?

WordPress hängt an Skripte und Stylesheets, die ohne eigene Versionsangabe eingebunden werden, automatisch die installierte WordPress-Version an (Parameter $ver von wp_enqueue_script und wp_enqueue_style). Erweiterungen nutzen dafür oft ihre eigene Versionsnummer. Damit laden Browser nach einem Update die neue Datei; Nebenwirkung ist, dass der Stand im Quelltext steht.

Welche Adressen ruft der Check ab?

Nur die eingegebene Seite, meist die Startseite, einmal mit GET wie ein Browser, höchstens 1 MB. Er rät keine Pfade wie /wp-admin/ oder /readme.html und ruft keine eingebundenen Dateien ab; alles, was er zeigt, steht in der Antwort dieser einen Seite.

Speichert TOMORIS meine Eingabe oder das Ergebnis?

Nein, nicht dauerhaft. Unser Server ruft die Seite einmal ab; die geprüfte Website sieht dabei unseren Server, nicht Ihre IP-Adresse. Das Ergebnis bleibt fünf Minuten im Arbeitsspeicher, damit wiederholte Abrufe die Website nicht erneut belasten, und ist spätestens nach sechs Minuten gelöscht. Details stehen in der Datenschutzerklärung.

IHR NÄCHSTER SCHRITT

Ergebnis da.
Und jetzt?

Wir ordnen Befunde ein, priorisieren nach Risiko und setzen auf Wunsch um: einmalig mit EXPERTS oder laufend im Betrieb mit GRID.