Frank Carius

Autor: Frank Carius
Enterprise Architect / Partner – auf LinkedIn vernetzen

In der komplexen Welt der Netzwerkkommunikation sind Protokolle wie TCP, UDP und HTTP weit verbreitet und werden intensiv genutzt. Ein Protokoll wird jedoch oft – und unserer Meinung nach zu Unrecht – vernachlässigt: das Internet Control Message Protocol (ICMP). Obwohl es weniger im Rampenlicht steht, spielt ICMP eine entscheidende Rolle für die Effizienz und die Stabilität von Netzwerken. Seine Bedeutung wird jedoch oft unterschätzt oder aktiv durch Blockaden eingeschränkt.

In diesem Blogartikel werfen wir einen Blick auf die entscheidende Rolle, die ICMP im Netzwerk einnimmt und benennen die Konsequenzen, wenn dieses Protokoll blockiert wird.

Was ist das ICMP-Protokoll?

Rimscout sammelt kontinuierlich bestimmte Netzwerkdaten und führt Tests durch, um einerseits Probleme im Netzwerk genauer diagnostizieren zu können und andererseits die Verfügbarkeit und Performance der Stationen, z.B. Router oder Provider, zu messen. Dazu wird das Protokoll ICMP benötigt. Dennoch treffen wir in unseren Netzwerk Assessments auf Umgebungen, in denen ICMP eingeschränkt oder sogar komplett blockiert ist.

Um die Relevanz von ICMP zu verstehen, betrachten wir im ersten Schritt die verschiedenen anderen Transportprotokolle. Das TCP-Protokoll ist das Rückgrat des Internet-Protokolls und beinhaltet wesentliche Funktionen, die für eine reibungslose Kommunikation zwischen Geräten erforderlich sind. Dabei spielen die ICMP-Pakete eine entscheidende Rolle. Sie arbeiten oft im Hintergrund und sorgen für einen reibungslosen Datenverkehr. UDP wiederum wird nicht nur für DNS-Abfragen genutzt, sondern vor allem für die Übertragung von Audio- und Videopaketen verwendet. Hier kommt es schnell zu Paketverlusten. In einem Assessment oder bei einem Monitoring muss jedoch der Assessor oder Administrator über den Paketverlust mit einer aussagekräftigen Fehlermeldung informiert werden.

Hier kommt erneut die Relevanz von ICMP ins Spiel. Es arbeitet auf der unteren Ebene des IP-Stacks, um Status- und Fehlermeldungen zwischen Geräten im Netzwerk auszutauschen und so nicht erreichbare Ziele oder Netzwerküberlastungen zu melden. Darüber hinaus interagiert ICMP mit den bereits erwähnten Transportprotokollen TCP und UDP, indem es entsprechende Fehlermeldungen zu den nicht zugestellten Datenpaketen sendet.

Vier Gründe für ICMP in TCP/IP-Protokollen

Im nächsten Schritt werfen wir einen genaueren Blick darauf, warum ICMP für das TCP/IP-Protokoll so wichtig ist und wie es die verschiedenen Aspekte der Netzwerkkommunikation unterstützt:

  • 1

    Timeout

    Erhält ein Sender keine Antwort auf sein gesendetes Paket, wird ein Timeout ausgelöst und die fehlenden Pakete werden erneut gesendet. Dies ist zeitaufwendig, verzögert den Verbindungsaufbau und erschwert zudem die Fehlersuche bzw. Performancemessung, wenn keine Fehlermeldung über ICMP übertragen werden.

  • 2

    Fragmentierung

    Nicht alle Übertragungswege unterstützen große Paketgrößen, wie z.B. ein Ethernet-Paket mit 1541 Byte. Wenn dieses Paket die maximale Größe überschreitet, muss ein Router ein „ICMP Size Exceeded“-Paket senden, damit der Sender oder ein Router die Paketgröße reduziert, indem das Paket fragmentiert wird. Bleibt diese Rückmeldung über ICMP aus, kann die Verbindung gestört oder im schlimmsten Fall nicht aufgebaut werden.

  • 3

    Time-to-Live (TTL)

    TTL zählt die Hops einer Kommunikation zu einem Ziel, indem ein Counter mit jeder Station heruntergezählt wird. Wenn der TTL-Zähler abgelaufen ist, sendet der Router ein “TTL Exceeded”-Paket per ICMP an den Absender zurück. Wird das Paket vom Router beim Erreichen des Zählers verworfen und keine Information per ICMP zurückgesendet, erschwert das die Fehlersuche für den Absender.

  • 4

    Service nicht erreichbar

    Es muss nicht immer eine falsche IP-Adresse oder ein nicht erreichbares Netzwerk oder nicht verfügbarer Server sein. ICMP kann auch signalisieren, dass ein bestimmter Port für TCP-Verbindungen nicht erreicht wird. Dies hilft bei der Diagnose von Verbindungsproblemen.

