Zum Hauptinhalt springen
Kürzlich stieß ich auf eine Website mit mehreren Modulen, von denen jedes einzelne Pakete weiterleitete. Im schlimmsten Fall wurde etwa alle 2 Sekunden ein Paket weitergeleitet. Nicht sehr schnell, werden Sie sagen, aber ein Tag hat 86.400 Sekunden, so dass dieses Modul an einem Tag 63 Megabyte (86.400 / 2 * 1472)1 Daten von einem "sicheren" Server aus Ihrem Netz weiterleiten oder 63 Megabyte an Hacking-Tools in Ihr sicheres Netz übertragen könnte.

 

In den meisten Fällen ist die Weiterleitung von Paketen jedoch ein Hinweis auf ein Konfigurationsproblem und nicht auf eine Sicherheitsverletzung. Nehmen wir zum Beispiel an, dass ein Modul 2 IP-Schnittstellen hat
enet1 10.1.1.1 255.255.0.0
enet2 192.168.1.1 255.255.255.0
Nehmen wir außerdem an, dass der Standard-Router 192.168.1.254 lautet.

 

Alle Hosts im ersten Netzwerk sollten eine IP-Adresse der Form 10.1.X.Y mit einer Subnetzmaske von 255.255.0.0 haben. Was aber, wenn Server_17 mit der IP-Adresse 10.1.1.17 so konfiguriert ist, dass er eine Subnetzmaske mit mehr Bits verwendet, sagen wir 255.255.255.0? Er kann immer noch mit jedem Host mit einer IP-Adresse der Form 10.1.1.X kommunizieren, so dass er vielleicht kein Problem bemerkt. ABER wenn er ein IP-Broadcast-Paket aussendet, adressiert er dieses IP-Paket an 10.1.1.255 statt an 10.1.255.255. Der Ethernet-Rahmen, der dieses Paket einkapselt, hat die Ethernet-Broadcast-Adresse als Ziel, so dass der Ethernet-Treiber des Moduls den Rahmen liest und das Paket an den IP-Treiber weitergibt. Der IP-Treiber sieht sich die IP-Adresse an und stellt fest, dass sie nicht an enet1 oder enet2 adressiert ist und nicht 10.1.255.255, die Broadcast-Adresse, lautet. Wenn die Weiterleitung eingeschaltet ist, versucht der IP-Treiber, das Paket an den Host mit der IP-Adresse 10.1.1.255 weiterzuleiten. Wenn das Modul keinen Eintrag für 10.1.1.255 in seinem ARP-Cache hat, sendet es eine ARP-Anfrage. Erhält es eine Antwort (oder hat es bereits einen Eintrag), so leitet es das Paket an 10.1.1.255 weiter. Wenn es keine Antwort erhält, verwirft es das Paket. Das Modul kann auch eine ICMP-Routing-Redirect-Nachricht senden, die angibt, dass der "Router" die IP-Adresse des Hosts ist.

 

Was passiert, wenn server_17 eine Subnetzmaske mit weniger Bits verwendet, z. B. 255.0.0.0? In diesem Fall lautet die von ihm verwendete IP-Broadcast-Adresse 10.255.255.255. Der IP-Treiber entscheidet, dass dies keine Adresse in einem Netz ist, mit dem er verbunden ist, und leitet das Paket an den Standardrouter 192.168.1.254 weiter. Damit werden nicht nur die Ressourcen des Moduls verschwendet, sondern auch die des Routers. Das gleiche Szenario spielt sich ab, wenn Sie zwei Subnetze in derselben Broadcast-Domäne haben.

 

Lassen Sie uns zum Schluss noch einmal auf die Sicherheitsfrage zurückkommen. Nehmen wir an, dass der sichere Server_S die IP-Adresse 10.1.1.100 und die korrekte Subnetzmaske 255.255.0.0 hat. Es gibt keine Router im 10.1.0.0-Netz, wie also kann die Industriespionin Eve Daten von Server_S an ihren Arbeitgeber im Internet unter 5.6.7.8 senden? Ganz einfach: Sie konfiguriert eine Host-Route auf Server_S, so dass alle an 5.6.7.8 adressierten Pakete an 10.1.1.1 gesendet werden. Das ist alles, was nötig ist. Das Modul leitet die Pakete an den Standard-Router weiter, und in der Annahme, dass der Standard-Router keine IP-Adressfilterung vornimmt, leitet es die Pakete an den nächsten Router weiter usw., bis sie 5.6.7.8 erreichen. Es gibt keine Möglichkeit für 5.6.7.8, auf 10.1.1.100 zu antworten, aber das ist für Eve in Ordnung, sie hat andere Möglichkeiten, um zu bestätigen, dass die Daten ihren Arbeitgeber erreichen.

 

Wie können Sie feststellen, ob Ihr Modul Pakete weiterleitet, oder zumindest so konfiguriert ist, dass es Pakete weiterleitet? Die Ausgabe von "netstat -statistics" wird Ihnen alles zeigen, was Sie brauchen.

 

netstat -statistics
. . .
ip:
. . .
1   ipforwarding (ON)
. . .
3117   ipForwDatagrams
. . .

 

Wenn das Modul so konfiguriert ist, dass es Pakete weiterleitet, wird die ipforwarding ist 1 und das Etikett trägt den Zusatz (ON). Wenn das Modul tatsächlich Pakete weiterleitet, wird die ipForwDatagrams wird der Zähler erhöht. Beachten Sie, dass der Zähler auch dann hochgezählt wird, wenn das Paket nicht tatsächlich übertragen wird, weil es keinen ARP-Cache-Eintrag gibt.

 

Um die IP-Weiterleitung zu deaktivieren, führen Sie den Befehl ">system>stcp>command_library>IP_forwarding off", ja die IP ist in Großbuchstaben.
Zu diesem Zeitpunkt zeigt netstat -statistics die ipforwarding einen Wert von 2 und die Bezeichnung wird mit (OFF) ergänzt. Beachten Sie, dass die ipForwDatagrams wird nicht zurückgesetzt; sie zeigt weiterhin einen positiven Wert an. Leider gibt es keine Möglichkeit, den Wert zu löschen.

 

netstat -statistics
. . .
ip:
. . .
2   ipforwarding (OFF)
. . .
3117   ipForwDatagrams
. . .

 

Ein letztes Wort der Vorsicht: Wenn die Weiterleitung eingeschaltet ist und Sie sie ausschalten und jemand (außer Eve) das Modul tatsächlich als Router benutzt, werden Sie alles unterbrechen, was er tut. Meiner Meinung nach ist das keine schlechte Sache, STCP wurde nicht als Router konzipiert, aber seien Sie auf einige Beschwerden vorbereitet.

 

————-
Anmerkungen
1 1472 ist die maximale Anzahl von Bytes, die in ein über Ethernet übertragenes ICMP-Echo-Paket aufgenommen werden können

© 2024 Stratus Technologies.