Was ist Port-Scanning?
In Computernetzwerken ist ein „Port“ ein abstraktes Konzept, das dazu dient, den Netzwerkzugangspunkt eines bestimmten Prozesses oder Dienstes zu identifizieren, der auf einem Computer ausgeführt wird. Jeder Port hat eine eindeutige Nummer im Bereich von 0 bis 65535. Diese Nummer teilt dem Computer mit, an welche Anwendung die empfangenen Daten weitergeleitet werden sollen.
Man kann sich einen Computer wie ein großes Gebäude vorstellen, in dem Ports die einzelnen Zimmernummern an den Türen sind. Häufige „Türnummern“ sind zum Beispiel: Der HTTP-Webdienst verwendet in der Regel Port 80, HTTPS für sichere Webseiten Port 443, und der E-Mail-Dienst SMTP Port 25. Wenn ein Datenpaket den Computer erreicht, stellt das System es anhand der Portnummer präzise dem entsprechenden Dienst oder der entsprechenden Anwendung zu.
Was ist Port-Scanning?
Beim Port-Scanning werden bestimmte Datenpakete an verschiedene Ports eines Zielsystems gesendet. Anhand der zurückgegebenen Antworten wird anschließend beurteilt, welche Ports offen oder geschlossen sind. Das ist so, als würde jemand vor einem Gebäude nacheinander an jede Tür klopfen und anhand der Reaktion feststellen, welche Räume besetzt und welche leer sind.
Port-Scanning ist an sich eine neutrale Technik——Netzwerkadministratoren nutzen sie, um Sicherheitslücken in Systemen zu überprüfen, Penetrationstester, um die Schutzfähigkeit eines Systems zu bewerten, und Angreifer möglicherweise, um Einstiegspunkte für einen Angriff zu finden.
Wie können Websites Port-Scanning im Browser durchführen?
Vielleicht erscheint es seltsam: Wie kann eine gewöhnliche Webseite Ports auf deinem Computer scannen? Dahinter werden bestimmte Funktionsmechanismen des Browsers ausgenutzt.
Zeitbasierte Scanmethode
Die frühesten Techniken für Port-Scanning im Browser beruhten auf „Timing-Angriffen“. Wenn eine Webseite über XMLHttpRequest oder fetch eine Anfrage an einen bestimmten Port sendet:
Wenn der Port geschlossen ist, erhält der Browser sofort die Antwort „Verbindung abgelehnt“, und die Anfrage schlägt schnell fehl
Wenn der Port offen ist, wartet der Browser auf eine Antwort des Dienstes, was länger dauert
Durch das Messen der Antwortzeit einer Anfrage kann die Website ableiten, welche Ports offen sind. Diese Methode ist jedoch stark von Netzwerkschwankungen beeinflusst und daher nur begrenzt genau.
Iframe-basierte Scanmethode
Später entdeckten Forschende eine zuverlässigere Technik, die sich vor allem gegen den Chrome-Browser richtet. Wenn Chrome versucht, eine Verbindung zu einem geschlossenen Port herzustellen, ändert der Browser die Seitenadresse in chrome-error://chromewebdata/. Unter Ausnutzung dieser Eigenschaft:
Die Website erstellt ein verborgenes iframe und lädt die Zieladresse (z. B. http://127.0.0.1:8080)
Wenn der Port geschlossen ist, wird das onload-Ereignis des iframe zweimal ausgelöst (weil sich die URL geändert hat)
Wenn der Port offen ist, wird das onload-Ereignis nur einmal ausgelöst
Durch das Zählen, wie oft das onload-Ereignis ausgelöst wird, kann die Website genau feststellen, ob ein Port offen ist.
WebSocket-basierte Scanmethode
Einige Tools nutzen außerdem WebSocket-Verbindungen, um den Portstatus zu prüfen——eine erfolgreiche Verbindung bedeutet, dass der Port offen ist, während eine fehlgeschlagene Verbindung bedeutet, dass der Port geschlossen ist.
Warum scannen Websites deine Ports?
1. Betrugsprävention und Bot-Erkennung
Viele große Websites (darunter auch einige Websites staatlicher Dienste und E-Commerce-Plattformen) nutzen Port-Scanning, um zu erkennen, ob ein Nutzer ein echter Mensch ist. Einige Anti-Bot-Systeme versuchen beispielsweise, eine Verbindung zu 127.0.0.1:8888 herzustellen——dies ist der Standard-Proxy-Port von Sicherheitstest-Tools wie Burp Suite. Wenn festgestellt wird, dass dieser Port offen ist, vermutet das System möglicherweise, dass es sich beim Besucher um einen Sicherheitsforscher oder ein automatisiertes Skript handelt, und löst zusätzliche Verifizierungen aus.
2. Nutzer-Fingerprinting und Tracking
Studien zeigen, dass die Ergebnisse browserbasierter Port-Scans ausreichend einzigartig sein können, um als Mittel zur Nutzerverfolgung zu dienen. Durch die Erkennung lokal offener Ports kann eine Website ableiten, welche Software der Nutzer ausführt——zum Beispiel kann ein offener Port 80 oder 443 bedeuten, dass der Nutzer einen Webserver betreibt, während ein offener Port 25 darauf hindeuten kann, dass ein Mailserver läuft. Die Kombinationen installierter Software unterscheiden sich von Nutzer zu Nutzer erheblich, wodurch ein einzigartiger „Software-Fingerabdruck“ entsteht.
Noch besorgniserregender ist, dass Untersuchungen zeigen, dass selbst ein Scan von nur einer Sekunde bereits einen Port-Fingerabdruck mit hoher Einzigartigkeit erzeugen kann. Wenn Port-Scan-Ergebnisse mit anderen Fingerprinting-Techniken (wie Canvas-Fingerprinting, WebGL-Fingerprinting usw.) kombiniert werden, wird die Tracking-Fähigkeit weiter verstärkt.
3. Erkennung von Geräten im internen Netzwerk
Die meisten Browser erlauben öffentlichen Websites standardmäßig, Anfragen an private IP-Adressen (wie 127.0.0.1 oder 192.168.x.x) zu senden. Das bedeutet, dass eine bösartige Website nicht nur lokale Ports deines Computers scannen kann, sondern auch Ports von Geräten in deinem Heimnetzwerk wie Router, Smart-TVs oder Netzwerkkameras, um potenziell verwundbare Geräte für Angriffe zu finden.
Wie kann man sich vor Port-Scanning im Browser schützen?
1. Browser-Erweiterungen verwenden
uBlock Origin: In den Einstellungen im Bereich „Datenschutz“ die Option „Zugriffe von externen Websites auf das lokale Netzwerk blockieren“ aktivieren
NoScript: Bietet Optionen zum Blockieren von Zugriffen auf das lokale Netzwerk
Auch einige spezialisierte Schutz-Plugins können Websites daran hindern, lokale Ports zu scannen
2. Browser mit integriertem Schutz verwenden
Einige Browser verfügen bereits über integrierte Schutzfunktionen gegen Port-Scanning. Manche Browser blockieren beispielsweise aktiv bekannte bösartige Scan-Skripte und beschränken den Zugriff öffentlicher Websites auf lokale Ressourcen. Browser wie Chrome führen zudem schrittweise die Spezifikation „Private Network Access“ ein, die verlangt, dass Websites vor dem Zugriff auf lokale Ressourcen zunächst die Zustimmung des Nutzers einholen.
3. Fingerprint-Browser verwenden
Für Nutzer mit höheren Datenschutzanforderungen bieten Anti-Detect-Browser eine umfassendere Schutzlösung. Solche Tools können unterschiedliche Portzustände simulieren, sodass Websites keine echten Port-Scan-Ergebnisse erhalten und die Privatsphäre deines Geräte-Fingerabdrucks wirksam geschützt wird.
Fazit
Port-Scanning ist eine Technik, die sowohl für legitime Sicherheitsaudits eingesetzt als auch zur Verletzung der Privatsphäre missbraucht werden kann. Ihre Funktionsweise und potenziellen Risiken zu verstehen, ist der erste Schritt zum Schutz der eigenen Netzwerksicherheit. Wie ein altes Sprichwort aus der Sicherheitsbranche sagt: „Nur wenn du weißt, wo deine ‚Türen‘ offen stehen, weißt du, welche du schließen musst.“