Häufig wird ICMP nur im LAN zugelassen und zum Internet hin blockiert. Durch die zunehmende Nutzung von Cloud-Diensten ist das Internet zu einem erweiterten LAN geworden. Daher ist es wichtig, ICMP auch über die Grenzen des LAN hinaus zu berücksichtigen. Das Blockieren von ICMP im Internet kann zu erheblichen Beeinträchtigungen führen, da viele grundlegende Funktionen auf diesen Paketen basieren.

ICMP: Nutzen vs. Sicherheit

Gerne wird das Blockieren von ICMP mit einem erhöhten Sicherheitsrisiko begründet. Wie jedes Protokoll birgt auch ICMP potenzielle Sicherheitsrisiken, auf die wir im Folgenden einmal einen Blick werfen wollen. In der Vergangenheit gab es im Zusammenhang mit ICMP prominente Sicherheitslücken, wie den „Ping of Death“. Hierbei konnten manche Geräte, wie Cisco-Router und diverse Drucker durch einen ICMP-Ping mit einer bestimmten Paketgröße zum Absturz gebracht werden. Diese Schwachstelle ist jedoch in den modernen Systemen behoben und stellt heute keine ernsthafte Bedrohung mehr dar.

Dennoch gibt es noch zwei weitere Sicherheitsaspekte von ICMP im Netzwerk:

  • 1

    Identifizierung von Systemen über eine Netzwerklandkarte

    Häufig wird kritisiert, dass ein Angreifer mittels PING sehr einfach und schnell herausfinden kann, ob hinter einer IP-Adresse ein System reagiert. Ähnliche Informationen können auch durch TCP-Syn-Versuche gewonnen werden, aber diese Aussage hilft nicht unbedingt bei der Entkräftung. Es ist aber ein Unterschied, ob dies anonym aus dem Internet geschieht oder ob man sich intern durch das Blockieren von ICMP einer wichtigen Diagnosefunktion beraubt.

  • 2

    Potenzielle DDoS-Angriffe

    ICMP-Pakete können für DDoS-Angriffe verwendet werden, da ihre Quelladressen nicht gesichert sind. Ein solcher Angriff wäre möglich, indem ein Angreifer viele ICMP-Pakete an andere Systeme sendet, die dann alle die gefälschte Adresse überfluten. Allerdings muss der Angreifer bereits bei ICMP die gleiche Bandbreite nutzen wie Sie, weshalb ICMP-Pakete nicht die bevorzugte Wahl für DDoS-Angriffe sind.

Um die Sicherheit zu erhöhen, können Einschränkungen für eingehende ICMP-Pakete aus dem Internet auf Ihre öffentlichen Adressen definiert werden. Umgekehrt brauchen Sie sich keine Sorgen zu machen, wenn Ihre Firewall nur Antworten auf vorherige Anfragen zulässt. Beachten Sie jedoch, dass die Idee, Sicherheit durch Geheimhaltung zu erreichen („Security by Obscurity“), keine solide Schutzmaßnahme darstellt. Es ist wichtig, dass Sicherheitsmaßnahmen auf mehr basieren als nur auf dem Verstecken bestimmter Funktionen oder Informationen.

ICMP und PING: Einblick in Netzwerkverfügbarkeit

Vielen Administratoren ist nicht bewusst, dass ein PING ICMP verwendet, um die Erreichbarkeit in einem IP-Netzwerk zu überprüfen. Wird ein PING-Befehl ausgeführt, sendet das Gerät ICMP Echo Request-Nachrichten an die Ziel-IP-Adresse. Wenn der Ziel Host erreichbar ist und ICMP aktiviert hat, antwortet er mit ICMP Echo Reply-Nachrichten. Anhand dieser Antworten kann der Absender des PING-Befehls feststellen, ob der Ziel Host erreichbar ist und wie lange es dauert, die Nachrichten hin und zurückzusenden. So kann zuverlässig die Round-Trip-Time (RTT) und die Latenzzeit gemessen werden.

