IP v4
16. ICMP - Internet Control Message Protocol
ICMP - Internet Control Message Protocol
Neben dem Internetprotokoll (IP) sind auf der Internetschicht noch weitere Protokolle angesiedelt. Eins davon ist ICMP.
ICMP-Pakete werden immer als IP-Datagramm verschickt.
Es dient dazu, Hosts günstigere Routen zu einem Ziel bekanntzugeben, über Routing-Probleme zu informieren oder Verbindungen wegen Problemen im Datennetz abzubrechen.
Die Meldungen des ICMP-Protokolls sind in zwei Klassen definiert: In Fehlermeldungen wie "DEE nicht erreichbar", Wegumleitung, Ressourcen nicht mehr nutzbar, Zeit abgelaufen und Parameterproblem, und in Informationsmeldungen wie Zeitmessung, Adressmaske, Router-Findung und Echo, um feststellen zu können, ob ein Bestimmungsort erreichbar ist und antwortet.
Auf ICMP basieren die z.B. Kommandos ping und traceroute.
Wie eben gesagt, dient ICMP im Netzwerk zum Austausch von Fehler- und Informationsmeldungen, kann aber auch für Angriffe im Netzwerk missbraucht werden.
Da ICMP komplett zu blockieren oder komplett zu erlauben zu viele Probleme verursachen würde, empfiehlt man die folgenden Typen freizuschalten:
- ICMP Unreachable
- ICMP Unreachable, Fragmentation Needed (wird verwendet von Path MTU Discovery)
- ICMP Time Exceeded in Transit (TTL expired in transit bei traceroute unter UNIX und tracert unter Windows)
- ICMP Echo Request (Ausgehend, wird benutzt von Ping)
Alle anderen ICMP-Typen werden nur nach Bedarf freigeschaltet, bei einer Firewall ins Internet restriktiver als bei einer zwischen zwei internen Netzen.
Ping of Death
Als Ping of Death bezeichnet man eine spezielle Denial-of-Service-Attacke (DoS-Attacke), mit dem Ziel, das angegriffene System zum Absturz zu bringen.
Ein Ping of Death ist ein ICMP-Paket, welches aufgrund eines Fehlers in der Implementierung des IP-Protokolls auf vielen Betriebssystemen beim Empfänger einen Buffer Overflow erzeugt. Netzwerkpakete, die größer sind als die zulässige MTU (im weitverbreiteten Ethernet 1500 Bytes) werden üblicherweise in kleinere Fragmente aufgeteilt und beim Empfänger wieder zusammengesetzt. Um die Reassemblierung zu ermöglichen, erhält jedes Fragment eine Größe und einen Offset, welcher die Position im Gesamtpaket spezifiziert. Es ist jedoch möglich, beim letzten Fragment einen Offset und eine Fragmentgröße so zu kombinieren, dass das Gesamtpaket größer als die maximal zulässigen 65.535 Bytes wird. Bei der Zusammensetzung eines solchen Pakets werden auf Seiten des Empfängers möglicherweise interne Variablen überschrieben und das System zum Absturz gebracht.
Die hierfür anfälligen Systeme wurden gepatcht und sind in der Regel heute nicht mehr im Einsatz. Betroffen waren neben Windows NT und Windows 95 auch viele UNIX-Derivate wie zum Beispiel AIX, HP-UX, Linux und Solaris.