Pages by Andreas Hofmeier |
|
Impressum/Note Datenschutzerklärung |
---|
http[s]://www.abmh.de/fhs/RDUe/Labor/Berichte/2.Firewall/Firewall.HTML/index.html |
---|
Auftraggeber: | Prof. Dr.-Ing. Kai-Oliver Detken, |
Fachhochschule Bremen | |
Durchführung am: | 04.06.2004, 08.06.2004 und 16.06.2004 |
Ort der Durchführung: | FH Bremen, Flughafenalle 10, |
Raum: I222 | |
Abgabe am: | 28.07.2004 |
Versuchsgruppe
Andreas Hofmeier | |||
Clemens Nau | |||
Marco Bensch | |||
Zusammenfassung
.
|
Ziele dieses Versuches war es ein Grundverständnis für Netzwerksicherheit zu erlangen. Es sollte ausprobiert werden, welche Formen von Attacken eine Firewall abwehren kann und welche nicht. Zusätzlich sollte die Performance der Firewall bestimmt werden, denn keine Sicherheit ohne Preis (hier die Zugriffszeit).
Bei einer Firewall handelt es sich um einen Computer welcher ein sicheres Netzwerk (z.B. ein firmeninternes Netzwerk) von einem unsicheren Netzwerk (z.B. dem Internet) abschottet.
(Im Internet gibt es natürlich unzählige Klienten und Server, dass ich habe hier vorausgesetzt. Größenverhältnisse nicht ganz realistisch...) Wollte man hundertprozentige Sicherheit erreichen, so müsste man “nur” die Verbindung der beiden Netzwerke trennen. Hat dann allerdings auch nur 0% Zugriff auf Dienste außerhalb des internen Netzwerkes. Möchte man unbeschränkten Zugriff auf diese externen Dienste haben, ist es ein leichtes die beiden Netzwerke über zum Beispiel einen Router miteinander zu verbinden. Nun hat man allerdings keinen Schutz mehr vor der “bösen Welt”. Schnell wird klar, dass keines der beiden extreme wirklich sinnvoll ist. Aber es sollte genauso klar sein, dass alles seinen Preis hat. Es ist nahezu unmöglich hundertprozentige Sicherheit und vollen Zugriff unter ein Dach zu bringen. Möchten Sie zum Beispiel ein Firmengelände einer sicherheitsbewussten Firma betreten, so werden sie um Eingangskontrollen kaum herumkommen. Die Kontrollen sind der Preis für die Sicherheit. Nicht nur das sie eine gewisse Zeit warten müssen, auch das Sicherheitspersonal und die Ausweise, etc kosten Geld. Genauso ist es bei einer Firewall. Eine Firewall ist sozusagen die Eingangskontrollstelle zu ihrem Netzwerk. Auch wenn die eine Firewall ein Paket meist schneller abfertigt als ein Wachmann eine Person, kann die Verzögerung schon zu Problemen führen. Ein gutes Beispiel hierfür sind Echtzeitanwendungen wie Videokonferenzen. 2.2 Angriffe auf Firewalls I: Denial-of-Service (DoS) AttackeEin weiteres Problem einer Eingangskontrolle ist deren Dimensionierung. Aus Kostengründen wird man natürlich versuchen eine auf seinen Bedarf zugeschnittene Eingangskontrolle aufzubauen. Aber was passiert, wenn sich alle Bewohner einer Stadt entschließen zu der Eingangskontrolle zu gehen? Gut, sie würden nicht reingelassen – aber, da die Zufahrtsstraßen verstopft wären, würde auch niemand anders mehr reinkommen. Da Computer “normalerweise” einfacher zu programmieren sind als Menschen, ist es in Netzwerken relativ einfach genügend viele Zugriffe zu produzieren um die normale Funktion eines System untergehen zu lassen. So etwas würden man dann eine Denial-of-Service Attacke nennen. 2.3 PaketfilterWie der Name vermuten lässt, filtert diese einfache Form der Firewall Pakete nach gewissen Kriterien. So können zum Beispiel alle Pakete ausgefiltert (nicht zugelassen) werden, die zu groß sind, einen ungültigen oder unerwünschten Absender haben oder an einem bestimmten Port/Service (der nicht erwünscht ist) gerichtet sind. Paketfilter eignen sich gut um zum Beispiel eine bestimmten Service zu unterbinden sind aber nutzlos gegen Angriffe auf Applikationsebene. So könnten unerwünschte FTP-Zugriffe durch sperren des Ports 21 unterbunden werden. Dies ist zum Beispiel sinnvoll, wenn der FTP-Server nur intern verwendet werden soll. FTP-Anfragen werden schon vor erreichen des Servers abgefangen und können diesen nicht mehr beeinträchtigen. Würden die Anfragen bis zum FTP-Server durchgelassen, könnte dieser zum Beispiel durch Überflutung mit Zugriffen (Denial-of-Service Attacke) beeinträchtigt werden. Des weiteren wäre es möglich Schwachstellen des Servers selber auszunutzen. Hier sind insbesondere Buffer-Overflows zu nennen. Vor diesen beiden Angriffen bietet ein Paketfilter also nur dann Schutz, wenn der entsprechende Service verboten wurde. Dies auch nur begrenzt, da die Firewall selber so damit beschäftigt sein kann die Angriffe abzuweisen, dass nichts anderes mehr durchkommt. Einige Beispiele: Ping-Flooding (DoS auf Paketebene) gegen FTP-Server (über Firewall; egal, ob FTP zugelassen): Die die Internetverbindung wäre lahmgelegt aber der FTP-Server könnte intern weiter verwendet werden; Überflutung mit FTP-Zugriffen: Ist der Service erlaubt, also von außen sichtbar, ist eine Firewall machtlos. Ansonsten würde die Firewall den Angriff total abwehren. Die Internetverbindung wäre nur wenig darurch belastet. Weiterhin kann ein Paketfilter manipulierte Paket filtern. So zum Beispiel Ping-of-Death-Attacken, welche mit Hilfe von manipulierten (z.B. übergroßen) Paketen versuchen den Zielrechner zum Absturz zu bringen. Das meint aber nicht, dass die Firewall in der Lage wäre manipulierte Daten innerhalb eines korrekten Datenstroms (z.B. Ausnutzungen eines Buffer-Overflows) erkennen und abzuweisen. Hierfür ist der jeweilige Server selber zuständig. Um diesem Problemen vorzubeugen können Applikationsfilter eingesetzt werden. 2.4 ApplikationsfilterBei Applikationsfiltern handelt es sich um einen Filter auf Applikationsebene. Ganz im gegensatz zu Paketfiltern können hier Angriffe auf der Applikationsebene (z.B. Ausnutzung von Buffer-Overflows) abgewehrt werden. Applikationsfilter müssen daher auf die jeweilige Applikation zugeschnitten sein, anders als Paketfilter, denen die Applikation egal ist. Proxys sind zum Beispiel eine Form von Applikationsfiltern. Ein weiteren interessanter Aspekt neben dem Filtern von sicherheitsrelevanten Daten wie Viren und Trojanern, ist das Filtern von unerwünschten Inhalten, wie zum Beispiel Werbung, Spam, Pornos, etc... 2.5 ProxysProxys sind eine Erweiterung von Applikationsfiltern. Sie filtern nicht nur den Datenstrom sondern speichern ihn auch zwischen (cachen). Das hat den großen Vorteil, dass häufig gebrauchte Daten nicht immer wieder durch einen Flaschenhals (z.B. langsame Internetverbindung) neu geladen werden müssen. Das macht den Zugriff schneller. In der heutigen Zeit, in der nach Traffic-Volumen abgerechnet wird, macht es sich ebenfalls in den Onlinekosten bemerkbar. Da häufig gebrauchte Daten eben nur einmal, statt “häufig” geladen werden. Für die häufigen HTTP (WWW/WEB) Zugriffe stehen unter GNU Linux unter anderem diese beiden Proxys zur Verfügung: Apache (kann neben WEB-Server auch als Proxy arbeiten) und Squid. 2.6 Angriffe auf Firewalls IIAngreifen kann man nur, was man auch erkennen kann. Also sollte die Firewall von außen nicht sichtbar sein. Dies kann dadurch erreicht werden, dass die Firewall nicht auf ICMP-Anfragen (z.B. Pings) reagiert. So bleibt die Firewall für Traceroute unsichtbar. Das setzt natürlich voraus, dass die IP der Firewall für nichts anderes als für Firewall verwendet wird. Läuft zum Beispiel der WEB-Server auf dem selben Rechner wie die Firewall, ist die IP der Firewall schon bekannt und angreifbar. Ganz davon zu schweigen, dass der zusätzliche Dienst ebenfalls Sicherheitslücken enthalten kann und somit die Firewall “angreifbarer” macht. Hier gilt: Jeder Service erhöht die Angriffsfläche. Gelingt ein Einbruch auf einer Firewall (zum Beispiel über ein WEB-Server auf dem selben Rechner), kann diese zum Router umfunktioniert werden und alle Zugriffe von außen sind möglich. Bricht jemand allerdings auf einem “nur Webserver”-Rechner ein, so sind die Zugriffe von außen werterhin durch die Firewall beschränkt. Ein von einem Trojaner geöffneter Port kann zum Beispiel nicht von außen erreicht werden. Natürlich sollte der Admin bei einem Login auf einer Firewall (genauso wie bei jedem anderen Login auch) alle Sicherheitsvorschriften beachten. Einloggen wenn möglich nur von “sicheren Rechnern” (keine Fremdrechner mit Keyboardloggern im Hintergrund) aus. Ebenfalls sollte ein anerkanntes Verschlüsselungsverfahren wie z.B. SSL/SSH verwendet werden. 2.7 Paketfilter unter LinuxDer Linux-Kernel hat einen Paketfilter integriert. Auf Grund der hohen Zuverlässigkeit und Sicherheit eignet sich GNU Linux ganz besonders gut für den Einsatz als Firewall. 2.7.1 Bedingungsketten
|