Referenzhandbuch
8 Firewall
Teardrop
Der Teardrop-Angriff arbeitet mit überlappenden Fragmenten. Dabei wird nach dem ersten Fragment ein weiteres
geschickt, das komplett innerhalb des ersten liegt, d.h. das Ende des zweiten Fragments liegt vor dem Ende des ersten.
Wird nun aus Bequemlichkeit des Programmierers des IP-Stack bei der Ermittlung der Länge der zur Reassemblierung
zu kopierenden Bytes einfach "neues Ende" - "altes Ende" gerechnet, so ergibt sich ein negativer Wert, bzw. ein sehr
großer positiver Wert, durch den bei der Kopieroperation Teile des Speichers des Opfers überschrieben werden und der
Rechner daraufhin abstürzt.
Auch hier hat die Firewall wieder zwei Möglichkeiten: Entweder sie reassembliert selbst und verwirft ggf. das gesamte
Paket, oder sie hält nur minimalen Offset und maximales Ende des Pakets nach und verwirft alle Fragmente, deren Offset
oder Ende in diesen Bereich fallen. Im ersten Fall muss die Implementation innerhalb der Firewall korrekt sein, damit
diese nicht selbst Opfer wird, im anderen Fall sammeln sich wieder "halb" reassemblierte Pakete beim Opfer.
Bonk/Fragrouter
Bonk ist eine Variante des Teardrop-Angriffs, die jedoch nicht zum Ziel hat den angegriffenen Rechner zum Absturz zu
bringen, sondern einfache Portfilter Firewalls, die auch fragmentierte Pakete akzeptieren auszutricksen und somit in das
zu schützende Netz einzudringen. Bei diesem Angriff wird nämlich durch geschickte Wahl des Fragment-Offsets der UDP-
oder TCP-Header des ersten Fragments überschrieben. Hierdurch akzeptieren einfache Portfilter-Firewalls das erste Paket
und die dazugehörenden Fragmente. Durch das Überschreiben des Headers im zweiten Fragment, wird so ganz plötzlich
aus einem erlaubten Paket ein Paket, das eigentlich in der Firewall geblockt werden sollte.
Auch hier gilt, die Firewall kann entweder selbst Re-assemblieren, oder nur das falsche Fragment (und alle nachfolgenden)
filtern, mit den bereits oben angedeuteten Problemen der einen oder anderen Lösung.
5
In der Default-Einstellung sind alle Einstellungen auf "sicher" konfiguriert, d.h. maximal 100 zulässige halboffene
Verbindungen von verschiedenen Rechnern (vgl. SYN-Flooding), maximal 50 halboffene Verbindungen von einem
Rechner (vgl. Portscan) fragmentierte Pakete werden re-assembliert.
8.9.3 Konfiguration der DoS-Abwehr
LANconfig: Firewall/QoS / DoS
WEBconfig: LCOS-Menübaum / Setup / IP-Router / Firewall
5
Um die Anfälligkeit des Netzes vor DoS-Attacken schon im Vorfeld drastisch zu reduzieren, dürfen Pakete aus
entfernten Netzen nur dann angenommen werden, wenn entweder eine Verbindung vom internen Netz aus
initiiert wurde, oder die einkommenden Pakete durch einen expliziten Filtereintrag (Quelle: entferntes Netz, Ziel:
lokales Netz) zugelassen werden. Diese Maßnahme blockiert bereits eine Vielzahl von Angriffen.
Für alle erlaubten Zugriffe werden im Gerät explizit Verbindungszustand, Quell-Adressen und Korrektheit von Fragmenten
überprüft. Dies geschieht sowohl für einkommende als auch für ausgehende Pakete, da ein Angriff auch aus dem lokalen
Netz heraus gestartet werden kann.
Um nicht durch fehlerhafte Konfiguration der Firewall ein Tor für DoS-Angriffe zu öffnen, wird dieser Teil zentral
konfiguriert. Neben der Maximalzahl der halboffenen Verbindungen, der Paket-Aktion und den möglichen
Meldemechanismen gibt es hier noch weitergehende Reaktionsmöglichkeiten:
1
Die Verbindung wird getrennt
1
Die Adresse des Absenders wird für eine einstellbare Zeit gesperrt
1
Der Zielport des Scans wird für eine einstellbare Zeit gesperrt
Immer aktiv hingegen sind folgende Schutzmechanismen:
1
Adressüberprüfung (gegen IP-Spoofing)
1
Abblocken von Broadcasts in lokale Netz (gegen Smurf und Co).
512