Die gemessene Zeit hängt jedoch von der Reaktionszeit der Gegenstelle ab. Bei vielen Routern hat die Antwort auf einen ICMP-PING nicht die höchste Priorität. Ein erfolgreicher PING ist keine Garantie dafür, dass man den Dienst auf dem Server auch erreicht. So kann z.B. eine Firewall die gewünschte UDP/TCP-Verbindung verhindern. Ebenso ist ein erfolgloser PING kein Zeichen dafür, dass es kein System gibt. Beispielsweise reagieren die Media Relay Server von Microsoft Teams nicht mehr auf PING.

Oft wird auch übersehen, dass ICMP durchaus von Produkten genutzt wird, um einen schnellen oder nahe gelegenen Server zu ermitteln. Insbesondere wenn eine DNS-Abfrage mehrere IP-Adressen liefert, kann ein Client diese sehr schnell per PING adressieren, um dann den Endpunkt auszuwählen, der zuerst geantwortet hat. Dieser scheint erreichbar und netzwerktechnisch dem Client am nächsten zu sein. Daher fordert Microsoft, dass Domain Controller per ICMP-Ping erreichbar sind (nachzulesen unter: https://learn.microsoft.com/de-de/troubleshoot/windows-server/identity/config-firewall-for-ad-domains-and-trusts#active-directory).

ICMP und Traceroute: Erste Werte für den Provider

Während ein PING genau ein System adressiert, verbergen sich hinter einer Traceroute mehrere PING-Pakete mit aufsteigender Time-to-Live (TTL), aus denen der Weg durch die Router zum Ziel ermittelt werden kann. Dies ist nicht perfekt, da Pakete verschiedene Routen nehmen können, was die Genauigkeit einschränkt. Aber in der Regel erhält man erste gute Werte für die Zwischenstationen, wie z.B. den Provider auf dem Weg eines Paketes.

Es gibt Provider, die genau dieses Wissen und das Erkennen von Problemen verhindern wollen und deshalb ICMP-Antworten unterdrücken. Aber nicht alle tun dies und oft sieht man die Zeit zum Router vor dem Provider und zum Router nach dem Provider, was genügend Rückschlüsse auf die jeweiligen Laufzeiten zulässt. Zusätzlich kann es nützliche Informationen über die Netzwerkleistung liefern, indem Router vor und nach blockierenden Knoten identifiziert werden.

ICMP und Firewall: Schnellerer Verbindungsaufbau

Bei eingehenden Verbindungen kann man verstehen, dass eine Firewall das Paket still verwirft. Bei ausgehenden Verbindungen sollte eine Firewall aber sehr wohl ein „ICMP not reachable“ an den internen Client senden. Dies ist insbesondere bei Microsoft Teams und anderen VoIP-Produkten wichtig, die bei einer Verbindung mit ICE-Handshake die möglichen Kandidaten ermitteln.

Wer ausgehende Pakete unterschlägt, wird mit längeren Verbindungsaufbauzeiten bestraft und Fehler sind schwerer zu finden. Deshalb prüfen wir in unseren Netzwerk Assessments mit Rimscout auch die Erreichbarkeit der Team Media Relays über UDP und TCP, da diese nicht auf PING reagieren. Hier könnte man lediglich den Router eine Station davor mit einem PING überprüfen.

Fazit: ICMP intern und zum Internet zulassen

Für die Funktion von Netzwerkdiagnose- oder Monitoring-Tools ist es wichtig, dass nicht nur die konfigurierten Endpunkte per ICMP erreicht werden, sondern auch der Weg dorthin möglichst lückenlos auf entsprechende Anfragen reagiert. Über die Pfade und die Latenzzeiten lassen sich nicht nur Aussagen über die Übertragungsleistung und die Provider machen, sondern auch ganz allgemein Zusammenhänge erkennen. Es sollte nicht versucht werden, nur die Gegenstellen zuzulassen, da dann der Pfad nicht ermittelt werden kann.

Abschließend ist zu betonen, dass ICMP eine entscheidende, aber oft unterschätzte Rolle in der Netzwerkkommunikation spielt. Er ist für die Effizienz, Stabilität und Diagnose von Netzwerken von entscheidender Bedeutung. Die Blockierung von ICMP sowie seine Funktionen wie PING, Traceroute und Firewall verdeutlichen seine Bedeutung in der Netzwerkadministration. Ein ausgewogenes Verständnis von ICMP ist notwendig, um sowohl die Netzwerkleistung als auch die Sicherheit zu gewährleisten.

Testen Sie Rimscout für 30 Tage in Ihrer Umgebung.

ICMP-Pakete sind beliebte Diagnosewerkzeuge, wenn es zu Problemen im Netzwerk kommt. Daher sendet Rimscout ICMP Pakete, um die Zuverlässigkeit des Routers oder die Performance Ihres Providers zu ermitteln.