Dem SANS Institute zufolge gehört Port-Scanning zu den beliebtesten Techniken von Angreifern, um Dienste zu erkennen, über die sie in Systeme einbrechen können. Obwohl Port-Scanning an sich nicht feindlich ist, ist es häufig der erste Erkundungsschritt, den Hacker nutzen, wenn sie versuchen, ein Netzwerk zu infiltrieren oder sensible Daten zu stehlen bzw. zu zerstören. In diesem Artikel werden einige Best Practices erläutert, die Sie anwenden können, um sich gegen Angreifer zu verteidigen und potenzielle Netzwerksicherheitslücken zu verhindern.
Zur Durchführung eines Port-Scans ist eine Liste aktiver Hosts die Voraussetzung. Ein Netzwerk-Scan ist der Vorgang zur Ermittlung aller aktiven Hosts in einem Netzwerk und die Zuordnung dieser Hosts zu ihren IP-Adressen. Mit einer Liste aktiver Hosts kann ein Port-Scan durchgeführt werden, d. h. der Vorgang zum Senden von Paketen an bestimmte Ports auf einem Host und zum Analysieren der Antworten, um Details zu den ausgeführten Diensten zu erfahren oder potenzielle Schwachstellen zu identifizieren.
Der Vorgang zum Ermitteln, welche Systeme aktiv sind und ausgeführt werden sowie am Netzwerk lauschen, wird als Host-Erkennung bezeichnet. Dies ist häufig der erste Schritt, den Hacker bei einem feindlichen Angriff nutzen. Für die Host-Erkennung werden hauptsächlich zwei Protokolle verwendet: ARP (Address Resolution Protocol)-Scans und verschiedene Formen von ICMP (Internet Control Message Protocol)-Scans.
Ein ARP-Scan ist der Vorgang der Zuordnung von IP-Adressen zu MAC-Adressen in einem lokalen Subnetz. ARP-Anforderungen können an alle IP-Adressen in einem LAN (Local Area Network) gesendet werden, um zu ermitteln, welche Hosts aktiv sind, basierend auf den Reaktionen der Hosts mit einer ARP-Antwort. Da ARP-Anforderungen nur innerhalb eines LAN möglich sind, muss ein potenzieller Angreifer mit Ihrem internen Netzwerk verbunden sein.
Um einen Netzwerk-Scan außerhalb des LAN durchzuführen, ist eine Reihe verschiedener ICMP-Pakete verfügbar, die statt dessen verwendet werden können, wie z. B. Echo-, Zeitstempel- und Adressmaskenanforderungen. Mithilfe von Echo- oder Ping-Anforderungen wird ermittelt, ob ein Host erreichbar ist, während mithilfe von Zeitstempelpaketen die Latenz zwischen zwei Hosts bestimmt wird. Sie können Adressmaskenanforderungen verwenden, um die im Netzwerk verwendete Subnetzmaske zu ermitteln.
Die Erkennung von Hosts in einem Netzwerk über ICMP-Nachrichten basiert auf dem Empfang einer entsprechenden Antwort von den anvisierten Hosts. Wenn keine Antwort erhalten wird, könnte dies bedeuten, dass unter der Zieladresse kein Host vorhanden ist oder der ICMP-Nachrichtentyp vom Ziel-Host nicht unterstützt wird. Es könnte außerdem bedeuten, dass die ursprüngliche Anforderung durch eine Firewall oder einen Paketfilter blockiert wurde. In der Regel werden ICMP-Echo-Anforderungen (Ping-Anforderungen), die nicht von innerhalb des Netzwerks stammen, von einer Firewall blockiert. Bei Zeitstempel- und Adressmaskenanforderungen ist dies weniger wahrscheinlich.
Nachdem der Netzwerk-Scan abgeschlossen ist und eine Liste der verfügbaren Hosts erstellt wurde, kann ein Port-Scan verwendet werden, um die Aktivität auf bestimmten Ports durch die verfügbaren Hosts zu identifizieren. Durch Port-Scanning werden Ports in der Regel in eine von drei Kategorien klassifiziert:
Offen: Der Ziel-Host antwortet mit einem Paket, das angibt, dass er an diesem Port lauscht. Es gibt außerdem an, dass der für den Scan verwendete Dienst (in der Regel TCP oder UCP) ebenfalls im Einsatz ist.
Geschlossen: Der Ziel-Host hat das Anforderungspaket erhalten, reagiert aber mit einer Antwort, die angibt, dass kein Dienst an diesem Port lauscht.
Gefiltert: Ein Port-Scan kategorisiert einen Port als gefiltert, wenn ein Anforderungspaket gesendet wurde, aber keine Antwort erhalten wird. Dies gibt in der Regel an, dass das Anforderungspaket herausgefiltert und von einer Firewall verworfen wurde.
Wie bereits erwähnt, werden beim Port-Scanning in der Regel die Protokolle TCP und UDP verwendet. Dabei gibt es mehrere Methoden, einen Port-Scan mit diesen Protokollen durchzuführen.
Die am häufigsten verwendete TCP-Scanning-Methode sind SYN-Scans. Dazu gehört die Erstellung einer Teilverbindung zu dem Host auf dem Ziel-Port, indem ein SYN-Paket gesendet und dann die Antwort des Hosts überprüft wird. Wenn das Anforderungspaket nicht von einer Firewall herausgefiltert oder blockiert wird, antwortet der Host, indem er ein SYN/ACK-Paket sendet, wenn der Port offen ist, oder ein RST-Paket, wenn der Port geschlossen ist.
Eine weitere TCP-Scanning-Methode ist der TCP-Verbindungs-Scan. Dabei versucht der Scanner, eine Verbindung zu einem Port auf dem Ziel-Host herzustellen, indem er den TCP-Verbindungssystemaufruf verwendet und den vollständigen TCP-Handshake-Vorgang initiiert. Bei diesem Vorgang fallen eine Menge Daten in Form von Paketen an, und er ist viel leichter zu erkennen. Daher ist dies eine weniger häufig verwendet Port-Scanning-Methode.
Weitere Typen von TCP-Port-Scans sind NULL, FIN und Xmas. Bei diesen drei Scan-Typen werden die TCP-Header-Flags bearbeitet. NULL-Scans senden Pakete ohne in den Headern gesetzte Flags. Bei FIN-Scans dagegen ist das FIN-Bit gesetzt. Bei Xmas-Scan-Paketen sind die Bits der FIN-, PSH- und URG-Flags aktiviert und bewirken, dass sie „leuchten wie ein Weihnachtsbaum“. Daher die Bezeichnung Xmas-Scan, also „Weihnachts-Scan“.
UDP-Scans senden wie TCP-Scans ein UDP-Paket an verschiedene Ports auf dem Ziel-Host und überprüfen die Antwort-Pakete, um die Verfügbarkeit des Dienstes auf dem Host zu bestimmen. Wie bei TCP-Scans gibt der Empfang eines Antwort-Pakets an, dass der Port offen ist.
Erkennungssysteme für Eindringversuche in das Netzwerk und Firewalls sind heute in der Regel für die Erkennung von böswilligen Netzwerk-Scans vorkonfiguriert. Allerdings werden auch potenzielle Angreifer immer intelligenter und können versuchen, allgemeine Erkennungsregeln zu umgehen, indem sie die Häufigkeit von Scans ändern, auf Ports außerhalb der Reihenfolge zugreifen oder ihre Quelladresse spoofen. Die beste Möglichkeit, sich gegen böswillige Netzwerk-Scans zu schützen, die Sicherheitslücken im Netzwerk ausnutzen, besteht in erster Linie darin, sicherzustellen, dass solche Lücken erst gar nicht vorhanden sind.
Die Kenntnis von Host-Schwachstellen ist ein wichtiger Bestandteil der gesamten Netzwerksicherheit. Als Netzwerkingenieur sind Sie verantwortlich für den Schutz Ihrer Infrastruktur vor Malware, Würmern, Hackern, Trojanern und Viren. Es ist also Ihre Aufgabe, die Angriffsmöglichkeiten auf das Netzwerk einzudämmen.
Wie so häufig besteht auch hier die beste Vorgehensweise darin, Feuer mit Feuer zu bekämpfen.
Get our latest blog posts delivered in a weekly email.