Das Internet Control Message Protocol (ICMP) ist ein essenzielles Protokoll der Netzwerkschicht für die Kommunikation zwischen Netzwerkgeräten. Es hilft dabei, Fehler zu erkennen und zu melden, Abfragenachrichten zu senden und Hosts über eine Überlastung des Netzwerks zu informieren.
ICMP verwendet den Nachrichtenversand per Paket in IPv4- und IPv6-Netzwerken, um Informationen über die zugrunde liegenden Netzwerkbedingungen bereitzustellen. ICMP verwaltet die Daten selbst nicht, informiert den Absender jedoch, wenn Daten ihr vorgesehenes Ziel nicht erreicht haben oder in der falschen Reihenfolge empfangen wurden.
Die Funktionalität von ICMP macht die Kommunikation über Netzwerke reibungsloser und zuverlässiger und stellt sicher, dass Informationen korrekt und effizient übertragen werden können.
ICMPv4 und ICMPv6 sind zwei verschiedene Versionen des Protokolls. Obwohl sie einige Gemeinsamkeiten aufweisen, unterscheiden sie sich auch in mehreren Punkten.
Neben seiner Hauptfunktion, die Kommunikation zwischen Netzwerkgeräten zu ermöglichen, ist ICMP aufgrund seiner Anfälligkeit für verschiedene Angriffsarten auch zu einem Ziel für böswillige Akteure geworden. Daher ist es wichtig zu verstehen, wie ICMP funktioniert und wie es ordnungsgemäß konfiguriert wird, um die Sicherheit Ihres Netzwerks zu gewährleisten.
Wie funktioniert ICMP?
ICMP ist ein verbindungsloses Protokoll, das für Netzwerkverwaltungszwecke eingesetzt wird – im Gegensatz zum Internet Protocol (IP), das ein Transportprotokoll wie TCP oder UDP benötigt.
ICMP umfasst keine zugehörigen Prozesse zum Auf- und Abbauen von Verbindungen (wie TCP), und es ermöglicht auch keine gezielte Adressierung von Ports auf Geräten.
Im Gegensatz zum verbindungsorientierten Ansatz anderer Protokolle sendet ICMP Nachrichten, ohne zuvor einen Handshake zu erfordern. Dadurch entsteht insgesamt eine einfachere Struktur für die Übermittlung von Informationen von einem Gerät zu einem anderen.
Bestandteile von ICMP-Nachrichten
Eine ICMP-Nachricht besteht aus einem IP-Header, der einen Datenbereich variabler Größe kapselt.
ICMP-Daten enthalten die folgenden Felder:
- Typ: Das 8-Bit-Feld identifiziert den Typ der ICMP-Nachricht. Bei ICMPv6-Nachrichten reichen die möglichen Werte von 0 bis 127. Werte zwischen 128 und 255 sind informative Benachrichtigungen.
- Code: Dieses 8-Bit-Feld unterscheidet den Subtyp und bestimmt, welche Art von ICMP-Nachricht gesendet wird.
- Prüfsumme: Ein 16-Bit-Feld, mit dem erkannt wird, ob die Nachricht einen Fehler enthält.
- Zeiger: Ein Feld variabler Länge, das das Problem in der ursprünglichen Nachricht identifiziert. Dieses Feld ist optional.
- Ursprüngliches Datagramm: Ein weiteres Feld variabler Länge, das einen Teil des ursprünglichen IP-Pakets enthält, das einen Fehler verursacht hat. Auch dieses Feld ist optional.
2 Arten von ICMP-Nachrichten
Es gibt zwei Kategorien von ICMP-Nachrichten: Fehlerberichte und Abfragen.
Nachrichten zur Fehlerberichterstattung
Nachrichten zur Fehlerberichterstattung werden gesendet, wenn ein Knoten oder Router auf einen Fehler stößt.
Beispiele für Nachrichten zur Fehlerberichterstattung sind:
- Ziel nicht erreichbar: Wird gesendet, wenn ein Gerät ein IP-Paket empfängt und feststellt, dass das Ziel nicht erreichbar ist.
- Quellenunterdrückung: Informiert sendende Geräte darüber, dass sie die Datenübertragungsrate reduzieren sollen, normalerweise aufgrund einer Überlastung des Netzwerks oder einer technischen Einschränkung, etwa wenn ein Router keine hohe Datenübertragungsrate verarbeiten kann.
- Zeitüberschreitung: Wenn ein Router feststellt, dass das Time-to-Live-(TTL-)Feld eines Pakets den Wert null erreicht hat, sendet er diese Nachricht an den Absender des Pakets.
- Parameterproblem: Wird gesendet, wenn ein Router einen ungültigen IP-Header oder eine ungültige Paketlänge erkennt.
- Umleitung: Wird gesendet, wenn es für den Absender des Pakets eine bessere Route zu seinem Ziel gibt.
Abfragenachrichten
Diese Nachrichten werden gesendet, um bestimmte Informationen vom Zielgerät abzufragen.
Abfragenachrichten umfassen:
- Echo-Anforderung/-Antwort: Wird verwendet, um zu prüfen, ob ein Gerät im Netzwerk aktiv ist, indem eine Echo-Anforderung gesendet und auf eine Echo-Antwort vom Ziel gewartet wird.
- Zeitstempelanforderung/-antwort: Verwendet zwei Zeitstempelfelder: eines wird in der Anforderung und eines in der Antwort gesendet.
- Adressmaskenanforderung/-antwort: Ermöglicht Geräten, die Subnetzmaske des Zielgeräts abzufragen.
So verwenden Sie ICMP
ICMP wird in Netzwerken auf drei Arten eingesetzt: zur Fehlerberichterstattung, als Diagnosetool oder zur Beeinträchtigung der Netzwerkleistung durch einen Denial-of-Service-Angriff (DoS).
Fehler melden
ICMP ist vor allem für seine Rolle bei der Fehlerberichterstattung bekannt. ICMP wird zwischen zwei über das Internet verbundenen Geräten eingesetzt, um zu erkennen und zu melden, wenn eine Datenübertragung aus irgendeinem Grund fehlgeschlagen ist.
Beispielsweise kann ICMP ausgelöst werden, wenn ein Router ein Datenpaket verwirft, das für ihn zu groß ist. In solchen Fällen übermittelt der Router eine ICMP-Nachricht mit Informationen zum Problem an den Absender. Das sendende Gerät kann das Problem dann beheben oder die Daten erneut senden und so eine effektive Kommunikation über Internetverbindungen sicherstellen.
Als Diagnosetool
ICMP kann als Diagnosetool verwendet werden, um mithilfe von ICMP und dem Simple Network Management Protocol (SNMP) die Verfügbarkeit, Route und den Zustand eines Systems in einem Netzwerk zu überprüfen.
Eines der verbreitetsten ICMP-Diagnosetools ist Ping. Es überträgt eine Anfrage nach einem ICMP-Echo an ein Netzwerkgerät und erwartet eine ICMP-Echo-Antwort. Mit Ping lassen sich auch Paketverluste und Verzögerungen innerhalb eines Netzwerks überprüfen.
Ein weiteres ICMP-Diagnosetool ist Traceroute. Es verwendet ICMP-Nachrichten, um den Pfad von Paketen von einem Host zu einem anderen nachzuverfolgen.
Beeinträchtigung der Netzwerkleistung
Kriminelle können ICMP nutzen, um die Netzwerkleistung durch einen Denial-of-Service-Angriff (DoS) zu beeinträchtigen.
DoS-Angriffe werden durchgeführt, indem Systeme mit ICMP-Anfragen überflutet werden. Zu viele ICMP-Nachrichten können die Funktion eines Computers oder Netzwerks erheblich verlangsamen oder zum Erliegen bringen und dadurch die Ressourcen des Zielsystems erschöpfen.
ICMP kann auch bei einem Smurf-Angriff oder einem Ping-of-Death-Angriff eingesetzt werden, wie im folgenden Abschnitt „Sicherheitsbedrohungen durch ICMP“ erläutert.
ICMP in IPv4 und IPv6
Wie zu erwarten, funktioniert ICMP in IPv4 und IPv6 in vielerlei Hinsicht unterschiedlich. ICMP in IPv6 ist natürlich ein robusteres und dynamischeres Protokoll, das eine deutlich größere Anzahl von Aufgaben, eine umfassendere Prüfsummenberichterstattung und eine Differenzierung der Nachrichtentypen ermöglicht.
Umfassendere Funktionalität
Das Internet Control Message Protocol Version 6 (ICMPv6) bietet in IPv6 eine umfassendere Funktion als ICMPv4 in IPv4. In IPv6 spielt ICMPv6 eine zentrale Rolle bei Router Advertisement, der Ermittlung der Pfad-MTU und der Verwaltung von Multicast-Gruppen – Aufgaben, die ICMPv4 nicht abdeckt.
Nachrichtenformatierung
Die Nachrichtenformate unterscheiden sich zwischen ICMPv4 und ICMPv6. Insbesondere fällt das Ergebnis bei der Berechnung der Prüfsummen für die beiden ICMP-Versionen unterschiedlich aus, je nachdem, welche Bestandteile berücksichtigt werden.
Während bei ICMPv4 nur die Nachricht selbst in die Prüfsummenberechnung einbezogen wird, fließen bei ICMPv6 sowohl die Nachricht selbst als auch ein Pseudo-Header, der einige Felder des IPv6-Headers enthält, in diese Berechnung ein.
Nachrichtentypen
ICMPv6-Nachrichten verwenden ein Typfeld mit höherwertigem Bit, um zwischen Fehler- und Informationsnachrichten zu unterscheiden, ICMPv4 hingegen nicht. Bestimmte Nachrichtencodes sind außerdem ausschließlich ICMPv4 oder ICMPv6 zugeordnet.
Werte des Felds „Next Header“
ICMPv6 verfügt im Vergleich zu ICMPv4 über einen eigenen Wert im Feld „Next Header“; ICMPv4 verwendet einen Wert von 1 im Feld „Protocol“. In IPv6 können ICMPv6-Nachrichten nach einem oder mehreren Erweiterungsheadern beginnen. Der letzte Erweiterungsheader enthält im Feld „Next Header“ den Wert 58, der eine ICMPv6-Nachricht kennzeichnet.
Außerdem können ICMPv6-Nachrichten in anderen Protokollen übertragen werden, ICMPv4 hingegen nicht.
Sicherheitsbedrohungen durch ICMP
Wie jedes Netzwerkprotokoll ist auch ICMP verschiedenen Sicherheitsbedrohungen ausgesetzt, darunter Tunneling, Router-Erkennung, Smurf- und Fraggle-Angriffe sowie Ping-of-Death-Angriffe.
ICMP-Tunneling
ICMP-Tunneling ist eine Technik, bei der andere Protokolle oder Daten in ICMP-Paketen gekapselt werden, um Firewalls zu umgehen oder einer Erkennung zu entgehen.
ICMP-Router-Erkennung
ICMP-Router-Erkennung bezeichnet eine Art von ICMP-Nachricht, mit der Hosts Router in ihrem Netzwerk erkennen können. Obwohl sie normalerweise harmlos ist, kann sie von Angreifern auch dazu verwendet werden, Router-Ankündigungen zu fälschen und Datenverkehr an bösartige Ziele umzuleiten.
Smurf-Angriff
Smurf-Angriffe sind eine Art von DoS-Angriff, bei dem eine große Anzahl von ICMP-Echo-Anforderungen mit einer gefälschten Quelladresse an eine Netzwerk-Broadcast-Adresse gesendet wird. Dadurch antworten alle Hosts im Netzwerk mit ICMP-Echo-Antworten an die gefälschte Adresse und überlasten so die Bandbreite und Ressourcen des Opfers.
Fraggle-Angriff
Fraggle-Angriffe ähneln Smurf-Angriffen, verwenden jedoch UDP-Pakete statt ICMP-Paketen. Der Angreifer sendet UDP-Pakete mit einer gefälschten Quelladresse an eine Netzwerk-Broadcast-Adresse an Port 7 (Echo) oder Port 19 (Chargen). Dadurch antworten alle Hosts im Netzwerk mit UDP-Paketen an die gefälschte Adresse und überfluten das Netzwerk des Opfers.
ICMP-Flood-Angriff
Ein ICMP-Flood ist eine Art von DoS-Angriff, bei dem eine große Anzahl von ICMP-Paketen (etwa Echo-Anforderungen oder Nachrichten vom Typ „Ziel nicht erreichbar“) an einen Zielhost gesendet wird. Ziel ist es, die CPU-Zyklen und den Arbeitsspeicher des Ziels zu verbrauchen und dadurch die Verarbeitung legitimen Datenverkehrs zu verhindern.
Ping-of-Death-Angriff
Ping of Death ist eine alte Angriffsart, bei der eine Schwachstelle in einigen Systemen ausgenutzt wird, die keine ICMP-Pakete mit einer Größe von mehr als 65.536 Byte verarbeiten können. Der Angreifer sendet ein übergroßes ICMP-Paket (normalerweise eine Echo-Anforderung), um das Zielsystem zum Absturz zu bringen oder neu zu starten.
Informationsbeschaffung
Informationsbeschaffung ist eine Technik, bei der ICMP-Nachrichten (etwa Echo-Anforderungen, Zeitstempelanforderungen, Adressmaskenanforderungen oder Traceroute) verwendet werden, um ein Zielnetzwerk auf seine Topologie, Konfiguration, sein Betriebssystem oder seine Schwachstellen zu untersuchen.
Fazit: ICMP verwenden und absichern
ICMP ist ein essenzieller Bestandteil der Internet Protocol Suite und spielt eine entscheidende Rolle bei der IP-Kommunikation. Es wird zum Austausch von Steuerungs- und Fehlermeldungen zwischen Netzwerkgeräten wie Routern, Hosts und Gateways verwendet.
Wie alle Netzwerkprotokolle weist auch ICMP gewisse Schwachstellen auf. Es ist wichtig, diese zu verstehen, damit Sie Ihr Netzwerk und Ihre Organisation vor Angriffen schützen können.
Wenn Sie diese Konzepte verstehen, können Sie Angreifern immer einen Schritt voraus sein und Ihr Netzwerk vor potenziellen Bedrohungen schützen.
Hier sind die besten Sicherheitsunternehmen für Unternehmensnetzwerke Unternehmen, denen Sie den Schutz der Daten Ihrer Organisation anvertrauen können.