Krankenwagen in Blaulichtfahrt

Hintergrund: Durchführung der Webserveranalyse

Dieser Beitrag ist die Fortsetzung unseres vorherigen Hintergrundartikels, in dem wir die Methodik und Vorbereitung hinter unserer Sicherheitsanalyse deutscher Krankenhaus-Webserver erläutert haben. Im Folgenden geht es nun um die eigentliche Durchführung der Scans sowie die Auswertung der Ergebnisse.

Scanning

Nachdem wir im ersten Teil bereits zeigten, wie wir jedem deutschen Krankenhaus dessen IP-Adressbereiche zugeordnet haben, können diese nun automatisiert auf erreichbare Webserver geprüft werden. Für diese Aufgabe gibt es eine Vielzahl von sogenannten Netzwerkscannern, die durch das Versenden verschiedener Anfragen Dienste, die auf einem Server laufen, erkennen und klassifizieren können.

Einer der bekanntesten davon ist Nmap, eine umfangreiche Open-Source-Anwendung mit der sich selbst große Netzwerke scannen lassen. Das ist wichtig, da, wie bereits im ursprünglichen Beitrag erwähnt, insgesamt rund 24.000 IP-Adressen gescannt werden mussten. Jede davon besitzt in der Theorie wiederum 65.535 Ports, hinter denen jeweils ein Webserver laufen könnte. Zum Glück beschränken sich Anwendungen in der Praxis jedoch größtenteils auf rund 1.000 teilweise standardisierte, „well-known“ Ports. Für Webserver sind das in der Regel Ports 80 & 443, sodass pro IP-Adresse letztendlich nur diese Ports berücksichtigt werden mussten.

Um den Scanvorgang zu beschleunigen und gleichzeitig aussagekräftige Informationen über die verwendete Software zu erhalten, wurde Nmap mit den folgenden Einstellungen ausgeführt:

  • -sS: Aktiviert den „TCP SYN-Scan“, bei dem Nmap nur SYN-Pakete versendet, ohne die Verbindung vollständig zu etablieren. Diese Variante ist zugleich schnell und vergleichsweise unauffällig.
  • -O: Versucht per Fingerprinting das Betriebssystem des Zielhosts zu erkennen.
  • -A: Aktiviert zusätzliche Erkennungsmechanismen und Skripte, unter anderem für die Identifikation der Softwareversion.
  • -T4: Verringert die Wartezeiten zwischen den Anfragen, um die Scandauer zu reduzieren.

Wie zu erwarten war, lief unter den meisten Adressen kein Webserver oder eine Firewall verhinderte die Kommunikation mit diesem. Für die Adressen mit Antwort sammelte Nmap jedoch eine Vielzahl relevanter Informationen, anhand derer sich die Vulnerabilität des Servers ableiten lässt.

Auswertung

Nmap nutzt dabei eine Reihe von Indikatoren, um zu versuchen, anhand der Serverantwort die eingesetzte Software zu identifizieren. Manche davon sind sehr subtil, etwa die Reihenfolge oder Schreibweise von HTTP-Headern. Andere hingegen sind sehr eindeutig, wie diese beiden Header:

  • Server: Enthält den Namen des Produkts bzw. Webservers (z. B. Apache/2.4.51).
  • X-Powered-By: Ein nicht standardisierter Header, der ähnlich wie Server den Softwarenamen enthält.

Abhängig von der Serverkonfiguration können diese Header vollständig unterdrückt, nur teilweise ausgegeben oder sogar verfälscht werden. Serveradministratoren sollten deshalb die Konfiguration ihrer Server prüfen und gegebenenfalls anpassen. Für die Bewertung der Verwundbarkeit sind natürlich vor allem jene Server interessant, deren genaue Version in den Headern erkennbar ist.

Hierbei ist das Alter der Version allein nicht immer ein verlässlicher Indikator, denn populäre Produkte bleiben oft über längere Zeit vergleichsweise sicher. Sinnvoller ist es stattdessen, sich an der Anzahl bekannter Schwachstellen (CVEs) für eine spezifische Version zu orientieren. Diese lassen sich zum Beispiel in der öffentlichen Schwachstellendatenbank NVD (National Vulnerability Database) unter Angabe der CPE des Produkts finden. Für den Apache HTTP Server in Version 2.4.51 liefert etwa die CPE
„cpe:2.3:a:apache:http_server:2.4.51:::::::*“
eine Liste von 51 bekannten Schwachstellen.

Anhand dieser Schwachstellen haben wir daraufhin drei Kategorien konstruiert, um die allgemeine Sicherheit eines Krankenhauses zu bewerten und somit Vergleichbarkeit herzustellen:

  • Gepflegt: Für alle ermittelten Webserver des Krankenhauses sind keine bekannten Schwachstellen in der NVD gelistet.
  • Einige bekannte Schwachstellen: Das Krankenhaus betreibt mindesten ein Webserver mit 1 bis 9 bekannten Schwachstellen.
  • Viele bekannte Schwachstellen: Das Krankenhaus betreibt mindesten ein Webserver mit mehr als 9 bekannten Schwachstellen.

Die Einstufungen der Krankenhäuser in die drei Kategorien wurden im Anschluss visualisiert und georeferenziert, was letztlich zu der Karte im Originalbeitrag führte.