Online Suche im Handbuch | LITTLE-IDIOT NETWORKING |
SINUS Firewall kann einige weitere Angriffe wirkungsvoll bekämpfen, die vielen Anbietern noch Probleme bereiten:
Das Erraten der Sequenznummer ist ein Angriff der nur in derselben collision domain funktioniert. Nach der Herstellung einer normalen ftp oder telnet Verbindung kann ein Angreifer, sofern zwischen Client und Server TCP Pakete mit Seriennummern ausgetauscht werden, die einem bestimmten Muster folgen. Beispielsweise ist es unter BSD-UNIX üblich die Inkrements dieser Seriennummern auf 128.000 festzusetzen. In dem falle, daß ein Angreifer die TCP- Sequenznummern im Vorhinein bestimmen kann, ist es ihm somit möglich, in einen Datenstrom seine eigenen Befehle mit hinein zu schleusen. Wenn er aufgrund dessen, daß er ja alle Pakete, die bisher zwischen Client und Server ausgetauscht wurden, zudem noch in der Lage ist, die Prüfsummen korrekt vorher zu berechnen und schneller, als der "echte" Client zu senden, dann hat der die Verbindung übernommen. Dieser Trick wird noch sehr häufig angewendet und ist unter "session hijacking" bekannt. Allerdings sind hierzu noch einige Voraussetzungen notwendig. Erstens muß er schneller auf den Server zugreifen können, als der echte Client, zweitens muß er gleichzeitig "gespoofte" Pakete erzeugen und sämtliche zwischen Client und Server ausgetauschten Pakete mitlauschen können, und zudem einen schnellen Rechner besitzen. Programme, die diese Berechnungen durchführen, gibt es überall im Internet zu finden. Der Aufenthaltsort des Angreifers muß sich also entweder sehr nahe am Client oder am Server, oder irgendwo zwischen diesen beiden Clients befinden. Hierzu müßte er sich direkt in eine der Verbindungsleitungen auf dem Weg zwischen Client und Server einklinken. Ohne diese Voraussetzungen würde ein solcher Angriff kaum sofort gelingen, und die Firewall würde einen solchen Angriff schnell bemerken können.
Die Überprüfung der TCP - Prüfsummen bei einigen Firewalls im Falle dessen, daß ein SYN, RST oder FIN Segment eintrifft, wird vom TCP/IP Stack nicht mehr durchgeführt. Ein Angreifer kann also, wenn er weiß, daß die Firewall diese nicht mehr korrekt durchführt, Pakete so konstruieren, daß mehrere simultane, genau vorher berechnete Sequenzen dann durch die Firewall tunneln können, wenn eine der Sequenzen ein RST oder FIN enthält. Die bis dahin im Eingangsbuffer des TCP/IP Stacks eingegangenen Pakete werden also als Pakete mit korrekter Prüfsumme betrachtet, und vom äußeren Filter (outbound) an den inneren Filter (inbound) übergeben, den diese Pakete dann auch, sofern sie korrekt berechnet wurden, überqueren können. Alle anderen Hilfspakete werden dann schon am äußeren Filter gelöscht, sie haben dann aber schon ihren Zweck erfüllt. Um diesen Angriff ausführen zu können, muß der Angreifer sich sehr nahe an der Firewall selber befinden, da es hierbei auf exaktes Timing im Millisekundenbereich oder weniger ankommt.
Besonders beliebt ist ein Angriff, der ein wenig der Mithilfe einer Arbeitsstation im Netzwerk bedarf. Hierzu sendet man an einen beliebigen Benutzer in einem Unternehmen unter einem Vorwand ein Programm, welches dieser dann startet. Was er nicht weiß, daß dieses Programm, mit der gespooften (vorgetäuschten) Adresse eines Servers oder der Firewall eine Verbindung zu einem Server im Internet aufbaut. Die Firewall, in Erwartung eines Datenstromes von diesem Server als Antwort läßt somit Pakete eines Angreifers, die an die Firewall oder einen Server im geschützten Netzwerk adressiert sind, passieren. Woher sollte die Firewall wissen, daß es nicht der Server oder die Firewall selber war, die die Verbindung aufgenommen hat. Bei einer vorgetäuschten FTP-Verbindung, z.B. könnte mit dem Befehl PORT 23 der Firewall signalisiert werden, daß ein Datenstrom aus dem Internet zum inneren Server auf Port 23 (telnet) zuzulassen ist. Der Angreifer hätte somit aus dem Internet auf den internen Server über die Firewall hinweg Zugriff.
Server mit sehr schneller Anbindung sind einer zusätzlichen Gefahr ausgesetzt. Sequenznummern müssen in ein gewisses Fenster fallen. Zu Beginn einer TCP-Verbindung wird dem Server vom Client mitgeteilt, daß ab der "initial seqeuence number" (ISN) sich alle übermittelten Sequenznummern (SSN) in einem bestimmten Fenster befinden müssen. In "high speed networks" kann es somit passieren, daß ein Angreifer Pakete erzeugt, die ähnlich wie beim "session hijacking" dafür sorgen, daß ein "wrapping" der SSN´s, also ein Umbruch über das Maximum von 32 Bit stattfindet, und die SSN´s im untersten Bereich der möglichen SSN´s fortgeführt werden. Somit kann es einem Angreifer gelingen, das die Firewall Pakete passieren läßt, obwohl die die SSN´s falsch sind. Dieser Angriff ist nur dann möglich, wenn in hispeed networks der TCP/IP-Stack der Firewall die SSN´s nicht entsprechend mit dem vom Client vorgeschlagenen Fester (window size) vergleicht, nach "between", "before" und "after" differenziert, und Pakete, deren SSN nicht in das Fenster fällt, blockt. Einige Serverbetriebsysteme differenzieren nicht. Auch einige Firewalls, die sich zu Clustern zusammenkoppeln lassen, sparen sich diese Abfrage besonders in Hinsicht des Falles, daß die Verbindung erfolgreich zustande gekommen ist (connection established state). Sie tauschen nur bei der Einleitung (connection establishment), also während der SYN-SYN/ACK Sequenzen und Beendigung (connection termination), bzw. während der RST/RST oder FIN/FIN Übermittlung Informationen über das Fenster aus. Grund dieses Vorgehens ist, daß ein Datenaustausch zwischen den Firewalls über Verbindungszustände und dynamische Filterregeln nur bei Anfang und Ende einer Übertragung stattfinden muß. Falls sich Firewall Cluster auch noch nebenher über die windows size der einzelnen HiSpeed Verbindungen kontinuierlich austauschen müßten, wären wohl die Firewalls etwas überfordert. Angesichts der Tatsache, daß fehlerhafte Prüfsummen ein RESET Signal an die Sourceadresse zur Folge haben, könnte hiermit eine Firewall als RESET- Generator mißbraucht werden. Sämtliche an den Backbone angeschlossene Hosts sind in Gefahr, durch eine Flut von RESETs mit geschickt gewählten , gespooften IP - Nummern von dem Rest der Welt abgeschnitten zu werden.
Pakete mit falschen TCP Prüfsummen, die von der Firewall nicht frühzeitig aussortiert werden, können den TCP/IP Stack übermäßig stark beanspruchen und evtl. auch korrumpieren.
Wie in RFC 1323 in den Erweiterungen für Hochgeschwindigkeitsnetze beschrieben, kann die "window size", in die die TCP SSN´s fallen müssen, auf 32 Bit erweitert. Sie kann nur im SYN segment initiiert werden und muß von beiden Hosts unterstützt werden (window scale option). Beim Einsatz von Servern in Hispeed LAN´s ist die Erweiterung auf 64 Bit zu empfehlen (LINUX 2.2, Solaris, NetBSD)
Der "passive" Modus (PASV-FTP) bei der FTP-Übertragung erfordert stets eine Erweiterung gewöhnlicher Filter oder generischen Proxy's um die spezifischen Protokollmechanismen. Es muß dafür gesorgt werden, daß der Client innerhalb des gesicherten Netzwerkes beim Zugriff auf einen FTP-Server über die Firewall stets die Portnummer bestimmt. Dies geschieht über den PORT Befehl. Die Firewall muß also den PORT Befehl auf Zahlen < 1024 überprüfen, damit ein Zugriff auf die privilegierten Ports aus dem Internet unterbunden wird. Ein Restrisiko bleibt jedoch. Viele Intranet-Server, Proxy-Cache und SQL - Server belegen unpriviligierte Ports. Hier muß dafür gesorgt werden, daß IDENTD , DNS (reverse lookup) im gesicherten Netzwerk zuverlässig funktionieren. Evtl. sind weitere Filterregeln notwendig, um diese Ports auf internen Servern nochmals abzusichern. Die SINUS Firewall begrenzt die möglichen Ports, aufalle unpriviligierten < 1024, mit Ausnahme der für X-Windows reserviertenPorts 6000...6100. Ein Zugriff auf privilegierte Ports oder X-Window -Server über die Firewall hinweg ist dann nicht mehr möglich. Es gibt aber genügend Portnummern, die z.B. für Fernwartung, Proxy-Cache o.ä. genutzt werden. Diese Ports sind weiterhin gefährdet.
Online Suche im Handbuch | LITTLE-IDIOT NETWORKING |