Angreifer scannen durchgehend das Internet auf offene Ports und verbundene Geräte, um wichtige Informationen über IT-Systeme und deren Schwachstellen zu erhalten. In diesem Artikel erläutern wir, was sich hinter einem Portscan verbirgt.
Der Inhalt im Überblick
Was ist ein Port?
Ein Port weist einem Service eine konkrete Nummer zu. Darüber können Kommunikationsverbindungen zwischen Anwendungen unterschieden werden. Die Nummerierung reicht von 0 bis 65.535, wovon einige für bestimmte Dienste reserviert sind. Insgesamt lassen sich die Ports in drei Kategorien unterteilen.
- Die Portnummern 1 bis 1.023 sind als „Well-Known-Ports“ bekannt und für bestimmte (System-)Dienste reserviert. Beispielweise nutzt das Kommunikationsprotokoll HTTPS den Standardport 443 und SSH Port 22.
- Die Portnummern 1.024 bis 49.151 enthalten die „Registered Ports“. Diese werden bei Bedarf von Anwendungsherstellern für eigene Protokolle registriert.
- Die dritte Kategorie der Portnummern reicht von 49.152 bis 65.535. Diese sind für kurzzeitige und dynamische Kommunikationsverbindungen gedacht.
Unterschieden wird zudem zwischen dem User Datagram Protocol (UDP) und dem Transmission Control Protocol (TCP). Ein TCP-Scan ist einfach umzusetzen. Dazu wird der connect()-Systemaufruf verwendet; der Rest wird vom Betriebssystem übernommen. Ist der Systemaufruf erfolgreich, ist der Port offen und die Verbindung wird mit close() wieder geschlossen.
Der TCP-SYN-Scan
Aus der Sicht des Netzwerkes sieht es folgendermaßen aus: Der TCP-SYN-Scan baut auf dem Drei-Wege-Handshake auf. Zum Verbindungsaufbau schickt der Initiator ein TCP-SYN-Paket an den entsprechenden Port. Lauscht eine Anwendung auf dem Port, wird ein TCP-SYN/ACK-Paket an den Initiator zurück gesendet und der Verbindungsaufbau bestätigt. Um die Verbindung herzustellen bestätigt der Initiator mit dem Senden eines TCP-ACK-Pakets wiederum den Erhalt.
Ein TCP-SYN-Scan nutzt diesen Ablauf aus. Das TCP-SYN-Paket wird vom Angreifer an das Opfer versendet, um einen Verbindungsversuch vorzutäuschen. Die Antwort des Opfers gibt Aufschluss über den Zustand des Ports. Antwortet das Opfer mit einem TCP-SYN/ACK-Paket, wird mitgeteilt, dass eine Applikation auf diesem Port lauscht und die Verbindung bestätigen möchte. Der Port ist also offen. Der Angreifer antwortet meist mit einem TCP-RST-Paket, um die Verbindung wieder abzubauen. Sendet das Opfer direkt ein RST-Paket, ist der Port geschlossen.
Ist der Port offen und die Verbindung wird vom Angreifer nicht vollständig aufgebaut, wird der dahinterliegende Dienst nicht informiert. Von der Seite des Dienstes aus bleibt dieser Angriff unsichtbar. Das gilt jedoch nicht für die Netzwerkebene. Abhilfe können Firewalls oder Intrusion Detection Systeme (IDS) schaffen.
Angriff mittels Portscan
Finden die Angreifer jedoch einen offenen Port, können sie mit Hilfe eines Portscans Schaden anrichten.
Ein Denial-of-Service (DoS) Angriff versucht einen Dienst außer Betrieb zu nehmen, der eigentlich Verfügbar sein sollte. Ein Portscan kann ein Server absichtlich mit so vielen Anfragen belastet werden, dass die begrenzten Systemressourcen vollständig verwendet werden und dieser zusammenbricht. Gleiches kann auch durch eine Überlastung von TCP-SYN-Paketen von mehreren Servern erfolgen, sodass das Opfer mit Antworten nicht mehr hinterherkommt.
Die SYN-Flood ist eine Form von Denial-of-Service Attacken. Dabei wird vom Angreifer das TCP-ACK-Paket des Drei-Wegen-Handshakes unterschlagen, wodurch das Opfer den Status der Verbindungsanfragen im Speicher hält, um die Verbindung später möglicherweise vollenden zu können. Somit können die begrenzen Systemressourcen verbraucht werden, sodass diese nicht mehr für reale Anfragen verfügbar sind. Aufgrund der Überlastung, stellt der Server seinen Dienst ein.
Nur notwendige Ports sollten geöffnet sein
Die Bedrohung aus dem Internet besteht durchgehend. Jeder Port sollte wirklich nur geöffnet sein, wenn dieser zwingend benötigt wird. Eine Überprüfung von Externen durch einen derartigen Portscan ist sinnvoll, um das IT-Sicherheitsniveau nachhaltig zu stärken und präventiv den Angreifern keine Chance auf einen erfolgreichen Angriff zu geben.
Fachlich alles sicherlich absolut korrekt, was hier steht. Aber leider werden die Fachbegriffe nicht korrekt eingeführt und der Artikel dürfte daher am erheblichen Teil eures Publikums vorbeigehen. Für Leute, die ohnehin wissen, wie der TCP Handshake funktioniert und was der Unterschied zwischen UDP und TCP ist, werden sich in diesem Artikel wohl kaum neue Informationen finden. Für Menschen ohne das bisherige technische Hintergrundwissen bietet der Artikel aufgrund der fehlenden Einführung essentieller Begriffe vermutlich keinen guten Einstieg. Analog gilt das auch für eure Artikel zum Thema Dateisysteme, Forensik, Registry… ihr solltet euch im Vorfeld Gedanken über eure Zielgruppe machen.
Herr Krause hat das zutreffend dargestellt. Wenn man es erklärt, sollte man es von jemanden lesen lassen, der es nicht versteht. Denn hier nehme ich als Jurist nicht viel mit…