Route 666
Seite 2: Eine Ebene höher
Eine Ebene höher
Bevor man sich mit den Routing-Protokollen beschäftigt, sollte man dem Internet Control Message Protocol (ICMP) einen Moment Aufmerksamkeit schenken. Entgegen der landläufigen Meinung ist es nicht nur zum Senden und Empfangen von Ping-Paketen geeignet, sondern unterstützt noch eine ganze Reihe von anderen Funktionen. Zwei davon sind hier von besonderem Interesse: Das ICMP Router Discovery Protocol (IRDP) und die ICMP-Redirect-Meldungen.
IRDP wird vor allem zur Unterstützung von manueller IP-Adresskonfiguration verwendet. Endsysteme können Router-Discovery-Meldungen an alle anderen Systeme im Netz senden und bekommen eine Antwort von jedem Router. Dies ermöglicht dem Endsystem, sich ein Standard-Gateway selbst zu suchen. Ist schon ein Standard-Gateway konfiguriert, werden die erhaltenen Meldungen mit einer niedrigeren Priorität in die Routing-Tabelle des Systems eingetragen.
IRDP selbst liefert auch eine eigene Priorität für die entsprechende Route mit -- das so genannte Preference-Feld. Manche Betriebssysteme wie Windows< >98 begehen schon bei diesem einfachen Protokoll den fatalen Fehler, die Priorität nur aus dem empfangenen IRDP-Paket zu ermitteln. Die Priorität einer Route im Betriebssystem hängt von der Metrik ab. Eine geringe Metrik bedeutet eine hohe Priorität und umgekehrt. Windows 98 berechnet die Metrik der durch IRDP gelernten Route mittels
Metrik = 1000-Preference
Da die Preference aber aus dem empfangenen IRDP-Paket stammt und dieses wiederum von so ziemlich jedem Rechner gesendet worden sein kann, ist diese Art der Berechnung nicht zu empfehlen. Ein Angreifer kann so nämlich ohne Probleme das Standard-Gateway für ein Windows-98-System werden, indem er ein IRDP-Paket mit Preference 1000 sendet [4].
Die zweite interessante Funktion von ICMP sind die Redirects. Hiermit kann ein Router eine Meldung an das sendende System schicken und es auf ineffizientes oder geändertes Routing aufmerksam machen. Dies geschieht, indem er den Header des originalen IP-Pakets an die ICMP-Meldung angehängt. Damit weiß das Sendersystem, welche Zieladresse schlecht zu erreichen war, und nimmt einen anderen Router. Natürlich enthält das ICMP-Paket auch den Router, über den das Ziel im Idealfall angesprochen werden sollte.
Wie schon bei IRDP kann auch hier jeder beliebige Rechner im Netzwerk ein solches ICMP-Paket generieren und senden. Auch der Header des ursprünglichen Pakets lässt sich leicht fälschen. Nicht alle Betriebssysteme merken sich, mit welchen Systemen sie kommuniziert haben. Sollte das angegriffene System doch eine solche Liste führen, reicht ein Ping-Paket mit gefälschtem Absender aus, um eine beliebige IP-Adresse in diese Liste hinzuzufügen. Danach kann der Angreifer ohne weiteres ein ICMP-Redirect-Paket hinterher senden.