Firewall
Eine Firewall (von engl. firewall [ˈfaɪəwɔːl] „die Brandwand“) ist ein System aus Software- und Hardwarekomponenten, das den Zugriff zwischen verschiedenen Rechnernetzen beschränkt, um ein Sicherheitskonzept umzusetzen.
Hardwarekomponenten einer Firewall sind Rechner mit Netzwerkschnittstellen wie Router oder Hosts; Softwarekomponenten sind beispielsweise Paketfilter oder Proxyserver. Ein häufiger Einsatzzweck einer Firewall besteht darin, den Datenverkehr zwischen einem zu schützenden lokalen Netzwerk (LAN) und dem Internet zu kontrollieren.
Grundgedanke
Firewalls sitzen an den Schnittstellen zwischen einzelnen Netzen oder Computersystemen und kontrollieren den Datenverkehr zwischen den Teilbereichen, um ungewünschten Verkehr zu verhindern und nur den gewünschten Verkehr passieren zu lassen. Der häufigste Einsatz einer Firewall besteht darin, den Verkehr zwischen einem lokalen Netz (LAN) und dem Internet zu kontrollieren. Ein komplexes Szenario stellt die Demilitarized Zone (DMZ) dar. Prinzipiell rechtfertigt nicht nur der Übergang LAN-Internet den Einsatz einer Firewall. Auch zwischen zwei oder mehreren organisationsinternen Netzen kann eine Firewall verwendet werden, um dem unterschiedlichen Schutzbedarf der Zonen Rechnung zu tragen.
Dementsprechend besitzt eine Firewall zwei wesentliche Aufgaben:
- Unterbinden von ungewolltem Datenverkehr von externen Computersystemen zum geschützten Bereich
- Unterbinden von ungewolltem Datenverkehr vom geschützten Bereich zu externen Systemen
Rund um das Thema Firewall existieren viele Begriffe, die teilweise richtig sind, aber sehr oft nur die halbe Wahrheit vermitteln. Umgangssprachlich ist mit einer Firewall häufig die Software gemeint, welche den Datenverkehr zwischen den getrennten Bereichen kontrolliert und regelt. Man muss also zwischen dem (Sicherheits-)Konzept Firewall und der konkreten Realisierung der Firewall unterscheiden. Das Sicherheitskonzept beschreibt Regeln, welche Informationen die Firewall passieren dürfen und welche nicht. Realisiert wird das Konzept durch eine Software, die auf einer (oftmals speziellen) Hardware läuft. Die Hardware ist dabei für das Empfangen und Senden der einzelnen Datenpakete zuständig (und somit eigentlich kein sicherndes Element) und die Software regelt den Verkehr. (Was wird durchgelassen? Was wird nicht durchgelassen?) Dabei ist die Hardware häufig wie bei anderen Netzwerkelementen (Routern oder Gateways) auch für die Aufgabenstellung optimiert (schnelle Prüfung von Paketen, hochperformantes Empfangen und Senden von Paketen, etc.).
Host-Firewall (Software) und Netzwerk-Firewall (Hardware)
Umgangssprachlich wird häufig von Hardware- oder Software-Firewall gesprochen. Bei dieser Unterscheidung handelt es sich in erster Linie um eine nicht-technische Definition. Die Unterscheidung von Hard- und Software-Firewall ist technisch gesehen unsinnig. Zu jeder Firewall gehört Software, und diese muss auf Hardware ausgeführt werden. Fälschlicherweise werden dedizierte Router, auf denen die Firewallsoftware ausgeführt wird, als Hardware-Firewall bezeichnet. Personal Firewalls werden oft als Software-Firewall bezeichnet, aber auf dem PC ausgeführt. Sie benötigen also den PC als Hardware.
Wichtiger als die Bezeichnung als Hard- oder Software-Firewall ist das zugrunde liegende Betriebssystem. Software-Firewalls werden wie oben beschrieben auf PC's installiert und sind dadurch natürlich auch von den Sicherheitslücken des Betriebssystems betroffen. Hardware-Firewalls können auch auf Standard-Betriebssystemen beruhen (dort in der Regel Unix) und somit auch von Problemen dieser Betriebssysteme betroffen. Dazu kommen noch Bugs und Sicherheitslücken in der eigentlichen Firewall-Software.
Es gibt jedoch auch Hardware-Firewalls, welche mit einem speziell dafür entwickeltem Betriebssystem funktionieren, das heißt, das Betriebssystem ist gleichzeitig auch die Firewall-Software. Auch diese kann natürlich Bugs und Sicherheitslücken enthalten, jedoch fällt die zusätzliche Fehlerquelle (Betriebssystem / Firewall-Software) durch die einheitliche Struktur (Firewall-Betriebssystem) weg.
Hardware-Firewalls werden deshalb als sicherer angesehen als Software-Firewalls.
Netzwerk-Firewall
Üblicherweise wird ein Gerät „Hardware-Firewall“ genannt, wenn es sich um ein spezifisches Produkt für genau diesen Zweck handelt. Es ist ein Gerät mit mehreren Netzwerk-Schnittstellen und einer darauf laufenden Software (!), welche hauptsächlich als Firewall dient.
Die Hardwarekomponente hat im Regelfall drei Netzwerkschnittstellen, an denen jeweils die zu trennenden Netze angeschlossen sind. Die drei Schnittstellen werden aus Sicherheitsgründen (oft aber wegen der Netzstruktur und damit aus der konzeptionellen Notwendigkeit) gewählt, damit gewährleistet ist, dass nur solche Pakete von einem Netz ins andere durchgelassen werden, die von der Software als gültig anerkannt werden.
Dabei unterscheidet man drei Netzwerkzonen:
- das externe Netz (WAN), heutzutage häufig das Internet, welches als vertrauensunwürdig gilt (Untrusted)
- die sogenannte demilitarisierte Zone (DMZ), in der vom externen Netz aus erreichbare Server beherbergt sind
- das interne Netz (LAN), welches als vertrauenswürdig gilt (Trusted)
Es kann auch mehrere DMZen (typischerweise 3–6) mit jeweils unterschiedlichen Rechten geben, um z. B. gut gewarteten Serven mehr Rechte im LAN zu geben als Servern, die eher unregelmäßig gewartet werden. Ebenso werden oftmals unterschiedliche Diensttypen, insofern sie auf unterschiedlicher Hardware untergebracht sind, ebenso in unterschiedlichen DMZen platziert. Die Verwendung von mehreren DMZen begrenzt die Möglichkeiten des Angreifers bei der Kompromittierung einer einzelnen DMZ. Im Extremfall geht dies bis zu einer kompletten Abschottung einer DMZ vom LAN (= Verbindung nur zum WAN).
Oftmals handelt es sich bei einer Hardware-Firewall jedoch um eine Software-Firewall, die mit spezieller Hardware gebundelt wird.
Host-Firewall
Handelt es sich bei der Hardware, auf welcher die Firewall-Software läuft, nicht um ein spezifisches Gerät (sondern um beispielsweise einen PC mit Linux, Windows oder auch eine Sun Workstation), so wird eher Bezug auf die spezielle Software genommen und nennt es dann Software-Firewall. So werden zum Beispiel Personal Firewalls als Software-Firewalls bezeichnet, weil sie ja normalerweise auf dem (auch für andere Zwecke verwendeten) PC laufen.
Die Softwarekomponente der Firewall arbeitet auf den Schichten 2 bis 7 des OSI-Referenzmodells, und demzufolge kann das Implementationsniveau sehr unterschiedlich ausfallen. Deswegen besteht eine Firewall oft aus verschiedenen Softwarekomponenten. Die verschiedenen Teile sollen hier kurz beschrieben werden:
Paketfilter
Hauptartikel: Paketfilter
Für solch einfache Aufgaben wie das Vergleichen von Quell- und/oder Zieladresse der Pakete, die die Firewall passieren, ist der Paketfilter zuständig. Er hat die Aufgabe, bestimmte Filterungen oder Reglementierungen im Datenverkehr vorzunehmen. Wenn man sich das Internet als eine gigantische Ansammlung von Häusern vorstellt, dann stellen die IP-Adressen sozusagen die Hausnummern dar. (Straßennamen sind in der Welt des Internets unbekannt.) Unter einer bestimmten Hausnummer kann man nun direkt mit einem Rechner kommunizieren, egal wo sich dieser Rechner befindet. In den einzelnen Etagen dieser Rechner wohnen nun die verschiedenen Dienste wie HTTP, FTP oder SSH. Die einzelnen Etagen sind mit einer Nummer gekennzeichnet, die man auch Port nennt. Ein Paketfilter kann nun verschiedene Etagen/Ports für die Besucher aus dem Internet sperren, d. h. jede Verbindung aus dem Internet wird an der Haustüre schon abgewiesen. Durch die entsprechende Konfiguration einer Firewall kann so ein Rechnernetz vor Angriffen und/oder Zugriffen geschützt werden. Ein Paketfilter definiert Regeln, welche festlegen, ob einzelne oder zusammenhängende Pakete das Zugangsschutzsystem passieren dürfen oder abgeblockt werden. Eine solche Regel wäre zum Beispiel: verwerfe alle Pakete, die von der IP-Adresse 1.2.3.4 kommen. Eine solche Regel ist programmtechnisch einfach: es ist nur ein Zahlenwert zu vergleichen. Nur nicht pragmatisch: die Anzahl dieser Nummern im Internet geht in die Millionen. Übeltäter wechseln häufig das Wohnhaus, d. h. Ihre IP-Adresse. Für einen wirklichen Schutz ist der Verwaltungsaufwand zu groß. Deshalb geht man oft den umgekehrten Weg und stellt folgende Regel auf: Lasse nur Pakete durch, die von der IP-Adresse 2.3.4.5 kommen. Prinzipiell ist dies aber auch kein wirklich sicherer Weg, da ein Übeltäter die Hausnummer ohne größere technische Probleme fälschen kann. Eine sichere Kommunikation z. B. zwischen Firmennetzen ist nur möglich, wenn Protokolle verwendet werden, die eine Autorisation und Authentifikation der beteiligten Benutzer oder Systeme vornehmen. Dies kann beispielsweise mit virtuellen privaten Netzwerken geschehen.
Content-Filter
Eine Firewall kann aber nicht nur auf der niedrigen Ebene des Paketfilters arbeiten, sondern auch komplexere Aufgaben übernehmen. Ein Content-Filter überprüft zum Beispiel die Inhalte der Pakete und nicht nur die Meta-Daten der Pakete wie Quell- und/oder Zieladresse. Solche Aufgaben können zum Beispiel folgende sein:
- Herausfiltern von ActiveX und/oder JavaScript aus angeforderten HTML-Seiten
- Filtern/Kennzeichen von Spam-Mails
- Löschen von Viren-Mails
- Herausfiltern von vertraulichen Firmeninformationen (z. B. Bilanz)
Die meisten Systeme lassen nur die Definition von sehr einfachen Regeln zu; das Problem ist aber prinzipiell sehr komplex und das Konzept ist eventuell technisch nicht vollständig umsetzbar (sollen z. B. wirklich sicher und vollständig vertrauliche Informationen aus dem Datenverkehr zu nicht autorisierten Systemen herausgefiltert werden, so müsste u.a. das technische Problem gelöst werden, wie vertrauliche steganografische oder verschlüsselte Informationen erkannt und gefiltert werden soll.
Trotz der in aktuellen Firewall-Systemen recht einfach gestalteten Regeln kann deren Ausführung sehr komplex werden: Häufig müssen einzelne Pakete zusammengesetzt werden, damit der betrachtete Datenverkehr (z. B. HTML-Seite) als Ganzes erkannt, durchsucht und eventuell verändert werden kann. Anschließend muss der Datenverkehr wieder in einzelne Pakete zerteilt werden und kann dann weitergeschickt werden. Anmerkung: I) Üblicherweise ist das Löschen von Viren-Mails die Aufgabe von Virenscannern. Virenscanner durchsuchen u.a. den gesamten ausgehenden und eingehenden Datenstrom nach Viren und löschen diese bei positivem Befund. Typischerweise ist dies nicht Aufgabe einer Firewall. II) Spam-Mails werden von Spam-Filtern gekennzeichnet. Typischerweise ist dies nicht Aufgabe einer Firewall.
Proxy
Hauptartikel: Proxy
Viele Firewallsysteme besitzen einen oder mehrere integrierte transparente Proxys, die für Client und Server weitgehend unbemerkbar sind und von der Firewall automatisch auf entsprechende Verbindungen angewendet werden. Zweck dieser Proxys ist die (vereinfachte) Realisation der Protokollvalidierung und Anpassung (i. S. einer Normalisierung oder definierten Beschränkung) der übertragenen Protokollkommunikation zur Reduktion der Angriffsfläche auf Applikationsebene oder dem gezielten Sperren bestimmter Protokolltransaktionen (z. B. gezielte Verhinderung von Port Mode FTP). Firewallsysteme unterscheiden sich stark in der Anzahl und Art der von Proxys unterstützten Protokolle (z. B. FTP, DNS, HTTP, SMTP, SQL*Net, POP3, MS-RPC usw.) sowie ggf. vorhandenen Konfigurationsmöglichkeiten für diese Proxys. Ohne Proxy-Konzept sind die Möglichkeiten der Protokollnormalisierung sehr begrenzt, da ein aktives Eingreifen in den Datenstrom sich auf Verbindungsabbruch/Blacklisting beschränkt. Viele Firewalls mit Proxy können darüber hinaus Protokolloptionen anpassen, etwa in einer SMTP-Transaktion kein BDAT, VRFY o.Ä. zulassen.
Application-Layer-Firewall
Ist eine Firewall, welche auf Schicht 7 (Applikationsschicht) des ISO-OSI-Modells arbeitet. Eine Firewall, welche den Inhalt von angeforderten HTML-Seiten vor der Auslieferung z. B. auf Viren überprüft, ist ein Beispiel für eine Application-Layer-Firewall.
Stateful Inspection
Stateful Inspection (zustandsgesteuerte Filterung) ist eine Methode zur Erweiterung der Funktion eines Paketfilters. Die Schwäche eines einfachen Paketfilters ist es, dass jedes Paket einzeln betrachtet wird und nur anhand der Informationen in diesem einen Datenpaket entschieden wird, ob es gültig ist oder nicht. Stateful inspection merkt sich dagegen den Status einer Verbindung (identifiziert durch geeignete Kenndaten, beispielsweise IP-Adressen und Ports) und kann ein neues Datenpaket einem zusammenhängenden logischen Datenstrom zuordnen. Diese Information kann als weiteres Filterkriterium herangezogen werden. Im Gegensatz zu einem Proxy wird aber die Verbindung selbst nicht beeinflusst. Die Firma Check Point Software Technologies Ltd. nimmt für sich in Anspruch, diese Technik erfunden und patentiert zu haben (U.S. Patent # 5,606,668).
Vorteil
Der Vorteil von Stateful Inspection anhand eines Beispiels:
Kommuniziert ein Rechner A mit einem Rechner B über einen einfachen Paketfilter, so muss dieser zwei Verbindungen erlauben (NAT und Ähnliches weggelassen):
- Quelle A nach Ziel B
- Quelle B nach Ziel A (für die Antwortpakete)
Das bedeutet, dass beide Rechner die Kommunikation aufnehmen können, da es keine Möglichkeit gibt zu klären, wer anfangen darf.
Bei Stateful Inspection wird nur eine Regel benötigt (bzw. die zweite wird implizit hinzugefügt):
- Quelle A nach Ziel B
Der Paketfilter merkt sich, dass Rechner A mit Rechner B kommuniziert und erlaubt auch Antworten darauf von Rechner B an Rechner A. Rechner B kann aber nicht beginnen. Im Normalfall wird auch auf Quell- und Zielport getestet (diese dürfen sich nicht mehr ändern, damit sie zur gleichen Verbindung gehören) und somit die Kommunikation auf genau eine mögliche Kommunikation beschränkt.
Noch weitergehende Systeme prüfen zusätzlich, ob ein Paket zu einem bestimmten Zeitpunkt in der Kommunikation überhaupt erlaubt ist (zum Beispiel weitere Pakete schicken, obwohl der andere Teilnehmer die Kommunikation bereits abgeschlossen hat).
Personal Firewalls
Hauptartikel: Personal Firewall
Personal Firewalls oder auch Desktop Firewalls sind Programme, die lokal auf dem zu schützenden Rechner installiert sind. Somit ist diese Art von Firewall nicht dafür gedacht, den Verkehr zwischen mehreren Netzen zu kontrollieren, sondern bestimmten Verkehr nicht in den lokalen Rechner hineinzulassen oder hinauszulassen. Die Installation auf dem zu schützenden Rechner erlaubt es auch, anwendungsspezifisch zu filtern. Viele Produkte legen ihren Schwerpunkt auf einfache Konfiguration. Die Schutzwirkung von Personal Firewalls ist allerdings eher gering.
Beispiel
Ein einfaches Konzept soll diese trockene Materie verdeutlichen: Eine Firma möchte ihre Arbeitsplatzrechner ins Internet bringen. Man entscheidet sich für eine Firewall, und aufgrund der Viren-/Würmergefahr möchte man nur die Verbindungen zu einem Mail-Server aufbauen. Damit auch eine Recherche im Internet möglich ist, soll ein PC über einen Proxy Zugriff zu Webseiten erhalten. Der Surf-Rechner wird zusätzlich dadurch geschützt, dass ActiveX aus den angeforderten HTML-Seiten aus Sicherheitsgründen herausgefiltert wird.
Sonstige Zugriffe von außen auf das Firmennetz sollen einfach geblockt werden.
DSL-Modems/DSL-Router
DSL-Router übernehmen normalerweise die Routing-Funktionalität und können Zugriffe aus dem Internet auf das lokale Netz blockieren (Portfilter-Funktionalität). Mit Hilfe von NAT ist es möglich, mehrere Rechner an einem DSL-Modem zu betreiben. Einen Content-Filter enthalten solche Produkte zumeist nicht.
Produkte
- Endian Firewall ist eine Open Source Linux-Distribution für Firewall-Systeme.
- Astaro Security Linux ist eine kommerzielle Linux-Distribution für Firewall-Systeme.
- pf ist eine OpenSource-Firewall die ursprünglich für OpenBSD (Berkeley Software Distribution) entwickelt und später auf andere BSD-Betriebssysteme portiert wurde.
- Smoothwall ist eine für Firewall-Systeme optimierte Linux-Distribution.
- Netfilter – Paketfilter innerhalb des Linux-Kernels.
- Der Eindisketten-Router fli4l ist neben der CD-Variante Gibraltar ein Projekt, das im Sinne einer nachhaltigen Nutzung die Verwendung von alten PCs als Firewall gestattet.
- IPCop ist eine einfach zu bedienende Linux-Distribution, die zum Ziel hat, eine durch und durch sichere Firewall zu sein.
- M0n0wall ist eine BSD basierende Firewall, die teilweise mit ihren Funktionen an Profi-Firewalls herankommt und trotzdem sehr einfach zu konfigurieren ist.
- BrazilFW ist eine selbst auf älteren PCs lauffähige Linux-Firewall, die sich auch mit einer Diskette begnügen kann.
- mGuard ist eine Hardware-Firewall zur Absicherung einzelner Server der Firma Innominate
- .vtFW sind Firewalls auf Basis von OpenBSD pf der Firma .vantronix.
- Microsoft Internet Security and Acceleration Server ist eine kommerzielle Firewall von Microsoft.
Siehe auch
Literatur
- Artymiak, Jacek: Building Firewalls with OpenBSD and PF, 2nd ed. devGuide.net, Lublin, 2003, ISBN 83-916651-1-9
- Barth, Wolfgang: Das Firewall-Buch. Grundlagen, Aufbau und Betrieb sicherer Netzwerke mit Linux. Millin-Verl., Poing, 2004, ISBN 3-89990-128-2
- Cheswick, William R. u.a.: Firewalls and internet security. Repelling the Wily Hacker. Addison-Wesley, Boston, Mass., 2003, ISBN 0-201-63466-X
- Strobel, Stefan: Firewalls und IT-Sicherheit. Grundlagen und Praxis sicherer Netze. dpunkt-Verl., Heidelberg, 2003, ISBN 3-89864-152-X
- Zwicky, Elizabeth D. u.a.: Einrichten von Internet Firewalls. Behandelt Unix, Linux, Windows NT. O'Reilly, Beijing 2001, ISBN 3-89721-169-6
Weblinks
- de.comp.security.firewall FAQ
- computec.ch – Freie deutschsprachige Publikationen zum Thema Firewalling
- Firewall im Habo-WiKi Detaillierte Konzepte & Erklärungen zum Thema Firewall